blob: 46eb6ebfb511e4b81ebbadc18355f1370985b504 [file] [log] [blame]
Emeric Vigier2f625822012-08-06 11:09:52 -04001From Common C++ 1.8.0 to 1.8.1
2- zero length udp in sender and peer.
3- use of long int in sock option.
4- various exception fixes.
5- thread subscribe/unsubscribe fix.
6
7From Common C++ 1.7.3 to 1.8.0
8- sigwait argument detection fixed for pedantic compiles.
9- pedantic fixups for gcc 4.4
10- application logging
11- patch for persistant stream compression
12- patch for linked object insert placement
13- patch for linked double insert method
14
15From Common C++ 1.7.2 to 1.7.3
16- missing dccp demo apps and socket exceptions added.
17
18From Common C++ 1.7.1 to 1.7.2
19- missing server accept constructor for DCCP sockets.
20- fix ThreadQueue win32 compile error
21- update test
22- missing get{Tx,Rx}CCID methods for DCCP sockets.
23- fix wrong type for setCCID method
24- demo app for dccp sockets
25
26From Common C++ 1.7.0 to 1.7.1
27- const fix from Marty Jack.
28- memory leak fixed for ThreadLock.
29- dccp socket support contributed by Leandro Melo de Sales and David Sugar.
30
31From Common C++ 1.6.4 to 1.7.0
32- Pedantic code cleanup.
33- Some fix for multicast.
34
35From Common C++ 1.6.3 to 1.6.4
36- New library naming policy for RPM packages
37
38From Common C++ 1.6.2 to 1.6.3
39- Debian patches applied upstream
40- Some code cleanup
41
42From Common C++ 1.6.1 to 1.6.2
43- fix pointer.h for recursive/multiple include
44- dsp files updated.
45
46From Common C++ 1.6.0 to 1.6.1
47- some fixups for mingw32 based builds
48
49From Common C++ 1.5.9 to 1.6.0
50- patch for ThreadQueue from Angelo Naselli
51- patch for LinkedDouble from Sergio Repetto, changed abi.
52
53From Common C++ 1.5.7 to 1.5.9
54- changes for make-in-place builds
55- a few gentoo patches, such as for --as-needed build link option and for
56 gnutls/openssl selection
57
58From Common C++ 1.5.6 to 1.5.7
59- fix for w32 overlapped serial i/o from Thomas Pfaff
60- downstream gcc 4.3 and isRunning fix from Mark Purcell
61- sha digest cleanup
62
63From Common C++ 1.5.5 to 1.5.6
64- visibility for shared library symbols
65- upstream debian patches
66
67From Common C++ 1.5.4 to 1.5.5
68- missing lz in ccext2.pc, ssl/zstream links for libccext2 in
69 src/Makefile.am
70
71From Common C++ 1.5.3 to 1.5.4
72- hi resolution and monotonic timers for TimerPort
73- TimerPort synchronized sleep
74- Mingw compile fix for ll consts in epoch calculation
75- Angelo Naselli's revised timed buffer thread queue
76- other minor patches and fixes, code cleanup
77- fixes for mingw32 (cross compile) targets and building dll's
78- fix for relative build path in configure
79
80From Common C++ 1.5.2 to 1.5.3
81- some code cleanup of operators and const members
82- removal of -local-data hook in main Makefile for ease of
83 cross-compiler use
84
85From Common C++ 1.5.1 to 1.5.2
86- fix for include path passed in .pc files.
87- small Solaris patch
88
89From Common C++ 1.5.0 to 1.5.1
90- gnutls support used for SSLStream
91
92From Common C++ 1.4.3 to 1.5.0
93- added IPV4/V6Cidr objects for use in routing policies.
94- removed libxml2 wrapper option so we can better focus on Common C++'s
95 built-in sax parser.
96- addition of "clean" MemPager protected member, used by Keydata to
97 assure dynamic object behavior is correct and non-leaking.
98
99From Common C++ 1.4.2 to 1.4.3
100- fix for getThread id if priv is NULL.
101- fix for extern "C" of handlers and types.
102- fix for keydata loadPrefix for w32.
103- use readData/writeData for overflow/underflow in TCPStream to allow
104 override in SSLStream
105- optional introduction of SSLStream class
106- new SSLStream class cannot be built substituting gnutls yet because
107 openssl emulation is not thread-safe and so class must be rewritten
108 explicitly for gnutls. Hence for now ssl is disabled by default
109- one small change to w32 serial
110
111From Common C++ 1.4.1 to 1.4.2
112- fix for possible race condition in detach
113- fix for url.get with relocated objects without path
114- use of MSG_NOSIGNAL in ::send( to avoid signals with disconnect
115- a fix for mingw32 and file.cpp
116
117From Common C++ 1.4.0 to 1.4.1
118- set etctest correctly for posix targets with forced sysconfdir.
119
120From Common C++ 1.3.26 to 1.4.0
121- Templates no longer DLL export managed. Explicit DLL interface instanciation
122 is now recommended instead for building native .dll's with templates
123 on broken Microsoft compilers.
124- export templates cleaned up and __EXPORT_TEMPLATE added
125- RefPointer and RefObject classes for reference count managed objects
126- LinkedSingle and LinkedDouble self managing linked list classes
127- MapTable and mapObject classes for managed hash indexes
128- Some convenience functions for keydata
129- conditional build for extras library
130- isRealtime check for thread priority management
131- moved templates into main header
132
133From Common C++ 1.3.25 to 1.3.26
134- page request overflow triggers abort.
135- small code cleanups.
136- keydata uses bigger default paging for >32 bit pointers.
137- new errLockFailure indicator for Thread shared files.
138- added exception handling for SocketService and SerialService constructors.
139
140From Common C++ 1.3.24 to 1.3.25
141- fix for XMLRPC
142- bindings for templates in dll's
143
144From Common C++ 1.3.23 to 1.3.24
145- persistance engine exceptions unified
146
147From Common C++ 1.3.22 to 1.3.23
148- fix for std:: in mutex.cpp.
149
150From Common C++ 1.3.21 to 1.3.22
151- some fixups for casting for w32.
152- new spec file...
153- small fix for socket writeData and url parsing.
154- allow SO_REUSEADDR in w32...
155- fix w32 socket disconnect.
156- _POSIX_PTHREAD_SEMANTICS defined before signal.h
157- freebsd6 nat fix
158- improvements in generated documentation
159
160From Common C++ 1.3.20 to 1.3.21
161- use ios header for gcc atomics
162- spec file fixed
163- fix for null keys for Keydata loadFile
164
165From Common C++ 1.3.19 to 1.3.20
166- fix for pthread platforms with expiration....
167- always explicity set protocol numbers for tcp & udp
168- fix for some header inlines and define checks...
169
170From Common C++ 1.3.18 to 1.3.19
171- fix w32/Makefile.bcc error in clean target when -DBMODE=DEBUG
172- fix tests/thread1.cpp to compile with Microsoft Visual C++ 6.0
173- fix Microsoft build file line end convention from -kb to -ko
174- fix for w32 TCPSession connect issue
175
176From Common C++ 1.3.17 to 1.3.18
177- fix for w32 platform sdk/ipv6 dependencies and entanglements from Pino
178- fix for Borland w32 from Pino
179
180From Common C++ 1.3.16 to 1.3.17
181- freebsd nanosleep define fix
182
183From Common C++ 1.3.15 to 1.3.16
184- inline header fix.
185
186From Common C++ 1.3.14 to 1.3.15
187- dupString added as alias to newString.
188- parent notify disabled, in case parent already deleted, will be fixed
189 later by using tids...
190
191From Common C++ 1.3.13 to 1.3.14
192- some fixups for AIX and Visual Age C++.
193
194From Common C++ 1.3.12 to 1.3.13
195- fix for automake generated install of ccgnu2-config.
196- important fix for string class from Migel Nick.
197- setUpper/setLower added.
198
199From Common C++ 1.3.11 to 1.3.12
200- some stuff for fussy compilers.
201- fix for w32 setting of active thread id.
202- better deadlock debugging support
203- mutex deadlock trace support added for win32.
204
205From Common C++ 1.3.10 to 1.3.11
206- socket public inheritence for SimpleTCPStream.
207
208From Common C++ 1.3.9 to 1.3.10
209- fix for macosx 10.4
210
211From Common C++ 1.3.8 to 1.3.9
212- fix for socket.cpp from Uwe Buchholz
213- fix for suspend/resume and exchange atomics..
214
215From Common C++ 1.3.7 to 1.3.8
216- fix for missing mime.cpp
217
218From Commom C++ 1.3.6 to 1.3.7
219- start of MIME multipart support
220- seperate test for mlock()
221- better support for w32 vs6 with platform sdk installed; ipv6 now enabled!
222
223From Common C++ 1.3.5 to 1.3.6
224- fix for w32 gettimeofday implimentation.
225
226From Common C++ 1.3.4 to 1.3.5
227- fix critical bug in assoc getPointer().
228- alternate keydata constructor.
229
230From Common C++ 1.3.3 to 1.3.4
231- detached thread exiting cleanup (posix).
232- fix for more general case multicast when no interface binding on posix.
233- GNU/Hurd target support.
234
235From Common C++ 1.3.2 to 1.3.3
236- multicast support for w32 platform from dmcamens patch.
237- kill final delete this in TCPSession and add virtual destructor.
238- added virtual destructor for TTYSession, UnixSession
239
240From Common C++ 1.3.1 to 1.3.2
241- fix for keydata exit close on non-opened objects.
242- string.h pragma pack wrapped.
243- pkgconfig fix for libccext2.pc.
244- gcc atomics patch
245- HAVE_SNPRINTF defined for docs
246- posix getValue for semaphore removed.
247
248From Common C++ 1.3.0 to 1.3.1
249- serialization of pairs...
250- run-list non-blocking callback semaphore-like operation class
251- fix for demo tcpservice
252- fix for TTYStream underflow.
253- fix for missing overlap on strlcpy/strlcat
254- two level /etc check
255- security fix; keydata config file paths can no longer be "relocated"
256 through environment manipulation! "CONFIG_KEYDATA" env gone!
257- security fix; config files must be root owned or match process uid
258- virtuals no longer have inline defs
259- update to change exception notice to match GNU libstdc++ runtime exception.
260- named assoc misc base class.
261
262From Common C++ 1.2.4 to 1.3.0
263- separation of tested Common C++ compile options from passed CXXFLAGS
264- Buffer class moved into base library
265- getopt moved to ext library
266- Buffer, sockt streaming, and xml 64 bit clean...breaks prior signatures
267- new compressed stream classes
268- use of conditional to impliment posix semaphore class! Timed
269 semaphore support in both win32 and posix.
270- system-wide Lockfile class.
271- killed old fifo class.
272- new memory locking options for MappedFile.
273- more portable process system / resource info functions
274- portable lastAccessed and lastModified functions
275- better support for posix realtime extensions
276- some tru64 configure issues resolved
277- all uses of signal use Process:: based signal classes build from
278 sigaction rather than default "signal()" function, hence behavior
279 is known and consistent.
280- hpux loader fix
281- start of transitional interface to using getaddrinfo and char strings
282 for fast connection lookup. Eventually all classes will use this
283 method by 1.4.0 (as well as retaining current methods by addr object).
284- odd tcpstream class family gone; TCPStream can now be used same way.
285- demo apps updated for new interfaces
286- socketport moved to ccext2
287- greater flexibility in use of Keydata objects and new keydump demo app.
288- StringTokenizer moved to ext library
289- tcp streaming rewritten to make use of segment sizing and buffering.
290- local build instance defaults can be in ~/.configure.
291- MemPagerObject and StringObject added to live in pager memory.
292- DirTree added to walk recursive directory structures quickly.
293- StackPager to cache objects.
294- new OST_CCXX2_CHECK macro for cleaner autoconf/automake interface.
295- support of IPV6 for w32 target when built native from vs.net.
296- windows registry support for keydata.
297- updated for latest FreeBSD, OpenBSD, and NetBSD.
298
299From Common C++ 1.2.3 to 1.2.4
300- patch for url proxy by Andrey Kulikov
301- fix for ambigious exception handling
302- Chad Yates patches for unit tests and persistence engine
303- Ricardo Gameiro's nat/netfilter support
304
305From Common C++ 1.2.2 to 1.2.3
306- w32 mutex now possible to base on critical section or w32 mutex using
307 kulikov patch.
308- save stack value for w32 thread start, which was moved to start().
309- only use alignmed pages in MemPager for those systems which require
310 BYTE_ALIGNMENT > 1.
311- fixes for platforms which emulate recursive mutex behavior based on
312 Conditional's emulation code.
313- w32 specific thread attributes now hidden in priv data structure.
314- support for more unix targets...
315- support for cygwin dll compile...
316- more 64 bit clean
317- borlandc makefile updates and compile fixes from Darko
318- tmpString broken, dangerous, and removed!
319
320From Common C++ 1.2.1 to 1.2.2
321- fix for datetime constructor.
322- w32 distributed build issues.
323- vic fix for some w32 builds on atomics and setAddress.
324
325From Common C++ 1.2.0 to 1.2.1
326- major fix for deleting dummy thread when shadowing non-commonc++
327 threads.
328
329From Common C++ 1.1.9 to 1.2.0
330- initial ipv6 support!
331- MemPager uses posix_memalign to align allocated pages when available.
332- now uses pkgconfig system.
333- more String functions.
334- ability to use std::string in String constructor.
335- Conditional & Event now uses ordinary (non-recursive) mutex!
336- Marcelo patches for EXPORTS and m4 underquoting.
337- fix for win32 restartable threads.
338- some fixes tried for signal handled quit when no immediate cancel.
339- use of enterCancel/exitCancel for building cancellation point wrappers.
340- w32 file access and isPending operations now cancellation points
341 through enterCancel/exitCancel for more consistent behavior with
342 posix which treats select/poll/read/write as cancellation point.
343- fix for broken signaling version code to clear act structure.
344- added Thread::sync() for suspending until cancel/join.
345- socket close order changed.
346- faster atomic ops, aix atomic support.
347- cleanup of endian detection.
348
349From Common C++ 1.1.8 to 1.1.9
350- second fix in date.cpp and unquoted definition in m4 files, from
351 Marcelo Dalmas
352- make sure original object exists in TTYStream during closure.
353- consistent type casting of String for exceptions.
354- fix String operator=.
355
356From Common C++ 1.1.7 to 1.1.8
357- use /etc/configure.conf for options as well as ~/.configure.
358- reconfig supports aclocal path option and ~./configure options.
359- improved handling of connetError when thrown as exception to make
360 sure stream is correct.
361- fix for process deamonfy attach.
362- SysTime patch to support re-entrant time.
363- fix shadowing of parms and members.
364
365From Common C++ 1.1.6 to 1.1.7
366- doxygen/docgen cleanup patch from Matthew Burgess.
367- automake patch for newer automake from Matthew Burgess.
368- readdir_r patch from Vyacheslav Hryhoryev.
369- some fix for configure.in and package build for rpm.
370
371From Common C++ 1.1.5 to 1.1.6
372- some changes in include path versioning.
373- some changes for /opt vs "lsb compliant" /opt paths.
374- possible race condition fix in terminate!
375- extra safety check for slog.
376
377From Common C++ 1.1.4 to 1.1.5
378- improved /opt prefix and lsb layout handling.
379- improved PATH stuff to find configure.
380- fixes for gcc-3.4.0.
381- patch for Time::getTime.
382- patch for PosixThread::waitSignal.
383
384From Common C++ 1.1.3 to 1.1.4
385- fix for ETC_PREFIX setting.
386- getThread changed for less confusion, member version now ::get.
387- fix for string assignment overuse.
388
389From Common C++ 1.1.2 to 1.1.3
390- --with-lsb=name option to build lsb compliant package.
391- major fix for String class copy, assignment, and space reuse.
392
393From Common C++ 1.1.1 to 1.1.2
394- fix typo in serial.cpp.
395- CBuilder patch for borland compilers & w32 targets.
396- match change in numbers for dealing with const values.
397- fix in ThreadQueue code.
398- path fixups in w32 dsp projects.
399- qnx6 compile fixes for serial.cpp and network.cpp.
400- more compiler optimizations when not using exceptions.
401- clarification of w32 build projects and new common workspace.
402
403From Common C++ 1.1.0 to 1.1.1
404- use CCXX_EXCEPTIONS for old HAVE_EXCEPTION_HANDLING
405- some compile fixups for use when no exception handling is available
406- "configure --without-exceptions" can now be used! Also kills rtti
407 and adds omit-frame-pointer optimization back in. This can be used
408 to produce smaller and more efficient code for targetted uses.
409 NOTE: some broken c++ stdlibs have inline dynamic_cast's in common
410 headers and hence can NEVER be compiled -fno-rtti.
411- support for new ~/.configure mechanism for setting default options.
412- fix potential memory leak in self exiting threads, and more advanced
413 support for "join" method with immediate stack cleanup on posix.
414- fix for pathname not properly initialized in main RandomFile
415 constructor.
416- new --without-libxml2 and --without-compression options to further
417 optimize library.
418- missing __EXPORT for ThreadQueue.
419- Jeffry Reed's string patch for stl use.
420- fix for w32 "syslog" logging.
421- fix for w32 terminate setting self to NULL when not terminating self.
422- new automatic stack frame locking objects for member function calls
423 including semaphore and read/write locks.
424- new automatic cancellation object to do stack frame automatic setting
425 and auto-restore on exit of cancel modes.
426- Abid Taraben's patch for overlapped serial i/o.
427- mempager alignment patch
428- auditing for use of safe string functions.
429- added new safe string functions "newString" and "tmpString" to get
430 strings from memory and stack frame.
431
432From Common C++ 2 1.0.x and 1.1.0 beta to 1.1.0 release
433- merge of 1.1.0 beta and 1.0.x source trees
434- configure system updated for autoconf 2.5x or later.
435- fix of ssl Makefile
436- new Process methods for managing process user identity
437- expansion of Dir class to many more dir operations and iterator
438 behavior
439- patch for persist for namespace situations
440- portable filename manipulations
441- realpath() support and emulation for systems without.
442- Common C++ String class introduced
443- Date functions now use new string class
444- Date class now uses iso date formats as standard
445- Network class updated for new string class
446- embed memmove code for portability.
447- make use of win32 version of snprintf.
448- use const for mempager string alloc.
449- consolidation of missing libc functions.
450- fix for Conditional::wait().
451- keydata now has win32 specific mode for parsing .ini files and support
452 for other keydata extensions.
453- xml support now always enabled; if libxml2 is not found, a new built in
454 C++ coded mini-xml parser (non-validating, fairly simple) will be used!
455 The mini-parser will be expanded to support "well formedness" detection and
456 improved over time...
457- win32 support for mapped files and other features!
458- Digest::initDigest is now public instead of protected.
459- TCPStream "printf" method.
460- varous slog methods (error, info, etc) can do varargs.
461- setAutostack used as global means to tune posix stack usage.
462- emulate detached for w32 and detached threads now auto delete on exit
463
464From Common C++ 2 1.0.0 to 1.1.0 (beta set)
465- include/cc++/socket.h: doc. updated to new constants and Win32 implementation
466- src/xml.cpp: bug fixes from Norber Koch.
467- doc/Doxyfile and many header files: fixed doxygen warnings and included demos
468- doc/commoncpp2.texi, doc/fdl.texi, doc/fdlnotice.texi, doc/gpl.texi:
469 OVERVIEW.TXT formatted in texinfo and partially updated.
470- doc/developer/CodingStyle and doc/developer/PortingProblem incorporated to
471 doc/commoncpp2.texi
472- win32: appended d to MSVC debug libraries. Fixed warnings from VC7.
473- include/cc++/url.h: splitted into url.h and urlstring.h so that
474 ccgnu2.dll does not depend on ccext2.dll.
475- start of experimental GNU Common C++ "ssl" stream class support and new
476 libccssl library.
477- "common.reg" for win32 registry initialization of CONFIG_KEYDATA stuff
478 planned.
479- src/url.cpp: small fix from David Genest.
480- src/date.cpp, include/cc++/numbers.h: patches from Norbert Koch
481- configure.in, include/cc++/xml.h, src/xml.cpp and url.cpp,
482 win32/cc++/config.h: HAVE_SSTREAM #ifdefs
483- src/simplesocket.cpp, include/cc++/socket.h, src/Makefile.am,
484 win32/Makefile.gcc, win32/ccgnu2.dsp: added SimpleTCPStream from Mark Millard
485- commoncpp2.spec.in, Makefile.am: fixes for correctly building rpms from
486 Marcelo Dalmas
487- piostream from Daniel E Baumann.
488 acconfig.h, configure.in: added --with-piostream configure option.
489 new headers in include/cc++/: piostream, pistream, pistream.tcc, postream,
490 postream.tcc, pios, piosfwd, pios_init.h (Makefile.am also updated)
491 new sources in src/: pios.cpp, pio_globals.cpp (Makefile.am also updated)
492 new demos in demo/: pio.cpp (Makefile.am also updated)
493 win32/Makefile.gcc, win32/CCXX2demo.dsw, win32/demo/pio.dsp
494 src/private.h, include/cc++/thread.h: added Thread::getThreadID().
495- fix (constructor parameters) for serialecho demo from Daniel E Baumann.
496- include/cc++/piomanip, include/cc++/Makefile.am, demo/pio.cpp: added
497 manipulators for piostreams from Daniel E. Baumann.
498- src/serial.cpp: fixed recursive call in ttystream::close().
499- exception construction fix.
500- src/port.cpp: fixed TimerPort::getElapsed() Win32 implementation.
501- src/thread.cpp:(Win32) sleep(0) replaced with sleep(1) -from Leonard Thornton
502- acconfig.h, m4/ost_pthread.m4: removed HAVE_ASM_ATOMIC... checks and defines
503 -From Mark Purcell
504- thread.cpp: siginstall renamed to sigInstall to match declaration in thread.h
505- src/socket.cpp, src/peer.cpp, src/port.cpp, simplesocket.cpp, unix.cpp:
506 before ::connect, change INADDR_ANY to INADDR_LOOPBACK so that it
507 does not crash on Win32.
508- include/cc++/socket.h, src/port.cpp: non-blocking outboud tcp connection
509 constructor for SocketPort from Christian Prochnow
510- include/cc++/xml.h, src/xml.cpp: rearranged xml related #ifdefs.
511- include/cc++/file.h: File::Access and File::Error are now public.
512- include/cc++/network.h, src/network.cpp, include/cc++/common.h: new
513 NetworkDeviceInfo class, from Christian Prochnow. netdevices demo.
514- acconfig.h, m4/ost_reentrant.m4, include/cc++/exception.h,
515 include/cc++/ftp.h, include/cc++/socket.h, src/exception.cpp, src/ftp.cpp,
516 src/port.cpp, src/socket.cpp, demo/tcp.cpp: better error/exception messages
517 for socket classes, from Christian Prochnow.
518- include/cc++/numbers.h: CCXX_CLASS_EXPORT Time and DateTime.
519- include/cc++/digest.h, src/sha.cpp, demo/shadigest.cpp: new SHA1Digest and
520 SHA256Digest classes, from Elizabeth Barham.
521- src/file.cpp: fixes for open, fetch, update and append methods from
522 Andrew L. Shwaika
523- src/ost_check2.m4: added OST_CCXX2_XML, from Ari Johnson.
524- include/cc++/thread.h, src/thread.cpp: added support for periodic itimer
525 based timers, from Jakob Skov-Pedersen.
526- include/cc++/thread.h, src/thread.cpp: added Thread::join, from Jakob
527 Skov-Pedersen.
528- configure.in, src/Makefile.am demo/Makefile.am, tests/Makefile.am, and
529 several source files: added '-Wall -ansi -pedantic' compiling options
530 and corrected the warnings that show up, from Albert Strasheim.
531- src/thread.cpp: detached threads created with detach attribute.
532- src/thread.cpp, include/cc++/thread.h: isDetached() support.
533- src/thread.cpp: close fix if deleted, detached threads loose parent.
534- demo/thread3.cpp: test whether thread cancel unwinds stack frame and
535 calls destructors on auto objects.
536- src/dir.cpp, include/cc++/file.h: dir object has close member now.
537- include/cc++/socket.h: added InetAddress assignment operator
538 from unsigned int, from Mark Purcell and Gerhard Tonn.
539- include/cc++/urlstring.h, src/urlstring.cpp: new b64 encode and
540 decode methods for string. From Chad Yates.
541- configure.in, src/Makefile.am: added --with-cppunit option and
542 WITH_CPPUNIT_TESTS conditional.
543- tests/Makefile.am, SampleObject.h, SampleSubObject.h,
544 Test_Date.h, Test_Digest.h, Test_Engine.h, Test_SHATumbler.h,
545 Test_URLString.h, ccxx_tests.cpp SampleObject.cpp
546 SampleSubObject.cpp, Test_Date.cpp, Test_Digest.cpp,
547 Test_Engine.cpp, Test_SHATumbler.cpp, Test_URLString.cpp: new
548 cppunit based test suite, From Chad Yates.
549- win32/CCXX2tests.dsw, win32/tests/ccxx_testsuite.dsp: added
550 project file for the new test suite, from Chad Yates.
551- tests/Test_TCPStream.h, tests/Test_TCPStream.cpp: new test, from Chad Yates.
552- include/cc++/socket.h, src/socket.cpp: new read and write methods for socket,
553 and new getInterfaceIndex and join (with interface specifier)
554 methods, from Donald Wycoff.
555
556From Common C++ 2 1.0rc2 to 1.0.0
557- Added timeout optional parameter to TTYStream and URLStream constructors.
558- include/cc++/strchar.h: removed deprecated and unused #include <strstream>.
559- rpm specs updated to build optional extras package and devel package.
560- include/cc++/ftp.h, src/ftp.cpp: fixed namespaces.
561- src/url.cpp: more improvements from Norbert Koch. removed #include <strstream>
562- template/template.h: removed cc++/string.h and cc++/objkeys.h (missing)
563- Other fixes so that all templates compile.
564
565From Common C++ 2 1.0rc1 to Common C++ 2 1.0rc2
566- url.cpp split between url.cpp and urlstring.cpp; urlstring.cpp part of
567 libccgnu2.
568- ccgnu2-config reports version as "1.0.0" to fix problems with config
569 scripts.
570
571From Common C++ 2 0.99.7 to Common C++ 2 1.0rc1
572- updated mingw32 support from Frederico!
573- post updates for even better mingw32 builds...
574- all win32/posix sources merged.
575- new ccgnu2.dll and ccext2.dll split dll build.
576- include/cc++/digest.h: CRC32Digest exported for dll's
577- include/cc++/xml.h, src/xml.cpp: XMLRPC fixed and improved with patches
578 from Norbert Koch. Now uses the newer <sstream> rather than <strstream>.
579- include/cc++/digest.h, include/cc++/slog.h: removed unused <strstream> -nkoch
580- src/mempager.cpp: added std namespace to endl -nkoch
581- include/cc++/misc.h: used the [] version of delete -Mike Suchoff
582- some persist patches from Pierre Bacquet.
583- PersistException now derived from Exception.
584- XML support, demo and tests workspaces for MSVC++.
585
586From Common C++ 2 0.99.6 to Common C++ 2 0.99.7
587- slight restructure of libs and we make sure -lc_r is inserted for
588 FreeBSD
589- support --with-pthread= option to specify pthread library directly.
590- support for new pthread flag and function tests
591- support for virtual i/o methods in URLStream for possible async i/o
592 override.
593- win32 serial support from Leonard Thornton.
594- serial i/o can be overloaded for async i/o methods.
595- added --with-linuxthreads option for FreeBSD with Linux threads support.
596
597From Common C++ 2 0.99.5 to Common C++ 2 0.99.6
598- fix for freebsd build and ports
599- addition of kdevelop project
600- added getCount to Keydata
601- added configure --with-ftp option
602- fix for FreeBSD segfault when destroying main thread!
603- cygwin dll builds now work automatically with latest cygwin!
604
605From Common C++ 2 0.99.4 to Common C++ 2.0 0.99.5
606- fixed memory leak in thread creation?
607- fix small bug in regression test.
608
609From Common C++ 2 0.99.2 (2pre2) to Common C++ 2 0.99.3 (2pre3)
610- fixed compile with STLport (tested on Linux and FreeBSD)
611- use only needed include (including all cause some problem with gcc 2.95.3)
612- compile getopt_long if not available
613- SocketService now work on win32
614- Removed global sleep and yield
615- Make Thread::sleep and Thread::yield static members
616- fixed bug in StringTokenizer
617- Added constructor to PosixThread
618- used private implementation for Thread
619- removed global ccxx_sleep and ccxx_yield
620- made Thread::sleep and Thread::yield static member
621- Fixed bug on cygwin
622
623From Common C++ 2 0.99.1 (2pre1) to Common C++ 2 0.99.2 (2pre2)
624- cleanup of URLStream
625- fixed buffer overflow in Socket::readLine
626- fixed buffer overflow in b64Encode
627- new base64 function
628- fix timeout hang using URLStream
629- fixed socket duplication for win32
630- fixed handle leak in thread (win32)
631
632From GNU Common C++ 1.9.5 to GNU Common C++ 2 0.99.1 (2.0pre-1)
633- new "common.h" master include file to simplify library use.
634- contributed unix socket i/o class.
635- fixed memory leak when calling getThread from non Common C++ thread.
636- updated some documentation
637- put some global enum inside class (URLStream and Thread)
638- implement SocketPort/SocketService in win32
639 (not stable, test required)
640 (ReadFile on anonymous pipe is blocking... it not work)
641- getThread in win32 now alloc a new Thread class
642- correct Thread::isRunning behaviour in win32
643- start implementing THREAD_CANCEL_MANUAL on win32
644- other minor fix on win32 implementation of Thread
645- Anad Narwi's url interface binding patch.
646- fix for some problem with Solaris and some version of g++
647- fix for detecting atomic operations on no i386 machine
648- made some automatic regression tests (tests directory)
649- fix md5 calculation on 64bit machine (like alpha)
650- fix some buffer overflow on base64 encoding
651- fix memory leak and signal registering problem on Thread class
652- many other small fixes
653- written a coding style convenction (see doc/developer/CodingStyle)
654 and applied to code (this broken compatibility with old cc++1)
655- change include method assusing uniqueness (<cc++/xxx.h> even for cc++2)
656- added a common.h header to include all stuff of cc++ with a single include
657
658From Common C++ 1.9.4 to 1.9.5
659- xml.h header fixes.
660- some fixes from Vladimir Kokovic.
661- new "win32/Makefile.gcc" to build mingw32 cross targets.
662- lots of changes for suspend and such from Freddy.
663- some AIX cleanups from Bernhard Tummer.
664
665From Common C++ 1.9.3 to 1.9.4
666- cygwin and pthread_suspend/continue support!
667- virtual to add to generated http headers.
668- fix for Solaris and atomic
669- XMLRPC core support.
670- base64 character encoding.
671- patch from Barnaby Gray for SocketPort.
672
673From Common C++ 1.9.2 to 1.9.3
674- fixup of defines.
675- fix of UDPSocket::getPeer
676- can use --without-xml to disable xml support.
677- LoadPrefix option for keydata parsing.
678- slog patch for locals from Marcelo
679- date patch from Marcelo
680
681From Common C++ 1.9.1 to 1.9.2
682- many small changes for HP/UX and other oddities from Peter Koerber.
683- support for echo in slog.
684- fixes in udp for use with new ccrtp release.
685
686From Common C++ 1.9.0 to 1.9.1
687- small fixes in socket code.
688- fix for gcc 3.0 problems in new code.
689- make sure sigwait always shielded by HAVE_SIGWAIT2.
690- a lot of corrected headers for win32 exports.
691- some fixes for older gcc compilers.
692
693From Common C++ 1.5.1 to 1.9.0
694- unsigned long arg for setCompletion for win32.
695- mutex change for win32.
696- Federico's patch for atomic counters with old kernels.
697- Merged source trees for pending 2.0 release.
698- Frederico's patchs for multicast for use with ccrtp.
699- fixed FILE_GET_METHOD to close any leftover socket first.
700- fixed close socket in file open in URLStream.
701- added syslog test and generic syslog support.
702- added Slog to win32.
703- Date and Time classes being added.
704- number manipulations and random number generation being added.
705- cvs COMMONV2 defined in automake for splitting release builds.
706- cvs configure.in has new flag option for --with-v2.
707- added string.h for 1.6.1 and above so people can get used to using it.
708- timeout fix for TCPSTream from Tommi Makitalo.
709- "ost" namespace support added.
710- new Exception class hierarchy.
711- dynamic loading info exported thru ccgu-config.
712- source directories merged and libraries redistributed.
713- Common C++ template library added.
714
715From Common C++ 1.5.0 to 1.5.1
716- some further changes and corrections for gcc 3.0.
717- fix from adam for autoconf 2.50 bug.
718- namespace tweaks.
719- added COMMON_XML_PARSING to test for XML support.
720- new contributed socket port demo.
721- added Wallace Owens patch to support NoDelay socket option.
722- added Craig Emery's patch for port numbers in urls.
723- changed DSO loader by adding alternate constructor to pass lazy
724 option to dlopen linker.
725- big change in auto-detect for iostream support. Old style iostream
726 constructors with explicit init now used when autoconf detected. This
727 fixes segfaults for many older C++ ansi libraries.
728- setLinger option added for ending sockets.
729- some Solaris patches from Radu Greab.
730
731From Common C++ 1.4.3 to 1.5.0
732- fix for out of data exception handling in persistance engine.
733- added timeout option to Readline() method.
734- added timeout to TTYStream and TCPStream object for future timed i/o.
735- changed slog.open() to support basis for win32 slog and portable use
736 of passing argv[0] to get a daemon name and in win32 a log file path.
737- timeout control for underflows and url streaming.
738- added Conditional to posix synchronization objects.
739- changes for gcc 3.0
740- added elapsed time for timer ports.
741- better support for thread priority scheduling.
742- SysV semaphore support option.
743- setCompletion now bool and in socket "flags".
744- streaming and timeout fixes based on suggestions from Macro Coulombe.
745
746From Common C++ 1.4.2 to 1.4.3
747- fix for freebsd build checks.
748- inf. timeout in wait event.
749- InetAddress count initialization and delete of null lists.
750- no longer use shutdown when closing sockets in case the object
751 was "dupped" since newer kernels pass shutdown thru all instances.
752- make friends __EXPORT in win32 as suggested by Hwu
753- added Wolfgang Schmieder's changes to enable common directory to be
754 used with MSVC project.
755- fixed execHandler to set _tid to self.
756- patch from Eric Peters related to polling with timer signal handlers.
757- added Suspend and Resume to win32 threads.
758- added Detach() as alternate Start() method.
759- notification of parent threads more restrictive.
760- other win32 fixes including items not initialized in constructors.
761
762From Common C++ 1.4.1 to 1.4.2
763- xmlfetch and test.xml work file in demo directory test xml parsing.
764- setFollow() option for urlstream.
765- setProtocol() option for urlstream.
766- install our autoconf macros locally.
767
768From Common C++ 1.4.0 to 1.4.1
769- for posix build, -DSTLPORT removed from ccgnu-config --flags.
770- FreeBSD ports collection package building restored to Common C++.
771- fix for Serial I/O attribute setting.
772- fix problem for keydata reaching eof.
773- improved detection of libxml2.
774
775From Common C++ 1.3.3 to 1.4.0
776- Meno Abels provided a great little patch for using STLPORT with Common C++
777- added "-with-stlport[=dir]" to configure to enable STLPORT usage
778 and specify where STLPORT is.
779- fix for intel solaris.
780- added multicast to socket support.
781- made URLStream work and have added urlfetch demo code.
782- URLStream extended features added.
783- new method of handling Common C++ Win32 "dllexport" vs "dllimport";
784 export.h included during dll build to export remaining symbols,
785 otherwise cc++ headers always act as "import" for target app.
786- XMLStream parser added to posix tree, uses libxml2 underneath.
787- Fuller support for HTTP/1.1 including "chunked" transfer encoding.
788- URLStream seperated from "socket" code for easier editing.
789
790From Common C++ 1.3.2 to 1.3.3
791- added httpHeader to allow derived object to receive and parse headers.
792- added -I and -L flags to ccgnu-config.
793- OST_CCXX_VERSION macro added to check for a minimum version of CommonC++:
794 OST_CCXX_VERSION([MINIMUM-VERSION [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]])
795- make sure getThread returns _mainthread if no threads are active.
796- ost_commoncxx.m4 merged with ost_check.m4.
797- added testCancel for non-yielding test.
798- socket address structures pre-initialized to zero.
799- added cmdoptions from Gianni@mariani.ws
800- sem_getvalue added to Semaphore class.
801- millisecond timers with itimer option.
802- cleanup for inaddr.cpp and Borland C++ compiler.
803- fixed and improved Borland C++ makefiles.
804- keydata now 32 chars.
805
806From Common C++ 1.3.1 to 1.3.2
807- fix for SunOS and other minor target compile issues.
808- fix for iflag vs lflag for flow control settings.
809- url client processing classes added.
810- borland compile fixes from Rupert Curwen.
811- RTLD_GLOBAL added for DSO loading.
812- zoner's suggested use of Event class for thread cancellation control.
813
814From Common C++ 1.3.0 to 1.3.1
815- new multi-host support in socket address classes.
816- fix for segfault in fifo objects.
817- serial i/o and multi-address changes suggested by Gary Murphy.
818
819From Common C++ 1.2.6 to 1.3.0
820- UDPTransmit/UDPReceive/UDPDuplex classes redesigned based on ccrtp
821 work. These now form base RTP stack components rather than duplicated
822 in ccrtp. Matches ccrtp 0.3.0 release.
823- slog now uses thread-safe buffering to assure consistency.
824- exception handling mode is now part of thread rather than global, and
825 is inherited from parent to child.
826- restructure address class slightly to allow symbolic hostnames to be
827 used in base InetAddress object.
828- select rather than "poll" is the preferred default method of pending
829 and selection timeouts if sys/stream.h is also present. This is to cover
830 systems which do not impliment "poll" for socket descriptors or outside
831 of stream device drivers.
832- new ccgnu-config mechanism to get attributes and compiler options.
833- new test for single argument sigwait for older sunos, etc.
834- test for namespace support. Common C++ will soon use namespaces.
835- fix for win32 socket.h problems.
836- updated as protected members buffer manipulation.
837- doxygen now used for documentation.
838- added ETC_PREFIX for locating config files.
839- late addition, hashing function classes.
840- getThread() must create temp thread objects if unknown threads found...
841
842From Common C++ 1.2.5.1 to 1.2.6
843- fix inaddr locking in posix for non-threadsafe host address lookup.
844- updated TCPSocket for isPendingConnection in win32 sources.
845- added _POSIX_PTHREAD_SEMANTICS to "config.h"
846- default all sockets to SO_REUSEADDR
847- fix for duplex interconnect.
848- fix for socket ports from Petr Ferschmann
849- new global exception handling control.
850
851From Common C++ 1.2.5 to 1.2.5.1
852- nessisary fix because fpathconf doesnt link correctly in FreeBSD.
853
854From Common C++ 1.2.4 to 1.2.5
855- some fix for new resolver for sun.
856- --enable-profiling and --enable-debug added to "configure"
857- change setsockopt for broadcast
858- added serial example from Gary Lawrence.
859- some fixes suggested for IRIX compatibility.
860- one fix for FreeBSD pthread usage.
861- test whether compiler supports "mutable" members.
862
863From Common C++ 1.2.3 to 1.2.4
864- updated solaris sigwait use.
865- fixed win32 typo.
866- new threadsafe resolver support.
867
868From Common C++ 1.2.2 to 1.2.3
869- updated mempager for auditing correctly.
870- fixed stream constructor issues.
871- changed xxxStream base classes so streambuf always first for ?broken?
872 compilers.
873- changes for memory leak issues.
874- uflow problem in TCPStream has been fixed. Thanks to Gerald L. Gay.
875
876From Common C++ 1.2.1 to 1.2.2
877- support for FreeBSD dynamic loader.
878
879From Common C++ 1.2.0 to 1.2.1
880- now must define __USE_GNU to work with newest GLIBC.
881- debian packaging addded.
882- fix include for common subdirectory and multi-target builds.
883- John Connor's fixes for nonblocking win32 sockets when supported,
884 for a win32 implimentation of setCompletion, and for other win32
885 improvements.
886- setSpeed of Serial class accepts 0 parameter which does a modem "hang up".
887- fixed inaddr issue with "INADDR_ANY" miscast as char.
888
889From Common C++ 1.1.0 to 1.2.0
890- making a whole stuff const where needed and appropriate,
891 and did many cleanups regarding constness etc.
892- cleaned up configuration process
893- fixed typo in win32 mutex.
894- bind address "*" = 0.0.0.0
895- iostream is constructed with streambuf argument in for the
896 TTYStream class similar to TCPStream; now TTYStream and
897 ttystream class works properly.
898- resolved interesting inline issue with == and bool coercion.
899- added powerful StringTokenizer
900- added macros for older source compatibility
901- recursive mutex fix
902- added FreeBSD "ports" package build to distribution.
903- added stream aware isPending for TTYStream and TCPStream, and made
904 isPending base virtual.
905
906From Common C++ 1.0.3 to 1.1.0
907- pthread.m4 supports cross compiler sys-include directory
908- support of "thread.h" header other than sunos.
909- unsigned socklen_t for unixware.
910- use of XOPEN removed from file.cpp.
911- use of sys/termiox.h with unixware.
912- unixware now cross-compiles gcc 2.95.2! May need "-D_THR_UNIXWARE" native.
913 Some of the changes for Unixware may also work for AIX.
914- thread initiation and signal handling now thru "C" friend functions.
915- new poll service for SocketService and SerialService; not binary
916 compatible with old library.
917- new win32 mutex code that supports winnt/win95/win98 from Michael
918 Furmanczyk.
919- fix getIndex.
920
921From Common C++ 1.0.2 to 1.0.3
922- more setsockopt problems on different platforms.
923- support of -lthread check for Unixware.
924- some additional cross compiler build support.
925
926From Common C++ 1.0.1 to 1.0.2
927- close _cancellation handle in win32 thread object.
928- fix mutexcounter usage for host protection.
929- replaced tid_t with cctid_t to avoid AIX collision.
930- odd VC quirks.
931- tcpservice.cpp demo app contributed by Gianni Mariani.
932- TryEnterMutex added to win32
933- fixed a number of socket options
934- fixed bug in mapped file without initial map
935
936From Common C++ 1.0.0 to 1.0.1
937- fcntl.h now tested for in autoconf system, as well as sys/fcntl.h.
938- fixed atomic.h test to include test for atomic_t.
939- cleaned up delayed connection code in posix tree.
940- caddr_t (a bsdism) introduced as a general purpose type.
941- moved __EXPORT from class definition so kdoc can process.
942- __EXTENSIONS__ added for Solaris
943- we took in some FreeBSD 4.0 patches.
944- TCPStream and Serial sync is public.
945- fixed fatel crash when loading more than one dso!
946
947From Common C++ 0.9.7 to GNU package Common C++ 1.0.0
948- more liberal use of namespace.h.
949- split of Common C++ between GNU Common C++ and "Extras" libraries.
950- overview documentation.
951- official designation as a GNU package.
952- changed win32 "remove" to "DeleteFile".
953- missing int() operator in posix AtomicCounter.
954- endian testing added.
955
956From Common C++ 0.9.6 to 0.9.7
957- local config file access bug (~/.xxxrc) in keydata fixed.
958- cfgfile closure bug in keydata fixed.
959- isDir, isFile, and isDevice checks added.
960- canAccess and canModify checks added.
961- simple DSO support for win32 added.
962- new level option to control and filter slog() logging.
963- major work done on win32 support for (cross)compiling under mingw32 &
964 cygwin32.
965- Fixed InterlockExchangeAdd support in win32 which seems missing.
966
967From Common C++ 0.9.5 to 0.9.6
968- typo fix in socket.h for evaluating open ttystream's.
969- added ldconfig to RPM spec.
970- AtomicCounter class contributed by Sean Cavanaugh.
971- Rewritten file classes based on new RandomFile base.
972- old win32 "fileio" routines removed.
973- zip target in main Makefile for building distribution for windows users.
974- serial I/O name processing improved in ttystream::open.
975- certain runtime optimizations crash gcc exception handling and are
976 now stripped as part of the OST_CXX_EXCEPTIONS macro.
977
978From Common C++ 0.9.4 to 0.9.5
979- intruduce mutex protected mempager.
980- getLocal() added to TCPSocket.
981- alloc() and first() now virtual memory allocators.
982- slog() also invokes clog() if not running as true daemon.
983- empty slog() used for continuation lines.
984- DSO getError() added for catch handlers.
985- start of Bayonne script engine code.
986- new and much simpler autoconf macros for building user applications.
987- a simple low level directory scanning class was added.
988- some stream fixes from Fulko Hew
989- new handling of Solaris thread.h include for use with cross-compiling.
990- spec and lsm file automated.
991- rwlock support for thread synchronization added!
992
993From Common C++ 0.9.3 to 0.9.4
994- operator!() for tcpstream updated in socket.h
995- new "slog" syslog facility; similar to "clog" buffered error messages.
996- isPending() fixed in win32 for infinite timeout support.
997- Persistence TypeManager suffered with some problems. They should be fixed
998- typos in socket fixed from contributed changes by Fulko Hew.
999- ..and a semaphore fix for win32.
1000- added virtual methods for extending serial and socket service threads.
1001- endSocket() cleaned up in win32.
1002- endSocket() cleaned up in posix.
1003- final was missed in win32.
1004- fifo stream support added.
1005- not all compilers considered ~ operator valid for mutexcounter. The
1006 host lookups now implicity call base class LeaveMutex directly.
1007- setb fix for stream handlers.
1008- set failbit on stream socket/serial errors.
1009- StringFunctionMap has to be public to compile.
1010- sync stream method handlers no longer clear get buffer.
1011- sync simplified further, and dummy doallocate added.
1012
1013From Common C++ 0.9.2 to 0.9.3
1014- Woops! serial.cpp was supposed to build in libccio.so, not libccxx.so!
1015- autoconf options loader has been fixed and improved.
1016- html.cpp temporarily pulled; incomplete linkage.
1017- zstream added to config.def.
1018- fix in keydata.cpp for "/etc/".
1019- config.def simplified!
1020
1021From Common C++ 0.9.1 to 0.9.2
1022- Socket::Terminate changed to Socket::endStream to avoid confusion
1023 with Thread::Terminate when using derived TCPSession class.
1024- win32 updated to include new "tcpstream"; tcp.cpp demo should be
1025 usable under win32 again.
1026- == operator moved to InetAddress base class.
1027- ! operator added for testing if an InetAddress is valid.
1028- turn of throw error handling on SocketPort once service thread
1029 takes over. This is nessisary since throw is not inter-thread.
1030- test for "poll()" now used for isPending support.
1031- thread Final() method was called too early for self deleting objects.
1032- timerport moved from socket.h to thread.h
1033- posix streamable C++ serial port I/O classes added.
1034- fixed 64 bit types for Tru64 Unix.
1035- fixed warnings in persist, engine, and html classes.
1036
1037From Common C++ 0.9.0 to 0.9.1
1038- implementation of MutexCounter operator ~ matches prototype.
1039- last fileio.h reference squashed.
1040- fixed win32 "install.bat"; still thought it was APE
1041- added dummy macros.h for win32.
1042- fixed posix/trunk.h inclusion of macros.h.
1043- fixed int64 type check.
1044
1045From APE 1.2.3 and Common C++ 0.2 to Common C++ 0.9.0
1046- Found big bug in Thread::Start(). Replaced ++_start with _start->Post().
1047- Modified tcpthread.cpp demo app.
1048- Oh, lots of stuff changed for the merged code base...
1049- Added ~ operator for MutexCounter so catch handler can unlock.
1050
1051
1052
1053