All Versions
37
Latest Version
Avg Release Cycle
113 days
Latest Release
529 days ago

Changelog History
Page 4

  • v1.3.6.p1 Changes

    December 21, 2009
    • โž• added support for using external zlib, pcre, expat and sqlite3 instead of bundled ones (-DPOCO_UNBUNDLED, configure --unbundled)
    • ๐Ÿ›  fixed SF# 2911407: Add sh4 support
    • ๐Ÿ›  fixed SF# 2912746: RSAKey::EXP_LARGE doesn't work
    • ๐Ÿ›  fixed SF# 2904119: abstractstrategy uses std::set but do not includes it
    • ๐Ÿ›  fixed SF# 2909946: localtime NULL pointer
    • ๐Ÿ›  fixed SF# 2914986: potential expat DoS security issues (CVE-2009-3560 and CVE-2009-3720)
    • ๐Ÿ›  fixed SF# 2916305: SSL Manager crashes
    • ๐Ÿ›  fixed SF# 2903676: Tuple TypeHander does not handle composites.

    ๐Ÿš€ Release 1.3.6 (2009-11-24)

    • โž• added Environment::processorCount()
    • โž• added POCO_VERSION macro to Poco/Foundation.h
    • ๐Ÿ›  fixed SF# 2807527: Poco::Timer bug for long startInterval/periodic interval
    • ๐Ÿ›  fixed a bug similar to SF# 2807527 in Poco::Util::Timer.
    • ๐Ÿ›  fixed SF# 2795395: Constructor doesn't treat the params "key" and "iv"
    • ๐Ÿ›  fixed SF# 2804457: DateTime::checkLimit looks wrong
    • ๐Ÿ›  fixed SF# 2804546: DateTimeParser requires explicit RFC1123 format
    • โž• added ReleaseArrayPolicy to Poco::SharedPtr
    • โฌ†๏ธ upgraded to SQLite 3.6.20
    • ๐Ÿ›  fixed SF# 2782709: Missing semicolons in "Logger.h" convenience
    • ๐Ÿ›  fixed SF# 2526407: DefaultStrategy.h ++it instead of it++ in a loop
    • ๐Ÿ›  fixed SF# 2502235: Poco STLPort patch
    • ๐Ÿ›  fixed SF# 2186643: Data::Statement::reset() not implemented in 1.3.3
    • ๐Ÿ›  fixed SF# 2164227: Allow File opened read only by FileInputSteam to be writable
    • ๐Ÿ›  fixed SF# 2791934: use of char_traits::copy in BufferedStreamBuf::underflow
    • ๐Ÿ›  fixed SF# 2807750: Support additional SQL types in SQLite
    • ๐Ÿ›  fixed documentation bugs in Timed/PriorityNotificationQueue
    • ๐Ÿ›  fixed SF# 2828401: Deadlock in SocketReactor/NotificationCenter (also fixes patch# 1956490) NotificationCenter now uses a std::vector internally instead of a std::list, and the mutex is no longer held while notifications are sent to observers.
    • fixed SF# 2835206: File_WIN32 not checking aganist INVALID_HANDLE_VALUE
    • ๐Ÿ›  fixed SF# 2841812: Posix ThreadImpl::sleepImpl throws exceptions on EINTR
    • ๐Ÿ›  fixed SF# 2839579: simple DoS for SSL TCPServer, HTTPS server No SSL handshake is performed during accept() - the handshake is delayed until sendBytes(), receiveBytes() or completeHandshake() is called for the first time. This also allows for better handshake and certificate validation when using nonblocking connections.
    • ๐Ÿ›  fixed SF# 2836049: Possible handle leak in FileStream If sync() fails, close() now simply set's the stream's bad bit. In any case, close() closes the file handle/descriptor.
    • ๐Ÿ›  fixed SF# 2814451: NetSSL: receiveBytes crashes if socket is closed
    • โž• added a workaround for Vista service network initialization issue (an Windows service using the Net library running under Vista will crash in the call to WSAStartup() done in NetworkInitializer). Workaround is to call WSAStartup() in the application's main(). Automatic call to WSAStartup() in the Net library can now be disabled by compiling Net with -DPOCO_NET_NO_AUTOMATIC_WSASTARTUP. Also the new Poco::Net::initializeNetwork() and Poco::Net::uninitializeNetwork() functions can be used to call WSAStartup() and WSACleanup(), respectively, in a platform-independent way (on platforms other than Windows, these functions will simply do nothing).
    • โž• added VCexpress build script support (contributed by Jolyon Wright)
    • ๐Ÿ›  fixed SF# 2851052: Poco::DirectoryIterator copy constructor is broken
    • ๐Ÿ›  fixed SF# 2851197: IPAddress ctor throw keyword missing
    • โž• added Poco::ProtocolException
    • ๐Ÿ‘ PageCompiler improvements: new tags, support for buffered output, etc.
    • ๐Ÿ‘ better error reporting in Data MySQL connector (patch #2881270 by Jan "HanzZ" Kaluza)
    • ๐Ÿ›  fixed SF# 1892462: FTPClient:Choose explicitely between EPSV and PASV
    • ๐Ÿ›  fixed SF# 2806365: Option for PageCompiler to write output to different dir
    • ๐Ÿ›  fixed a documentation bug (wrong sample code) in Process::launch() documentation
    • โž• added --header-output-dir option to PageCompiler
    • ๐Ÿ›  fixed SF# 2849144: Zip::Decompress notifications error
    • ๐Ÿ“œ SAXParser has a new feature: "http://www.appinf.com/features/enable-partial-reads". See ParserEngine::setEnablePartialReads() for a description of what this does.
    • ๐Ÿ›  fixed SF# 2876179: MySQL Signed/Unsigned value bug
    • ๐Ÿ›  fixed SF# 2877970: possible bug in timer task
    • ๐Ÿ›  fixed SF# 2874104: wrong parsing empty http headers
    • ๐Ÿ›  fixed SF# 2860694: Incorrect return code from SecureStreamSocketImpl::sendBytes
    • ๐Ÿ›  fixed SF# 2849750: Possible bug with XMLWriter?
    • โž• added MailMessage::encodeWord() to support RFC 2047 word encoded mail header fields when sending out mail containing non-ASCII characters.
    • ๐Ÿ›  fixed SF# 2890975: SMTPClientSession bug with 7BIT encoding
    • ๐Ÿ›  fixed an issue with retrieving the value of socket options on Windows 7. Before obtaining the value of a socket, we now initialize the variable receiving the socket option value to zero.
    • ๐Ÿ›  fixed SF# 2836141: Documentation errors
    • ๐Ÿ›  fixed SF# 2864232: Socket::select() does not detect closed sockets on windows
    • ๐Ÿ›  fixed SF# 2812143: Socket::select() should check socket descriptors...
    • ๐Ÿ›  fixed SF# 2801750: NetworkInterface forName returns wrong subnetMask
    • ๐Ÿ›  fixed SF# 2816315: Problem with POSIX Thread::sleepImpl
    • ๐Ÿ›  fixed SF# 2795646: IPv6 address parsing bug
    • ๐Ÿ›  fixed #0000092: ServerApplication::waitForTerminationRequest(), SIGINT and GDB. Poco::Util::ServerApplication::waitForTerminationRequest() no longer registers a signal handler for SIGINT if the environment variable POCO_ENABLE_DEBUGGER is defined.
    • ๐Ÿ›  fixed SF# 2896070: Poco::Net::Context with non-ASCII paths
    • โž• added Unicode Surrogate support to Poco::UTF16Encoding. See Poco::TextEncoding::queryConvert() and Poco::TextEncoding::sequenceLength() for how this is implemented. Contributed by Philippe Cuvillier.
    • ๐Ÿ›  fixed SF# 2897650: [branch 1.3.6] Net.SocketAddress won't compile for CYGWIN
    • ๐Ÿ›  fixed SF# 2896161: Building on Windows fails when basedir has space in it
    • ๐Ÿ›  fixed SF# 2864380: Memory leak when using secure sockets
    • 0๏ธโƒฃ NetSSL_OpenSSL: the SSL/TLS session cache is now disabled by default and can be enabled per Context using Poco::Net::Context::enableSessionCache().
    • ๐Ÿ›  fixed SF# 2899039: Wrong DST handling in LocalDateTime
    • โž• added RWLock::ScopedReadLock and RWLock::ScopedWriteLock (contributed by Marc Chevrier)
    • โž• added Thread::TID type, as well as Thread::tid() and Thread::currentTid() to obtain the native thread handle/ID
    • โž• added Zip file comment support
    • ๐Ÿ On Windows, Poco::SharedLibrary::load() now uses LoadLibraryEx instead of LoadLibrary and uses the LOAD_WITH_ALTERED_SEARCH_PATH if an absolute path is specified. This will add the directory containing the library to the search path for DLLs that the loaded library depends upon.
    • ๐Ÿ— Mac OS X build settings now match those used by default Xcode projects, making linking the POCO libs to Xcode projects easier
    • Replaced use of std::valarray in Poco::Net::ICMPEventArgs with std::vector due to issues with std::valarray together with STDCXX debug mode on OS X

    ๐Ÿš€ Release 1.3.5 (2009-05-11)

    • ๐Ÿ›  fixed SF# 2779410: Poco::Data::ODBC::HandleException impovement
    • ๐Ÿ›  fixed wrong exception text for Poco::UnhandledException
    • ๐Ÿ›  Fixed a problem with SSL shutdown that causes clients (web browsers) to hang when the server attempts to perform a clean SSL shutdown. We now call SSL_shutdown() once, even if the shutdown is not complete after the first call.
    • โž• added Poco::Crypto::X509Certificate::save()
    • ๐Ÿ›  fixed a bug in Poco::Zip::Decompress that results in wrong paths for extracted files
    • ๐Ÿ›  fixed a bug in Poco::Zip::ZipManipulator where the Zip file was opened in text format on Windows.
    • โž• added Poco::Crypto::X509Certificate::issuedBy() to verify certificate chain.
    • ๐Ÿ›  fixed 0000089: Thread::sleep() on Linux is extremely inaccurate
    • โž• added methods to extract the contents of specific fields from the subject and issuer distinguished names of a certificate.

    ๐Ÿš€ Release 1.3.4 (2009-04-21)

    • ๐Ÿ›  fixed SF# 2611804: PropertyFileConfiguration continuation lines
    • ๐Ÿ›  fixed SF# 2529788: ServerApplication::beDaemon() broken
    • ๐Ÿ›  fixed SF# 2445467: Bug in Thread_WIN32.cpp
    • ๐Ÿ‘Œ Improved performance of HTTP Server by removing some string copy operations
    • ๐Ÿ›  fixed SF# 2310735: HTTPServer: Keep-Alive only works with send()
    • ๐Ÿ›  fixed appinf.com IP address in Net testsuite
    • ๐Ÿ›  fixed RFC-00188: NumberFormatter and float/double numbers
    • โž• added --pidfile option to ServerApplication on Unix
    • ๐Ÿ›  fixed SF# 2499504: Bug in Win32_Thread when using from dll (fixed also for POSIX threads)
    • ๐Ÿ›  fixed SF# 2465794: HTTPServerRequestImpl memory leak
    • ๐Ÿ›  fixed SF# 2583934: Zip: No Unix permissions set
    • โ™ป๏ธ the NetSSL_OpenSSL library has been heavily refactored
    • โž• added NumberFormatter::append*() and DateTimeFormatter::append() functions
    • ๐Ÿ‘‰ use NumberFormatter::append() and DateTimeFormatter::append() instead of format() where it makes sense to gain some performance
    • โž• added system.dateTime and system.pid to Poco::Util::SystemConfiguration
    • โž• added %F format specifier (fractional seconds/microseconds) to DateTimeFormatter, DateTimeParser and PatternFormatter.
    • ๐Ÿ›  fixed SF# 2630476: Thread_POSIX::setStackSize() failure with g++ 4.3
    • ๐Ÿ›  fixed SF# 2679279: Handling of -- option broken
    • โž• added compile options to reduce memory footprint of statically linked applications by excluding various classes from automatically being linked. See the POCO_NO_* macros in Poco/Config.h.
    • ๐Ÿ›  fixed SF# 2644940: on Windows the COMPUTER-NAME and the HOSTNAME can be different
    • โž• added DNS::hostName() function
    • โž• added build configuration for iPhone (using Apple's SDK)
    • ๐Ÿ‘ basic support for AIX 5.x/xlC 8
    • ๐Ÿ›  fixed a bug resulting in a badly formatted exception message with IOException thrown due to a socket-related error
    • ๐Ÿ›  fixed SF# 2644718: NetworkInterface name conflict in MinGW
    • โž• added a missing #include to CryptoTransform.h
    • ๐Ÿ›  fixed SF# 2635377: HTTPServer::HTTPServer should take AutoPtr
    • replaced plain pointers with smart pointers in some interfaces
    • โฌ†๏ธ upgraded to sqlite 3.6.13
    • ๐Ÿ‘Œ improved Data::SQLite error reporting
    • ๐Ÿ‘ Poco::Glob now works with UTF-8 encoded strings and supports case-insensitive comparison. This also fixes SF# 1944831: Glob::glob on windows should be case insensitve
    • โž• added Twitter client sample to Net library
    • ๐Ÿ›  Fixed SF# 2513643: Seg fault in Poco::UTF8::toLower on 64-bit Linux
    • Poco::Data::SessionPool: the janitor can be disabled by specifying a zero idle time.
    • โž• added Poco::Data::SessionPool::customizeSession()
    • โž• added support for different SQLite transaction modes (DEFERRED, IMMEDIATE, EXCLUSIVE)
    • fixed a few wrong #if POCO_HAVE_IPv6 in the Net library
    • โž• added support for creating an initialized, but unconnected StreamSocket.
    • โž• added File::isDevice()
    • โž• added family() member function to SocketAddress,
    • ๐Ÿ‘ Data::SQLite: added support for automatic retries if the database is locked
    • XMLConfiguration is now writable
    • ๐Ÿ›  fixed an IPv6 implementation for Windows bug in HostEntry
    • Timer class improvement: interval between callback is no longer influenced by the time needed to execute the callback.
    • โž• added PriorityNotificationQueue and TimedNotificationQueue classes to Foundation. These are variants of the NotificationQueue class that support priority and timestamp-tagged notifications.
    • โž• added Poco::Util::Timer class. This implements a timer that can schedule different tasks at different times, using only one thread.
    • the signatures of Poco::NotificationQueue and Poco::NotificationCenter member functions have been changed to accept a Poco::Notification::Ptr instead of Poco::Notification* to improve exception safety. This change should be transparent and fully backwards compatible. The signature of the methods returning a Poco::Notification* have not been changed for backwards compatibility. It is recommended, that any Notification* obtained should be immediately assigned to a Notification::Ptr.
    • SQLite::SessionImpl::isTransaction() now uses sqlite3_get_autocommit() to find out about the transaction state.
    • โ™ป๏ธ refactored Crypto library to make it independent from NetSSL_OpenSSL.
    • โž• added support for RSA-MD5 digital signatures to Crypto library.
    • โœ‚ removed SSLInitializer from NetSSL library (now moved to Crypto library)
    • โž• added build configs for static libraries to Crypto library
    • OpenSSL now depends on Crypto library (which makes more sense than vice versa, as it was before). Poco::Net::X509Certificate is now a subclass of Poco::Crypto::X509Certificate (adding the verify() member function) and the Poco::Net::SSLInitializer class was moved to Poco::Crypto::OpenSSLInitializer.
    • โž• added build configs for static libraries to Zip
    • โž• added batch mode to CppUnit::WinTestRunner. WinTestRunnerApp supports a batch mode, which runs the test using the standard text-based TestRunner from CppUnit. To enable batch mode, start the application with the "/b" or "/B" command line argument. Optionally, a path to a file where the test output will be written to may be given: "/b:" or "/B:". When run in batch mode, the exit code of the application will denote test success (0) or failure (1).
    • ๐Ÿ testsuites now also work for static builds on Windows
    • The IPv6 support for Windows now basically works (Net library compiled with POCO_HAVE_IPv6)
    • ๐Ÿ›  fixed a potential error when shutting down openssl in a statically linked application
    • โž• added static build configs to Data library
    • โž• added Poco::AtomicCounter class, which uses OS-specific APIs for atomic (thread-safe) manipulation of counter values.
    • Poco::RefCountedObject and Poco::SharedPtr now use Poco::AtomicCounter for reference counting
    • ๐Ÿ›  fixed SF# 2765569: LoadConfiguration failing from current directory
  • v1.3.3.p1 Changes

    October 09, 2008
    • ๐Ÿ›  Fixed SF# 2153031: 1.3.3 Crypto won't compile on 64-bit Linux
    • ๐Ÿ›  Fixed a warning in MySQL connector
    • โšก๏ธ Updated README
    • The global Makefile in the Zip archive is no longer broken

    ๐Ÿš€ Release 1.3.3 (2008-10-07)

    • ๐Ÿ‘ Threads now have optional user-settable stack size (if the OS supports that feature)
    • ๐Ÿ‘ Events now support simplified delegate syntax based on delegate function template. See Poco::AbstractEvent documentation for new syntax.
    • ๐Ÿ‘ Cache supports new access expire strategy.
    • โฌ†๏ธ Upgraded to SQLite 3.6.2
    • โฌ†๏ธ Upgraded to PCRE 7.8
    • โž• added HttpOnly support to Poco::Net::HTTPCookie
    • ๐Ÿ NetworkInterface now has displayName() member (useful only on Windows)
    • Poco::Util::WinRegistryKey now has a read-only mode
    • Poco::Util::WinRegistryKey::deleteKey() can now recursively delete registry keys
    • Poco::File::created() now returns 0 if the creation date/time is not known, as it's the case on most Unix platforms (including Linux). On FreeBSD and Mac OS X, it returns the real creation time.
    • ๐ŸŒฒ Time interval based log file rotation (Poco::FileChannel) now works correctly. Since there's no reliable and portable way to find out the creation date of a file (Windows has the tunneling "feature", most Unixes don't provide the creation date), the creation/rotation date of the log file is written into the log file as the first line.
    • โž• added Environment::nodeId() for obtaining the Ethernet address of the system (this is now also used by UUIDGenerator - the corresponding code from UUIDGenerator was moved into Environment)
    • โž• added a release policy argument to SharedPtr template
    • Socket::select() will no longer throw an InvalidArgumentException on Windows when called with no sockets at all. If all three socket sets are empty, Socket::select() will return 0 immediately.
    • SocketReactor::run() now catches exceptions and reports them via the ErrorHandler.
    • SocketReactor has a new IdleNotification, which will be posted when the SocketReactor has no sockets to handle.
    • โž• added referenceCount() method to Poco::SharedPtr.
    • ๐Ÿ— POCO now builds with GCC 4.3 (but there are some stupid warnings: "suggest parentheses around && within ||".
    • Solution and project files for Visual Studio 2008 are included
    • ๐Ÿš€ The Zip library is now officially part of the standard POCO release.
    • The Crypto library (based on OpenSSL) has been added. The original code was kindly contributed by Ferdinand Beyer.
    • A Data Connector to MySQL, contributed by Sergey Kholodilov, is now part of the POCO release.
    • ๐Ÿ›  fixed SF# 1859738: AsyncChannel stall
    • fixed SF# 1815124: XML Compile failed on VS7.1 with XML_UNICODE_WCHAR_T
    • ๐Ÿ›  fixed SF# 1867340: Net and NetSSL additional dependency not set - ws2_32.lib
    • ๐Ÿ›  fixed SF# 1871946: no exception thrown on error
    • ๐Ÿ›  fixed SF# 1881113: LinearHashTable does not conform to stl iterators
    • ๐Ÿ›  fixed SF# 1899808: HTMLForm.load() should call clear() first
    • ๐Ÿ›  fixed SF# 2030074: Cookie problem with .NET server
    • ๐Ÿ›  fixed SF# 2009707: small bug in Net/ICMPPacketImpl.cpp
    • ๐Ÿ›  fixed SF# 1988579: Intel Warning: invalid multibyte character sequence
    • ๐Ÿ›  fixed SF# 2007486: Please clarify license for Data/samples/*
    • ๐Ÿ›  fixed SF# 1985180: Poco::Net::DNS multithreading issue
    • ๐Ÿ›  fixed SF# 1968106: DigestOutputStream losing data
    • ๐Ÿ›  fixed SF# 1980478: FileChannel loses messages with "archive"="timestamp"
    • fixed SF# 1906481: mingw build WC_NO_BEST_FIT_CHARS is not defined
    • ๐Ÿ›  fixed SF# 1916763: Bug in Activity?
    • ๐Ÿ›  fixed SF# 1956300: HTTPServerConnection hanging
    • ๐Ÿ›  fixed SF# 1963214: Typo in documentation for NumberParser::parseFloat
    • ๐Ÿ›  fixed SF# 1981865: Cygwin Makefile lacks ThreadTarget.cpp
    • ๐Ÿ›  fixed SF# 1981130: pointless comparison of unsigned integer with zero
    • fixed SF# 1943728: POCO_APP_MAIN namespace issue
    • ๐Ÿ›  fixed SF# 1981139: initial value of reference to non-const must be an lvalue
    • fixed SF# 1995073: setupRegistry is broken if POCO_WIN32_UTF8 enabled
    • ๐Ÿ›  fixed SF# 1981125: std::swap_ranges overloading resolution failed
    • ๐Ÿ›  fixed SF# 2019857: Memory leak in Data::ODBC Extractor
    • ๐Ÿ›  fixed SF# 1916761: Bug in Stopwatch?
    • ๐Ÿ›  fixed SF# 1951443: NetworkInterface::list BSD/QNX no netmask and broadcast addr
    • ๐Ÿ›  fixed SF# 1935310: Unhandled characters in Windows1252Encoding
    • ๐Ÿ›  fixed SF# 1948361: a little bug for win32
    • ๐Ÿ›  fixed SF# 1896482: tryReadLock intermittent error
    • ๐Ÿšฆ workaround for SF# 1959059: Poco::SignalHandler deadlock the SignalHandler can now be disabled globally by adding a #define POCO_NO_SIGNAL_HANDLER to Poco/Config.h
    • ๐Ÿ›  fixed SF# 2012050: Configuration key created on read access
    • ๐Ÿ›  fixed SF# 1895483: PCRE - possible buffer overflow
    • ๐Ÿ›  fixed SF# 2062835: Logfile _creationDate is wrong
    • fixed SF# 2118943: out_of_bound access in Poco::Data::BLOB:rawContent
    • ๐Ÿ›  fixed SF# 2121732: Prevent InvalidArgumentException in SocketReactor
    • ๐Ÿ›  fixed SF# 1891132: Poco::Data::StatementImpl::executeWithLimit is not correct
    • ๐Ÿ›  fixed SF# 1951604: POCO refuses to compile with g++ 4.3.0
    • fixed SF# 1954327: CYGWIN's pthread does not define PTHREAD_STACK_MIN
    • ๐Ÿ›  fixed SF# 2124636: Discrepancy between FileWIN32(U)::handleLastError
    • ๐Ÿ›  fixed SF# 1558300: MinGW/MSYS Builds
    • ๐Ÿ›  fixed SF# 2123266: Memory leak under QNX6 with dinkum library
    • ๐Ÿ›  fixed SF# 2140411: ScopedUnlock documentation bug
    • ๐Ÿ›  fixed SF# 2036460: UUID regression tests are failing on Linux with g++ 4.3.1
    • ๐Ÿ›  fixed SF# 2150438: Tuple TypeHandler position increment size is wrong

    ๐Ÿš€ Release 1.3.2 (2008-02-04)

    Foundation, XML, Net, Util:

    • added POCO_NO_SHAREDMEMORY to Config.h
    • POCO_NO_WSTRING now really disables all wide string related calls
    • โž• added template specialization for string hashfunction (performance)
    • ๐ŸŽ XML parser performance improvements (SAX parser is now up to 40 % faster
    • โž• added parseMemoryNP() to XMLReader and friends
    • URIStreamOpener improvement: redirect logic is now in URIStreamOpener. this enables support for redirects from http to https.
    • โž• added support for temporary redirects and useproxy return code
    • โž• added getBlocking() to Socket
    • โž• added File::isHidden()
    • ๐Ÿ‘ better WIN64 support (AMD64 and IA64 platforms are recognized)
    • โž• added support for timed lock operations to [Fast]Mutex
    • SharedLibrary: dlopen() is called with RTLD_GLOBAL instead of RTLD_LOCAL (see http://gcc.gnu.org/faq.html#dso)
    • Poco::Timer threads can now run with a specified priority
    • โž• added testcase for SF# 1774351
    • ๐Ÿ›  fixed SF# 1784772: Message::swap omits _tid mem
    • ๐Ÿ›  fixed SF# 1790894: IPAddress(addr,family) doesn't fail on invalid address
    • ๐Ÿ›  fixed SF# 1804395: Constructor argument name wrong
    • ๐Ÿ›  fixed SF# 1806807: XMLWriter::characters should ignore empty strings
    • ๐Ÿ›  fixed SF# 1806994: property application.runAsService set too late
    • ๐Ÿ›  fixed SF# 1828908: HTMLForm does not encode '+'
    • ๐Ÿ›  fixed SF# 1831871: Windows configuration file line endings not correct.
    • ๐Ÿ›  fixed SF# 1845545: TCP server hangs on shutdown
    • ๐Ÿ›  fixed SF# 1846734: Option::validator() does not behave according to doc
    • ๐Ÿ›  fixed SF# 1856567: Assertion in DateTimeParser::tryParse()
    • ๐Ÿ›  fixed SF# 1864832: HTTP server sendFile() uses incorrect date
    • HTTPServerResponseImpl now always sets the Date header automatically in the constructor.
    • ๐Ÿ›  fixed SF# 1787667: DateTimeFormatter and time related classes (also SF# 1800031: The wrong behavior of time related classes)
    • ๐Ÿ›  fixed SF# 1829700: TaskManager::_taskList contains tasks that never started
    • ๐Ÿ›  fixed SF# 1834127: Anonymous enums in Tuple.h result in invalid C++
    • ๐Ÿ›  fixed SF# 1834130: RunnableAdapter::operator= not returning a value
    • ๐Ÿ›  fixed SF# 1873924: Add exception code to NetException
    • ๐Ÿ›  fixed SF# 1873929: SMTPClientSession support for name in sender field
    • ๐ŸŽ logging performance improvements (PatternFormatter)
    • ๐Ÿ›  fixed SF# 1883871: TypeList operator < fails for tuples with duplicate values
    • ๐Ÿ— CYGWIN build works again (most things work but Foundation testsuite still fails)
    • ๐Ÿ†• new build configuration for Digi Embedded Linux (ARM9, uclibc)
    • ๐Ÿ†• new build configuration for PowerPC Linux

    Data:

    • ๐Ÿ›  fixed SF# 1724388: ODBC Diagnostics
    • ๐Ÿ›  fixed SF# 1804797: ODBC Statement multiple execution fails
    • ๐Ÿ›  fixed SF# 1803435: SessionPool onJanitorTimer called too often?
    • ๐Ÿ›  fixed SF# 1851997: Undefined Behavior in ODBC::Preparation
    • โšก๏ธ updated SQlite to 3.5.5

    ๐Ÿš€ Release 1.3.1 (2007-08-08)

    Foundation, XML, Net, Util:

    • ๐Ÿ›  DynamicAny fixes for char conversions
    • ๐Ÿ›  fixed SF# 1733362: Strange timeout handling in SocketImpl::poll and Socket::select
    • ๐Ÿ›  fixed SF patch# 1728912: crash in POCO on Solaris
    • ๐Ÿ›  fixed SF# 1732138: Bug in WinRegistryConfiguration::getString
    • ๐Ÿ›  fixed SF# 1730790: Reference counting breaks NetworkInterface::list()
    • ๐Ÿ›  fixed SF# 1720733: Poco::SignalHandler bug
    • ๐Ÿ›  fixed SF# 1718724: Poco::StreamCopier::copyStream loops forever
    • ๐Ÿ›  fixed SF# 1718437: HashMap bug
    • ๐Ÿ”„ changed LinearHashTable iterator implementation. less templates -> good thing.
    • ๐Ÿ›  fixed SF# 1733964: DynamicAny compile error
    • ๐Ÿ›  UUIDGenerator: fixed infinite loop with non ethernet interfaces
    • โšก๏ธ updated expat to 2.0.1
    • ๐Ÿ›  fixed SF# 1730566: HTTP server throws exception
    • ๐Ÿ‘ Glob supports symbolic links (additional flag to control behavior)
    • ๐Ÿ›  fixed a problem with non blocking connect in NetSSL_OpenSSL (see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=441&topics_threshold=0&topics_offset=29&topics_sort_mode=commentDate_desc&topics_find=&forumId=6)
    • ๐Ÿ›  fixed a problem with SSL renegotiation in NetSSL_OpenSSL (thanks to Sanjay Chouksey for the fix)
    • ๐Ÿ›  fixed SF# 1714753: NetSSL_OpenSSL: HTTPS connections fail with wildcard certs
    • HTTPClientSession: set Host header only if it's not already set (proposed by EHL)
    • ๐Ÿ NetworkInterface (Windows): Loopback interface now has correct netmask; interfaces that do not have an IP address assigned are no longer reported.
    • ๐Ÿ›  Fixes for VC++ W4 warnings from EHL
    • SharedMemory: first constructor has an additional "server" parameter Setting to true does not unlink the shared memory region when the SharedMemory object is destroyed. (Alessandro Oliveira Ungaro)
    • ๐Ÿ›  fixed SF# 1768231: MemoryPool constructor

    Data:

    • ๐Ÿ›  fixed SF# 1739989: Data::RecordSet::operator = () (in 1.3 branch)
    • ๐Ÿ›  fixed SF# 1747525: SQLite, Transactions and Session Pooling (in 1.3 branch)
    • โฌ†๏ธ upgraded to SQLite 3.4.1

    ๐Ÿš€ Release 1.3.0 (2007-05-07)

    • โž• added HashMap, HashSet classes
    • the HashFunction class template has been changed in an incompatible way. The member function formerly named hash() is now the function call operator. If you have defined your own HashFunction classes, you have to update your code. Sorry for the inconvenience.
    • โž• added Poco::Tuple
    • โž• added AbstractCache::getAllKeys(), improved performance of the get operation
    • ๐Ÿ›  fixed AbstractCache::size() to do cache replacement before returning the size
    • โž• added additional match() method to RegularExpression and documented the fact that the simple match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
    • โž• added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
    • โž• added operator ! to AutoPtr and SharedPtr
    • Buffer uses std::size_t instead of int
    • ๐Ÿ‘ป Exception::what() now returns exception name instead of message
    • added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
    • โž• added Environment::get(name, defaultValue);
    • Foundation.h now includes Config.h at the very beginning.
    • โž• added replace() and replaceInPlace() to Poco/String.h
    • โž• added AutoPtr::assign() and SharedPtr::assign()
    • โž• added operator () to AbstractEvent
    • ๐Ÿš€ gcc Makefiles now strip release builds
    • Void now has a == and != operator
    • ๐Ÿ‘ Base64Encoder and HexBinaryEncoder now support an unlimited line length (no newlines written), by specifying a line length of 0
    • ๐Ÿ“œ NumberParser now has stricter syntax requirements: garbage following a number leads to a SyntaxException (Thanks to [email protected] for the suggestion)
    • ๐Ÿ›  fixed SF# 1676830: Don't use -rpath in libraries
    • ๐Ÿ›  fixed SF# 1670279: AbstractConfiguration::unckeckedExpand crash
    • ๐Ÿ›  fixed a warning in Hashtable
    • ๐Ÿ‘ HTTPClientSession now uses a keepAliveTimeout for better persistent connection handling
    • โž• added DateTime::makeUTC() and DateTime::makeLocal()
    • โž• added another constructor to LocalDateTime
    • POCO_WIN32_UTF8 is ignored on non-Windows platforms
    • ๐Ÿ›  fixed a timeout bug (with NetSSL) in HTTPSession
    • ๐ŸŒฒ AsyncChannel is automatically opened with first log()
    • minor fix to NotificationQueue sample (reported by Laszlo Keresztfalvi)
    • โž• added File::canExecute() and File::setExecutable()
    • โž• added SharedMemory class to Foundation
    • โž• added FileStream, FileInputStream, FileOutputStream to Foundation
    • โž• added NodeAppender class to XML for faster DOM tree creation
    • HTTPServerRequest and HTTPServerResponse are now abstract base classes, actual functionality has moved into HTTPServerRequestImpl and HTTPServerResponseImpl. This allows us to plug other HTTP servers into POCO.
    • โž• added DynamicAny class to Foundation
    • replaced std::fstream with Poco::FileStream across POCO.
    • โž• added Poco::Checksum class to Foundation.
    • ๐Ÿ›  fixed SF# 1700811: conflict in threadpool
    • ๐Ÿ›  bugfix: File::moveTo() does not work if the target is a directory
    • ๐Ÿšš File::copyTo() and File::moveTo() now copy/move directories recursively
    • โ™ป๏ธ refactored NetworkInterface (now using pimpl idiom); added broadcast address and netmask support
    • ๐Ÿ›  fixed SF# 1688982: POP3ClientSession fails when retrieving mails with attachment
    • ๐Ÿ›  fixed SF# 1655104: Enhance Poco::TextEncoding functionality
    • โž• added Poco::Condition class, implementing a POSIX-style condition variable
    • ๐Ÿ›  fixed a bug in File::create() for Windows
    • added poco_static_assert (imported from boost)
    • โž• added Thread::join(timeout) and Thread::tryJoin()
    • ClassLoader support for named manifests (see ClassLibrary.h - POCO_EXPORT_NAMED_MANIFEST)
    • POCO_WIN32_UTF8: UNICODE #define is no longer required (and no longer automatically defined in POCO_WIN32_UTF8 is defined)
    • โฌ†๏ธ PCRE: upgraded to PCRE version 7.1
    • ๐Ÿ›  fixed SF# 1682162: Suggestion on thread priority
    • ๐Ÿ›  fixed SF# 1613460: MSVC/STLPort warnings
    • ๐Ÿ›  fixed SF# 1709358: Format double percent std::String bug
    • โž• added WindowsConsoleChannel class to Foundation
    • โž• added AutoPtr::unsafeCast<>() and SharedPtr::unsafeCast<>()
    • ๐Ÿ›  fixed SF# 1708552: Failed to build on arm and powerpc
    • ๐Ÿ›  fixed SF$ 1708529: Failed to build using GCC 4.3: missing #includes
    • ๐Ÿ›  fixed SF# 1710053: LogStream proposal
    • ๐Ÿ›  fixed a bug involving empty root directories in Windows DirectoryIterator implementation (see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=343&forumId=6)
    • ๐Ÿšš robustness improvements to ActiveMethod - removed the opportunity for memory leaks in case something goes while invoking the method
    • made C library usage more C++-like - use C++ headers (e.g. ) instead of C ones (). Also, use C library functions in std namespace.
    • โž• added Unicode and UTF8String for improved Unicode support. The Unicode class can be used to obtain the Unicode properties of a character. The UTF8 class provides case insensitive comparison and case conversion for UTF-8 encoded strings.
    • โž• added UnWindows.h header file, replaced all #include with #include "Poco/UnWindows.h". See the Poco/UnWindows.h header file for a rationale and explanations.
    • ๐Ÿ›  fixed SF# 1713820: StreamSocketImpl::sendBytes sends too many bytes
    • ๐Ÿ File::copyTo(): on Windows, the copy now always has the read-only flag reset, to be consistent with other platforms.
    • With Microsoft Visual C++, the necessary POCO libraries are now implicitly linked when the corresponding header files are included (#pragma comment(lib, "PocoXYZ.lib") is used). To disable this, compile POCO with the preprocessor symbol POCO_NO_AUTOMATIC_LIBS #define'd (see Poco/Foundation.h and Poco/Config.h).
    • ๐Ÿ”ง The Visual Studio project files for the POCO libraries now include configurations for building static libraries.

    ๐Ÿš€ Release 1.2.9 (2007-02-26)

    • ๐Ÿ›  fixed a formatting problem in Util::HelpFormatter
    • HTTPClientSession::sendRequest() now attempts to send the complete request in one network packet.
    • ๐Ÿ‘Œ improved network performance of ChunkedOutputStream: chunk size and chunk data are sent in one network packet if possible
    • ๐Ÿ›  fixed SF# 1655035: Wrong expires field calculation in HTTPCookie (thanks to Sergey N. Yatskevich for this and other fixes)
    • ๐Ÿ›  fixed SF# 1655049: Fix discrepancy of a code to the description
    • ๐Ÿ›  fixed SF# 1655170: Poco::Timezone::standardName() problem on WIN32
    • fixed SF# 1629095: POCO_WIN32_UTF8 problem There is a new function Path::transcode() that can be used to convert a path (or any other string) from UTF-8 to the current Windows code page. This string can the be passed as a filename to an fstream or fopen(). This function only does the conversion on Windows, and only, if POCO_WIN32_UTF8 is defined. Otherwise, it simply returns the unmodified argument.
    • ๐Ÿ›  fixed SF# 1659607: Probably a bug in Poco::Net::DialogSocket
    • ๐ŸŽ HTTPServer network performance improvement: responses that fit into a single network packet sent with HTTPServerResponse::sendFile() or the new HTTPServerResponse::sendBuffer() are sent in only one packet.
    • โž• added HTTPServerResponse::sendBuffer()
    • ๐Ÿ“œ HTTPServer now sends a Bad Request response if it fails to parse the HTTP request header.
    • HTTPServer now sends an Internal Server Error response if the request handler throws an exception prior to sending a response.- enabled TCP_NODELAY per default on TCPServer/HTTPServer
    • ๐Ÿ›  fixed a bug in HTTP persistent connection handling (server does not send Connection: close when it reaches connection maximum)
    • HTMLForm - POST submission of URL encoded form no longer uses chunked transfer encoding (thus improving interoperability with certain web servers)
    • โ†” integrated Environment.cpp from Main (missing get(var, default))
    • โž• added missing AutoPtr include to Util/Application (and using Poco::AutoPtr is no longer necessary for POCO_APP_MAIN macro)
    • ๐Ÿ›  fixed SF# 1635420: Per Regents of the University of Calfornia letter, remove advertising from BSD licensed parts
    • ๐Ÿ›  fixed SF# 1633133: MultipartWriter writes superluous CR-LF at beginning

    ๐Ÿš€ Release 1.2.8 (2007-01-04)

    • ๐Ÿ›  fixed SF# 1613906: Util/Application.h and GCC 3.3
    • ๐Ÿ›  fixed a byte order issue (failed test) in IPv6 address formatting
    • ๐Ÿ›  fixed SF# 1626640: Poco::Net::SocketReactor bug
    • ๐Ÿ›  fixed client side chunked transfer encoding handling
    • ๐Ÿ›  fixed client side persistent connection handling
    • ๐Ÿ›  fixed SF# 1623536: HTTP Server Chunked Transfer Encoding Bug
    • ๐Ÿ‘Œ improved HTTP server exception text
    • ๐Ÿ›  fixed SF# 1616294: KeepAlive HTTPServerSession patch
    • ๐Ÿ›  fixed SF# 1616296: Trivial Poco::TaskCustomNotification patch
    • ๐Ÿ›  fixed SF# 1619282: PurgeStrategy bug fix
    • ๐Ÿ›  fixed SF# 1620855: Format problem there is a new format specifier %z for std::size_t, as well as a new flag ? for %d, %i, %o, %x meaning any signed or unsigned integer

    ๐Ÿš€ Release 1.2.7 (2006-12-07)

    • ๐Ÿ›  Poco::File: fixed root directory handling
    • ๐Ÿ›  fixed UUIDGenerator documentation
    • ๐Ÿ“š clarified Application::setUnixOptions() documentation
    • ๐Ÿ›  fixes for issue [SOAPLite Transport 0000023]: SOAP Transport Listener should be able to use existing HTTPServer instance
    • ๐Ÿ›  fixing mantis issues 13, 14, 15, 16, 17, 18, 19, 21
    • ๐Ÿ›  fixed SF# 1597022: Signed/unsigned warning in StringTokenizer::operator[]
    • ๐Ÿ›  fixed SF# 1598601: Message::op= leaks
    • ๐Ÿ›  fixed SF# 1605960: PatternFormatter crashes on custom property
    • ๐Ÿ›  fixed SF# 1605950: Memory leak in Logger sample code
    • ๐Ÿ›  fixed SF# 1591635: Copy Paste Error in sample code
    • ๐Ÿ›  fixed SF# 1591512: SMTPClientSession response stream
    • ๐Ÿ›  fixed SF #1592776: LayeredConfiguration: getRaw should enumerate in reverse order
    • ๐Ÿ— SF Patch # 1599848 ] VS 2005 Util build fails
    • Logger::dump() now uses std::size_t instead of int for buffer size
    • ๐Ÿ”ง LayeredConfiguration now supports a priority value for each configuration. Also, it's possible to specify for each configuration added whether it should be writeable.
    • ServerApplication: cd to root directory only if running as a daemon
    • โž• added Message::swap()
    • ๐Ÿ‘Œ improvements to build system: global Makefile has correct dependencies for samples on Windows, samples build after libraries are ready configure supports --no-wstring and --no-fpenvironment flags build system supports POCO_FLAGS environment variable for compiler flags
    • ๐Ÿ›  RemoteGen: fixed error handling for write protected files (SystemException) fixing integral constant overflow messages with large cache expiration, m_ support for type serializers, case-insensitive comparison added

    ๐Ÿš€ Release 1.2.6 (2006-11-19)

    • โž• added additional match() method to RegularExpression and documented the fact that the simple match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
    • โž• added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
    • โž• added operator ! to AutoPtr and SharedPtr
    • Buffer uses std::size_t instead of int
    • added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
    • Foundation.h now includes Config.h at the very beginning.
    • โž• added AutoPtr::assign() and SharedPtr::assign()
    • โž• added operator () to AbstractEvent
    • ๐Ÿš€ gcc Makefiles now strip release builds
    • ๐Ÿ“š documentation improvements

    ๐Ÿš€ Release 1.2.5 (2006-10-23)

    • ๐Ÿ‘Œ Improved LoggingConfigurator: channel creation and configuration is now a two-step process. This means that the previous problems with PropertyFileConfiguration and IniFileConfiguration when referencing other channels are solved.
    • ๐Ÿ‘Œ improved options handling: better handling of (non) ambiguities. If both an option named "help" and one named "helper" is specified, this no longer causes ambiguity errors.
    • โž• added check for duplicate option definition
    • ๐Ÿ›  ThreadPool bugfix: fixed a crash that occurs on Linux multiprocessor machines (caused by an thread unsafe string assignment corrupting the heap...) (SF# 1575315)
    • ๐Ÿ‘Œ improved ThreadPool performance
    • XML now compiles with -DXML_UNICODE_WCHAR_T (SF# 1575174)
    • ๐Ÿ›  fixed SF# 1572757: HTML forms can have more than one key/value pair with the same name
    • got rid of the dynamic casts in Events, Events/Cache: simpler/faster Delegate < operator, prevents some rare dynamic casts error from occuring when using StrategyCollection with Caches
    • ๐Ÿ‘Œ improvements to Logger and LoggingConfigurator:
      • added Logger::unsafeGet()
      • added Logger::setProperty(loggerName, propertyName, value)
      • LoggingConfigurator now correctly (re)configures existing Loggers (prior to this change, if a Logger named "a.b.c" existed before the LoggingConfigurator started its work, and the LoggingConfigurator configured a Logger named "a.b", then "a.b.c" would not inherit the new configuration).
    • ๐Ÿ‘Œ improvements to SplitterChannel and EventLogChannel configuration
    • ๐Ÿ‘Œ improved LoggingRegistry exception messages
    • MessageHeader::read() is more liberal with malformed message headers. This fixes problems with certain network cameras sending malformed HTTP headers.

    ๐Ÿš€ Release 1.2.4 (2006-10-02)

    • some code beautifying and improvements to comments
    • DOMParser now automatically sets FEATURE_NAMESPACE_PREFIXES
    • ๐Ÿ›  fixed SF #1567051: DOMBuilder/DOMParser/NamespaceStrategy bug
    • fixed SF #1567364: POCO_APP_MAIN
    • โž• added Document::getElementById() (two-argument) and getElementByIdNS()
    • โž• added another test for DOMParser
    • โž• added AutoPtr::isNull() (to be consistent with SharedPtr)
    • ๐Ÿš€ this release again compiles on PA-RISC HP-UX systems with aCC
    • โž• added CMAKE support files contributed by Andrew J. P. Maclean

    ๐Ÿš€ Release 1.2.3 (2006-09-14)

    • ๐Ÿ”ง configure script now checks if (auto)selected configuration is supported
    • ๐Ÿ›  fixed SF #1552904: NamedEvent bug?
    • ๐Ÿ›  fixed SF #1552787: POCO not handling EINTR
    • ๐Ÿ›  fixed SF #1552846: Random::~Random uses scalar delete
    • ๐Ÿ›  fixed SF #1552987: TLSSlot should explicitly default-construct _value
    • IPAddress no longer accepts an empty address string
    • split up Observer.h into AbstractObserver.h and Observer.h
    • โž• added NObserver class template which supports an AutoPtr argument for the notification callback
    • ๐Ÿ”„ changed EchoServer sample to use NObserver
    • ๐Ÿ some Windows-specific files were missing in the tarballs

    ๐Ÿš€ Release 1.2.2 (2006-09-01)

    • ๐Ÿ›  fixed SF # 1549973: NotificationCenter::hasObservers() returns wrong result
    • ๐Ÿ›  fixed a memory leak in EchoServer sample
    • ๐Ÿ›  fixed SocketReactor TimeoutNotification bug (SF #1549365, SocketNotifier::addObserver() incorrect behavior)
    • ๐Ÿ›  fixed SF# 1549513: MultipartReader does not work with Unix-style linefeeds
    • MailMessage and HTMLForm: processing of multipart messages will no longer fail if a PartHandler does not read all data from the part stream.
    • โž• added additional test case (Unix-style line ends) to MultipartReaderTest

    ๐Ÿš€ Release 1.2.1 (2006-08-29)

    • ๐Ÿ›  fixed Config.h header (no more #undefs)

    ๐Ÿš€ Release 1.2.0 (2006-08-29)

    • ๐Ÿ›  DateTime fixes: Julian Day is no longer stored internally. Times (hours, minutes, seconds, ...) are now always taken from an utcValue (if available) and not from the Julian day. The Julian day is only used for calculating year, month and day (except when the Julian day is the only thing we have) This helps us get rid of rounding errors that the Julian Day arithmetic introduced.- on Windows, UUIDGenerator no longer uses Netbios, but GetAdaptersInfo instead
    • The main Makefile now has correct dependencies
    • โšก๏ธ updated poco-doc.pl with latest version by Caleb Epstein
    • ๐Ÿ›  fixed SF #1542722: InflatingInputStream: buffer error
    • ๐Ÿ‘Œ improved Windows UTF-8 support
    • โž• added Logger::names()
    • โž• added configure script and make install target
    • ๐Ÿ›  XMLWriter bugfix: pretty-print bug with characters() and rawCharacters()
    • ๐Ÿ‘Œ improvements to build system: support builds outside of source tree
    • โž• added header doc conversion tool contributed by Caleb Epstein
    • ๐Ÿ›  fixed SF #1542618 (build/config/Linux patch)
    • ๐Ÿ›  bugfix: BinaryReader/BinaryWriter BOM is now 16 bits, as documented
    • ๐Ÿ›  fixed SF #1542247 (Compiler warning from OptionCallback)
    • ๐Ÿ›  fixed SF #1542253 (ServerApplication::handleOption doesn't call Application::handleOption)
    • โž• added Application::stopOptionsProcessing()
    • โšก๏ธ updated samples
    • ๐Ÿ‘ Util::Application command line handling now supports:
      • argument validation (Option::validator(); see Validator, IntValidator, RegExpValidator)
      • binding of argument values to config properties (Option::binding())
      • callbacks for arguments (Option::callback())
      • checking of required parameters
    • ๐Ÿ”„ changed header file locations: Foundation headers are now in Poco (#include "Poco/Foundation.h") XML headers are now in Poco/XML, Poco/SAX and Poco/DOM (#include "Poco/XML/XML.h") Util headers are now in Poco/Util (#include "Poco/Util/Util.h") etc. Unfortunately, this change will break existing code. However, fixing the code is a matter of a few global search/replace operations and can be done quickly. On the plus side, POCO is now a much better citizen when used with other libraries.
    • ๐Ÿ”„ changed namespaces: Foundation is now Poco XML is now Poco::XML Util is now Poco::Util Net is now Poco::Net
    • โœ‚ removed namespace macros
    • ๐Ÿ›  fixed some warnings reported by gcc -Wall -Wextra
    • ๐Ÿ›  fixed AutoPtr and LayeredConfiguration documentation
    • ๐Ÿ‘Œ improved StreamSocket::receiveBytes() doc
    • โž• added Pipe and PipeStream classes
    • โž• added support for I/O redirection (pipes) to Process::launch()
    • โž• added LogStream class (ostream interface to Logger)
    • ๐Ÿ‘Œ improved Makefiles (no more double-building if clean all is specified)
    • โž• added CppUnit and DateTime testsuite contributions by Andrew Marlow
    • ๐Ÿ‘Œ improved Cygwin and minimal MinGW support
    • FileChannel: gzip compression if archived files now runs in a background thread (SF #1537481)
    • ๐Ÿง POCO now compiles with large (64-bit) file support on Linux (SF #1536634)
    • โž• added format() function, which provides typesafe sprintf-like functionality (SF #1327621)
    • โž• added File::isLink()
    • ๐Ÿ›  bugfix: dangling symbolic links in a directory no longer cause recursive remove to fail with file not found error
    • โž• added Void class (useful as argument to ActiveMethod)
    • ๐Ÿ‘ ActiveResult now supports exceptions
    • ๐Ÿ›  bugfix: Timezone::utcOffset() and Timezone::dst() returned wrong values on Unix platforms (SF #1535428)
    • โž• added ActiveDispatcher class
    • โž• added ActiveStarter class, which is a policy used by ActiveMethod for starting methods
    • ๐Ÿšš ActiveRunnable moved to its own header file
    • ThreadPool: added startWithPriority(), which allows for running threads with a different priority
    • โž• added error handling to dir sample
    • โž• added additional test case to HTTPServer test suite- HTMLForm: should now work with request methods other than POST and GET (all non-POST requests are treated the same as GET)
    • ๐Ÿ“š clarified HTMLForm documentation
    • ๐Ÿ›  HTMLForm bugfix: uploaded files no longer end up in value; PartHandler is called instead
    • 0๏ธโƒฃ NameValueCollection: added get(name, defaultValue)
    • โž• added HTTPFormServer sample
    • โž• added Foundation::HashTable and SimpleHashTable
    • โž• added Net::HTTPSessionFactory
    • ๐Ÿ‘Œ improvements to AutoPtr and SharedPtr
    • ๐Ÿ‘Œ improvements to namespaces handling in XMLWriter
    • ๐Ÿ›  Foundation Cache: fixed add implementation to match the docu: a 2nd add will now simply overwrite existing entries
    • โž• added DateTime::isValid()
    • โž• added Exception::rethrow() (virtual, must be overridden by all subclasses)
    • Timer can now use a user-supplied ThreadPool
    • โž• added rethrow() to exception classes
    • Net: made some constructors explicit
    • Net: added SocketAddress constructor to HTTPClientSession
    • Net: added HTTPSession::networkException() to check for exceptions swallowed by stream classes
    • Net: added single string argument constructor to SocketAddress.
    • Net: improved HTTPClientSession error handling (no more "Invalid HTTP version string" exceptions when the server prematurely closes the connection due to too much load)
    • Net: improved HTTPSession error handling. Exceptions while sending and receiving data are stored for later retrieval and no longer get lost since streambufs swallow them.
    • โœ… Net: added HTTPLoadTest sample
    • ๐Ÿ›  fixed a bug when opening logfiles on Unix platforms causing an existing logfile to be truncated
    • ๐Ÿ›  bugfix: log file purge intervals given in months did not work, due to a stupid typo
    • โž• added RawSocket and ICMP classes
    • ๐Ÿ›  UUID: fixed a doc formatting bug
    • ๐Ÿ NetworkInterface::list() now includes loopback interface on Windows (SF #1460309)
    • ๐Ÿ‘ป made Exception::message() and Exception::nested() inline
    • โž• added Net::UnsupportedRedirectException
    • ๐Ÿ‘ HTTPStreamFactory throws an UnsupportedRedirectException if it encounters a redirect to https
    • ๐Ÿ›  HTTP: fixed bad 100 Continue handling in client and server code
    • โž• added CONTRIBUTORS file

    ๐Ÿš€ Release 1.1.2 (2006-07-07)

    • ๐Ÿ”„ Changed license to Boost license
    • ๐Ÿš€ DBlite and NetSSL have been removed from the Boost-licensed release. Please contact Applied Informatics ([email protected]) if you're interested in them.

    ๐Ÿš€ Release 1.1.1 (2006-04-03)

    • ๐Ÿ‘ NetSSL_OpenSSL now supports separate certificate verification settings for client and server.
    • ๐Ÿ›  fixed SF #1460309 (enumerating network interfaces failed on 64bit Linux)
    • TCPServer no longer crashes if accept() fails

    ๐Ÿš€ Release 1.1.0 (2006-03-23)

    • events no longer require awkward += new syntax
    • ๐Ÿ“š source code and documentation cleanups
    • ๐Ÿ‘ basic support for new compilers and platforms
  • v1.1.b2 Changes

    March 04, 2006
    • made NetSSL threadsafe (added locking callbacks for OpenSSL)
    • ๐Ÿ‘Œ improved OpenSSL initialization (random generator seeding)
    • various changes to improve compatibility with various platforms
  • v1.1.b1 Changes

    March 03, 2006
    • ๐Ÿ†• New Events package in Foundation. The package supports C#-style event handling
    • ๐Ÿ†• New Cache package in Foundation: a templates-based caching framework
    • โž• added Any class to Foundation
    • โž• added DBLite library
    • ๐Ÿ›  fixed a memory leak with layered configurations in the application
    • 0๏ธโƒฃ made POCO_DLL the default (unless POCO_STATIC is #defined) It is no longer necessary to specify POCO_DLL in projects that use Poco (SourceForge Patch #1408231 and Feature Request #1407575).
    • โž• added Buffer template class to Foundation
    • โž• added the UnicodeConverter utility class. This is mainly used for Windows Unicode support and probably of little use for anything else.
    • โž• added Path::resolve()
    • โž• added Windows Unicode support. This calls the Unicode variant of the Windows API functions. For this to work, all strings must be UTF-8 encoded and POCO_WIN32_UTF8 must be defined in all compilation units.
    • โž• added StreamCopier::copyToString()
    • โž• added URIStreamOpener::unregisterStreamFactory() and new variants of URIStreamOpener::open() that also work with filesystem paths. This fixes SourceForge Bug #1409064 and Feature Request #1409062.
    • โž• added NodeIterator::currentNodeNP() to XML library
    • โž• added some sanity checks to UTF8Encoding::convert()
    • โž• added NetSSL - SSL support for Net library, based on OpenSSL
    • console output of processes launched with Process::launch() is now visible

    ๐Ÿš€ Release 1.0.0 (2006-01-19)

    • โœ‚ removed unnecessary console output from ProcessTest
    • ๐Ÿ“š documentation fixes
  • v1.0.b2 Changes

    January 16, 2006
    • โž• added ProcessHandle class
    • ๐Ÿ–จ Process::launch() now returns a ProcessHandle instead of a process ID. This fixes a potential problem on Windows with Process::wait() when the process terminates before wait() is called.
    • โž• added SplitterChannel::close()
    • โž• added Logger::destroy()
    • โž• added POP3ClientSession::deleteMessage()
    • โž• added test for Process::launch()
    • ๐Ÿ“š documentation fixes
  • v1.0.b1 Changes

    January 09, 2006
    • ๐Ÿ‘Œ improved recognition of Windows paths in Path::parseGuess()
    • โž• added setCurrentLineNumber()/getCurrentLineNumber() to CountingStreamBuf
    • ๐Ÿ‘Œ improvememts to StreamTokenizer and Token; fixed documentation
    • โž• added a workaround for some strange istream behaviour with VS 2005 and FTPClientSessionTest
    • ๐Ÿ‘Œ improved exception/error reporting in cppunit
    • โž• added POP3ClientSession
    • โž• added Process::launch() and Process::wait()
    • โž• added Mail sample
    • โž• added MailStream and SMTPClientSession classes
    • ๐Ÿ”Š renamed some methods in DialogSocket to make them more general
    • ๐Ÿšš NullPartHandler has moved out of HTMLForm.cpp into a separate file
    • Base64Encoder now always writes \r\n line ends
    • MessageHeader::quote has an optional addition arg controlling the treatment of whitespace
    • ๐Ÿ›  bugfix: MultipartReader had a problem with empty lines (\r\n sequences) in a part
    • โž• added MailMessage and MailRecipient classes
    • โž• added text encoding support for Windows-1252 codepage
  • v1.0.a1 Changes

    January 03, 2006
    • mediaType is used consistently to refer to a MIME media type (some occurences of contentType and mimeType have been replaced)
    • ๐Ÿšš moved MediaType::quote() to MessageHeader and made it public
    • โž• added MultipartWriter::stream()
    • ๐Ÿ“‡ Renamed AttachmentSource to PartSource and AttachmentHandler to PartHandler
    • SIGPIPE is always blocked in main thread on Unix systems
    • โž• added EchoServer sample
    • ๐Ÿ›  fixed a bug in SocketImpl::setBlocking() - did exactly the opposite (value to ioctl was wrong)
    • ๐Ÿ›  fixed a memory leak in NotificationQueue sample
    • โž• added comparison operators to Socket so that Sockets can be used as keys in maps
    • โž• added Socket::setBlocking()
    • โž• added StreamSocket::connectNB() (non-blocking connect)
    • โž• added Observer::accepts()
    • โž• added SocketReactor, SocketConnector and SocketAcceptor classes to support event-based socket programming
    • ๐Ÿ›  NamespacePrefixesStrategy now uses expat's XML_SetReturnNSTriplet(). The previously used separate namespace handling code has been removed. This improves performance if NamespacePrefixesStrategy is used (both the n amespaces and namespace-prefixes SAX2 features are used)
    • ๐Ÿš€ upgraded expat to 2.0 pre-release (2005-12-27) snapshot
    • โž• added TeeInputStream and TeeOutputStream classes
    • โž• added download sample for URIStreamOpener
    • ๐Ÿ“‡ renamed registerOpener() to registerFactory() in HTTPStreamFactory and FTPStreamFactory
    • โž• added LineEndingConverter streams
    • โž• added FTPClientSession
    • ๐Ÿ“š code and documentation clean-up
    • โž• added DialogSocket class
    • โœ… reorganized HTTP test suites
    • โž• added FTPClientSession and FTPStreamFactory
    • โž• added DialogSocket class

    ๐Ÿš€ Release 0.96.1 (2005-12-28)

    • ๐Ÿ›  fixed a memory leak caused by a bug in Microsoft's stream implementation (see the comment in Foundation/StreamUtil.h for an explanation)
    • โž• added samples for Net library
    • โž• added uptime() and startTime() to Util::Application
    • โž• added DateTimeFormatter::format() for Timespan
    • โž• added ErrorHandler class and better exception handling for threads
    • added poco_debugger() and poco_debugger_msg() macros
    • โž• added project and solution files for Visual Studio 2005 (due to some bugs/leaks in Microsofts standard library - see http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=e08bd793-3fef-40ff-adda-ed313e0eafcc we do not recommend using this for production purposes)
    • ๐Ÿ›  fixed two problems with out-of-range string iterator in Path (the testsuite triggered an assertion in VC++ 8.0)
    • ๐Ÿ›  fixed mac line endings in a few files
    • โž• added a workaround to the class loader that fixes strange behavior with VC++ 8.0. There seems to be a problem with typeid() not returning a valid typeinfo under certain circumstances.
    • โž• added buffer allocator argument to buffered stream buffer templates
    • โž• added buffer pools to HTTP to reduce memory fragmentation and to improve performance
    • โž• added Net to Windows build.cmd script
    • โž• added swap() to various classes that already support assignment
    • โž• added a null pointer check in DOMWriter::writeNode()
    • ๐Ÿ›  fixed documentation in BinaryWriter.h and BinaryReader.h
    • โž• added explicit support for network byte order to BinaryReader and BinaryWriter
    • โž• added basic support for FreeBSD (needs more testing)
    • BinaryReader: renamed readRawData() to readRaw() to be consistent with BinaryWriter::writeRaw()
    • โž• added support for uppercase output to HexBinaryEncoder.
    • โž• added MediaType class
    • โž• added QuotedPrintableEncoder and QuotedPrintableDecoder classes
    • ๐Ÿ“‡ renamed ObjectFactory to Instantiator. This should prevent the confusion caused by DynamicFactory and ObjectFactory. Sorry for the inconvenience if you are already using this.
    • AttachmentSource::filename() now returns const string&
    • โž• added StringAttachmentSource
    • ๐Ÿ’… replaced old-style C casts with C++ casts in NetworkInterface.cpp
    • ๐Ÿš‘ MutexImpl (WIN32): replaced InitializeCriticalSection with InitializeCriticalSectionAndSpinCount, which should increase performance on multiprocessor or multicore systems when many locks are used.
    • ๐Ÿ›  fixed a problem with STLport 5.0 when compiling StreamTokenizer
    • HTTPStreamOpener now also works with no-path URIs (like http://www.appinf.com)
    • ๐Ÿ›  fixed wrong delete usage (plain delete instead of delete [] was used in a few cases)
    • ๐Ÿ›  fixed a handle leak in WinTestRunner

    ๐Ÿš€ Release 0.95.4 (2005-11-07)

    • ๐Ÿ›  fixed #1348006 and #1348005

    ๐Ÿš€ Release 0.95.3 (2005-10-28) [internal]

    • โšก๏ธ updated build scripts (patch #1339015)
    • โž• added support for AMD64 platforms (patch #1339015)
    • MultipartWriter creates its own boundary if an empty string is passed in as boundary
    • made MultipartWriter::createBoundary() public
    • ๐Ÿ›  fixed wrong documentation for DateTimeFormat::HTTP_FORMAT
    • โž• added support for HTTP Basic authentication
    • โž• added support for HTTP Cookies
    • โž• added support for HTML forms

    ๐Ÿš€ Release 0.95.2 (2005-10-22) [internal]

    • ๐Ÿ›  fixed a potential problems with streams when close in destructor fails (added try..catch block around close in destructors)
    • โž• added HTTPServer & friends
    • โž• added hasIdleThreads() method to NotificationQueue
    • โž• added TCPServer and friend
    • โž• added support for HTTP proxies to HTTPClientSession and HTTPStreamOpener
    • ๐Ÿ›  fixed documentation bugs (Mutex.h, ClassLoader.h)

    Relesae 0.95.1 (2005-10-15) [internal]

    • Tasks can now throw custom notifications (contributed by Alex Fabijanic)
    • ๐Ÿ“‡ renamed URIFileStreamFactory to FileStreamFactory
    • โž• added a few methods to URI (setPathEtc(), getPathEtc(), getPathAndQuery())
    • โž• added new exception classes
    • ๐Ÿ›  fixed some documentation
    • โž• added basic checks when reading a MessageHeader from a stream
    • โž• added HTTP classes (testsuite still incomplete)
    • โž• added MessageHeader, NameValueCollection, MultipartReader and MultipartWriter classes
    • โž• added Timespan::useconds()
    • โž• added ClassLoader::isLibraryLoaded()
    • Socket classes use Timespan::useconds() to fill struct timeval
    • โž• added DatagramSocket, MulticastSocket and NetworkInterface classes
    • โž• added socket classes and related basic stuff
    • โž• added additonal constructor/assign to Timespan- added BasicBufferedBidirectionalStreamBuf
    • ๐Ÿ›  fixed a potential MT issue in Base64Decoder
    • code beautifying in [Un]BufferedStreamBuf
    • more improvements to ClassLoader
    • code cleanup and naming convention fixes (changed all *Imp classes to *Impl for consistency)

    ๐Ÿš€ Release 0.94.1 (2005-09-30) [internal]

    • โž• added MetaSingleton (based on a contribution by Alex Fabijanic)
    • โž• added ClassLoader::create()
    • โž• added ClassLoader::instance()
    • code clean-ups in FileChannel and related classes
    • โž• added SimpleFileChannel
    • RotateAtTimeStrategy: ::getNextRollover() rewritten (buggy)
    • DateTime microseconds assert corrected asserts in computeGregorian() (except for year - see comment in computeGregorian()) milliseconds calculation modified in computeGregorian() microseconds assigned in computeGregorian() normalize() and checkLimit() private functions to correct cases of overflow for milli/microseconds
    • LocalDateTime: added timestamp() method
    • FileChannel: added "times" property (used to determine whether to use UTC or local time with RotateAtTimeStrategy) ::setProperty() modified (whenever "times" property is set, methods setRotation and setArchive are reinvoked to reflect the change)
    • ๐Ÿ‘ FileChannel: added support for archived file compression and archived file purging
    • โœ… FileChannel tests modified
    • โœ… FileChannel: put LogFile, RotateStrategy and ArchiveStrategy into their own files
    • Message: added thread id field
    • PatternFormatter: added %I specifier for thread id
    • ThreadPool: PooledThread can be assigned a name
    • TaskManager: task name is reflected in thread name
    • ๐Ÿ›  fixed LocalDateTime::operator - (const Timespan&) [#0000004]
    • upon startup all loggers' channels are set to a console channel
    • ๐Ÿ‘Œ improved search for application configuration files (see loadConfiguration()).
    • โž• added Glob class (fixes #1249700)
    • โฌ†๏ธ upgraded to zlib 1.2.3 (fixes #1261712)
    • โž• added Logger::dump()
    • ๐Ÿ›  fixed a wrong condition in Logger::log(const Message&)
    • Path::find() now also works with relative paths in addition to plain file names
    • โž• added Path(const Path&, const Path&) constructor
    • โž• added SharedPtr template
    • โž• added Path::tryParse()
    • ๐Ÿ“œ SAXParser::parse()/EntityResolverImpl now works for both URIs and local filesystem paths (fixes #1254812)

    ๐Ÿš€ Release 0.93.1 (2005-08-01)

    ๐Ÿ›  This release contains various new features, improvements and bugfixes:

    • ๐Ÿ›  bugfix: UUIDGenerator throws an exception if no connected ethernet adapter can be found (and thus no MAC address can be obtained)
    • โž• added UUIDGenerator::createOne() method
    • โž• added error handling to UUID sample application
    • โž• added relational (==, !=, <, <=, >, >=) and arithmetic operators (+, -, +=, -=) to DateTime
    • โž• added LocalDateTime class
    • โž• added support for LocalDateTime to DateTimeParser and DateTimeFormatter
    • โž• added enqueueUrgentNotification() to NotificationQueue
    • โž• added support for timezone specifiers (%z, %Z) to PatternFormatter
    • โž• added [] operator and count() to StringTokenizer
    • โž• added elapsed() and isElapsed() to Timestamp
    • โž• added tzd() to Timezone
    • โž• added WinRegistryKey and WinService classes (Windows only)
    • โž• added index operator and count() to StringTokenizer
    • โž• added day/time-based log rotation (thanks to Alex Fabijanic), minor improvements to DateTimeParser
    • ๐Ÿ‘Œ support for Mac OS X 10.4/gcc 4.0.0
    • โž• added NamedMutex and NamedEvent
    • โž• added Process::kill()
    • โž• added NoPermissionException
    • โž• added Task and TaskManager classes
    • โž• added ServerApplication class
    • ๐Ÿ›  bugfix: EventLogChannel - _logFile was not properly initialized in one constructor
    • ๐Ÿ›  bugfix: File::createDirectories did not work for hierarchies deeper than three
    • โž• added Util::FilesystemConfiguration
    • ๐ŸŒฒ documented logging policy: log() must open channel if it hasn't been opened yet
    • ๐ŸŒฒ FileChannel::log() opens channel if necessary
    • the application reference passed to initialize() and reinitialize() is no longer const
    • ๐Ÿ‘Œ improved application logging initialization
    • ๐Ÿ›  fixed a problem with configuration view and property placeholders
    • ๐Ÿ›  fixed Util build configuration for Visual Studio
    • ๐Ÿ‘Œ improved application samples
    • ๐Ÿ›  fixed documentation for Semaphore class

    ๐Ÿš€ Release 0.92.1 (2005-05-09)

    ๐Ÿš€ This release introduces the Util library that provides support for ๐Ÿ”ง configuration file parsing (different file formats), command line ๐Ÿ”ง argument processing, logging configuration and a framework for ๐Ÿ’ป command line/server applications. There have also been various changes to the Foundation library:

    • a new RefCountedObject class that acts as a base class for various classes that use reference counting
    • some missing members have been added to the AutoPtr template
    • ๐Ÿ›  various improvements and bugfixes to the Logging framework, as well as new LoggingFactory and LoggingRegistry classses, and a NullChannel class
    • ๐Ÿšฆ the SignalHandler class (Unix platforms only)
    • ObjectFactory and DynamicFactory template classes
    • the Path::find method for searching a file in a list of directories
    • ๐Ÿ‘ป various new Exception classes

    ๐Ÿš€ Release 0.91.4 (2005-04-11)

    ๐Ÿš€ This is mainly a maintenance release that adds support for QNX Neutrino ๐Ÿ›  and OpenVMS. There are also minor bugfixes and improvements.

    ๐Ÿ‘ท The Unix build system has been modified to work on QNX Neutrino. ๐Ÿ‘ท The OpenVMS build system has been fixed and works now. Some missing #include's have been added for QNX Neutrino. ๐Ÿ‘ Foundation/String.h: icompare now supports comparison with const char*; the classic C version of isspace() has been used in a few places instead of the ๐Ÿ›  C++ version, this has been fixed. ๐Ÿ‘ป Foundation/Exception.h: IllegalStateException added.

    ๐Ÿš€ Release 0.91.3 (2005-03-19)

    ๐Ÿš€ This is a maintenance release that adds support for Solaris/Sun Forte C++. No new features have been added.

    An implementation of FPEnvironment for Solaris has been included. โ†ช All stream classes have been modified to work around an initialization problem that surfaced with Sun's C++ compiler when using STLport. ๐Ÿš€ Source-code compatibility with the previous release is not affected. Various minor changes, mostly adding missing #include's for Solaris.

    ๐Ÿš€ Release 0.91.2 (2005-02-27)

    ๐Ÿ‘ท Minor improvements to the Unix build system. No actual changes in the libraries.

    ๐Ÿš€ Release 0.91.1 (2005-02-21)

    ๐Ÿš€ This is the first public release of the C++ Portable Components. ๐Ÿš€ The release does not contain all features planned for the later 1.0 release (the NET library is missing, for example), but is already quite usable. Please refer to the README file for more information and instructions for ๐Ÿ— building the libraries.