diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
commit | 718c552901d703c502ccbefdfc3c9028d608b947 (patch) | |
tree | 46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/libs/poco/CHANGELOG | |
parent | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff) | |
download | ydb-718c552901d703c502ccbefdfc3c9028d608b947.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/poco/CHANGELOG')
-rw-r--r-- | contrib/libs/poco/CHANGELOG | 5596 |
1 files changed, 2798 insertions, 2798 deletions
diff --git a/contrib/libs/poco/CHANGELOG b/contrib/libs/poco/CHANGELOG index 59a11835d4..3d690619b8 100644 --- a/contrib/libs/poco/CHANGELOG +++ b/contrib/libs/poco/CHANGELOG @@ -1,2798 +1,2798 @@ -This is the changelog file for the POCO C++ Libraries. - -Release 1.9.4 (2019-09-18) -========================== - -- fixed GH #2784: Upgrade bundled expat XML parser library to release 2.2.8, - which fixes CVE-2019-15903. - - -Release 1.9.3 (2019-08-20) -========================== - -- fixed GH #2603: Remove incorrect upper size limits for SSL certificates in NetSSL_Win -- fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file (additional fix) -- fixed GH #2742: Support of vs150 & vs160 with the official Microsoft localization executable, - vswhere.exe, installed by MSVC starting from VS2017 -- Data/ODBC: make binding of std::string configurable (SQL_LONGVARCHAR - default or SQL_VARCHAR) - through a global setting (Poco::Data::ODBC::Connector::bindStringToLongVarChar()). -- added Poco::SharedLibrary::setSearchPath() (currently implemented on Windows only) -- Windows required minimum version is now Windows XP SP2 -- upgraded bundled SQLite to 3.29.0 -- CppParser now supports type aliases defined with using keyword. -- PageCompiler: added support for adding Content-Security-Policy and Cache-Control headers. - - -Release 1.9.2 (2019-07-02) -========================== - -- fixed GH #2736: Error using CMake gui - latest version -- fixed GH #2737: Bundles vulnerable copy of Expat — please upgrade to Expat 2.2.7 -- fixed GH #2738: Poco::AccessExpireStrategy::onGet() must not extend expiration time after expiration - - -Release 1.9.1 (2019-06-24) -========================== - -- Added support for building with different OpenSSL distributions on Windows. - See the POCO_EXTERNAL_OPENSSL macro defined in Foundation/include/Poco/Config.h - for options. -- Added Poco::Net::HTTPClientSession::flushRequest() -- Added Poco::Net::WebSocket::setMaxPayloadSize() and Poco::Net::WebSocket::getMaxPayloadSize() - to specify a maximum acceptable payload size for Poco::Net::WebSocket::receiveFrame(). -- Poco::Net::WebSocket: don't attempt to send empty credentials in response to 401 response. -- Redis: added support for additional commands (exists, expire, ping, multi, exec, discard) -- Redis: added Poco::Redis::Client::isConnected() -- Upgraded bundled PCRE to version 8.43 -- Upgraded bundled SQLite to version 3.28.0 -- Added project/solution files for Visual Studio 2019 -- Fixed Visual Studio project files (version information from DLLVersion.rc not included in DLLs) -- Include version resource in DLLs built with CMake -- Added HTTP*Credentials::empty() and HTTPCredentials::clear() -- fixed GH #2220: Encoding/DoubleByteEncoding.cpp fails to compile with VS2008 and _DEBUG -- fixed GH #2243: DLLVersion.rc is excluded from build, missing detail information in properties of *.dll -- fixed GH #2277: SQLite null pointer dereference occurs when exception is being thrown -- fixed GH #2313: PollSet behaves differently on windows -- fixed GH #2316: cmake can't find MySQL and ODBC libraries -- fixed GH #2336: Omit ContentLength in WebSocket accept response -- fixed GH #2358: Don't include <openssl/fips.h> for later OpenSSL -- fixed GH #2364: Stringify escapes every unicode symbol when object contain an array -- fixed GH #2380: Calling Poco::Net::X509Certificate::addChainCertificate() leads to double free. -- fixed GH #2492: Net::Socket::address() crash on Android -- fixed GH #2549: Fix keepAlive in http client session -- fixed GH #2565: HTMLForm: optional enforcement of Content-Length instead of Chunked Transfer-Encoding -- fixed GH #2570: DialogSocket: receiveStatusMessage() - line length limit applies to entire multi-line message -- fixed GH #2583: Crypto library does not build with OpenSSL 1.0.0 -- fixed GH #2655: MongoDB Binary element to string - bug -- fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file -- fixed GH #2700: Invalid read of memory in Poco::Environment::set which may cause crashes. -- fixed GH #2712: File_WIN32.cpp(168): error C2065: "_upath":Undeclared identifier -- fixed GH #2723: Access violation when trying to decompress .zip file with unsupported compression method. - - -Release 1.9.0 (2018-03-07) -========================== - -- Added additional text encodings, available in the new PocoEncodings library (GH #2165) -- Added Punycode support for resolving Internationalized Domain Names to Poco::Net::DNS (GH #2164) -- Added XDG Base Directory Specification support in Poco::Path, Poco::Util::SystemConfiguration - and Poco::Util::Application (GH #1609, GH #561, GH #1609) -- Added support for GCM ciphers in Crypto library (GH #2129) -- Poco::Net::RemoteSyslogChannel and Poco::Net::RemoteSyslogListener now have basic - support for RFC 5424 structured data (GH #2173) -- Poco::File now has methods for obtaining partition space (GH #1545) -- Added Poco::Net::Context::addCertificateAuthority() (GH #2197) -- Added Poco::AutoPtr::reset() and Poco::SharedPtr::reset() to improve compatibility - with std::shared_ptr() (GH #2172) -- fixed GH #703: Poco::Data::SQLite data types (INTEGER is now mapped to Int64) -- fixed GH #1426: inttypes.h is available on sun solaris -- fixed GH #1912: Run ping with custom data size #1912 -- fixed GH #2177: Run ping with custom timeout instead of the default -- fixed GH #2058 and GH #2095: Synchronization issue/deadlock in Poco::Util::Timer at destruction -- fixed GH #2089: Allow hyphen in HTTP authentication scheme names -- fixed GH #2106: Undefined behavior in Delegate::equals() -- fixed GH #2108: POCO SQLite Data Connector hangs for 20 secs waiting for thread timeouts on Windows -- fixed GH #2142: JSON::Object preserveOrder keys not synced on assignment -- fixed GH #2199 and GH #2188: Illegal header in zip file exception/assertion failure during JAR file decompression -- fixed GH #2203: Use MAX_ADDRESS_LENGTH to determine buffer size - - -Release 1.8.1 (2018-01-09) -========================== - -- Added Poco::File::linkTo() -- fixed GH #2044: Poco::Net::NetworkInterface::list does not list inactive interfaces - even when explicitly being asked for it. -- fixed GH #2042: Android abstract namespace local socket address -- fixed GH #2038: Poco::Net::MultipartWriter::createBoundary() always returns the same string. -- fixed GH #2020: SQLite not handling parameter count mismatch correctly. -- fixed GH #2012: Data/SQLite: Exception messages contain duplicate text -- fixed GH #2005: Upgraded bundled PCRE to 8.41 -- fixed GH #2000: Fix building XMLStreamParser with unbundled expat -- fixed GH #1603: fix MinGW 4.8.2 Compilation -- fixed GH #1991: Support building poco 1.8.0 as cmake sub-project -- fixed GH #2080: Bugs in Poco::Net::Socket::select when POCO_HAVE_FD_POLL is defined - - -Release 1.8.0.1 (2017-11-11) -============================ - -- Reverted change for GH #1828; DeflatingStreamBuf::sync() no longer flushes - underlying stream as this causes corruption for some Zip files. -- PocoDoc: fix for handling compiler configuration for Gradle builds. - - -Release 1.8.0 (2017-11-10) -========================== - -- Poco::Base64Encoder: add support for base64url encoding (GH #1967) -- Add Poco::Net::PollSet class to Net library (GH #1763) -- The Net library now supports Unix Domain Sockets, where available. -- Added stream parser (Poco::XML::XMLStreamParser) to XML library (GH #1697) -- Added Poco::Net::TCPServerConnectionFilter and Poco::Net::TCPServer::setConnectionFilter() - to support connection filtering and IP blacklisting (GH #1485) -- Added Redis library (GH #1383) -- Added Zip64 support to Zip library (GH #1356) -- Upgraded bundled SQLite to 3.21.0 -- Removed OpenVMS support (GH #1988) -- fixed GH #271: NamedMutex_UNIX.cpp must remove semid -- fixed GH #739: Add WebSocket::receiveFrame() that appends to a Poco::Buffer<char> -- fixed GH #749: NTP Packet impl not according to RFC958 -- fixed GH #896: Sample "TwitterClient" of NetSSL_OpenSSL can't be build -- fixed GH #1172: Poco::Data default storage should be std::vector -- fixed GH #1337: Poco::HTMLForm throws exception HTMLFormException("Form must be prepared") - even after form is prepared. -- fixed GH #1373: SessionImpl::close() does not check return code of close handle specific function -- fixed GH #1425: Workaround bug in SolarisStudio 12.4 on RVO-ed objects. -- fixed GH #1614: Problematic license for JSON component: the previously used JSON.org parser - has been replaced with pdjson -- fixed GH #1659: wrong field size calculation in ODBC code -- fixed GH #1683: Poco::Data ODBC impl doesn't bind to unsigned numeric types properly -- fixed GH #1705: MongoDB: support URI in Connection -- fixed GH #1708: "SocketReactor::addEventHandler" and "SocketReactor::removeEventHandler" - must protect the access to "NotifierPtr pNotifier" -- fixed GH #1729: getConnectionTimeout of SQLite DB wrapper returns wrong value - (in milliseconds, should be in seconds) -- fixed GH #1739: OpenSSLInitializer isn't threadsafe -- fixed GH #1750: double_conversion in NumericString is in conflict with Qt5 Core -- fixed GH #1804 and GH #1805: Integer Overflow or Wraparound -- fixed GH #1828: DeflatingStreamBuf::sync() should also flush underlying stream. -- fixed GH #1880: FTPClientSession::close() error -- fixed GH #1897: DateTime wrong binding/extraction for MySQL database -- fixed GH #1905: Compiling Foundation library with POCO_NO_FPENVIRONMENT in Config.h fails -- fixed GH #1906: Race condition in ThreadPool -- fixed GH #1913: Message Doesn't Support 64-bit Thread IDs -- fixed GH #1921: ICMPSocket does not check reply address -- fixed GH #1926: Exception when using SortedDirectoryIterator -- fixed GH #1934: File::setExecutable() on POSIX should set executable bit for group and - other if corresponding readable bit is set -- fixed GH #1950: Net Exception: Address family not supported with clang -- fixed GH #1964: Buffer<> swap miss ownMem - - -Release 1.7.9p2 (2017-11-06) -============================ - -- fixed GH #1628: Export Poco::Zip::ZipUtil class - - -Release 1.7.9p1 (2017-11-02) -============================ - -- fixed GH #1968: Zip Decompress Parent Path Injection - - -Release 1.7.9 (2017-09-11) -========================== - -- fixed GH #1813: xmlparse.cpp doesn't compile in WinCE (poco 1.7.8p3) -- fixed GH #1826: XPath query error -- fixed GH #1834: Visual Studio 2008 cannot find stdint.h -- fixed GH #1842: Upgrade bundled expat to 2.2.3 -- fixed GH #1843: Use random salt for Poco::XML::NamePool -- fixed GH #1865: AbstractEvent::hasDelegates() is not thread-safe -- improved/fixed QNX support -- Poco::Util::LayeredConfiguration: added support for labelling configurations and - finding them by their label -- upgraded bundled SQLite to 3.20.1 -- PageCompiler: support <%@ include file="<path>" %> syntax for includes, in addition - to <%@ include page="<path>" %> -- PageCompiler: optimize generated request handler code by removing useless - statements, e.g. writing empty strings. -- added POCO_DEPRECATED macro which will be used in the future to deprecate - classes and methods. -- Poco::NamedMutex and Poco::NamedEvent (System V Semaphores implementation): files are - now opened with O_RDONLY | O_CREAT instead of O_WRONLY | O_CREAT, allowing sharing - between different users. Furthermore, ftok() is called with 'p' as project ID - argument. - - -Release 1.7.8p3 (2017-06-22) -============================ - -- fixed GH #1760: Upgrade bundled expat to 2.2.1 which fixes some vulnerabilities: - http://seclists.org/oss-sec/2017/q2/499 - - -Release 1.7.8p2 (2017-04-18) -============================ - -- fixed GH #1655: CipherImpl memory leak with OpenSSL 1.1 - - -Release 1.7.8 (2017-02-21) -========================== - -- fixed GH #1212: Lost WebSocket Frames after Client Websocket Handshake is complete -- fixed GH #1260: URI encoding -- fixed GH #1501: Alpine 3.4 trouble with Foundation/src/Error.cpp -- fixed GH #1523: Long path names under Windows -- fixed GH #1536: Building with OS X 10.12 SDK and 10.7 deployment target without libc++ fails -- fixed GH #1537: Need to add multiple cflags parameters to configure -- fixed GH #1539: Allow overriding POCO_TARGET_OSARCH for iPhoneSimulator -- fixed GH #1546: Enable bitcode for iPhone build config -- fixed GH #1549: Latin2Encoding and 0xFF -- fixed GH #1551: Unable to use Poco on macOS 10.12 -- fixed GH #1552: IPv6 & operator throws an exception when scope = 0 -- fixed GH #1566: Poco/Zip issue with some CM_DEFLATE archives -- fixed GH #1567: Poco/ZIP issue with uncompressed archives -- fixed GH #1570: IPv6AddressImpl::toString() returns wrong output for IPv6 address "::" -- fixed GH #1571: ODBC Preparator memory leak -- fixed GH #1573: Poco::File::createDirectories() should not throw Poco::FileExistsException -- fixed GH #1580: Unable to unzip zip file created using non-seeking stream -- fixed GH #1581: Cannot find 'pcre.h' when using POCO_UNBUNDLED, a non-system PCRE, and CMake -- fixed GH #1588: Poco::Net::HTTPChunkedStreamBuf::readFromDevice(): restrict maximum - size of chunk length -- fixed GH #1589: Poco::Net::HTMLForm: restrict maximum field and value length -- fixed GH #1590: Poco::Net::DialogSocket: restrict maximum line length -- fixed GH #1591: Poco::Net::MultipartReader: restrict maximum boundary string length -- fixed GH #1597: adding empty file to zip leads to archive that can't be unzipped by windows -- fixed GH #1599: readFromDevice() in AutoDetectStream.cpp in Poco Zip cannot detect signature -- fixed GH #1534: Upgraded bundled zlib to 1.2.11 -- fixed GH #1558: Upgraded bundled SQLite to 3.16.2 -- fixed GH #1586: Upgraded bundled PCRE to 8.40 -- fixed GH #1538: Upgraded bundled double-conversion to 1.1.5 -- MongoDB: added support for authentication using "MONGODB-CR" and "SCRAM-SHA-1" - authentication schemes. -- MongoDB: additional documentation and fixes for style and consistency and minor - API improvements (e.g., Poco::MongoDB::Binary) - Note: some flag enumeration values have been renamed for better consistency - and readability; existing code using these will have to be updated. - - -Release 1.7.7 (2016-12-31) -========================== - -- fixed GH #865: FileChannel compress fails leaving empty .gz files -- fixed GH #990: Potential race condition in Poco::File on Windows -- fixed GH #1157: Fixing a bug in the NetSSL_Win module (Host name verification failed error) -- fixed GH #1351: Fix for android include pthread.h from /usr/include -- fixed GH #1436: ODBC Bug: Unicode text(NVARCHAT) read from DB is truncated to half -- fixed GH #1453: _clock_gettime Symbol not found on Mac 10.11 -- fixed GH #1460: POCO does not build with OpenSSL 1.1 -- fixed GH #1461: Poco::Data::SQLite::SQLiteStatementImpl::next() error -- fixed GH #1462: AbstractConfiguration::getUInt does not parse hex numbers -- fixed GH #1464: ODBCMetaColumn::init() always maps integer NUMERIC/DECIMAL to Int32 -- fixed GH #1465: Assertion violation in DateTime.cpp using ZipArchive -- fixed GH #1472: HTTP(S)StreamFactory should send a User-Agent header. -- fixed GH #1476: Fixed error with Poco::UTF8Encoding::isLegal() -- fixed GH #1484: ODBC: fix uninitialized variable -- fixed GH #1486: Support ODBC GUID data type as string -- fixed GH #1488: Poco::ObjectPool shrinks if returned object is not valid -- fixed GH #1515: Detection of closed websocket connection -- fixed GH #1521: bug in JSON ParseHandler.cpp (empty keys should be valid) -- fixed GH #1526: iOS app rejected, IPv6 not working -- fixed GH #1532: RecordSet and RowFilter: bad use of reference counter - - -Release 1.7.6 (2016-10-18) -========================== - -- fixed GH #1298: ZipFileInfo: Assertion violation when reading ods files -- fixed GH #1315: Redefine Poco assertions for static analysis -- fixed GH #1397: Fix issues reported by static source code analysis -- fixed GH #1403: Android compile with poco-1.7.5 no 'pthread_condattr_setclock' error -- fixed GH #1416: Assertion violation when unzipping -- fixed GH #1418: Poco::Delegate assignment operator fails to compile for some specializations -- fixed GH #1422: Can't build poco 1.7.4 or 1.7.5 on centos5 32 bit -- fixed GH #1429: exception thrown in MongoDB when using replicaset -- fixed GH #1431: Poco/FIFOBuffer.h copy issue -- fixed GH #1445: Use stable_sort to preserve order of IP addresses from DNS -- fixed GH #1456: better handle leap seconds in Poco::DateTime and Poco::LocalDateTime -- fixed GH #1458: Probably invalid epoll_create() usage inside Poco/Socket.cpp -- Poco::XML::NamePool: increased default size from 251 to 509. Default size can now - be changed by defining the POCO_XML_NAMEPOOL_DEFAULT_SIZE macro accordingly. -- Enchancements: Poco::XML::Document and Poco::XML::DOMParser have new constructors - taking a NamePool size. Poco::Util::XMLConfiguration::load() also has a new overload - for that purpose. -- Improved error handling in the Zip library (getting rid of some poco_assert macros - and did proper error handling instead). -- Added Poco::URISyntaxException (subclass of Poco::SyntaxException), which is now - thrown by Poco::URI. -- Improved error handling in Poco::URIStreamOpener::open(). -- Poco::Data::MySQL: Handle connection lost/server gone error when starting a transaction - and retry. -- XMLConfiguration default (and single-argument delimiter) constructor now loads an empty - XML document with "config" root element to make the configuration usable without an - additional call to load() or loadEmpty(). - - -Release 1.7.5 (2016-08-29) -========================== - -- fixed GH #1252: Unable to compile Poco::Data for Windows Compact Embedded 2013 -- fixed GH #1344: Poco::Event::wait(timeout) should use CLOCK_MONOTONIC on Linux -- fixed GH #1355: [JSON::Object] After copy-ctor, JSON::Object::_keys still points to - keys in map of copied object -- GH #1361: Shell expansion rules say that tilde must be replaced with $HOME before - calling getpwuid -- Poco::SingletonHolder: added reset() method -- prefer clock_getttime() over gettimeofday() if available -- Upgraded bundled SQLite to 3.14.1 - - -Release 1.7.4 (2016-07-20) -========================== - -- fixed GH #1300: Session constructor hangs -- fixed GH #1303: HTTPSClientSession::sendRequest() fails if server has wildcard cert -- fixed GH #1304: URI doesn't know "ws:/" or "wss://" schemes -- fixed GH #1307: Upgrade bundled expat to 2.2.0 -- fixed GH #1313: XML library compilation error -- fixed GH #1316: Empty SocketReactor never sleeps -- Upgraded bundled SQLite to 3.13.0 - - -Release 1.7.3 (2016-05-02) -========================== - -- fixed GH #993: Invalid zip format when opening a docx in word -- fixed GH #1235: Poco::Net::HTTPClientSession::sendRequest() should also handle HTTP_PATCH -- fixed GH #1236: Remove Poco::Data::Row::checkEmpty() as it prevents Row from being used - with all NULL rows -- fixed GH #1239: Poco::Zip::Compress with non-seekable stream fails for CM_STORE -- fixed GH #1242: Poco::Data::RowFormatter generate exception if the first column of first - row is null -- fixed GH #1253: ListMap does not maintain insertion order if key already exists -- Upgraded bundled SQLite to 3.12.2 - - -Release 1.7.2 (2016-03-21) -========================== - -- fixed GH #1197: Upgrade bundled expat to 2.1.1 - Expat 2.1.1 fixes a CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1283 -- fixed GH #1204: getdtablesize has been removed on Android 21 -- fixed GH #1203: Poco::Data::RecordSet should be reusable -- fixed GH #1198: Upgrade bundled SQLite to 3.12.1 - - -Release 1.7.1 (2016-03-14) -========================== - -- fixed GH #1187: Data/MySQL: Seeing frequent "MySQL server has gone away" errors -- fixed GH #1184: Attempting to connect via a proxy throws a DNS error "Host not found" -- fixed GH #1180: Possible deadlock when TaskManager::count() is called in onFinished -- NetSSL_OpenSSL: use TLS_*_method() instead of deprecated SSLv23_*_method() - if OpenSSL version is >= 1.1; initialize default/fallback client context to support - all TLS protocols, not just TLSv1 - - -Release 1.7.0 (2016-03-07) -========================== - -- POSSIBLE BREAKING CHANGE: removed automatic registration of Data connectors due to - issues with static initialization order. -- NetSSL_OpenSSL: added support for ECDH and DH ciphers; added support to disable - specific protocols (Poco::Net::Context::disableProtocols()); - new Poco::Net::Context constructor taking a Poco::Net::Context::Params structure that - allows specifying ECDH and DH parameters. -- Poco::Net::TCPServer: add additional try ... catch block around poll() to - gracefully deal with errors due to high system load (e.g., out of file descriptors). -- fixed GH #1171: Poco::Data::RecordSet: rowCount not reset after execute -- fixed GH #1167: CMake & POCO_UNBUNDLED: expat sources are compiled in libPocoXML -- fixed GH #1160: Poco::Net::NetException - "SSL Exception: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry" -- fixed GH #1152: Wrong TaskProgressNotification description -- fixed GH #1141: Poco::StringTokenizer::TOK_TRIM changes behavior between 1.4 and 1.6 -- fixed GH #1137: Missing 'longint' type in SQLite -- fixed GH #1135: Different package on github and official web site -- fixed GH #1030: tvOS / WatchOS bitcode enabled for simulators -- fixed GH #1114: World-write permissions on files created by daemon -- fixed GH #1087: prevent line breaks in base64-encoded creds -- fixed GH #1026: Fixes for producing the poco-1.6.2 release on a Cygwin x86 platform -- fixed GH #1022: Abbreviation in setThreadName can happen even if thread name is not too long -- fixed GH #1002: ActiveDispatcher saves reference to event context after event was - performed until it gets new event -- fixed GH #973: overwrite existing files on windows when moving files -- fixed GH #969: Poco::File::renameTo() behaviour differs on windows and linux -- fixed GH #967: Missing data types in SQLite -- fixed GH #966: Possible crash when processing a corrupted Zip file -- fixed GH #958: Bug while reading X509Certificate subjectName -- fixed GH #937: Missing build_vs140.cmd -- fixed GH #933: Change in JSON::Object::set(key,value) behavior in 1.6.1 -- fixed GH #931: make strToInt() more strict in what it accepts -- fixed GH #921: `BasicUnbufferedStreamBuf` needs to be marked for import/export -- fixed GH #848: MailMessage::_encoding is not set when retrieving plain/text message -- fixed GH #767: Inconsistency in getPath & getPathAndQuery returns -- fixed GH #724: Poco 1.6.0 is not compiled with openssl 1.0.0 -- fixed GH #713: Improved support for producing Canonical XML in XMLWriter -- fixed GH #696: bug in parsing name of attachment poco c++ 1.6.0 -- fixed GH #335: Compress with nonseekable -- upgraded bundled SQLite to 3.11.0 -- added Poco::Crypto::X509Certificate::equals() to compare two certificates -- support for detecting Win8/Win10 in Poco::Environment -- Poco::Net::HTTPServerRequestImpl: fixed an issue with DELETE in persistent connections -- NetSSL: added Context::preferServerCiphers() -- NetSSL: added support for ECDH, new Context constructor -- NetSSL: add support for disabling certain protocols -- SMTPClientSession: added support for XOAUTH2 authentication -- Poco::Data::SessionPool: re-added customizeSession() method from 1.4.x releases -- improved SSLManager to automatically set-up a reasonable client Context if - none is configured -- add brew OpenSSL search paths to Darwin configs -- add HTTP/1.1 version to HTTPRequest for client WebSocket, as this is required for - most servers -- remove GCC_DIAG_OFF as this caused more issues than it solved -- respect POCO_NO_FORK_EXEC in ServerApplication (tvOS) -- tvOS and WatchOS support -- fix: need an implementation of available() for WebSocketImpl -- HTTPSessionInstantiator: respect global proxy config -- added constant for HTTP PATCH method to Poco::Net::HTTPRequest -- NumberParser::parseHex[64](): allow 0x/0X prefix - - -Release 1.6.1 (2015-08-03) -========================== - -- added project and solution files for Visual Studio 2015 -- upgraded bundled SQLite to 3.8.11.1 -- fixed GH #782: Poco::JSON::PrintHandler not working for nested arrays -- fixed GH #819: JSON Stringifier fails with preserve insert order -- fixed GH #878: UUID tryParse -- fixed GH #869: FIFOBuffer::read(T*, std::size_t) documentation inaccurate -- fixed GH #861: Var BadCastException -- fixed GH #779: BUG in 1.6.0 Zip code -- fixed GH #769: Poco::Var operator== throws exception -- fixed GH #766: Poco::JSON::PrintHandler not working for objects in array -- fixed GH #763: Unable to build static with NetSSL_OpenSSL for OS X -- fixed GH #750: BsonWriter::write<Binary::Ptr> missing size ? -- fixed GH #741: Timestamp anomaly in Poco::Logger on WindowsCE -- fixed GH #735: WEC2013 build fails due to missing Poco::Path methods. -- fixed GH #722: poco-1.6.0: Unicode Converter Test confuses string and char types -- fixed GH #719: StreamSocket::receiveBytes and FIFOBuffer issue in 1.6 -- fixed GH #706: POCO1.6 Sample EchoServer BUG -- fixed GH #646: Prevent possible data race in access to Timer::_periodicInerval -- DeflatingStream: do not flush underlying stream on sync() as these can cause - corrupted files in Zip archives - - -Release 1.6.0 (2014-12-22) -========================== - -- fixed GH #625: MongoDB ensureIndex double insert? -- fixed GH #622: Crypto: RSATest::testSign() should verify with public key only -- fixed GH #620: Data documentation sample code outdated -- fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp -- fixed GH #616: Visual Studio warning C4244 -- fixed GH #612: OpenSSLInitializer calls OPENSSL_config but not CONF_modules_free -- fixed GH #608: (Parallel)SocketAcceptor ctor/dtor call virtual functions -- fixed GH #607: Idle Reactor high CPU usage -- fixed GH #606: HTMLForm constructor read application/x-www-form-urlencoded UTF-8 request - body first parameter with BOM in name -- fixed GH #596: For OpenSSL 1.0.1, include openssl/crypto.h not openssl/fips.h -- fixed GH #592: Incorrect format string in Poco::Dynamic::Struct -- fixed GH #590: Poco::Data::SQlite doesn't support URI filenames -- fixed GH #564: URI::encode -- fixed GH #560: DateTime class calculates a wrong day -- fixed GH #549: Memory allocation is not safe between fork() and execve() -- fixed GH #500: SSLManager causes a crash -- fixed GH #490: 2 byte frame with payload length of 0 throws "Incomplete Frame Received" exception -- fixed GH #483: multiple cases for sqlite_busy -- fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour -- fixed GH #478: HTTPCredentials not according to HTTP spec -- fixed GH #471: vs2010 release builds have optimization disabled ? -- fixed GH #468: HTTPClientSession/HTTPResponse not forwarding exceptions -- fixed GH #438: Poco::File::setLastModified() doesn't work -- fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are - not thread safe -- fixed GH #345: Linker warning LNK4221 in Foundation for SignalHandler.obj, String.obj - and ByteOrder.obj -- fixed GH #331: Poco::Zip does not support files with ".." in the name. -- fixed GH #318: Logger local time doesn't automatically account for DST -- fixed GH #294: Poco::Net::TCPServerParams::setMaxThreads(int count) will not accept count == 0. -- fixed GH #215: develop WinCE build broken -- fixed GH #63: Net::NameValueCollection::size() returns int -- Poco::Logger: formatting methods now support up to 10 arguments. -- added Poco::Timestamp::raw() -- Poco::DeflatingOutputStream and Poco::InflatingOutputStreams also flush underlying stream - on flush()/sync(). -- Poco::Util::Timer: prevent re-schedule of cancelled TimerTask -- enabled WinRegistryKey and WinRegistryConfiguration for WinCE -- Poco::BasicEvent improvements and preparations for future support of lambdas/std::function -- upgraded bundled sqlite to 3.8.7.2 -- Poco::Thread: added support for starting functors/lambdas -- Poco::Net::HTTPClientSession: added support for global proxy configuration -- added support for OAuth 1.0/2.0 via Poco::Net::OAuth10Credentials and - Poco::Net::OAuth20Credentials classes. -- Poco::Net::IPAddress: fixed IPv6 prefix handling issue on Windows -- added Poco::Timestamp::TIMEVAL_MIN and Poco::Timestamp::TIMEVAL_MAX -- added Poco::Clock::CLOCKVAL_MIN and Poco::Clock::CLOCKVAL_MAX -- added poco_assert_msg() and poco_assert_msg_dbg() macros -- Poco::Net::Context: fixed a memory leak if the CA file was not found while creating the - Context object (the underlying OpenSSL context would leak) -- Poco::URI: added new constructor to create URI from Path -- Various documentation and style fixes -- Removed support (project/solution files) for Visual Studio.NET 2003 and Visual Studio 2005. -- Improved CMake support - - -Release 1.5.4 (2014-10-14) -========================== - -- fixed GH #326: compile Net lib 1.5.2 without UTF8 support enabled -- fixed GH #518: NetworkInterface.cpp compile error w/ POCO_NO_WSTRING (1.5.3) -- Fixed MSVC 2010 warnings on large alignment -- make HTTPAuthenticationParams::parse() add value on end of string -- fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour -- fixed GH #508: Can't compile for arm64 architecture -- fixed GH #510: Incorrect RSAKey construction from istream -- fix SharedMemory for WinCE/WEC2013 -- Add NIOS2 double conversion detection, fixes compile errors -- added VS2013 project/solution files for Windows Embedded Compact 2013 -- added Process::isRunning() -- NetSSL: Fix typo in documentation -- NetSSL_OpenSSL: support for TLS 1.1 and 1.2 -- Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based - on file extension. Used to avoid double-compression of already compressed file - formats such as images. -- added %L modifier to PatternFormatter to switch to local time -- removed unnecessary explicit in some multi-arg constructors -- Allow SecureStreamSocket::attach() to be used in server connections -- added Var::isBoolean() and fixed JSON stringifier -- added poco_unexpected() macro invoking Bugcheck::unexpected() to deal - with unexpected exceptions in destructors -- fixed GH #538 prevent destructors from throwing exceptions -- improved HTTP server handling of errors while reading header -- fixed GH #545: use short for sign -- upgraded SQLite to 3.8.6 -- fixed GH #550 WebSocket fragmented message problem -- improved HTTPClientSession handling of network errors while sending the request -- updated bundled PCRE to 8.35.0 -- fixed GH #552: FIFOBuffer drain() problem -- fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are - not thread safe -- HTTPCookie: fix documentation for max age -- added Timestamp::raw() and Clock::raw() -- Poco::Buffer properly handles zero-sized buffers -- GH #512: Poco:Data:ODBC:Binder.h causes a crash -- Added Crypto_Win and NetSSL_Win libraries which are re-implementations of existing - Crypto and NetSSL_OpenSSL libraries based on WinCrypt/Schannel. The new libraries - can be used as an almost drop-in replacement for the OpenSSL based libraries on - Windows and Windows Embedded Compact platforms. Only available from GitHub for now. - - -Release 1.5.3 (2014-06-30) -========================== - -- fixed GH# 316: Poco::DateTimeFormatter::append() gives wrong result for - Poco::LocalDateTime -- Poco::Data::MySQL: added SQLite thread cleanup handler -- Poco::Net::X509Certificate: improved and fixed domain name verification for - wildcard domains -- added Poco::Clock class, which uses a system-provided monotonic clock - (if available) and is thus not affected by system realtime clock changes. - Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms - supporting clock_gettime() and CLOCK_MONOTONIC. -- Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer - have been changed to use Poco::Clock instead of Poco::Timestamp and are now - unaffected by system realtime clock changes. -- fixed GH# 350: Memory leak in Data/ODBC with BLOB -- Correctly set MySQL time_type for Poco::Data::Date. -- fixed GH #352: Removed redundant #includes and fixed spelling mistakes. -- fixed setting of MYSQL_BIND is_unsigned value. -- fixed GH #360: CMakeLists foundation: add Clock.cpp in the list of source files -- Add extern "C" around <net/if.h> on HPUX platform. -- added runtests.sh -- fixed CPPUNIT_IGNORE parsing -- fixed Glob from start path, for platforms not alowing transverse from root (Android) -- added NTPClient (Rangel Reale) -- added PowerShell build script -- added SmartOS build support -- fix warnings in headers -- XMLWriter: removed unnecessary apostrophe escaping (&apos) -- MongoDB: use Int32 for messageLength -- fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours -- Improve RSADigestEngine, using Poco::Crypto::DigestEngine to calculate hash before signing -- added Poco::PBKDF2Engine -- Fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours -- added support for a 'Priority' attribute on cookies. -- GH #386: fixed bug in MailMessage without content-transfer-encoding header -- GH #384: ew hash algorithms support for RSADigestEngine -- fixed Clock overflow bug on Windows -- Poco::ByteOrder now uses intrinsics, if available -- CMake: added /bigobj option for msvc -- Fix typo to restore Net/TestSuite_x64_vs120 build -- correct path for CONFIGURE_FILE in CMakeLists.txt -- Building Poco 1.5.2 for Synology RS812+ (Intel Atom) (honor POCO_NO_INOTIFY) -- added WEC2013 support to buildwin.cmd and buildwin.ps1 -- HTMLForm: in URL encoding, percent-encode more characters -- Fixed #include <linux/if.h> conflict with other libraries -- Poco::Net::X509Certificate::verify() no longer uses DNS reverse lookups to validate host names -- cert hostname validation is case insensitive and stricter for wildcard certificates -- TCPServer: do not reduce the capacity of the default ThreadPool -- added POCO_LOG_DEBUG flag -- Zip: fixed a crash caused by an I/O error -- added runtest script for windows -- added SQlite Full Text Search support -- added Thread::trySleep() and Thread::wakeUp() -- fixed GH #410: Bug in JSON::Object.stringify() in 1.5.2 -- fixed GH #362: Defect in Var::parseString when there is no space between value and newline -- fixed GH #314: JSON parsing bug -- added GH #313: MetaColumn additions for Data::ODBC and Data::SQLite -- fixed GH #346: Make Poco::Data::Date and Poco::Data::Time compare functions const. -- fixed GH #341: Compiling poco-1.5.2 for Cygwin -- fixed GH #305: There are bugs in Buffer.h -- fixed GH #321: trivial build fixes (BB QNX build) -- fixed GH #440: MongoDB ObjectId string formatting -- added SevenZip library (Guenter Obiltschnig) -- fixed GH #442: Use correct prefix length field of Windows IP_ADAPTER_PREFIX structure -- improved GH #328: NetworkInterface on Windows XP -- fixed GH #154 Add support for MYSQL_TYPE_NEWDECIMAL to Poco::Data::MySQL -- fixed GH #290: Unicode support -- fixed GH #318: Logger local time doesn't automatically account for DST -- fixed GH #363: DateTimeParser tryParse/parse -- added HTMLForm Content-Length calculation (Rangel Reale) -- Make TemporaryFile append a slash to tempDir -- fixed GH #319 android build with cmake -- added hasDelegates() method to AbstractEvent -- fixed GH #230: Poco::Timer problem -- fixed GH #317: Poco::Zip does not support newer Zip file versions. -- fixed GH #176: Poco::JSON::Stringifier UTF encoding -- fixed GH #458: Broadcast address and subnet mask for IEEE802.11 network interface -- fixed GH #456: poco: library install dirs per RUNTIME/LIBRARY/ARCHIVE - - -Release 1.5.2 (2013-09-16) -========================== - -- added MongoDB library -- fixed GH #57: poco-1.5.1: Doesn't compile for Android -- added VoidEvent (Arturo Castro) -- fixed GH #80: NumberFormatter::append broken -- fixed GH #93: ParallelSocketAcceptor virtual functions -- optional small object optimization for IPAddress, SocketAddress, Any and Dynamic::Var -- SQLite events (insert, update, delete, commit, rollback) handlers -- merged GH #91: Improve SQLite multi-threaded use (Rangel Reale) -- merged GH #86: Invalid pointers to vector internals (Adrian Imboden) -- automatic library initialization macros -- fixed GH #110: WebSocket accept() fails when Connection header contains multiple tokens -- fixed GH #71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS) -- fixed a warning in Poco/Crypto/OpenSSLInitializer.h -- fixed GH #109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain -- added clang libc++ build configurations for Darwin and iPhone (Andrea Bigagli) -- fixed GH #116: Wrong timezone parsing in DateTimeParse (Matej Knopp) -- fixed GH #118: JSON::Object::stringify endless loop -- added Recursive and SortedDirectoryIterator (Marian Krivos) -- added ListMap (map-like container with preserving insertion order) -- MailMessage: attachments saving support and consistent read/write -- fixed GH #124: Possible buffer overrun in Foundation/EventLogChannel -- fixed GH #119: JSON::Object holds values in ordered map -- added JSON::PrintHandler -- renamed JSON::DefaultHandler to ParseHandler (breaking change!) -- fixed GH #127: Eliminate -Wshadow warnings -- fixed GH #79: Poco::Thread leak on Linux -- fixed GH #61: static_md build configs for Crypto and NetSSL -- fixed GH #130: prefer sysconf over sysctlbyname -- fixed GH #131: no timezone global var on OpenBSD -- fixed GH #102: Some subprojects don't have x64 solutions for VS 2010 -- added GH #75: Poco::Uri addQueryParameter method -- Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012 -- fixed GH #140: Poco::Runnable threading cleanup issue -- simplified default TCP/HTTPServer construction -- fixed GH #141: Application::run() documentation/implementation discrepancy -- changed RowFormatter to SharedPtr<RowFormatter> in Data::RecordSet interface (breaking change!) -- fixed GH #144: Poco::Dynamic emits invalid JSON -- removed naked pointers from Data interfaces -- fixed GH #82: name conflict in Data::Keywords::bind -- fixed GH #157: MySQL: cannot bind to 'long' data type on Windows/Visual C++ -- fixed GH #158: MySQL: MYSQL_BIND 'is_unsigned' member is not set -- fixed GH #160: MultipartReader ignores first part, if preamble is missing -- fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel -- XML: fixed an issue with parsing a memory buffer > 2 GB -- upgraded to expat 2.1.0 -- Data/ODBC: added support for setting query timeout (via setProperty - of "queryTimeout"). Timeout is int, given in seconds. -- fixed a potential endless loop in SecureStreamSocketImpl::sendBytes() - and also removed unnecessary code. -- fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so - has been unloaded. -- fixed GH #155: MailOutputStream mangles consecutive newline sequences -- fixed GH #139: FileChannel::PROP_FLUSH is invalid (contains a tab character) -- fixed GH #173: HTTPClientSession::proxyConnect forces DNS lookup of host names -- fixed GH #194: MessageNotification constructor is inefficient. -- fixed GH #189: Poco::NumberParser::tryParse() documentation bug -- fixed GH #172: IPv6 Host field is stripped of Brackets in HTTPClientSession -- fixed GH #188: Net: SocketAddress operator < unusable for std::map key -- fixed GH #128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is - already specified -- fixed GH #65: Poco::format() misorders sign and padding specifiers -- upgraded bundled SQLite to 3.7.17 -- replaced JSON parser with Poco::Web::JSON parser (from sandbox) -- added JSON conversion to Dynamic Struct and Array -- added VarIterator -- modified behavior of empty Var (empty == empty) -- added Alignment.h header for C++03 alignment needs -- added Data/WebNotifier (DB, WebSocket) example -- fixed GH #209: Poco::NumberFormatter double length -- fixed GH #204: Upgrade zlib to 1.2.8 -- fixed GH #198: The "application.configDir" property is not always created. -- fixed GH #185: Poco::NumberFormatter::format(double value, int precision) - ignore precision == 0 -- fixed GH #138: FreeBSD JSON tests fail -- fixed GH #99: JSON::Query an JSON::Object -- limited allowed types for JSON::Query to Object, Array, Object::Ptr, - Array::Ptr and empty -- fixed GH #175: HTMLForm does not read URL parameters on POST or PUT -- added GH #187: MySQL: allow access to the underlying connection handle -- added GH #186: MySQL: support for MYSQL_SECURE_AUTH -- fixed GH #174: MySQL: 4GB allocated when reading any largetext or largeblob field -- fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused - (e.g., sendRequest() is sent two times in a row without an intermediate call to - receiveResponse(), or by calling receiveResponse() two times in a row without - an intermediate call to sendRequest()) - GH #217 -- removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession - that would provide inappropriate access to internal state -- merged GH #210: Don't call CloseHandle() twice on Windows; Ability to select the - threadpool that will be used to start an Activity(Patrice Tarabbia) -- fixed GH #212: JSONConfiguration was missing from the vs90 project(Patrice Tarabbia) -- fixed GH #220: add qualifiers for FPEnvironment in C99 (Lucas Clemente) -- fixed GH #222: HTTPCookie doesn't support expiry times in the past (Karl Reid) -- fixed GH #224: building 1.5.1 on Windows for x64 -- fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work -- fixed GH# 231: Compatibility issue with Poco::Net::NetworkInterface -- fixed GH# 236: Bug in RecursiveDirectoryIterator -- added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting - colorizing log messages -- fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll -- fixed GH# 254: UTF8::icompare unexpected behavior -- Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation - (links to specifications). -- added GH# 268: Method to get JSON object value using Poco::Nullable -- fixed GH# 267: JSON 'find' not returning empty result if object is expected but another value is found -- Added support for ARM64 architecture and iPhone 5s 64-bit builds - (POCO_TARGET_OSARCH=arm64). - - -Release 1.5.1 (2013-01-11) -========================== - -- using double-conversion library for floating-point numeric/string conversions -- added Poco::istring (case-insensitive string) and Poco::isubstr -- added SQLite sys.dual (in-memory system table) -- applied SF Patch #120: The ExpireLRUCache does not compile with a tuple as key on Visual Studio 2010 -- fixed SF Bug #599: JSON::Array and JSON::Object size() member can implicitly lose precision -- fixed SF Bug #602: iterating database table rows not correct if no data in table -- fixed SF Bug #603: count() is missing in HashMap -- fixed GH #23: JSON::Object::stringify throw BadCastException -- fixed GH #16: NetworkInterface::firstAddress() should not throw on unconfigured interfaces -- Android compile/build support (by Rangel Reale) -- TypeHandler::prepare() now takes const-reference -- fixed GH #27: Poco::URI::decode() doesn't properly handle '+' -- fixed GH #31: JSON implementation bug -- fixed SF #597: Configure script ignores cflags -- fixed SF #593: Poco 1.5.0 on FreeBSD: cannot find -ldl -- added SF #542: SocketAddress() needs port-only constructor -- fixed SF #215: Wrong return type in SocketConnector.h -- applied SF Patch #97: fix c++0x / clang++ bugs -- fixed GH32/SF596: Poco::JSON: Parsing long integer (int64) value fails. -- added Net ifconfig sample (contributed by Philip Prindeville) -- merged GH #34: add algorithm header (Roger Meier/Philip Prindeville) -- fixed GH #26: Cannot compile on gcc -- merged SF #111: FTP Client logging (Marian Krivos) -- fixed GH #30: Poco::Path::home() throws when called from Windows Service -- fixed GH #22: MySQL connection string lowercased -- added MySQL support for Date/Time -- upgraded SQLite to version 3.7.15.1 (2012-12-19) -- improved SQLite execute() return (affected rows) value and added tests -- added SQLite::Utility::isThreadSafe() function -- added SQLite::Utility::setThreadMode(int mode) function -- fixed GH #36: 'distclean' requires 3 traversals of project tree -- fixed GH #41: Buffer::resize crash -- fixed GH #42: Linux unbundled builds don't link -- fixed GH #44: Problems with win x64 build -- fixed GH #46: 1.5.1 build fails on OS X when using libc++ -- fixed GH #48: Need getArgs() accessor to Util::Application to retrieve start-up arguments -- fixed GH #49: NetworkInterface::list doesn't return MAC addresses -- fixed GH #51: Android should use isfinite, isinf, isnan and signbit from the std namespace -- fixed GH #53: JSON unicode fixes and running tests on invalid unicode JSON -- added ParallelAcceptor and ParallelReactor classes -- added EOF and error to FIFOBuffer - - -Release 1.5.0 (2012-10-14) -========================== - -- added JSON library -- added Util::JSONConfiguration -- added FIFOBuffer and FIFOBufferStream -- fixed SF# 3522906: Unregistering handlers from SocketReactor -- fixed SF# 3522084: AbstractConfiguration does not support 64-bit integers -- HTTPServer::stopAll(): close the socket instead of just shutting it down, as the latter won't wake up a select() on Windows -- added SMTPLogger -- added cmake support -- fixed SF#3538778: NetworkInterface enumeration uses deprecated API -- fixed SF#3538779: IPAddress lacks useful constructors: from prefix mask, native SOCKADDR -- fixed SF#3538780: SocketAddress needs operator < function -- fixed SF#3538775: Issues building on Fedora/Centos, etc. for AMD64 -- fixed SF#3538786: Use size_t for describing data-blocks in DigestEngine -- added IPAddress bitwise operators (&,|,^,~) -- added IPAddress BinaryReader/Writer << and >> operators -- modified IPAddress to force IPv6 to lowercase (RFC 5952) -- fixed SF#3538785: SMTPClientSession::sendMessage() should take recipient list -- added IPAddress::prefixLength() -- UTF portability improvements -- fixed SF#3556186: Linux shouldn't use <net/if.h> in Net/SocketDefs.h -- added IPAddress RFC 4291 compatible site-local prefix support -- fixed SF#3012166: IPv6 patch -- added SF#3558085: Add formatter to MACAddress object -- fixed SF#3552774: Don't hide default target in subordinate makefile -- fixed SF#3534307: Building IPv6 for Linux by default -- fixed SF#3516844: poco missing symbols with external >=lipcre-8.13 -- added SF#3544720: AbstractConfigurator to support 64bit values -- fixed SF#3522081: WinRegistryConfiguration unable to read REG_QWORD values -- fixed SF#3563626: For Win32 set Up/Running flags on NetworkInterface -- fixed SF#3560807: Deprecate setPeerAddress() as this is now done in getifaddrs -- fixed SF#3560776: Fix byte-ordering issues with INADDR_* literals -- fixed SF#3563627: Set IP address on multicast socket from socket family -- fixed SF#3563999: Size BinaryWriter based on buffer's capacity(), not size() -- fixed SF#102 Fix building Poco on Debian GNU/kFreeBSD -- fixed SF#321 Binding DatTime or Timestamp -- fixed SF#307 Detect the SQL driver type at run time -- added VS 2012 Projects/Solutions -- enhanced and accelerated numeric parsing for integers and floats -- fixed SF#590 Segfault on FreeBSD when stack size not rounded -- added warn function and warnmsg macro in CppUnit -- fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x -- fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS -- fixed SF#3562244: Portability fix for AF_LINK -- fixed SF #3562400: DatagramSocketImpl comment is incorrect - - -Release 1.4.7p1 (2014-11-25) -============================ - -- Fixed Visual C++ 2010-2013 project files. Release builds now have optimization enabled. -- Poco::URI: added constructor to create URI from Path. -- fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp -- Poco::Net::HTTPClientSession: added support for global proxy configuration -- fixed GH #331: Poco::Zip does not support files with .. in the name. -- fixed a memory leak in Poco::Net::Context constructor when it fails to load the certificate - or private key files. -- upgraded bundled SQLite to 3.8.7.2 -- fixed GH #229: added missing value() function -- fixed GH #69: MySQL empty text/blob - - -Release 1.4.7 (2014-10-06) -========================== - -- fixed GH #398: PropertyFileConfiguration: input != output -- fixed GH #368: Build failure of Poco 1.4.6p2 on FreeBSD 9.2 -- fixed GH #318: Logger local time doesn't automatically account for DST -- fixed GH #317: Poco::Zip does not support newer Zip file versions. -- fixed GH #454: Fix: handle unhandled exceptions -- fixed GH #463: XML does not compile with XML_UNICODE_WCHAR_T -- fixed GH #282: Using Thread in a global can cause crash on Windows -- fixed GH #424: Poco::Timer deadlock -- fixed GH #465: Fix result enum type XML_Error -> XML_Status -- fixed GH #510: Incorrect RSAKey construction from istream -- fixed GH #332: POCO::ConsoleChannnel::initColors() assigns no color to - PRIO_TRACE and wrong color to PRIO_FATAL -- fixed GH #550: WebSocket fragmented message problem -- Poco::Data::MySQL: added SQLite thread cleanup handler -- Poco::Net::X509Certificate: improved and fixed domain name verification for - wildcard domains -- fixed a crash in Foundation testsuite with Visual C++ 2012 -- improved and fixed domain name verification for wildcard domains in - Poco::Net::X509Certificate -- updated TwitterClient sample to use new 1.1 API and OAuth -- added Poco::Clock class, which uses a system-provided monotonic clock - (if available) and is thus not affected by system realtime clock changes. - Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms - supporting clock_gettime() and CLOCK_MONOTONIC. -- Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer - have been changed to use Poco::Clock instead of Poco::Timestamp and are now - unaffected by system realtime clock changes. -- added Poco::PBKDF2Engine class template -- Poco::Net::HTTPCookie: added support for Priority attribute (backport from develop) -- fixed makedepend.* scripts to work in paths containing '.o*' - (contributed by Per-Erik Bjorkstad, Hakan Bengtsen) -- Upgraded bundled SQLite to 3.8.6 -- Support for Windows Embedded Compact 2013 (Visual Studio 2012) -- Project and solution files for Visual Studio 2013 -- Changes for C++11 compatibility. -- fixed an issue with receiving empty web socket frames (such as ping) -- improved error handling in secure socket classes -- Poco::ByteOrder now uses intrinsics if available -- added new text encoding classes: Latin2Encoding, Windows1250Encoding, Windows1251Encoding -- Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension. - Used to avoid double-compression of already compressed file formats such as images. - - -Release 1.4.6p4 (2014-04-18) -============================ - -- no longer use reverse DNS lookups for cert hostname validation -- cert hostname validation is case insensitive and more strict -- HTMLForm: in URL encoding, percent-encode more special characters -- fixed thread priority issues on POSIX platforms with non-standard scheduling policy -- XMLWriter no longer escapes apostrophe character -- fixed GH #316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime -- fixed GH #305 (memcpy in Poco::Buffer uses wrong size if type != char) -- Zip: fixed a crash caused by an I/O error (e.g., full disk) while creating a Zip archive - - -Release 1.4.6p3 (2014-04-02) -============================ - -- Fixed a potential security vulnerability in client-side X509 - certificate verification. - - -Release 1.4.6p2 (2013-09-16) -============================ - -- fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel -- XML: fixed an issue with parsing a memory buffer > 2 GB -- upgraded to expat 2.1.0 -- Data/ODBC: added support for setting query timeout (via setProperty - of "queryTimeout"). Timeout is int, given in seconds. -- fixed a potential endless loop in SecureStreamSocketImpl::sendBytes() - and also removed unnecessary code. -- fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so - has been unloaded. -- fixed GH #155: MailOutputStream mangles consecutive newline sequences -- fixed GH# 139: FileChannel::PROP_FLUSH is invalid (contains a tab character) -- fixed GH# 173: HTTPClientSession::proxyConnect forces DNS lookup of host names -- fixed GH# 194: MessageNotification constructor is inefficient. -- fixed GH# 189: Poco::NumberParser::tryParse() documentation bug -- fixed GH# 172: IPv6 Host field is stripped of Brackets in HTTPClientSession -- fixed GH# 188: Net: SocketAddress operator < unusable for std::map key -- fixed GH# 128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is - already specified -- fixed GH# 65: Poco::format() misorders sign and padding specifiers -- upgraded bundled SQLite to 3.7.17 -- upgraded bundled zlib to 1.2.8 -- fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused - (e.g., sendRequest() is sent two times in a row without an intermediate call to - receiveResponse(), or by calling receiveResponse() two times in a row without - an intermediate call to sendRequest()) - GH #217 -- removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession - that would provide inappropriate access to internal state -- fixed GH# 223 (Poco::Net::HTTPCookie does not support expiry times in the past) -- fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) - does not work -- added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting - colorizing log messages -- fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll -- fixed GH# 254: UTF8::icompare unexpected behavior -- Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation - (links to specifications). -- Added support for ARM64 architecture and iPhone 5s 64-bit builds - (POCO_TARGET_OSARCH=arm64). - - -Release 1.4.6p1 (2013-03-06) -============================ - -- fixed GH# 71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS) -- fixed an ambiguity error with VC++ 2010 in Data/MySQL testsuite -- Poco::Net::NetworkInterface now provides the interface index even for IPv4 -- added DNS::reload() as a wrapper for res_init(). -- On Linux, Poco::Environment::nodeId() first always tries to obtain the - MAC address of eth0, before looking for other interfaces. -- Poco::Net::HTTPSession now always resets the buffer in connect() to clear - any leftover data from a (failed) previous session -- fixed copysign namespace issue in FPEnvironment_DUMMY.h -- fixed a warning in Poco/Crypto/OpenSSLInitializer.h -- added a build configuration for BeagleBoard/Angstrom -- fixed GH# 109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain) -- fixed compile errors with clang -std=c++11 -- fixed GH# 116: Wrong timezone parsing in DateTimeParse (fix by Matej Knopp) -- updated bundled SQLite to 3.7.15.2 - - -Release 1.4.6 (2013-01-10) -========================== - -- changed FPEnvironment_DUMMY.h to include <cmath> instead of <math.h> -- updated bundled SQLite to 3.7.15.1 -- fixed GH# 30: Poco::Path::home() throws -- fixed SF Patch# 120 The ExpireLRUCache does not compile with a tuple as key on VS2010 -- fixed SF# 603 count() is missing in HashMap -- Crypto and NetSSL_OpenSSL project files now use OpenSSL *MD.lib library files for - static_md builds. Previously, the DLL import libs were used. -- Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012 - - -Release 1.4.5 (2012-11-19) -========================== - -- added Visual Studio 2012 project files -- buildwin.cmd now support building with msbuild for VS2010 and 2012. -- added Poco::Optional class -- fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x -- fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS -- fixed SF# 3562244: Portability fix for AF_LINK -- fixed SF# 3562400: DatagramSocketImpl comment -- fixed SF# 594: Websocket fails with small masked payloads -- fixed SF# 588: Missing POCO_ARCH and POCO_ARCH_LITTLE_ENDIAN define for WinCE on SH4 -- fixed SF# 581: Out-of-bound array access in Unicode::properties() function. -- fixed SF# 590: Segfault on FreeBSD when stack size not rounded -- fixed SF# 586: Poco::DateTimeParser and ISO8601 issues when seconds fraction has more than 6 digits -- Poco::Net::HTTPSSessionInstantiator::registerInstantiator() now optionally accepts a - Poco::Net::Context object. -- added Poco::XML::XMLWriter::depth() member function. -- added Poco::XML::XMLWriter::uniquePrefix() and Poco::XML::XMLWriter::isNamespaceMapped(). -- Poco::FileChannel now supports a new rotateOnOpen property (true/false) which can be used - to force rotation of the log file when it's opened. -- fixed a bug in Poco::XML::XMLWriter::emptyElement(): need to pop namespace context -- OS X builds now use Clang as default compiler -- Updated SQLite to 3.7.14.1 -- POCO_SERVER_MAIN macro now has a try ... catch block for Poco::Exception and writes - the displayText to stderr. -- Poco/Platform.h now defines POCO_LOCAL_STATIC_INIT_IS_THREADSAFE macro if the compiler - generates thread-safe static local initialization code. - - -Release 1.4.4 (2012-09-03) -========================== - -- ZipStream now builds correctly in unbundled build. -- added proxy digest authentication support to Net library -- integrated MySQL BLOB fixes from Franky Braem. -- use standard OpenSSL import libraries (libeay32.lib, ssleay32.lib) for Crypto and - NetSSL_OpenSSL Visual Studio project files. -- fixed a potential buffer corruption issue in Poco::Net::SecureStreamSocket if lazy - handshake is enabled and the first attempt to complete the handshake fails -- Poco::DateTimeParser::tryParse() without format specifier now correctly parses ISO8601 - date/times with fractional seconds. -- Poco::Process::launch() now has additional overloads allowing to specify an initial - directory and/or environment. -- Poco::Net::FTPClientSession: timeout was not applied to data connection, only to - control connection. -- Fixed potential IPv6 issue with socket constructors if IPv6 SocketAddress is given - (contributed by ??????? ????????? <milovidov@yandex-team.ru>). -- Added an additional (optional) parameter to Poco::Thread::setOSPriority() allowing to - specify a scheduling policy. Currently this is only used on POSIX platforms and allows - specifying SCHED_OTHER (default), SCHED_FIFO or SCHED_RR, as well as other - platform-specific policy values. -- Added Poco::Crypto::DigestEngine class providing a Poco::DigestEngine interface to - the digest algorithms provided by OpenSSL. -- Fixed some potential compiler warnings in Crypto library -- In some cases, when an SSL exception was unexpectedly closed, a generic Poco::IOException - was thrown. This was fixed to throw a SSLConnectionUnexpectedlyClosedException instead. -- Added Poco::ObjectPool class template. -- Poco::Net::HTTPServer has a new stopAll() method allowing stopping/aborting of all - currently active client connections. -- The HTTP server framework now actively prevents sending a message body in the - response to a HEAD request, or in case of a 204 No Content or 304 Not Modified - response status. -- fixed a DOM parser performance bug (patch by Peter Klotz) -- fixed SF# 3559325: Util Windows broken in non-Unicode -- updated iOS build configuration to use xcode-select for finding toolchain -- Poco::Net::SecureSocketImpl::shutdown() now also shuts down the underlying socket. -- fixed SF# 3552597: Crypto des-ecb error -- fixed SF# 3550553: SecureSocketImpl::connect hangs -- fixed SF# 3543047: Poco::Timer bug for long startInterval/periodic interval -- fixed SF# 3539695: Thread attributes should be destroyed using the pthread_attr_destroy() -- fixed SF# 3532311: Not able to set socket option on ServerSocket before bind - Added Poco::Net::Socket::init(int af) which can be used to explicitely - initialize the underlying socket before calling bind(), connect(), etc. -- fixed SF# 3521347: Typo in UnWindows.h undef -- fixed SF# 3519474: WinRegistryConfiguration bug - Also added tests and fixed another potential issue with an empty root path passed to the constructor. -- fixed SF# 3516827: wrong return value of WinRegistryKey::exists() -- fixed SF# 3515284: RSA publickey format(X.509 SubjectPublicKeyInfo) -- fixed SF# 3503267: VxWorks OS prio is not set in standard constructor -- fixed SF# 3500438: HTTPResponse failure when reason is empty -- fixed SF# 3495656: numberformater, numberparser error in mingw -- fixed SF# 3496493: Reference counting broken in TaskManager postNotification -- fixed SF# 3483174: LogFile flushing behavior on Windows - Flushing is now configurable for FileChannel and SimpleFileChannel - using the "flush" property (true or false). -- fixed SF# 3479561: Subsequent IPs on a NIC is not enumerated -- fixed SF# 3478665: Permission checks in Poco::File not correct for root -- fixed SF# 3475050: Threading bug in initializeNetwork() on Windows -- fixed SF# 3552680: websocket small frames bug and proposed fix -- fixed a WebSocket interop issue with Firefox -- added Poco::Net::MessageHeader::hasToken() -- Poco::AtomicCounter now uses GCC 4.3 builtin atomics on more platforms -- fixed SF# 3555938: NetSSL: socket closed twice -- socket exceptions now include OS error code -- fixed SF# 3556975: Need to fix Shared Memory for memory map -- Poco::Net::SecureSocketImpl::close() now catches exceptions thrown by its call to shutdown(). -- fixed SF# 3535990: POCO_HAVE_IPv6 without POCO_WIN32_UTF8 conflict -- fixed SF# 3559665: Poco::InflatingInputStream may not always inflate completely -- added Poco::DirectoryWatcher class -- fixed SF# 3561464: Poco::File::isDevice() can throw due to sharing violation -- Poco::Zip::Compress::addRecursive() has a second variant that allows to specify the compression method. -- Upgraded internal SQLite to 3.7.14 - - -Release 1.4.3p1 (2012-01-23) -============================ - -- fixed SF# 3476926: RegDeleteKeyEx not available on Windows XP 32-bit - - -Release 1.4.3 (2012-01-16) -========================== - -- fixed a compilation error with Data/MySQL on QNX. -- fixed Util project files for WinCE (removed sources not compileable on CE) -- removed MD2 license text from Ackowledgements document -- fixed iPhone build config for Xcode 4.2 (compiler name changed to llvm-g++) -- Poco::Util::XMLConfiguration: delimiter char (default '.') is now configurable. - This allows for working with XML documents having element names with '.' in them. -- Poco::Util::OptionProcessor: Required option arguments can now be specified as - separate command line arguments, as in "--option value" in addition to the - "--option=value" format. -- Poco::Util::HelpFormatter: improved option help formatting if indentation has - been set explicitely. -- added Mail sample to NetSSL_OpenSSL, showing use of Poco::Net::SecureSMTPClientSession. -- added additional read() overloads to Poco::Net::HTMLForm. -- fixed SF# 3440769: Poco::Net::HTTPResponse doesn't like Amazon EC2 cookies. -- added support for requiring TLSv1 to Poco::Net::Context. -- added an additional constructor to Poco::Net::HTTPBasicCredentials, allowing - the object to be created from a string containing a base64-encoded, colon-separated - username and password. -- Poco::Zip::ZipStreamBuf: fixed a crash if CM_STORE was used. -- Added setContentLength64() and getContentLength64() to Poco::Net::HTTPMessage. -- added Poco::Environment::osDisplayName(). -- fixed SF# 3463096: WinService leaves dangling handles (open() now does not reopen the - service handle if it's already open) -- fixed SF# 3426537: WinRegistryConfiguration can't read virtualized keys -- added Poco::Buffer::resize() -- fixed SF# 3441822: thread safety issue in HTTPClientSession: - always use getaddrinfo() instead of gethostbyname() on all platforms supporting it -- added version resource to POCO DLLs -- fixed SF# 3440599: Dir Path in Quotes in PATH cause PathTest::testFind to fail. -- fixed SF# 3406030: Glob::collect problem -- added Poco::Util::AbstractConfiguration::enableEvents() -- Poco::AtomicCounter now uses GCC builtins with GCC 4.1 or newer - (contributed by Alexey Milovidov) -- made Poco::Logger::formatDump() public as it may be useful for others as well - (SF# 3453446) -- Poco::Net::DialogSocket now has a proper copy constructor (SF# 3414602) -- Poco::Net::MessageHeader and Poco::Net::HTMLForm now limit the maximum number of - fields parsed from a message to prevent certain kinds of denial-of-service - attacks. The field limit can be changed with the new method setFieldLimit(). - The default limit is 100. -- Poco::NumberFormatter, Poco::NumberParser and Poco::format() now always use the - classic ("C") locale to format and parse floating-point numbers. -- added Poco::StreamCopier::copyStream64(), Poco::StreamCopier::copyStreamUnbuffered64() - and Poco::StreamCopier::copyToString64(). These functions use a 64-bit integer - to count the number of bytes copied. -- upgraded internal zlib to 1.2.5 -- upgraded internal sqlite to 3.7.9 -- XML: integrated bugfix for Expat bug# 2958794 (memory leak in poolGrow) -- Added support for HTTP Digest authentication (based on a contribution by - Anton V. Yabchinskiy (arn at bestmx dot ru)). For information on how - to use this, see the Poco::Net::HTTPCredentials, Poco::Net::HTTPDigestCredentials - and Poco::Net::HTTPAuthenticationParams classes. -- Poco::Net::HTTPStreamFactory and Poco::Net::HTTPSStreamFactory now support Basic - and Digest authentication. Username and password must be provided in the URI. -- added Poco::Net::WebSocket, supporting the WebSocket protocol as described in RFC 6455 -- NetSSL_OpenSSL: added client-side support for Server Name Indication. - Poco::Net::SecureSocketImpl::connectSSL() now calls SSL_set_tlsext_host_name() - if its available (OpenSSL 9.8.6f and later). -- added Poco::Net::HTTPClientSession::proxyConnect() (factored out from - Poco::Net::HTTPSClientSession::connect()) -- added Poco::Process::kill(const Poco::ProcessHandle&) which is preferable to - kill(pid) on Windows, as process IDs on Windows may be reused. -- fixed SF# 3471463: Compiler warnings with -Wformat -- Poco::Util::Application::run() now catches and logs exceptions thrown in initialize() -- Fixed a WinCE-specific bug in Poco::Util::ServerApplication where uninitialize() would - be called twice. -- fixed SF# 3471957: WinRegistryKey::deleteKey() unable to delete alt views -- Added additional constructor to Poco::ScopedLock and Poco::ScopedLockWithUnlock - accepting a timeout as second argument. -- Added Poco::Logger::parseLevel() -- Poco::format(): an argument that does not match the format - specifier no longer results in a BadCastException. The string [ERRFMT] is - written to the result string instead. -- PageCompiler: added createSession page attribute. - - -Release 1.4.2p1 (2011-09-24) -============================ - -- On Linux, the RTLD_DEEPBIND option is no longer passed to dlopen(). - This change was introduced in 1.4.2 to solve a specific problem one customer - was having. Unfortunately, it leads to problems with RTTI. -- It's now possible to pass flags (SHLIB_GLOBAL, SHLIB_LOCAL) to - Poco::SharedLibrary::load() (and the constructor implicitly calling load()), - controlling the mode flags (RTLD_GLOBAL, RTLD_LOCAL) passed to dlopen(). - On platforms not using dlopen(), these flags are ignored. -- fixed SF# 3400267: Path_WIN32.cpp bug - - -Release 1.4.2 (2011-08-28) -========================== - -- added Poco::DateTimeFormat::ISO8601_FRAC_FORMAT -- added new Poco::DateTimeFormatter and Poco::DateTimeParser format specifier: - %s for seconds with optional fractions of a second -- fixed a problem with ioctl() on BSD platforms (including OS X) where the - second argument to ioctl() is unsigned long instead of int, causing bad - things on a OS X 64-bit kernel. -- fixed a potential endless loop when enumerating IPv6 network addresses - (reported by Laurent Carcagno) -- new compile-time config option on Windows to set thread names in - debugger. Enable with -DPOCO_WIN32_DEBUGGER_THREAD_NAMES. Available - only in debug builds. -- Cipher can now create Base64 and HexBinary encoded output without linefeeds - (suitable for use in cookies, etc.) -- added Poco::Path::popFrontDirectory() -- improved VxWorks support -- IPv6 fixes: added proper scope id handling in IPAddress, SocketAddress - and related classes. -- Added Poco::Net::ServerSocket::bind6() which allows control over the - IPPROTO_IPV6/IPV6_V6ONLY socket option. -- Removed Poco::MD2Engine class due to licensing issues (the - license for the MD2 code from RSA only allows non-commercial - use). Note that the MD4 and MD5 code from RSA does not have - this issue. -- fixed a Net HTTP client testsuite issue where some tests might - have failed due to prematurely aborted connections by - the HTTPTestServer. -- Poco::Net::SocketAddress: when there is more than one address - returned by a DNS lookup for a name, IPv4 addresses will be - preferred to IPv6 ones. -- NetworkInterface::list() now also returns IPv4 interfaces on Windows when - built with -DPOCO_HAVE_IPv6 -- XMLWriter: fixed a bug with attribute namespaces (no namespace prefix - written if attribute namespace is the same as element namespace) -- fixed SF# 3378588: Mismatched new[]/delete (in RSAEncryptImpl and RSADecryptImpl) -- fixed SF# 3212954 (OpenSSLInitializer::uninitialize() crash) and - SF# 3196862 (Static OpenSSLInitializer instance causes Windows deadlocks) by - removing the static Poco::Crypto::OpenSSLInitializer instance. Automatic OpenSSL - initialization is now done through Poco::Crypto::Cipher, Poco::Crypto::CipherKey, - Poco::Crypto::X509Certificate, Poco::Net::Context classes; however, it is still - recommended to call Poco::Crypto::initializeCrypto() and - Poco::Crypto::uninitializeCrypto() early at application startup, and late at - shutdown respectively (or Poco::Net::initializeSSL()/Poco::Net::uninitializeSSL() - if the NetSSL library is used) to avoid multiple full OpenSSL init/uninit cycles - during application runtime. -- Poco::Logger now also support a symbolic log level "none" - (for use with setLevel()) that disables logging completely - for that Logger (equivalent to setLevel(0)). -- Added experimental Android support, using the existing gmake-based - build system. -- fixed SF# 3288584: DateTimeFormatter link error -- fixed SF# 3187117: Typo in InflatingInputStream doc -- fixed SF# 3309731: _WIN32_WCE comparison should be with 0x600 not 600 -- fixed SF# 3393026: RegularExpression.h identical enum value -- fixed SF# 3274222: AtomicCounter's postfix operators aren't atomic on Windows -- fixed SF# 3317177: Handle leak on windows -- fixed SF# 3181882: Poco::URI::getPathEtc() double-encodes query -- fixed SF# 3379935: ThreadPool Start Bug -- fixed SF# 3354451: Poco::Format::parsePrec never sets the precision to zero -- fixed SF# 3387258: _MAX_PATH used but unknown in Path_WIN32 -- fixed a problem in RSAKeyImpl where direct access to the RSA in a EVP_PKEY - would no longer work in recent OpenSSL versions. Using EVP_PKEY_get1_RSA() - fixes the issue. -- added Poco::Crypto::EncryptingInputStream, Poco::Crypto::EncryptingOutputStream, - Poco::Crypto::DecryptingInputStream and Poco::Crypto::DecryptingOutputStream. -- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException -- fixed SF# 3178098: Add constructor to Poco::TemporaryFile to specify directory -- fixed SF# 3175310: Absolute path when device -- fixed SF# 3301207: Guided tour example contradicts apidoc (API doc was wrong) -- Poco::Net::HTTPMessage::setContentLength() and Poco::Net::HTTPMessage::getContentLength() now - use std::streamsize instead of int. This enables 64-bit Content-Length support at least - on 64-bit platforms. -- fixed SF# 3177530: TemporaryFile::tempName() + glob bug on xp -- fixed SF# 3177372: FileChannel documentation inconsistency -- added %E format specifier to Poco::PattermFormatter (epoch time in seconds - since midnight, January 1 1970) -- On Windows, Poco::Util::ServerApplication now supports a /description command - line argument for specifying a service description (together with /registerService) -- added Poco::Util::WinService::setDescription() and - Poco::Util::WinService::getDescription() -- fixed SF# 3155477: Incorrect URI path handling -- fixed SF# 3309736: Extended Exception macros to set default exception code - new macro is named POCO_DECLARE_EXCEPTION_CODE -- added getter functions for modulus and exponents to Poco::Crypto::RSAKey. -- added Poco::Net::SocketAddress::operator == () and - Poco::Net::SocketAddress::operator != () -- fixed SF# 3182746: IPAddress.cpp IPv6 bug on big-endian -- fixed SF# 3196961: Unix daemon fails to loadConfiguration() if started from cwd -- fixed SF# 3393700: NotificationCenter may call a removed observer and crash. -- Reworked implementation of the events framework (Poco::BasicEvent and friends). - The framework is now completely multithreading save (even in the case that - an event subscriber object unsubscribes and is deleted while an event is - being dispatched). Also, the restriction that any object can only register - one delegate for each event has been removed. For most cases, dispatching - events should be faster, as dispatching an event now needs less dynamic memory - allocations. -- fixed SF# 3178109: getNodeByPath() changes: - getNodeByPath() and getNodeByPathNS() have been moved to Poco::XML::Node. - Furthermore, when invoked on a Poco::XML::Document, the behavior has changed - so that the document element is now included when traversing the path (previously, - traversal would start at the document element, now it starts at the document). - The path expression can now start with a double-slash, which results in a recursive - search for the path's first element in the DOM tree. -- fixed SF# 3382935: String data being truncated using ODBC, and - SF# 2921813: Wrong implementation of the ODBC string binding - - -Release 1.4.1p1 (2011-02-08) -============================ - -- Poco::Mutex is now a recursive mutex again on Linux - (this was caused by an unfortunate feature test for - PTHREAD_MUTEX_RECURSIVE which did not work on Linux - as PTHREAD_MUTEX_RECURSIVE is an enum value and not - a macro) -- Poco::Net::SecureSocketImpl::abort() now only shuts - down the underlying socket connection and does not free - the SSL object, due to multithreading issues. - - -Release 1.4.1 (2011-01-29) -========================== - -- fixed SF# 3150223: Poco::BinaryReader cannot read std::vector correctly -- fixed SF# 3146326: SharedMemory issue -- made Poco::Net::HTTPSession::abort() virtual -- added Poco::Net::SecureStreamSocket::abort() to immediately close - a SSL/TLS connection without performing an orderly SSL/TLS shutdown. -- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException. - Added try/catch block to Poco::Net::SecureSocketImpl destructor. -- added additional constructor to Poco::Net::HTTPSClientSession, taking - both a socket and a session object. -- Poco::Net::HTTPSession::abort() now also can be used with a - Poco::Net::HTTPSClientSession. -- fixed SF# 3148045: make clean and distclean issues -- changed Data library names on Unix/Linux platforms to - match the names on Windows (PocoSQLite -> PocoDataSQLite, - PocoMySQL -> PocoDataMySQL, PocoODBC -> PocoDataODBC) -- added additional options to configure script -- added additional documentation to Poco::Net::HTTPClientSession -- Poco::Net::HTTPClientSession::receiveResponse() closes the connection - if an exception is thrown while reading the response header. - This ensures that a new connection will be set up for the next request - if persistent connections are used. -- improved Poco::Net::MultipartDecoder performance by reading directly from streambuf -- improved performance of Poco::Base64Encoder, Poco::Base64Decoder, - Poco::HexBinaryEncoder and Poco::HexBinaryDecoder by working directly with the - given stream's streambuf. -- improved performance of MessageHeader::read() by reading directly from streambuf - instead of istream. -- it is now possible to specify additional MIME part header fields - for a MIME part through the Poco::Net::PartSource class. -- upgraded SQLite to release 3.7.4 -- added experimental VxWorks support for VxWorks 5.5.1/Tornado 2.2 and - newer. Please see the VxWorks Platform Notes in the reference documentation - for more information. Currently, the VxWorks is untested; full support - will be available in release 1.4.2. -- fixed SF# 3165918: Poco::DynamicAny fails to convert from string to float -- fixed SF# 3165910: Poco::Net::MessageHeader does not accept HTTP conforming header -- made Poco::Task::cancel() virtual so that tasks can implement custom - cancellation behavior. -- added optional argument to Poco::Util::WinRegistryKey constructor - to specify additional flags (in addition to KEY_READ and KEY_WRITE) - for the samDesired argument of RegOpenKeyEx() or RegCreateKeyEx(). -- improved Poco::BasicEvent::notify() performance by avoiding an unnecessary heap - allocation. -- added additional well-known port numbers to Poco::URI: rtsp, sip, sips, xmpp. -- added Poco::Net::MediaType::matchesRange() -- improved invalid socket handling: a Poco::Net::InvalidSocketException is - now thrown instead of an assertion when an operation is attempted on a closed or - otherwise uninitialized socket. - - -Release 1.4.0 (2010-12-14) -========================== - -- SSLManager: documentation fixes, code cleanup -- SSLManager: renamed PrivateKeyPassPhrase event to PrivateKeyPassphraseRequired -- added HTTPServerRequestImpl::socket() to get access to the underlying socket -- added Socket::secure() to find out whether a given socket supports SSL/TLS -- added SecureStreamSocket::havePeerCertificate() -- NetSSL: added support for turning off extended certificate validation (hostname matching) -- fixed SF# 2941228: ICMPClient::ping() issues on Mac OS X -- fixed SF# 2941231: ICMPEventArgs out of bounds array access -- added PageCompiler sample -- added missing newline at end of xmlparse.c -- Poco::Glob can now be used with an empty pattern which will match nothing (patch from Kim Graesman) -- added support for HTTP proxy authentication (Basic authentication only) -- fixed SF# 2958959: XMLWriter must encode CR, LF and TAB in attribute values as character entities. -- HTMLForm now supports PUT requests as well (see <http://pocoproject.org/forum/viewtopic.php?f=12&t=2163&p=3930#p3930>) -- fixed SF# #2970521: FileOutputStream and file permissions. - (also fixed in File class) -- removed an unused (and wrong) default parameter from EventImpl constructor for WIN32. -- added full support for session caching to NetSSL_OpenSSL -- fixed SF# 2984454: Poco::Util::Timer::scheduleAtFixedRate() works incorrectly -- fixed a bug in Poco::Util::Timer that could lead to high CPU load if - the system clock is moved forward. -- added system.nodeId to SystemConfiguration -- added a note to Poco::Util::ServerApplication documentation regarding - creation of threads -- added Poco::Net::IPAddress::broadcast() and Poco::Net::IPAddress::wildcard() to - create broadcast (255.255.255.255) and wildcard (0.0.0.0) addresses. -- fixed SF# 2916154: Poco::Net::IPAddress::isLoopback() only works for 127.0.0.1. -- added build configuration for iPhone Simulator -- GNU Make based build system provides new variables: POCO_HOST_BINDIR, POCO_HOST_BINPATH, - POCO_HOST_LIBDIR, POCO_HOST_LIBPATH and POCO_TARGET_* equivalents. -- Application::initialize() and Application::uninitialize() will now be called from within run(). - This solves various issues with uninitialize() not being called, or being called inappropriately - from the Application destructor. - Please note that this change will break applications that use the Application class, - but only call init() and not run(). -- added /startup option to specify startup mode for Windows services (automatic or manual) -- fixed SF# 2967354: SecureSocketImpl shutdown/close problem -- fixed SF# 3006340: LinearHashTable grows even if key already exists -- fixed a particularly nasty Windows error handling issue that manifested itself on WinCE: - WSAGetLastError() would be called after a std::string was created. The string creation could result - in a heap operation which called a Windows API to allocate memory. This would reset the - GetLastError() error code. Since WSAGetLastError() is just an alias for GetLastError(), the actual - error code from the socket operation would be lost. -- upgraded SQLite to 3.7.3 -- added --header-prefix option to PageCompiler -- fixed SF# 3003875: SQLite data binding is broken -- fixed SF# 2993988: Issue with multiple calls to open()/close() on File*Stream -- fixed SF# 2990256: HTMLForm and file uploads -- fixed SF# 2969227: DateTimeParser bug -- fixed SF# 2966698: Socket connect with timeout issue -- fixed SF# 2981041: Bind NULL to a query (patch supplied) -- fixed SF# 2961419: UTF8Encoding::convert() doesn't work properly in DEBUG mode -- fixed SF# 2957068: Timeout value not picked up by proxy in HTTPSClientSession -- fixed NetSSL_OpenSSL test runner for Poco::Util::Application class changes -- Poco::AbstractEvent, Poco::AbstractCache and related classes now accept a Mutex class as additional template argument. - Poco::NullMutex can be used if no synchronization is desired. -- Added Poco::AbstractEvent::empty() to check whether an event has registered delegates. -- Poco::URI now correctly handles IPv6 addresses. -- Added Poco::Nullable class template. -- Added Poco::NullMutex, a no-op mutex to be used as template argument for template classes - taking a mutex policy argument. -- Poco::XML::XMLWriter: fixed a namespace handling issue that occured with startPrefixMapping() and endPrefixMapping() -- Poco::Net::Context now allows for loading certificates and private keys from Poco::Crypto::X509Certificate objects - and Poco::Crypto::RSAKey objects. -- Poco::Crypto::RSAKey no longer uses temporary files for stream operations. Memory buffers are used instead. -- fixed SF# 2957865: added Poco::UUID::tryParse() -- All Zip classes now use Poco::File[Input|Output]Stream instead of std::[i|o]fstream. - UTF-8 filenames will now be handled correctly on Windows. -- fixed SF# 2902029: zlib flush support (Z_SYNC_FLUSH) -- added Poco::TextBufferIterator class -- fixed SF# 2977249: Use epoll instead select under Linux - Socket::select() and Socket::poll() will use epoll under Linux if the Net library is compiled - with -DPOCO_HAVE_FD_EPOLL. This is the default for the Linux build configuration (but not for - the various build configurations targeting embedded Linux platforms). -- fixed SF# 2941664: Memory leak in DeflatingStream with zero-length streams (also fixed some other potential, - but unlikely, memory leaks) -- fixed SF# 2946457: added RejectCertificateHandler -- fixed SF# 2946621: Poco::Path bug with POCO_WIN32_UTF8 -- fixed SF# 2929805: Environment::nodeId() does not work if no eth0 device exists -- Environment::nodeId() no longer throws if no hardware ethernet address can be determined. - It returns an all-zero address instead. -- Added additional classification functions to Poco::Unicode class; made classification functions inline. -- added Ascii class for ASCII character classification. - Methods of the Ascii class are now used instead of the - standard library functions (std::isspace(), etc.) due to - possible inconsistent results or assertions when the - standard library functions are used with character codes - outside the ASCII range. -- Poco::Net::MailMessage: fixed a bug in StringPartHandler that resulted in incorrect handling of non-ASCII data if - char is signed. -- Improved Poco::Net::SMTPClientSession compatibility with various mail servers when using AUTH_LOGIN authentication. -- Added CRAM-SHA1 support to Poco::Net::SMTPClientSession -- Poco::Net::SMTPClientSession now also supports login with AUTH PLAIN. -- Added Poco::Net::SecureSMTPClientSession class, supporting STARTTLS for secure SMTP connections. -- fixed an issue with SharedMemory on POSIX systems, where a shared memory region would be deleted - despite the server flag set to true (see http://pocoproject.org/forum/viewtopic.php?f=12&t=3494). -- PageCompiler: added a new page context directive, to allow passing custom context objects to the - request handler. -- fixed StreamSocketImpl::sendBytes() for non-blocking sockets -- added Poco::Net::DialogSocket::receiveRawBytes(), which should be used instead of receiveBytes() due to internal - buffering by DialogSocket. -- DOMParser: FEATURE_WHITESPACE has been renamed to FEATURE_FILTER_WHITESPACE (which now matches the underlying URI) - and is now handled correctly (previously we did the exact reverse thing) -- added Poco::Util::AbstractConfiguration::remove() to remove a configuration property; added removeRaw() implementations - to all implementations (contributions by Daniel Hobi and Alexey Shults). -- fixed NetSSL_OpenSSL compilation error on Windows with OpenSSL 1.0 -- Added optional FIPS mode support to NetSSL_OpenSSL (contributed by Lior Okman). - If OpenSSL has been configured and built with FIPS support, then FIPS support can - be enabled by calling Poco::Crypto::OpenSSLInitializer::enableFIPSMode(true); or - by setting the fips property in the OpenSSL configuration to true (see Poco::Net::SSLManager - for details). -- fixed SF# 3031530: Ping and possible no timeout -- added Poco::Net::SocketReactor::onBusy(), called whenever at least one notification will - be dispatched. -- fixed SF# 3034863: Compiler warning in net/IPAddress.h with poco 1.3.2 -- added support for CRAM-SHA1 authentication to SMTPClientSession -- Poco::format(): arguments can now be addressed by their index, e.g. %[2]d -- Poco::Util::Timer::cancel() now accepts an optional boolean argument. - If true is passed, cancel() waits until the task queue has been purged. - Otherwise, it returns immediately and works asynchronously, as before. -- Poco::Net::HTTPServerResponse::redirect() now accepts an optional additional - argument to specify the HTTP status code for the redirection. -- fixed a warning (BinaryReader.cpp) and error (ThreadLocal.cpp) in Foundation when compiling with Visual Studio 2010 -- fixed a wrong exception in Poco::Net::POP3ClientSession -- Poco::Net::FTPClientSession and Poco::Net::SMTPClientSession now set the error code in exceptions they throw -- fixed a potential race condition with terminating a Windows service based on Poco::Util::ServerApplication -- fixed a bug in global build configuration file: explicitly setting POCO_CONFIG did not work on Solaris platforms, - as it was always overridden by the automatically determined configuration. -- Added support for MinGW cross builds on Linux. -- Changed location of statically linked build products in the gmake-based build system. - Statically linked executables are now in bin/$(OSNAME)/$(OSARCH)/static and no longer - have the _s suffix -- The POCO_VERSION macro now is in its own header file, "Poco/Version.h". It is no longer - available through "Poco/Foundation.h". -- added Poco::Net::HTTPCookie::escape() and Poco::Net::HTTPCookie::unescape(). -- fixed SF# 3021173: Thread (POSIX) returns uninitialised value for OS priority -- fixed SF# 3040870: ThreadPool has no function to get assigned name -- fixed SF# 3044303: Can't use own config file on Solaris & OSARCH_64BITS ignored -- fixed SF# 2943896: AsyncChannel::log blocks -- fixed a bug in Poco::Util::WinRegistryKey::getInt(): - The size variable passed to RegQueryValueExW() should be initialized to the size - of the output buffer. -- Added rudimentary support for compiling with Clang 2.0 (Xcode 4) on Mac OS X. -- New build configurations for Mac OS X: Darwin32 and Darwin64 for explicit - 32-bit and 64-bit builds. Note that the default Darwin build configuration - will build 64-bit on Snow Leopard and 32-bit on Leopard, but will always place - build products in Darwin/i386. The new Darwin32 and Darwin64 configurations - will use the correct directories. -- fixed SF# 3051598: Bug in URL encoding -- Poco::ThreadPool::stopAll() (and thus also the destructor) will now wait for each - pooled thread to terminate before returning. This fixes an issue with creating - and orderly shutting down a thread pool in a plugin. Previously, a pooled thread - in a thread pool created by a dynamically loaded library might still be running - when the plugin's shared library was unloaded, resulting in Bad Things happening. - This can now no longer happen. As a downside, a pooled thread that fails to - finish will block stopAll() and the destructor forever. -- NetSSL_OpenSSL: for a SecureStreamSocket, available() now returns the number of bytes that - are pending in the SSL buffer (SSL_pending()), not the actual socket buffer. -- Added Poco::Net::HTTPClientSession::secure() to check for a secure connection. -- Poco::Net::HTTPRequest::setHost() now does not include the port number in the Host header - if it's either 80 or 443. -- log messages can now optionally include source file path and line number -- Poco::PatternFormatter can format source file path and line number (%U, %u) -- logging macros (poco_information(), etc.) now use __LINE__ and __FILE__ -- new logging macros that incorporate Poco::format(): poco_information_f1(logger, format, arg) with up to 4 arguments -- added Poco::Net::HTTPSession::attachSessionData() and Poco::Net::HTTPSession::sessionData() - to attach arbitrary data to a HTTP session. -- added additional constructors to zlib stream classes that allow passing - a windowBits parameter to the underlying zlib library. -- fixed a potential error handling issue in Poco::Net::SecureSocketImpl. -- fixed SF# 3110272: RSACipherImpl bug. -- fixed SF# 3081677: ConfigurationView's getRaw not retrieving xml attributes. -- added basic support for Canonical XML and better pretty-printing support to Poco::XML::XMLWriter. -- Poco::Util::AbstractConfiguration now supports events fired when changing or - removing properties. -- XML: added support for finding DOM nodes by XPath-like - expressions. Only a very minimal subset of XPath is supported. - See Poco::XML::Element::getNodeByPath(), Poco::XML::Element::getNodeByPathNS() - and the same methods in Poco::XML::Document. -- Poco::Timer: If the callback takes longer to execute than the - timer interval, the callback function will not be called until the next - proper interval. The number of skipped invocations since the last - invocation will be recorded and can be obtained by the callback - by calling skipped(). -- Poco::BinaryReader and Poco::BinaryWriter now support reading and - writing std::vectors of the supported basic types. Also, strings - can now be written in a different encoding (a Poco::TextEncoding - can be optionally passed to the constructor). -- Poco::UUID::nil() and Poco::UUID::isNil() have been renamed to - Poco::UUID::null() and Poco::UUID::isNull(), respectively, to avoid - issues with Objective-C++ projects on Mac OS X and iOS where nil is - a system-provided macro. -- Crypto bugfixes: RSACipherImpl now pads every block of data, not just the - last (or last two). -- Improved Crypto testsuite by adding new tests -- Added new Visual Studio project configurations: debug_static_mt and release_static_mt - (linking with static runtime libraries). The existing configurations debug_static - and release_static have been renamed to debug_static_md and release_static_md, respectively. - The suffixes of the static libraries have also changed. The static_md configurations - now build libraries with suffixes md[d], while the libraries built by the static_mt - configurations have mt[d] suffixes. -- Added Visual Studio project files for 64-bit builds. -- Added Visual Studio 2010 project files. -- Removed the use of local static objects in various methods due to - their construction not being threadsafe (and thus leading to - potential race conditions) on Windows/Visual C++. -- Fixed some warning on 64-bit Windows builds. -- The name of the Data connector libraries have changed. They are now - named PocoDataMySQL, PocoDataODBC and PocoDataSQLite. -- fixed SF# 3125498: Linux NetworkInterface::list() doesn't return IPv6 IPs -- fixed SF# 3125457: IPv6 IPAddress tests are wrong -- Added initialization functions for the NetSSL_OpenSSL and Crypto libraries. - These should be called instead of relying on automatic initialization, - implemented with static initializer objects, as this won't work with - statically linked executables (where the linker won't include the - static initializer object). - The functions are Poco::Crypto::initializeCrypto(), Poco::Crypto::uninitializeCrypto(), - Poco::Net::initializeSSL() and Poco::Net::uninitializeSSL(). - Applications using Crypto and/or NetSSL should call these methods appropriately at - program startup and shutdown. - Note: In release 1.3.6, similar functions have been added to the Net library. - - -Release 1.3.6p2 (2010-01-15) -============================ - -- fixed an issue in the Windows implementation Poco::RWLock, where - tryReadLock() sometimes would return false even if no writers - were using the lock (fix contributed by Bjrn Carlsson) -- added Poco::Environment::libraryVersion(). -- fixed SF# 2919461: Context ignores parameter cypherList -- removed an unused enum from RSACipherImpl.cpp (Crypto) -- integrated a new expat patch for CVE-2009-3560. -- fixed SF# 2926458: SSL Context Problem. The Poco::Net::Context - class now makes sure that OpenSSL is properly initialized. -- updated iPhone build configuration (contributed by Martin York) -- fixed SF# 1815124 (reopened): XML Compile failed on VS7.1 with - XML_UNICODE_WCHAR_T -- fixed SF# 2932647: FTPClientSession::getWorkingDirectory() returns a bad result - - -Release 1.3.6p1 (2009-12-21) -============================ - -- 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 <iface-Obj>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 -- 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<HTTPServerParams> -- 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:<path>" or "/B:<path>". - 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 - - -Release 1.3.3p1 (2008-10-09) -============================ - -- 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 phireis@gmail.com 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. <cstring>) instead of - C ones (<string.h>). 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 <windows.h> 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 -- 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 (info@appinf.com) 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 - - -Release 1.1b2 (2006-03-04) -========================== - -- made NetSSL threadsafe (added locking callbacks for OpenSSL) -- improved OpenSSL initialization (random generator seeding) -- various changes to improve compatibility with various platforms - - -Release 1.1b1 (2006-03-03) -========================== - -- 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 -- 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 - - -Release 1.0b2 (2006-01-16) -========================== - -- 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 - - -Release 1.0b1 (2006-01-09) -========================== - -- 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 - - -Release 1.0a1 (2006-01-03) [internal] -===================================== - -- 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++ <locale> 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. +This is the changelog file for the POCO C++ Libraries. + +Release 1.9.4 (2019-09-18) +========================== + +- fixed GH #2784: Upgrade bundled expat XML parser library to release 2.2.8, + which fixes CVE-2019-15903. + + +Release 1.9.3 (2019-08-20) +========================== + +- fixed GH #2603: Remove incorrect upper size limits for SSL certificates in NetSSL_Win +- fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file (additional fix) +- fixed GH #2742: Support of vs150 & vs160 with the official Microsoft localization executable, + vswhere.exe, installed by MSVC starting from VS2017 +- Data/ODBC: make binding of std::string configurable (SQL_LONGVARCHAR - default or SQL_VARCHAR) + through a global setting (Poco::Data::ODBC::Connector::bindStringToLongVarChar()). +- added Poco::SharedLibrary::setSearchPath() (currently implemented on Windows only) +- Windows required minimum version is now Windows XP SP2 +- upgraded bundled SQLite to 3.29.0 +- CppParser now supports type aliases defined with using keyword. +- PageCompiler: added support for adding Content-Security-Policy and Cache-Control headers. + + +Release 1.9.2 (2019-07-02) +========================== + +- fixed GH #2736: Error using CMake gui - latest version +- fixed GH #2737: Bundles vulnerable copy of Expat — please upgrade to Expat 2.2.7 +- fixed GH #2738: Poco::AccessExpireStrategy::onGet() must not extend expiration time after expiration + + +Release 1.9.1 (2019-06-24) +========================== + +- Added support for building with different OpenSSL distributions on Windows. + See the POCO_EXTERNAL_OPENSSL macro defined in Foundation/include/Poco/Config.h + for options. +- Added Poco::Net::HTTPClientSession::flushRequest() +- Added Poco::Net::WebSocket::setMaxPayloadSize() and Poco::Net::WebSocket::getMaxPayloadSize() + to specify a maximum acceptable payload size for Poco::Net::WebSocket::receiveFrame(). +- Poco::Net::WebSocket: don't attempt to send empty credentials in response to 401 response. +- Redis: added support for additional commands (exists, expire, ping, multi, exec, discard) +- Redis: added Poco::Redis::Client::isConnected() +- Upgraded bundled PCRE to version 8.43 +- Upgraded bundled SQLite to version 3.28.0 +- Added project/solution files for Visual Studio 2019 +- Fixed Visual Studio project files (version information from DLLVersion.rc not included in DLLs) +- Include version resource in DLLs built with CMake +- Added HTTP*Credentials::empty() and HTTPCredentials::clear() +- fixed GH #2220: Encoding/DoubleByteEncoding.cpp fails to compile with VS2008 and _DEBUG +- fixed GH #2243: DLLVersion.rc is excluded from build, missing detail information in properties of *.dll +- fixed GH #2277: SQLite null pointer dereference occurs when exception is being thrown +- fixed GH #2313: PollSet behaves differently on windows +- fixed GH #2316: cmake can't find MySQL and ODBC libraries +- fixed GH #2336: Omit ContentLength in WebSocket accept response +- fixed GH #2358: Don't include <openssl/fips.h> for later OpenSSL +- fixed GH #2364: Stringify escapes every unicode symbol when object contain an array +- fixed GH #2380: Calling Poco::Net::X509Certificate::addChainCertificate() leads to double free. +- fixed GH #2492: Net::Socket::address() crash on Android +- fixed GH #2549: Fix keepAlive in http client session +- fixed GH #2565: HTMLForm: optional enforcement of Content-Length instead of Chunked Transfer-Encoding +- fixed GH #2570: DialogSocket: receiveStatusMessage() - line length limit applies to entire multi-line message +- fixed GH #2583: Crypto library does not build with OpenSSL 1.0.0 +- fixed GH #2655: MongoDB Binary element to string - bug +- fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file +- fixed GH #2700: Invalid read of memory in Poco::Environment::set which may cause crashes. +- fixed GH #2712: File_WIN32.cpp(168): error C2065: "_upath":Undeclared identifier +- fixed GH #2723: Access violation when trying to decompress .zip file with unsupported compression method. + + +Release 1.9.0 (2018-03-07) +========================== + +- Added additional text encodings, available in the new PocoEncodings library (GH #2165) +- Added Punycode support for resolving Internationalized Domain Names to Poco::Net::DNS (GH #2164) +- Added XDG Base Directory Specification support in Poco::Path, Poco::Util::SystemConfiguration + and Poco::Util::Application (GH #1609, GH #561, GH #1609) +- Added support for GCM ciphers in Crypto library (GH #2129) +- Poco::Net::RemoteSyslogChannel and Poco::Net::RemoteSyslogListener now have basic + support for RFC 5424 structured data (GH #2173) +- Poco::File now has methods for obtaining partition space (GH #1545) +- Added Poco::Net::Context::addCertificateAuthority() (GH #2197) +- Added Poco::AutoPtr::reset() and Poco::SharedPtr::reset() to improve compatibility + with std::shared_ptr() (GH #2172) +- fixed GH #703: Poco::Data::SQLite data types (INTEGER is now mapped to Int64) +- fixed GH #1426: inttypes.h is available on sun solaris +- fixed GH #1912: Run ping with custom data size #1912 +- fixed GH #2177: Run ping with custom timeout instead of the default +- fixed GH #2058 and GH #2095: Synchronization issue/deadlock in Poco::Util::Timer at destruction +- fixed GH #2089: Allow hyphen in HTTP authentication scheme names +- fixed GH #2106: Undefined behavior in Delegate::equals() +- fixed GH #2108: POCO SQLite Data Connector hangs for 20 secs waiting for thread timeouts on Windows +- fixed GH #2142: JSON::Object preserveOrder keys not synced on assignment +- fixed GH #2199 and GH #2188: Illegal header in zip file exception/assertion failure during JAR file decompression +- fixed GH #2203: Use MAX_ADDRESS_LENGTH to determine buffer size + + +Release 1.8.1 (2018-01-09) +========================== + +- Added Poco::File::linkTo() +- fixed GH #2044: Poco::Net::NetworkInterface::list does not list inactive interfaces + even when explicitly being asked for it. +- fixed GH #2042: Android abstract namespace local socket address +- fixed GH #2038: Poco::Net::MultipartWriter::createBoundary() always returns the same string. +- fixed GH #2020: SQLite not handling parameter count mismatch correctly. +- fixed GH #2012: Data/SQLite: Exception messages contain duplicate text +- fixed GH #2005: Upgraded bundled PCRE to 8.41 +- fixed GH #2000: Fix building XMLStreamParser with unbundled expat +- fixed GH #1603: fix MinGW 4.8.2 Compilation +- fixed GH #1991: Support building poco 1.8.0 as cmake sub-project +- fixed GH #2080: Bugs in Poco::Net::Socket::select when POCO_HAVE_FD_POLL is defined + + +Release 1.8.0.1 (2017-11-11) +============================ + +- Reverted change for GH #1828; DeflatingStreamBuf::sync() no longer flushes + underlying stream as this causes corruption for some Zip files. +- PocoDoc: fix for handling compiler configuration for Gradle builds. + + +Release 1.8.0 (2017-11-10) +========================== + +- Poco::Base64Encoder: add support for base64url encoding (GH #1967) +- Add Poco::Net::PollSet class to Net library (GH #1763) +- The Net library now supports Unix Domain Sockets, where available. +- Added stream parser (Poco::XML::XMLStreamParser) to XML library (GH #1697) +- Added Poco::Net::TCPServerConnectionFilter and Poco::Net::TCPServer::setConnectionFilter() + to support connection filtering and IP blacklisting (GH #1485) +- Added Redis library (GH #1383) +- Added Zip64 support to Zip library (GH #1356) +- Upgraded bundled SQLite to 3.21.0 +- Removed OpenVMS support (GH #1988) +- fixed GH #271: NamedMutex_UNIX.cpp must remove semid +- fixed GH #739: Add WebSocket::receiveFrame() that appends to a Poco::Buffer<char> +- fixed GH #749: NTP Packet impl not according to RFC958 +- fixed GH #896: Sample "TwitterClient" of NetSSL_OpenSSL can't be build +- fixed GH #1172: Poco::Data default storage should be std::vector +- fixed GH #1337: Poco::HTMLForm throws exception HTMLFormException("Form must be prepared") + even after form is prepared. +- fixed GH #1373: SessionImpl::close() does not check return code of close handle specific function +- fixed GH #1425: Workaround bug in SolarisStudio 12.4 on RVO-ed objects. +- fixed GH #1614: Problematic license for JSON component: the previously used JSON.org parser + has been replaced with pdjson +- fixed GH #1659: wrong field size calculation in ODBC code +- fixed GH #1683: Poco::Data ODBC impl doesn't bind to unsigned numeric types properly +- fixed GH #1705: MongoDB: support URI in Connection +- fixed GH #1708: "SocketReactor::addEventHandler" and "SocketReactor::removeEventHandler" + must protect the access to "NotifierPtr pNotifier" +- fixed GH #1729: getConnectionTimeout of SQLite DB wrapper returns wrong value + (in milliseconds, should be in seconds) +- fixed GH #1739: OpenSSLInitializer isn't threadsafe +- fixed GH #1750: double_conversion in NumericString is in conflict with Qt5 Core +- fixed GH #1804 and GH #1805: Integer Overflow or Wraparound +- fixed GH #1828: DeflatingStreamBuf::sync() should also flush underlying stream. +- fixed GH #1880: FTPClientSession::close() error +- fixed GH #1897: DateTime wrong binding/extraction for MySQL database +- fixed GH #1905: Compiling Foundation library with POCO_NO_FPENVIRONMENT in Config.h fails +- fixed GH #1906: Race condition in ThreadPool +- fixed GH #1913: Message Doesn't Support 64-bit Thread IDs +- fixed GH #1921: ICMPSocket does not check reply address +- fixed GH #1926: Exception when using SortedDirectoryIterator +- fixed GH #1934: File::setExecutable() on POSIX should set executable bit for group and + other if corresponding readable bit is set +- fixed GH #1950: Net Exception: Address family not supported with clang +- fixed GH #1964: Buffer<> swap miss ownMem + + +Release 1.7.9p2 (2017-11-06) +============================ + +- fixed GH #1628: Export Poco::Zip::ZipUtil class + + +Release 1.7.9p1 (2017-11-02) +============================ + +- fixed GH #1968: Zip Decompress Parent Path Injection + + +Release 1.7.9 (2017-09-11) +========================== + +- fixed GH #1813: xmlparse.cpp doesn't compile in WinCE (poco 1.7.8p3) +- fixed GH #1826: XPath query error +- fixed GH #1834: Visual Studio 2008 cannot find stdint.h +- fixed GH #1842: Upgrade bundled expat to 2.2.3 +- fixed GH #1843: Use random salt for Poco::XML::NamePool +- fixed GH #1865: AbstractEvent::hasDelegates() is not thread-safe +- improved/fixed QNX support +- Poco::Util::LayeredConfiguration: added support for labelling configurations and + finding them by their label +- upgraded bundled SQLite to 3.20.1 +- PageCompiler: support <%@ include file="<path>" %> syntax for includes, in addition + to <%@ include page="<path>" %> +- PageCompiler: optimize generated request handler code by removing useless + statements, e.g. writing empty strings. +- added POCO_DEPRECATED macro which will be used in the future to deprecate + classes and methods. +- Poco::NamedMutex and Poco::NamedEvent (System V Semaphores implementation): files are + now opened with O_RDONLY | O_CREAT instead of O_WRONLY | O_CREAT, allowing sharing + between different users. Furthermore, ftok() is called with 'p' as project ID + argument. + + +Release 1.7.8p3 (2017-06-22) +============================ + +- fixed GH #1760: Upgrade bundled expat to 2.2.1 which fixes some vulnerabilities: + http://seclists.org/oss-sec/2017/q2/499 + + +Release 1.7.8p2 (2017-04-18) +============================ + +- fixed GH #1655: CipherImpl memory leak with OpenSSL 1.1 + + +Release 1.7.8 (2017-02-21) +========================== + +- fixed GH #1212: Lost WebSocket Frames after Client Websocket Handshake is complete +- fixed GH #1260: URI encoding +- fixed GH #1501: Alpine 3.4 trouble with Foundation/src/Error.cpp +- fixed GH #1523: Long path names under Windows +- fixed GH #1536: Building with OS X 10.12 SDK and 10.7 deployment target without libc++ fails +- fixed GH #1537: Need to add multiple cflags parameters to configure +- fixed GH #1539: Allow overriding POCO_TARGET_OSARCH for iPhoneSimulator +- fixed GH #1546: Enable bitcode for iPhone build config +- fixed GH #1549: Latin2Encoding and 0xFF +- fixed GH #1551: Unable to use Poco on macOS 10.12 +- fixed GH #1552: IPv6 & operator throws an exception when scope = 0 +- fixed GH #1566: Poco/Zip issue with some CM_DEFLATE archives +- fixed GH #1567: Poco/ZIP issue with uncompressed archives +- fixed GH #1570: IPv6AddressImpl::toString() returns wrong output for IPv6 address "::" +- fixed GH #1571: ODBC Preparator memory leak +- fixed GH #1573: Poco::File::createDirectories() should not throw Poco::FileExistsException +- fixed GH #1580: Unable to unzip zip file created using non-seeking stream +- fixed GH #1581: Cannot find 'pcre.h' when using POCO_UNBUNDLED, a non-system PCRE, and CMake +- fixed GH #1588: Poco::Net::HTTPChunkedStreamBuf::readFromDevice(): restrict maximum + size of chunk length +- fixed GH #1589: Poco::Net::HTMLForm: restrict maximum field and value length +- fixed GH #1590: Poco::Net::DialogSocket: restrict maximum line length +- fixed GH #1591: Poco::Net::MultipartReader: restrict maximum boundary string length +- fixed GH #1597: adding empty file to zip leads to archive that can't be unzipped by windows +- fixed GH #1599: readFromDevice() in AutoDetectStream.cpp in Poco Zip cannot detect signature +- fixed GH #1534: Upgraded bundled zlib to 1.2.11 +- fixed GH #1558: Upgraded bundled SQLite to 3.16.2 +- fixed GH #1586: Upgraded bundled PCRE to 8.40 +- fixed GH #1538: Upgraded bundled double-conversion to 1.1.5 +- MongoDB: added support for authentication using "MONGODB-CR" and "SCRAM-SHA-1" + authentication schemes. +- MongoDB: additional documentation and fixes for style and consistency and minor + API improvements (e.g., Poco::MongoDB::Binary) + Note: some flag enumeration values have been renamed for better consistency + and readability; existing code using these will have to be updated. + + +Release 1.7.7 (2016-12-31) +========================== + +- fixed GH #865: FileChannel compress fails leaving empty .gz files +- fixed GH #990: Potential race condition in Poco::File on Windows +- fixed GH #1157: Fixing a bug in the NetSSL_Win module (Host name verification failed error) +- fixed GH #1351: Fix for android include pthread.h from /usr/include +- fixed GH #1436: ODBC Bug: Unicode text(NVARCHAT) read from DB is truncated to half +- fixed GH #1453: _clock_gettime Symbol not found on Mac 10.11 +- fixed GH #1460: POCO does not build with OpenSSL 1.1 +- fixed GH #1461: Poco::Data::SQLite::SQLiteStatementImpl::next() error +- fixed GH #1462: AbstractConfiguration::getUInt does not parse hex numbers +- fixed GH #1464: ODBCMetaColumn::init() always maps integer NUMERIC/DECIMAL to Int32 +- fixed GH #1465: Assertion violation in DateTime.cpp using ZipArchive +- fixed GH #1472: HTTP(S)StreamFactory should send a User-Agent header. +- fixed GH #1476: Fixed error with Poco::UTF8Encoding::isLegal() +- fixed GH #1484: ODBC: fix uninitialized variable +- fixed GH #1486: Support ODBC GUID data type as string +- fixed GH #1488: Poco::ObjectPool shrinks if returned object is not valid +- fixed GH #1515: Detection of closed websocket connection +- fixed GH #1521: bug in JSON ParseHandler.cpp (empty keys should be valid) +- fixed GH #1526: iOS app rejected, IPv6 not working +- fixed GH #1532: RecordSet and RowFilter: bad use of reference counter + + +Release 1.7.6 (2016-10-18) +========================== + +- fixed GH #1298: ZipFileInfo: Assertion violation when reading ods files +- fixed GH #1315: Redefine Poco assertions for static analysis +- fixed GH #1397: Fix issues reported by static source code analysis +- fixed GH #1403: Android compile with poco-1.7.5 no 'pthread_condattr_setclock' error +- fixed GH #1416: Assertion violation when unzipping +- fixed GH #1418: Poco::Delegate assignment operator fails to compile for some specializations +- fixed GH #1422: Can't build poco 1.7.4 or 1.7.5 on centos5 32 bit +- fixed GH #1429: exception thrown in MongoDB when using replicaset +- fixed GH #1431: Poco/FIFOBuffer.h copy issue +- fixed GH #1445: Use stable_sort to preserve order of IP addresses from DNS +- fixed GH #1456: better handle leap seconds in Poco::DateTime and Poco::LocalDateTime +- fixed GH #1458: Probably invalid epoll_create() usage inside Poco/Socket.cpp +- Poco::XML::NamePool: increased default size from 251 to 509. Default size can now + be changed by defining the POCO_XML_NAMEPOOL_DEFAULT_SIZE macro accordingly. +- Enchancements: Poco::XML::Document and Poco::XML::DOMParser have new constructors + taking a NamePool size. Poco::Util::XMLConfiguration::load() also has a new overload + for that purpose. +- Improved error handling in the Zip library (getting rid of some poco_assert macros + and did proper error handling instead). +- Added Poco::URISyntaxException (subclass of Poco::SyntaxException), which is now + thrown by Poco::URI. +- Improved error handling in Poco::URIStreamOpener::open(). +- Poco::Data::MySQL: Handle connection lost/server gone error when starting a transaction + and retry. +- XMLConfiguration default (and single-argument delimiter) constructor now loads an empty + XML document with "config" root element to make the configuration usable without an + additional call to load() or loadEmpty(). + + +Release 1.7.5 (2016-08-29) +========================== + +- fixed GH #1252: Unable to compile Poco::Data for Windows Compact Embedded 2013 +- fixed GH #1344: Poco::Event::wait(timeout) should use CLOCK_MONOTONIC on Linux +- fixed GH #1355: [JSON::Object] After copy-ctor, JSON::Object::_keys still points to + keys in map of copied object +- GH #1361: Shell expansion rules say that tilde must be replaced with $HOME before + calling getpwuid +- Poco::SingletonHolder: added reset() method +- prefer clock_getttime() over gettimeofday() if available +- Upgraded bundled SQLite to 3.14.1 + + +Release 1.7.4 (2016-07-20) +========================== + +- fixed GH #1300: Session constructor hangs +- fixed GH #1303: HTTPSClientSession::sendRequest() fails if server has wildcard cert +- fixed GH #1304: URI doesn't know "ws:/" or "wss://" schemes +- fixed GH #1307: Upgrade bundled expat to 2.2.0 +- fixed GH #1313: XML library compilation error +- fixed GH #1316: Empty SocketReactor never sleeps +- Upgraded bundled SQLite to 3.13.0 + + +Release 1.7.3 (2016-05-02) +========================== + +- fixed GH #993: Invalid zip format when opening a docx in word +- fixed GH #1235: Poco::Net::HTTPClientSession::sendRequest() should also handle HTTP_PATCH +- fixed GH #1236: Remove Poco::Data::Row::checkEmpty() as it prevents Row from being used + with all NULL rows +- fixed GH #1239: Poco::Zip::Compress with non-seekable stream fails for CM_STORE +- fixed GH #1242: Poco::Data::RowFormatter generate exception if the first column of first + row is null +- fixed GH #1253: ListMap does not maintain insertion order if key already exists +- Upgraded bundled SQLite to 3.12.2 + + +Release 1.7.2 (2016-03-21) +========================== + +- fixed GH #1197: Upgrade bundled expat to 2.1.1 + Expat 2.1.1 fixes a CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1283 +- fixed GH #1204: getdtablesize has been removed on Android 21 +- fixed GH #1203: Poco::Data::RecordSet should be reusable +- fixed GH #1198: Upgrade bundled SQLite to 3.12.1 + + +Release 1.7.1 (2016-03-14) +========================== + +- fixed GH #1187: Data/MySQL: Seeing frequent "MySQL server has gone away" errors +- fixed GH #1184: Attempting to connect via a proxy throws a DNS error "Host not found" +- fixed GH #1180: Possible deadlock when TaskManager::count() is called in onFinished +- NetSSL_OpenSSL: use TLS_*_method() instead of deprecated SSLv23_*_method() + if OpenSSL version is >= 1.1; initialize default/fallback client context to support + all TLS protocols, not just TLSv1 + + +Release 1.7.0 (2016-03-07) +========================== + +- POSSIBLE BREAKING CHANGE: removed automatic registration of Data connectors due to + issues with static initialization order. +- NetSSL_OpenSSL: added support for ECDH and DH ciphers; added support to disable + specific protocols (Poco::Net::Context::disableProtocols()); + new Poco::Net::Context constructor taking a Poco::Net::Context::Params structure that + allows specifying ECDH and DH parameters. +- Poco::Net::TCPServer: add additional try ... catch block around poll() to + gracefully deal with errors due to high system load (e.g., out of file descriptors). +- fixed GH #1171: Poco::Data::RecordSet: rowCount not reset after execute +- fixed GH #1167: CMake & POCO_UNBUNDLED: expat sources are compiled in libPocoXML +- fixed GH #1160: Poco::Net::NetException + "SSL Exception: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry" +- fixed GH #1152: Wrong TaskProgressNotification description +- fixed GH #1141: Poco::StringTokenizer::TOK_TRIM changes behavior between 1.4 and 1.6 +- fixed GH #1137: Missing 'longint' type in SQLite +- fixed GH #1135: Different package on github and official web site +- fixed GH #1030: tvOS / WatchOS bitcode enabled for simulators +- fixed GH #1114: World-write permissions on files created by daemon +- fixed GH #1087: prevent line breaks in base64-encoded creds +- fixed GH #1026: Fixes for producing the poco-1.6.2 release on a Cygwin x86 platform +- fixed GH #1022: Abbreviation in setThreadName can happen even if thread name is not too long +- fixed GH #1002: ActiveDispatcher saves reference to event context after event was + performed until it gets new event +- fixed GH #973: overwrite existing files on windows when moving files +- fixed GH #969: Poco::File::renameTo() behaviour differs on windows and linux +- fixed GH #967: Missing data types in SQLite +- fixed GH #966: Possible crash when processing a corrupted Zip file +- fixed GH #958: Bug while reading X509Certificate subjectName +- fixed GH #937: Missing build_vs140.cmd +- fixed GH #933: Change in JSON::Object::set(key,value) behavior in 1.6.1 +- fixed GH #931: make strToInt() more strict in what it accepts +- fixed GH #921: `BasicUnbufferedStreamBuf` needs to be marked for import/export +- fixed GH #848: MailMessage::_encoding is not set when retrieving plain/text message +- fixed GH #767: Inconsistency in getPath & getPathAndQuery returns +- fixed GH #724: Poco 1.6.0 is not compiled with openssl 1.0.0 +- fixed GH #713: Improved support for producing Canonical XML in XMLWriter +- fixed GH #696: bug in parsing name of attachment poco c++ 1.6.0 +- fixed GH #335: Compress with nonseekable +- upgraded bundled SQLite to 3.11.0 +- added Poco::Crypto::X509Certificate::equals() to compare two certificates +- support for detecting Win8/Win10 in Poco::Environment +- Poco::Net::HTTPServerRequestImpl: fixed an issue with DELETE in persistent connections +- NetSSL: added Context::preferServerCiphers() +- NetSSL: added support for ECDH, new Context constructor +- NetSSL: add support for disabling certain protocols +- SMTPClientSession: added support for XOAUTH2 authentication +- Poco::Data::SessionPool: re-added customizeSession() method from 1.4.x releases +- improved SSLManager to automatically set-up a reasonable client Context if + none is configured +- add brew OpenSSL search paths to Darwin configs +- add HTTP/1.1 version to HTTPRequest for client WebSocket, as this is required for + most servers +- remove GCC_DIAG_OFF as this caused more issues than it solved +- respect POCO_NO_FORK_EXEC in ServerApplication (tvOS) +- tvOS and WatchOS support +- fix: need an implementation of available() for WebSocketImpl +- HTTPSessionInstantiator: respect global proxy config +- added constant for HTTP PATCH method to Poco::Net::HTTPRequest +- NumberParser::parseHex[64](): allow 0x/0X prefix + + +Release 1.6.1 (2015-08-03) +========================== + +- added project and solution files for Visual Studio 2015 +- upgraded bundled SQLite to 3.8.11.1 +- fixed GH #782: Poco::JSON::PrintHandler not working for nested arrays +- fixed GH #819: JSON Stringifier fails with preserve insert order +- fixed GH #878: UUID tryParse +- fixed GH #869: FIFOBuffer::read(T*, std::size_t) documentation inaccurate +- fixed GH #861: Var BadCastException +- fixed GH #779: BUG in 1.6.0 Zip code +- fixed GH #769: Poco::Var operator== throws exception +- fixed GH #766: Poco::JSON::PrintHandler not working for objects in array +- fixed GH #763: Unable to build static with NetSSL_OpenSSL for OS X +- fixed GH #750: BsonWriter::write<Binary::Ptr> missing size ? +- fixed GH #741: Timestamp anomaly in Poco::Logger on WindowsCE +- fixed GH #735: WEC2013 build fails due to missing Poco::Path methods. +- fixed GH #722: poco-1.6.0: Unicode Converter Test confuses string and char types +- fixed GH #719: StreamSocket::receiveBytes and FIFOBuffer issue in 1.6 +- fixed GH #706: POCO1.6 Sample EchoServer BUG +- fixed GH #646: Prevent possible data race in access to Timer::_periodicInerval +- DeflatingStream: do not flush underlying stream on sync() as these can cause + corrupted files in Zip archives + + +Release 1.6.0 (2014-12-22) +========================== + +- fixed GH #625: MongoDB ensureIndex double insert? +- fixed GH #622: Crypto: RSATest::testSign() should verify with public key only +- fixed GH #620: Data documentation sample code outdated +- fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp +- fixed GH #616: Visual Studio warning C4244 +- fixed GH #612: OpenSSLInitializer calls OPENSSL_config but not CONF_modules_free +- fixed GH #608: (Parallel)SocketAcceptor ctor/dtor call virtual functions +- fixed GH #607: Idle Reactor high CPU usage +- fixed GH #606: HTMLForm constructor read application/x-www-form-urlencoded UTF-8 request + body first parameter with BOM in name +- fixed GH #596: For OpenSSL 1.0.1, include openssl/crypto.h not openssl/fips.h +- fixed GH #592: Incorrect format string in Poco::Dynamic::Struct +- fixed GH #590: Poco::Data::SQlite doesn't support URI filenames +- fixed GH #564: URI::encode +- fixed GH #560: DateTime class calculates a wrong day +- fixed GH #549: Memory allocation is not safe between fork() and execve() +- fixed GH #500: SSLManager causes a crash +- fixed GH #490: 2 byte frame with payload length of 0 throws "Incomplete Frame Received" exception +- fixed GH #483: multiple cases for sqlite_busy +- fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour +- fixed GH #478: HTTPCredentials not according to HTTP spec +- fixed GH #471: vs2010 release builds have optimization disabled ? +- fixed GH #468: HTTPClientSession/HTTPResponse not forwarding exceptions +- fixed GH #438: Poco::File::setLastModified() doesn't work +- fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are + not thread safe +- fixed GH #345: Linker warning LNK4221 in Foundation for SignalHandler.obj, String.obj + and ByteOrder.obj +- fixed GH #331: Poco::Zip does not support files with ".." in the name. +- fixed GH #318: Logger local time doesn't automatically account for DST +- fixed GH #294: Poco::Net::TCPServerParams::setMaxThreads(int count) will not accept count == 0. +- fixed GH #215: develop WinCE build broken +- fixed GH #63: Net::NameValueCollection::size() returns int +- Poco::Logger: formatting methods now support up to 10 arguments. +- added Poco::Timestamp::raw() +- Poco::DeflatingOutputStream and Poco::InflatingOutputStreams also flush underlying stream + on flush()/sync(). +- Poco::Util::Timer: prevent re-schedule of cancelled TimerTask +- enabled WinRegistryKey and WinRegistryConfiguration for WinCE +- Poco::BasicEvent improvements and preparations for future support of lambdas/std::function +- upgraded bundled sqlite to 3.8.7.2 +- Poco::Thread: added support for starting functors/lambdas +- Poco::Net::HTTPClientSession: added support for global proxy configuration +- added support for OAuth 1.0/2.0 via Poco::Net::OAuth10Credentials and + Poco::Net::OAuth20Credentials classes. +- Poco::Net::IPAddress: fixed IPv6 prefix handling issue on Windows +- added Poco::Timestamp::TIMEVAL_MIN and Poco::Timestamp::TIMEVAL_MAX +- added Poco::Clock::CLOCKVAL_MIN and Poco::Clock::CLOCKVAL_MAX +- added poco_assert_msg() and poco_assert_msg_dbg() macros +- Poco::Net::Context: fixed a memory leak if the CA file was not found while creating the + Context object (the underlying OpenSSL context would leak) +- Poco::URI: added new constructor to create URI from Path +- Various documentation and style fixes +- Removed support (project/solution files) for Visual Studio.NET 2003 and Visual Studio 2005. +- Improved CMake support + + +Release 1.5.4 (2014-10-14) +========================== + +- fixed GH #326: compile Net lib 1.5.2 without UTF8 support enabled +- fixed GH #518: NetworkInterface.cpp compile error w/ POCO_NO_WSTRING (1.5.3) +- Fixed MSVC 2010 warnings on large alignment +- make HTTPAuthenticationParams::parse() add value on end of string +- fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour +- fixed GH #508: Can't compile for arm64 architecture +- fixed GH #510: Incorrect RSAKey construction from istream +- fix SharedMemory for WinCE/WEC2013 +- Add NIOS2 double conversion detection, fixes compile errors +- added VS2013 project/solution files for Windows Embedded Compact 2013 +- added Process::isRunning() +- NetSSL: Fix typo in documentation +- NetSSL_OpenSSL: support for TLS 1.1 and 1.2 +- Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based + on file extension. Used to avoid double-compression of already compressed file + formats such as images. +- added %L modifier to PatternFormatter to switch to local time +- removed unnecessary explicit in some multi-arg constructors +- Allow SecureStreamSocket::attach() to be used in server connections +- added Var::isBoolean() and fixed JSON stringifier +- added poco_unexpected() macro invoking Bugcheck::unexpected() to deal + with unexpected exceptions in destructors +- fixed GH #538 prevent destructors from throwing exceptions +- improved HTTP server handling of errors while reading header +- fixed GH #545: use short for sign +- upgraded SQLite to 3.8.6 +- fixed GH #550 WebSocket fragmented message problem +- improved HTTPClientSession handling of network errors while sending the request +- updated bundled PCRE to 8.35.0 +- fixed GH #552: FIFOBuffer drain() problem +- fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are + not thread safe +- HTTPCookie: fix documentation for max age +- added Timestamp::raw() and Clock::raw() +- Poco::Buffer properly handles zero-sized buffers +- GH #512: Poco:Data:ODBC:Binder.h causes a crash +- Added Crypto_Win and NetSSL_Win libraries which are re-implementations of existing + Crypto and NetSSL_OpenSSL libraries based on WinCrypt/Schannel. The new libraries + can be used as an almost drop-in replacement for the OpenSSL based libraries on + Windows and Windows Embedded Compact platforms. Only available from GitHub for now. + + +Release 1.5.3 (2014-06-30) +========================== + +- fixed GH# 316: Poco::DateTimeFormatter::append() gives wrong result for + Poco::LocalDateTime +- Poco::Data::MySQL: added SQLite thread cleanup handler +- Poco::Net::X509Certificate: improved and fixed domain name verification for + wildcard domains +- added Poco::Clock class, which uses a system-provided monotonic clock + (if available) and is thus not affected by system realtime clock changes. + Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms + supporting clock_gettime() and CLOCK_MONOTONIC. +- Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer + have been changed to use Poco::Clock instead of Poco::Timestamp and are now + unaffected by system realtime clock changes. +- fixed GH# 350: Memory leak in Data/ODBC with BLOB +- Correctly set MySQL time_type for Poco::Data::Date. +- fixed GH #352: Removed redundant #includes and fixed spelling mistakes. +- fixed setting of MYSQL_BIND is_unsigned value. +- fixed GH #360: CMakeLists foundation: add Clock.cpp in the list of source files +- Add extern "C" around <net/if.h> on HPUX platform. +- added runtests.sh +- fixed CPPUNIT_IGNORE parsing +- fixed Glob from start path, for platforms not alowing transverse from root (Android) +- added NTPClient (Rangel Reale) +- added PowerShell build script +- added SmartOS build support +- fix warnings in headers +- XMLWriter: removed unnecessary apostrophe escaping (&apos) +- MongoDB: use Int32 for messageLength +- fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours +- Improve RSADigestEngine, using Poco::Crypto::DigestEngine to calculate hash before signing +- added Poco::PBKDF2Engine +- Fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours +- added support for a 'Priority' attribute on cookies. +- GH #386: fixed bug in MailMessage without content-transfer-encoding header +- GH #384: ew hash algorithms support for RSADigestEngine +- fixed Clock overflow bug on Windows +- Poco::ByteOrder now uses intrinsics, if available +- CMake: added /bigobj option for msvc +- Fix typo to restore Net/TestSuite_x64_vs120 build +- correct path for CONFIGURE_FILE in CMakeLists.txt +- Building Poco 1.5.2 for Synology RS812+ (Intel Atom) (honor POCO_NO_INOTIFY) +- added WEC2013 support to buildwin.cmd and buildwin.ps1 +- HTMLForm: in URL encoding, percent-encode more characters +- Fixed #include <linux/if.h> conflict with other libraries +- Poco::Net::X509Certificate::verify() no longer uses DNS reverse lookups to validate host names +- cert hostname validation is case insensitive and stricter for wildcard certificates +- TCPServer: do not reduce the capacity of the default ThreadPool +- added POCO_LOG_DEBUG flag +- Zip: fixed a crash caused by an I/O error +- added runtest script for windows +- added SQlite Full Text Search support +- added Thread::trySleep() and Thread::wakeUp() +- fixed GH #410: Bug in JSON::Object.stringify() in 1.5.2 +- fixed GH #362: Defect in Var::parseString when there is no space between value and newline +- fixed GH #314: JSON parsing bug +- added GH #313: MetaColumn additions for Data::ODBC and Data::SQLite +- fixed GH #346: Make Poco::Data::Date and Poco::Data::Time compare functions const. +- fixed GH #341: Compiling poco-1.5.2 for Cygwin +- fixed GH #305: There are bugs in Buffer.h +- fixed GH #321: trivial build fixes (BB QNX build) +- fixed GH #440: MongoDB ObjectId string formatting +- added SevenZip library (Guenter Obiltschnig) +- fixed GH #442: Use correct prefix length field of Windows IP_ADAPTER_PREFIX structure +- improved GH #328: NetworkInterface on Windows XP +- fixed GH #154 Add support for MYSQL_TYPE_NEWDECIMAL to Poco::Data::MySQL +- fixed GH #290: Unicode support +- fixed GH #318: Logger local time doesn't automatically account for DST +- fixed GH #363: DateTimeParser tryParse/parse +- added HTMLForm Content-Length calculation (Rangel Reale) +- Make TemporaryFile append a slash to tempDir +- fixed GH #319 android build with cmake +- added hasDelegates() method to AbstractEvent +- fixed GH #230: Poco::Timer problem +- fixed GH #317: Poco::Zip does not support newer Zip file versions. +- fixed GH #176: Poco::JSON::Stringifier UTF encoding +- fixed GH #458: Broadcast address and subnet mask for IEEE802.11 network interface +- fixed GH #456: poco: library install dirs per RUNTIME/LIBRARY/ARCHIVE + + +Release 1.5.2 (2013-09-16) +========================== + +- added MongoDB library +- fixed GH #57: poco-1.5.1: Doesn't compile for Android +- added VoidEvent (Arturo Castro) +- fixed GH #80: NumberFormatter::append broken +- fixed GH #93: ParallelSocketAcceptor virtual functions +- optional small object optimization for IPAddress, SocketAddress, Any and Dynamic::Var +- SQLite events (insert, update, delete, commit, rollback) handlers +- merged GH #91: Improve SQLite multi-threaded use (Rangel Reale) +- merged GH #86: Invalid pointers to vector internals (Adrian Imboden) +- automatic library initialization macros +- fixed GH #110: WebSocket accept() fails when Connection header contains multiple tokens +- fixed GH #71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS) +- fixed a warning in Poco/Crypto/OpenSSLInitializer.h +- fixed GH #109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain +- added clang libc++ build configurations for Darwin and iPhone (Andrea Bigagli) +- fixed GH #116: Wrong timezone parsing in DateTimeParse (Matej Knopp) +- fixed GH #118: JSON::Object::stringify endless loop +- added Recursive and SortedDirectoryIterator (Marian Krivos) +- added ListMap (map-like container with preserving insertion order) +- MailMessage: attachments saving support and consistent read/write +- fixed GH #124: Possible buffer overrun in Foundation/EventLogChannel +- fixed GH #119: JSON::Object holds values in ordered map +- added JSON::PrintHandler +- renamed JSON::DefaultHandler to ParseHandler (breaking change!) +- fixed GH #127: Eliminate -Wshadow warnings +- fixed GH #79: Poco::Thread leak on Linux +- fixed GH #61: static_md build configs for Crypto and NetSSL +- fixed GH #130: prefer sysconf over sysctlbyname +- fixed GH #131: no timezone global var on OpenBSD +- fixed GH #102: Some subprojects don't have x64 solutions for VS 2010 +- added GH #75: Poco::Uri addQueryParameter method +- Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012 +- fixed GH #140: Poco::Runnable threading cleanup issue +- simplified default TCP/HTTPServer construction +- fixed GH #141: Application::run() documentation/implementation discrepancy +- changed RowFormatter to SharedPtr<RowFormatter> in Data::RecordSet interface (breaking change!) +- fixed GH #144: Poco::Dynamic emits invalid JSON +- removed naked pointers from Data interfaces +- fixed GH #82: name conflict in Data::Keywords::bind +- fixed GH #157: MySQL: cannot bind to 'long' data type on Windows/Visual C++ +- fixed GH #158: MySQL: MYSQL_BIND 'is_unsigned' member is not set +- fixed GH #160: MultipartReader ignores first part, if preamble is missing +- fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel +- XML: fixed an issue with parsing a memory buffer > 2 GB +- upgraded to expat 2.1.0 +- Data/ODBC: added support for setting query timeout (via setProperty + of "queryTimeout"). Timeout is int, given in seconds. +- fixed a potential endless loop in SecureStreamSocketImpl::sendBytes() + and also removed unnecessary code. +- fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so + has been unloaded. +- fixed GH #155: MailOutputStream mangles consecutive newline sequences +- fixed GH #139: FileChannel::PROP_FLUSH is invalid (contains a tab character) +- fixed GH #173: HTTPClientSession::proxyConnect forces DNS lookup of host names +- fixed GH #194: MessageNotification constructor is inefficient. +- fixed GH #189: Poco::NumberParser::tryParse() documentation bug +- fixed GH #172: IPv6 Host field is stripped of Brackets in HTTPClientSession +- fixed GH #188: Net: SocketAddress operator < unusable for std::map key +- fixed GH #128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is + already specified +- fixed GH #65: Poco::format() misorders sign and padding specifiers +- upgraded bundled SQLite to 3.7.17 +- replaced JSON parser with Poco::Web::JSON parser (from sandbox) +- added JSON conversion to Dynamic Struct and Array +- added VarIterator +- modified behavior of empty Var (empty == empty) +- added Alignment.h header for C++03 alignment needs +- added Data/WebNotifier (DB, WebSocket) example +- fixed GH #209: Poco::NumberFormatter double length +- fixed GH #204: Upgrade zlib to 1.2.8 +- fixed GH #198: The "application.configDir" property is not always created. +- fixed GH #185: Poco::NumberFormatter::format(double value, int precision) + ignore precision == 0 +- fixed GH #138: FreeBSD JSON tests fail +- fixed GH #99: JSON::Query an JSON::Object +- limited allowed types for JSON::Query to Object, Array, Object::Ptr, + Array::Ptr and empty +- fixed GH #175: HTMLForm does not read URL parameters on POST or PUT +- added GH #187: MySQL: allow access to the underlying connection handle +- added GH #186: MySQL: support for MYSQL_SECURE_AUTH +- fixed GH #174: MySQL: 4GB allocated when reading any largetext or largeblob field +- fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused + (e.g., sendRequest() is sent two times in a row without an intermediate call to + receiveResponse(), or by calling receiveResponse() two times in a row without + an intermediate call to sendRequest()) - GH #217 +- removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession + that would provide inappropriate access to internal state +- merged GH #210: Don't call CloseHandle() twice on Windows; Ability to select the + threadpool that will be used to start an Activity(Patrice Tarabbia) +- fixed GH #212: JSONConfiguration was missing from the vs90 project(Patrice Tarabbia) +- fixed GH #220: add qualifiers for FPEnvironment in C99 (Lucas Clemente) +- fixed GH #222: HTTPCookie doesn't support expiry times in the past (Karl Reid) +- fixed GH #224: building 1.5.1 on Windows for x64 +- fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work +- fixed GH# 231: Compatibility issue with Poco::Net::NetworkInterface +- fixed GH# 236: Bug in RecursiveDirectoryIterator +- added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting + colorizing log messages +- fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll +- fixed GH# 254: UTF8::icompare unexpected behavior +- Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation + (links to specifications). +- added GH# 268: Method to get JSON object value using Poco::Nullable +- fixed GH# 267: JSON 'find' not returning empty result if object is expected but another value is found +- Added support for ARM64 architecture and iPhone 5s 64-bit builds + (POCO_TARGET_OSARCH=arm64). + + +Release 1.5.1 (2013-01-11) +========================== + +- using double-conversion library for floating-point numeric/string conversions +- added Poco::istring (case-insensitive string) and Poco::isubstr +- added SQLite sys.dual (in-memory system table) +- applied SF Patch #120: The ExpireLRUCache does not compile with a tuple as key on Visual Studio 2010 +- fixed SF Bug #599: JSON::Array and JSON::Object size() member can implicitly lose precision +- fixed SF Bug #602: iterating database table rows not correct if no data in table +- fixed SF Bug #603: count() is missing in HashMap +- fixed GH #23: JSON::Object::stringify throw BadCastException +- fixed GH #16: NetworkInterface::firstAddress() should not throw on unconfigured interfaces +- Android compile/build support (by Rangel Reale) +- TypeHandler::prepare() now takes const-reference +- fixed GH #27: Poco::URI::decode() doesn't properly handle '+' +- fixed GH #31: JSON implementation bug +- fixed SF #597: Configure script ignores cflags +- fixed SF #593: Poco 1.5.0 on FreeBSD: cannot find -ldl +- added SF #542: SocketAddress() needs port-only constructor +- fixed SF #215: Wrong return type in SocketConnector.h +- applied SF Patch #97: fix c++0x / clang++ bugs +- fixed GH32/SF596: Poco::JSON: Parsing long integer (int64) value fails. +- added Net ifconfig sample (contributed by Philip Prindeville) +- merged GH #34: add algorithm header (Roger Meier/Philip Prindeville) +- fixed GH #26: Cannot compile on gcc +- merged SF #111: FTP Client logging (Marian Krivos) +- fixed GH #30: Poco::Path::home() throws when called from Windows Service +- fixed GH #22: MySQL connection string lowercased +- added MySQL support for Date/Time +- upgraded SQLite to version 3.7.15.1 (2012-12-19) +- improved SQLite execute() return (affected rows) value and added tests +- added SQLite::Utility::isThreadSafe() function +- added SQLite::Utility::setThreadMode(int mode) function +- fixed GH #36: 'distclean' requires 3 traversals of project tree +- fixed GH #41: Buffer::resize crash +- fixed GH #42: Linux unbundled builds don't link +- fixed GH #44: Problems with win x64 build +- fixed GH #46: 1.5.1 build fails on OS X when using libc++ +- fixed GH #48: Need getArgs() accessor to Util::Application to retrieve start-up arguments +- fixed GH #49: NetworkInterface::list doesn't return MAC addresses +- fixed GH #51: Android should use isfinite, isinf, isnan and signbit from the std namespace +- fixed GH #53: JSON unicode fixes and running tests on invalid unicode JSON +- added ParallelAcceptor and ParallelReactor classes +- added EOF and error to FIFOBuffer + + +Release 1.5.0 (2012-10-14) +========================== + +- added JSON library +- added Util::JSONConfiguration +- added FIFOBuffer and FIFOBufferStream +- fixed SF# 3522906: Unregistering handlers from SocketReactor +- fixed SF# 3522084: AbstractConfiguration does not support 64-bit integers +- HTTPServer::stopAll(): close the socket instead of just shutting it down, as the latter won't wake up a select() on Windows +- added SMTPLogger +- added cmake support +- fixed SF#3538778: NetworkInterface enumeration uses deprecated API +- fixed SF#3538779: IPAddress lacks useful constructors: from prefix mask, native SOCKADDR +- fixed SF#3538780: SocketAddress needs operator < function +- fixed SF#3538775: Issues building on Fedora/Centos, etc. for AMD64 +- fixed SF#3538786: Use size_t for describing data-blocks in DigestEngine +- added IPAddress bitwise operators (&,|,^,~) +- added IPAddress BinaryReader/Writer << and >> operators +- modified IPAddress to force IPv6 to lowercase (RFC 5952) +- fixed SF#3538785: SMTPClientSession::sendMessage() should take recipient list +- added IPAddress::prefixLength() +- UTF portability improvements +- fixed SF#3556186: Linux shouldn't use <net/if.h> in Net/SocketDefs.h +- added IPAddress RFC 4291 compatible site-local prefix support +- fixed SF#3012166: IPv6 patch +- added SF#3558085: Add formatter to MACAddress object +- fixed SF#3552774: Don't hide default target in subordinate makefile +- fixed SF#3534307: Building IPv6 for Linux by default +- fixed SF#3516844: poco missing symbols with external >=lipcre-8.13 +- added SF#3544720: AbstractConfigurator to support 64bit values +- fixed SF#3522081: WinRegistryConfiguration unable to read REG_QWORD values +- fixed SF#3563626: For Win32 set Up/Running flags on NetworkInterface +- fixed SF#3560807: Deprecate setPeerAddress() as this is now done in getifaddrs +- fixed SF#3560776: Fix byte-ordering issues with INADDR_* literals +- fixed SF#3563627: Set IP address on multicast socket from socket family +- fixed SF#3563999: Size BinaryWriter based on buffer's capacity(), not size() +- fixed SF#102 Fix building Poco on Debian GNU/kFreeBSD +- fixed SF#321 Binding DatTime or Timestamp +- fixed SF#307 Detect the SQL driver type at run time +- added VS 2012 Projects/Solutions +- enhanced and accelerated numeric parsing for integers and floats +- fixed SF#590 Segfault on FreeBSD when stack size not rounded +- added warn function and warnmsg macro in CppUnit +- fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x +- fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS +- fixed SF#3562244: Portability fix for AF_LINK +- fixed SF #3562400: DatagramSocketImpl comment is incorrect + + +Release 1.4.7p1 (2014-11-25) +============================ + +- Fixed Visual C++ 2010-2013 project files. Release builds now have optimization enabled. +- Poco::URI: added constructor to create URI from Path. +- fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp +- Poco::Net::HTTPClientSession: added support for global proxy configuration +- fixed GH #331: Poco::Zip does not support files with .. in the name. +- fixed a memory leak in Poco::Net::Context constructor when it fails to load the certificate + or private key files. +- upgraded bundled SQLite to 3.8.7.2 +- fixed GH #229: added missing value() function +- fixed GH #69: MySQL empty text/blob + + +Release 1.4.7 (2014-10-06) +========================== + +- fixed GH #398: PropertyFileConfiguration: input != output +- fixed GH #368: Build failure of Poco 1.4.6p2 on FreeBSD 9.2 +- fixed GH #318: Logger local time doesn't automatically account for DST +- fixed GH #317: Poco::Zip does not support newer Zip file versions. +- fixed GH #454: Fix: handle unhandled exceptions +- fixed GH #463: XML does not compile with XML_UNICODE_WCHAR_T +- fixed GH #282: Using Thread in a global can cause crash on Windows +- fixed GH #424: Poco::Timer deadlock +- fixed GH #465: Fix result enum type XML_Error -> XML_Status +- fixed GH #510: Incorrect RSAKey construction from istream +- fixed GH #332: POCO::ConsoleChannnel::initColors() assigns no color to + PRIO_TRACE and wrong color to PRIO_FATAL +- fixed GH #550: WebSocket fragmented message problem +- Poco::Data::MySQL: added SQLite thread cleanup handler +- Poco::Net::X509Certificate: improved and fixed domain name verification for + wildcard domains +- fixed a crash in Foundation testsuite with Visual C++ 2012 +- improved and fixed domain name verification for wildcard domains in + Poco::Net::X509Certificate +- updated TwitterClient sample to use new 1.1 API and OAuth +- added Poco::Clock class, which uses a system-provided monotonic clock + (if available) and is thus not affected by system realtime clock changes. + Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms + supporting clock_gettime() and CLOCK_MONOTONIC. +- Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer + have been changed to use Poco::Clock instead of Poco::Timestamp and are now + unaffected by system realtime clock changes. +- added Poco::PBKDF2Engine class template +- Poco::Net::HTTPCookie: added support for Priority attribute (backport from develop) +- fixed makedepend.* scripts to work in paths containing '.o*' + (contributed by Per-Erik Bjorkstad, Hakan Bengtsen) +- Upgraded bundled SQLite to 3.8.6 +- Support for Windows Embedded Compact 2013 (Visual Studio 2012) +- Project and solution files for Visual Studio 2013 +- Changes for C++11 compatibility. +- fixed an issue with receiving empty web socket frames (such as ping) +- improved error handling in secure socket classes +- Poco::ByteOrder now uses intrinsics if available +- added new text encoding classes: Latin2Encoding, Windows1250Encoding, Windows1251Encoding +- Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension. + Used to avoid double-compression of already compressed file formats such as images. + + +Release 1.4.6p4 (2014-04-18) +============================ + +- no longer use reverse DNS lookups for cert hostname validation +- cert hostname validation is case insensitive and more strict +- HTMLForm: in URL encoding, percent-encode more special characters +- fixed thread priority issues on POSIX platforms with non-standard scheduling policy +- XMLWriter no longer escapes apostrophe character +- fixed GH #316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime +- fixed GH #305 (memcpy in Poco::Buffer uses wrong size if type != char) +- Zip: fixed a crash caused by an I/O error (e.g., full disk) while creating a Zip archive + + +Release 1.4.6p3 (2014-04-02) +============================ + +- Fixed a potential security vulnerability in client-side X509 + certificate verification. + + +Release 1.4.6p2 (2013-09-16) +============================ + +- fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel +- XML: fixed an issue with parsing a memory buffer > 2 GB +- upgraded to expat 2.1.0 +- Data/ODBC: added support for setting query timeout (via setProperty + of "queryTimeout"). Timeout is int, given in seconds. +- fixed a potential endless loop in SecureStreamSocketImpl::sendBytes() + and also removed unnecessary code. +- fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so + has been unloaded. +- fixed GH #155: MailOutputStream mangles consecutive newline sequences +- fixed GH# 139: FileChannel::PROP_FLUSH is invalid (contains a tab character) +- fixed GH# 173: HTTPClientSession::proxyConnect forces DNS lookup of host names +- fixed GH# 194: MessageNotification constructor is inefficient. +- fixed GH# 189: Poco::NumberParser::tryParse() documentation bug +- fixed GH# 172: IPv6 Host field is stripped of Brackets in HTTPClientSession +- fixed GH# 188: Net: SocketAddress operator < unusable for std::map key +- fixed GH# 128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is + already specified +- fixed GH# 65: Poco::format() misorders sign and padding specifiers +- upgraded bundled SQLite to 3.7.17 +- upgraded bundled zlib to 1.2.8 +- fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused + (e.g., sendRequest() is sent two times in a row without an intermediate call to + receiveResponse(), or by calling receiveResponse() two times in a row without + an intermediate call to sendRequest()) - GH #217 +- removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession + that would provide inappropriate access to internal state +- fixed GH# 223 (Poco::Net::HTTPCookie does not support expiry times in the past) +- fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) + does not work +- added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting + colorizing log messages +- fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll +- fixed GH# 254: UTF8::icompare unexpected behavior +- Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation + (links to specifications). +- Added support for ARM64 architecture and iPhone 5s 64-bit builds + (POCO_TARGET_OSARCH=arm64). + + +Release 1.4.6p1 (2013-03-06) +============================ + +- fixed GH# 71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS) +- fixed an ambiguity error with VC++ 2010 in Data/MySQL testsuite +- Poco::Net::NetworkInterface now provides the interface index even for IPv4 +- added DNS::reload() as a wrapper for res_init(). +- On Linux, Poco::Environment::nodeId() first always tries to obtain the + MAC address of eth0, before looking for other interfaces. +- Poco::Net::HTTPSession now always resets the buffer in connect() to clear + any leftover data from a (failed) previous session +- fixed copysign namespace issue in FPEnvironment_DUMMY.h +- fixed a warning in Poco/Crypto/OpenSSLInitializer.h +- added a build configuration for BeagleBoard/Angstrom +- fixed GH# 109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain) +- fixed compile errors with clang -std=c++11 +- fixed GH# 116: Wrong timezone parsing in DateTimeParse (fix by Matej Knopp) +- updated bundled SQLite to 3.7.15.2 + + +Release 1.4.6 (2013-01-10) +========================== + +- changed FPEnvironment_DUMMY.h to include <cmath> instead of <math.h> +- updated bundled SQLite to 3.7.15.1 +- fixed GH# 30: Poco::Path::home() throws +- fixed SF Patch# 120 The ExpireLRUCache does not compile with a tuple as key on VS2010 +- fixed SF# 603 count() is missing in HashMap +- Crypto and NetSSL_OpenSSL project files now use OpenSSL *MD.lib library files for + static_md builds. Previously, the DLL import libs were used. +- Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012 + + +Release 1.4.5 (2012-11-19) +========================== + +- added Visual Studio 2012 project files +- buildwin.cmd now support building with msbuild for VS2010 and 2012. +- added Poco::Optional class +- fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x +- fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS +- fixed SF# 3562244: Portability fix for AF_LINK +- fixed SF# 3562400: DatagramSocketImpl comment +- fixed SF# 594: Websocket fails with small masked payloads +- fixed SF# 588: Missing POCO_ARCH and POCO_ARCH_LITTLE_ENDIAN define for WinCE on SH4 +- fixed SF# 581: Out-of-bound array access in Unicode::properties() function. +- fixed SF# 590: Segfault on FreeBSD when stack size not rounded +- fixed SF# 586: Poco::DateTimeParser and ISO8601 issues when seconds fraction has more than 6 digits +- Poco::Net::HTTPSSessionInstantiator::registerInstantiator() now optionally accepts a + Poco::Net::Context object. +- added Poco::XML::XMLWriter::depth() member function. +- added Poco::XML::XMLWriter::uniquePrefix() and Poco::XML::XMLWriter::isNamespaceMapped(). +- Poco::FileChannel now supports a new rotateOnOpen property (true/false) which can be used + to force rotation of the log file when it's opened. +- fixed a bug in Poco::XML::XMLWriter::emptyElement(): need to pop namespace context +- OS X builds now use Clang as default compiler +- Updated SQLite to 3.7.14.1 +- POCO_SERVER_MAIN macro now has a try ... catch block for Poco::Exception and writes + the displayText to stderr. +- Poco/Platform.h now defines POCO_LOCAL_STATIC_INIT_IS_THREADSAFE macro if the compiler + generates thread-safe static local initialization code. + + +Release 1.4.4 (2012-09-03) +========================== + +- ZipStream now builds correctly in unbundled build. +- added proxy digest authentication support to Net library +- integrated MySQL BLOB fixes from Franky Braem. +- use standard OpenSSL import libraries (libeay32.lib, ssleay32.lib) for Crypto and + NetSSL_OpenSSL Visual Studio project files. +- fixed a potential buffer corruption issue in Poco::Net::SecureStreamSocket if lazy + handshake is enabled and the first attempt to complete the handshake fails +- Poco::DateTimeParser::tryParse() without format specifier now correctly parses ISO8601 + date/times with fractional seconds. +- Poco::Process::launch() now has additional overloads allowing to specify an initial + directory and/or environment. +- Poco::Net::FTPClientSession: timeout was not applied to data connection, only to + control connection. +- Fixed potential IPv6 issue with socket constructors if IPv6 SocketAddress is given + (contributed by ??????? ????????? <milovidov@yandex-team.ru>). +- Added an additional (optional) parameter to Poco::Thread::setOSPriority() allowing to + specify a scheduling policy. Currently this is only used on POSIX platforms and allows + specifying SCHED_OTHER (default), SCHED_FIFO or SCHED_RR, as well as other + platform-specific policy values. +- Added Poco::Crypto::DigestEngine class providing a Poco::DigestEngine interface to + the digest algorithms provided by OpenSSL. +- Fixed some potential compiler warnings in Crypto library +- In some cases, when an SSL exception was unexpectedly closed, a generic Poco::IOException + was thrown. This was fixed to throw a SSLConnectionUnexpectedlyClosedException instead. +- Added Poco::ObjectPool class template. +- Poco::Net::HTTPServer has a new stopAll() method allowing stopping/aborting of all + currently active client connections. +- The HTTP server framework now actively prevents sending a message body in the + response to a HEAD request, or in case of a 204 No Content or 304 Not Modified + response status. +- fixed a DOM parser performance bug (patch by Peter Klotz) +- fixed SF# 3559325: Util Windows broken in non-Unicode +- updated iOS build configuration to use xcode-select for finding toolchain +- Poco::Net::SecureSocketImpl::shutdown() now also shuts down the underlying socket. +- fixed SF# 3552597: Crypto des-ecb error +- fixed SF# 3550553: SecureSocketImpl::connect hangs +- fixed SF# 3543047: Poco::Timer bug for long startInterval/periodic interval +- fixed SF# 3539695: Thread attributes should be destroyed using the pthread_attr_destroy() +- fixed SF# 3532311: Not able to set socket option on ServerSocket before bind + Added Poco::Net::Socket::init(int af) which can be used to explicitely + initialize the underlying socket before calling bind(), connect(), etc. +- fixed SF# 3521347: Typo in UnWindows.h undef +- fixed SF# 3519474: WinRegistryConfiguration bug + Also added tests and fixed another potential issue with an empty root path passed to the constructor. +- fixed SF# 3516827: wrong return value of WinRegistryKey::exists() +- fixed SF# 3515284: RSA publickey format(X.509 SubjectPublicKeyInfo) +- fixed SF# 3503267: VxWorks OS prio is not set in standard constructor +- fixed SF# 3500438: HTTPResponse failure when reason is empty +- fixed SF# 3495656: numberformater, numberparser error in mingw +- fixed SF# 3496493: Reference counting broken in TaskManager postNotification +- fixed SF# 3483174: LogFile flushing behavior on Windows + Flushing is now configurable for FileChannel and SimpleFileChannel + using the "flush" property (true or false). +- fixed SF# 3479561: Subsequent IPs on a NIC is not enumerated +- fixed SF# 3478665: Permission checks in Poco::File not correct for root +- fixed SF# 3475050: Threading bug in initializeNetwork() on Windows +- fixed SF# 3552680: websocket small frames bug and proposed fix +- fixed a WebSocket interop issue with Firefox +- added Poco::Net::MessageHeader::hasToken() +- Poco::AtomicCounter now uses GCC 4.3 builtin atomics on more platforms +- fixed SF# 3555938: NetSSL: socket closed twice +- socket exceptions now include OS error code +- fixed SF# 3556975: Need to fix Shared Memory for memory map +- Poco::Net::SecureSocketImpl::close() now catches exceptions thrown by its call to shutdown(). +- fixed SF# 3535990: POCO_HAVE_IPv6 without POCO_WIN32_UTF8 conflict +- fixed SF# 3559665: Poco::InflatingInputStream may not always inflate completely +- added Poco::DirectoryWatcher class +- fixed SF# 3561464: Poco::File::isDevice() can throw due to sharing violation +- Poco::Zip::Compress::addRecursive() has a second variant that allows to specify the compression method. +- Upgraded internal SQLite to 3.7.14 + + +Release 1.4.3p1 (2012-01-23) +============================ + +- fixed SF# 3476926: RegDeleteKeyEx not available on Windows XP 32-bit + + +Release 1.4.3 (2012-01-16) +========================== + +- fixed a compilation error with Data/MySQL on QNX. +- fixed Util project files for WinCE (removed sources not compileable on CE) +- removed MD2 license text from Ackowledgements document +- fixed iPhone build config for Xcode 4.2 (compiler name changed to llvm-g++) +- Poco::Util::XMLConfiguration: delimiter char (default '.') is now configurable. + This allows for working with XML documents having element names with '.' in them. +- Poco::Util::OptionProcessor: Required option arguments can now be specified as + separate command line arguments, as in "--option value" in addition to the + "--option=value" format. +- Poco::Util::HelpFormatter: improved option help formatting if indentation has + been set explicitely. +- added Mail sample to NetSSL_OpenSSL, showing use of Poco::Net::SecureSMTPClientSession. +- added additional read() overloads to Poco::Net::HTMLForm. +- fixed SF# 3440769: Poco::Net::HTTPResponse doesn't like Amazon EC2 cookies. +- added support for requiring TLSv1 to Poco::Net::Context. +- added an additional constructor to Poco::Net::HTTPBasicCredentials, allowing + the object to be created from a string containing a base64-encoded, colon-separated + username and password. +- Poco::Zip::ZipStreamBuf: fixed a crash if CM_STORE was used. +- Added setContentLength64() and getContentLength64() to Poco::Net::HTTPMessage. +- added Poco::Environment::osDisplayName(). +- fixed SF# 3463096: WinService leaves dangling handles (open() now does not reopen the + service handle if it's already open) +- fixed SF# 3426537: WinRegistryConfiguration can't read virtualized keys +- added Poco::Buffer::resize() +- fixed SF# 3441822: thread safety issue in HTTPClientSession: + always use getaddrinfo() instead of gethostbyname() on all platforms supporting it +- added version resource to POCO DLLs +- fixed SF# 3440599: Dir Path in Quotes in PATH cause PathTest::testFind to fail. +- fixed SF# 3406030: Glob::collect problem +- added Poco::Util::AbstractConfiguration::enableEvents() +- Poco::AtomicCounter now uses GCC builtins with GCC 4.1 or newer + (contributed by Alexey Milovidov) +- made Poco::Logger::formatDump() public as it may be useful for others as well + (SF# 3453446) +- Poco::Net::DialogSocket now has a proper copy constructor (SF# 3414602) +- Poco::Net::MessageHeader and Poco::Net::HTMLForm now limit the maximum number of + fields parsed from a message to prevent certain kinds of denial-of-service + attacks. The field limit can be changed with the new method setFieldLimit(). + The default limit is 100. +- Poco::NumberFormatter, Poco::NumberParser and Poco::format() now always use the + classic ("C") locale to format and parse floating-point numbers. +- added Poco::StreamCopier::copyStream64(), Poco::StreamCopier::copyStreamUnbuffered64() + and Poco::StreamCopier::copyToString64(). These functions use a 64-bit integer + to count the number of bytes copied. +- upgraded internal zlib to 1.2.5 +- upgraded internal sqlite to 3.7.9 +- XML: integrated bugfix for Expat bug# 2958794 (memory leak in poolGrow) +- Added support for HTTP Digest authentication (based on a contribution by + Anton V. Yabchinskiy (arn at bestmx dot ru)). For information on how + to use this, see the Poco::Net::HTTPCredentials, Poco::Net::HTTPDigestCredentials + and Poco::Net::HTTPAuthenticationParams classes. +- Poco::Net::HTTPStreamFactory and Poco::Net::HTTPSStreamFactory now support Basic + and Digest authentication. Username and password must be provided in the URI. +- added Poco::Net::WebSocket, supporting the WebSocket protocol as described in RFC 6455 +- NetSSL_OpenSSL: added client-side support for Server Name Indication. + Poco::Net::SecureSocketImpl::connectSSL() now calls SSL_set_tlsext_host_name() + if its available (OpenSSL 9.8.6f and later). +- added Poco::Net::HTTPClientSession::proxyConnect() (factored out from + Poco::Net::HTTPSClientSession::connect()) +- added Poco::Process::kill(const Poco::ProcessHandle&) which is preferable to + kill(pid) on Windows, as process IDs on Windows may be reused. +- fixed SF# 3471463: Compiler warnings with -Wformat +- Poco::Util::Application::run() now catches and logs exceptions thrown in initialize() +- Fixed a WinCE-specific bug in Poco::Util::ServerApplication where uninitialize() would + be called twice. +- fixed SF# 3471957: WinRegistryKey::deleteKey() unable to delete alt views +- Added additional constructor to Poco::ScopedLock and Poco::ScopedLockWithUnlock + accepting a timeout as second argument. +- Added Poco::Logger::parseLevel() +- Poco::format(): an argument that does not match the format + specifier no longer results in a BadCastException. The string [ERRFMT] is + written to the result string instead. +- PageCompiler: added createSession page attribute. + + +Release 1.4.2p1 (2011-09-24) +============================ + +- On Linux, the RTLD_DEEPBIND option is no longer passed to dlopen(). + This change was introduced in 1.4.2 to solve a specific problem one customer + was having. Unfortunately, it leads to problems with RTTI. +- It's now possible to pass flags (SHLIB_GLOBAL, SHLIB_LOCAL) to + Poco::SharedLibrary::load() (and the constructor implicitly calling load()), + controlling the mode flags (RTLD_GLOBAL, RTLD_LOCAL) passed to dlopen(). + On platforms not using dlopen(), these flags are ignored. +- fixed SF# 3400267: Path_WIN32.cpp bug + + +Release 1.4.2 (2011-08-28) +========================== + +- added Poco::DateTimeFormat::ISO8601_FRAC_FORMAT +- added new Poco::DateTimeFormatter and Poco::DateTimeParser format specifier: + %s for seconds with optional fractions of a second +- fixed a problem with ioctl() on BSD platforms (including OS X) where the + second argument to ioctl() is unsigned long instead of int, causing bad + things on a OS X 64-bit kernel. +- fixed a potential endless loop when enumerating IPv6 network addresses + (reported by Laurent Carcagno) +- new compile-time config option on Windows to set thread names in + debugger. Enable with -DPOCO_WIN32_DEBUGGER_THREAD_NAMES. Available + only in debug builds. +- Cipher can now create Base64 and HexBinary encoded output without linefeeds + (suitable for use in cookies, etc.) +- added Poco::Path::popFrontDirectory() +- improved VxWorks support +- IPv6 fixes: added proper scope id handling in IPAddress, SocketAddress + and related classes. +- Added Poco::Net::ServerSocket::bind6() which allows control over the + IPPROTO_IPV6/IPV6_V6ONLY socket option. +- Removed Poco::MD2Engine class due to licensing issues (the + license for the MD2 code from RSA only allows non-commercial + use). Note that the MD4 and MD5 code from RSA does not have + this issue. +- fixed a Net HTTP client testsuite issue where some tests might + have failed due to prematurely aborted connections by + the HTTPTestServer. +- Poco::Net::SocketAddress: when there is more than one address + returned by a DNS lookup for a name, IPv4 addresses will be + preferred to IPv6 ones. +- NetworkInterface::list() now also returns IPv4 interfaces on Windows when + built with -DPOCO_HAVE_IPv6 +- XMLWriter: fixed a bug with attribute namespaces (no namespace prefix + written if attribute namespace is the same as element namespace) +- fixed SF# 3378588: Mismatched new[]/delete (in RSAEncryptImpl and RSADecryptImpl) +- fixed SF# 3212954 (OpenSSLInitializer::uninitialize() crash) and + SF# 3196862 (Static OpenSSLInitializer instance causes Windows deadlocks) by + removing the static Poco::Crypto::OpenSSLInitializer instance. Automatic OpenSSL + initialization is now done through Poco::Crypto::Cipher, Poco::Crypto::CipherKey, + Poco::Crypto::X509Certificate, Poco::Net::Context classes; however, it is still + recommended to call Poco::Crypto::initializeCrypto() and + Poco::Crypto::uninitializeCrypto() early at application startup, and late at + shutdown respectively (or Poco::Net::initializeSSL()/Poco::Net::uninitializeSSL() + if the NetSSL library is used) to avoid multiple full OpenSSL init/uninit cycles + during application runtime. +- Poco::Logger now also support a symbolic log level "none" + (for use with setLevel()) that disables logging completely + for that Logger (equivalent to setLevel(0)). +- Added experimental Android support, using the existing gmake-based + build system. +- fixed SF# 3288584: DateTimeFormatter link error +- fixed SF# 3187117: Typo in InflatingInputStream doc +- fixed SF# 3309731: _WIN32_WCE comparison should be with 0x600 not 600 +- fixed SF# 3393026: RegularExpression.h identical enum value +- fixed SF# 3274222: AtomicCounter's postfix operators aren't atomic on Windows +- fixed SF# 3317177: Handle leak on windows +- fixed SF# 3181882: Poco::URI::getPathEtc() double-encodes query +- fixed SF# 3379935: ThreadPool Start Bug +- fixed SF# 3354451: Poco::Format::parsePrec never sets the precision to zero +- fixed SF# 3387258: _MAX_PATH used but unknown in Path_WIN32 +- fixed a problem in RSAKeyImpl where direct access to the RSA in a EVP_PKEY + would no longer work in recent OpenSSL versions. Using EVP_PKEY_get1_RSA() + fixes the issue. +- added Poco::Crypto::EncryptingInputStream, Poco::Crypto::EncryptingOutputStream, + Poco::Crypto::DecryptingInputStream and Poco::Crypto::DecryptingOutputStream. +- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException +- fixed SF# 3178098: Add constructor to Poco::TemporaryFile to specify directory +- fixed SF# 3175310: Absolute path when device +- fixed SF# 3301207: Guided tour example contradicts apidoc (API doc was wrong) +- Poco::Net::HTTPMessage::setContentLength() and Poco::Net::HTTPMessage::getContentLength() now + use std::streamsize instead of int. This enables 64-bit Content-Length support at least + on 64-bit platforms. +- fixed SF# 3177530: TemporaryFile::tempName() + glob bug on xp +- fixed SF# 3177372: FileChannel documentation inconsistency +- added %E format specifier to Poco::PattermFormatter (epoch time in seconds + since midnight, January 1 1970) +- On Windows, Poco::Util::ServerApplication now supports a /description command + line argument for specifying a service description (together with /registerService) +- added Poco::Util::WinService::setDescription() and + Poco::Util::WinService::getDescription() +- fixed SF# 3155477: Incorrect URI path handling +- fixed SF# 3309736: Extended Exception macros to set default exception code + new macro is named POCO_DECLARE_EXCEPTION_CODE +- added getter functions for modulus and exponents to Poco::Crypto::RSAKey. +- added Poco::Net::SocketAddress::operator == () and + Poco::Net::SocketAddress::operator != () +- fixed SF# 3182746: IPAddress.cpp IPv6 bug on big-endian +- fixed SF# 3196961: Unix daemon fails to loadConfiguration() if started from cwd +- fixed SF# 3393700: NotificationCenter may call a removed observer and crash. +- Reworked implementation of the events framework (Poco::BasicEvent and friends). + The framework is now completely multithreading save (even in the case that + an event subscriber object unsubscribes and is deleted while an event is + being dispatched). Also, the restriction that any object can only register + one delegate for each event has been removed. For most cases, dispatching + events should be faster, as dispatching an event now needs less dynamic memory + allocations. +- fixed SF# 3178109: getNodeByPath() changes: + getNodeByPath() and getNodeByPathNS() have been moved to Poco::XML::Node. + Furthermore, when invoked on a Poco::XML::Document, the behavior has changed + so that the document element is now included when traversing the path (previously, + traversal would start at the document element, now it starts at the document). + The path expression can now start with a double-slash, which results in a recursive + search for the path's first element in the DOM tree. +- fixed SF# 3382935: String data being truncated using ODBC, and + SF# 2921813: Wrong implementation of the ODBC string binding + + +Release 1.4.1p1 (2011-02-08) +============================ + +- Poco::Mutex is now a recursive mutex again on Linux + (this was caused by an unfortunate feature test for + PTHREAD_MUTEX_RECURSIVE which did not work on Linux + as PTHREAD_MUTEX_RECURSIVE is an enum value and not + a macro) +- Poco::Net::SecureSocketImpl::abort() now only shuts + down the underlying socket connection and does not free + the SSL object, due to multithreading issues. + + +Release 1.4.1 (2011-01-29) +========================== + +- fixed SF# 3150223: Poco::BinaryReader cannot read std::vector correctly +- fixed SF# 3146326: SharedMemory issue +- made Poco::Net::HTTPSession::abort() virtual +- added Poco::Net::SecureStreamSocket::abort() to immediately close + a SSL/TLS connection without performing an orderly SSL/TLS shutdown. +- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException. + Added try/catch block to Poco::Net::SecureSocketImpl destructor. +- added additional constructor to Poco::Net::HTTPSClientSession, taking + both a socket and a session object. +- Poco::Net::HTTPSession::abort() now also can be used with a + Poco::Net::HTTPSClientSession. +- fixed SF# 3148045: make clean and distclean issues +- changed Data library names on Unix/Linux platforms to + match the names on Windows (PocoSQLite -> PocoDataSQLite, + PocoMySQL -> PocoDataMySQL, PocoODBC -> PocoDataODBC) +- added additional options to configure script +- added additional documentation to Poco::Net::HTTPClientSession +- Poco::Net::HTTPClientSession::receiveResponse() closes the connection + if an exception is thrown while reading the response header. + This ensures that a new connection will be set up for the next request + if persistent connections are used. +- improved Poco::Net::MultipartDecoder performance by reading directly from streambuf +- improved performance of Poco::Base64Encoder, Poco::Base64Decoder, + Poco::HexBinaryEncoder and Poco::HexBinaryDecoder by working directly with the + given stream's streambuf. +- improved performance of MessageHeader::read() by reading directly from streambuf + instead of istream. +- it is now possible to specify additional MIME part header fields + for a MIME part through the Poco::Net::PartSource class. +- upgraded SQLite to release 3.7.4 +- added experimental VxWorks support for VxWorks 5.5.1/Tornado 2.2 and + newer. Please see the VxWorks Platform Notes in the reference documentation + for more information. Currently, the VxWorks is untested; full support + will be available in release 1.4.2. +- fixed SF# 3165918: Poco::DynamicAny fails to convert from string to float +- fixed SF# 3165910: Poco::Net::MessageHeader does not accept HTTP conforming header +- made Poco::Task::cancel() virtual so that tasks can implement custom + cancellation behavior. +- added optional argument to Poco::Util::WinRegistryKey constructor + to specify additional flags (in addition to KEY_READ and KEY_WRITE) + for the samDesired argument of RegOpenKeyEx() or RegCreateKeyEx(). +- improved Poco::BasicEvent::notify() performance by avoiding an unnecessary heap + allocation. +- added additional well-known port numbers to Poco::URI: rtsp, sip, sips, xmpp. +- added Poco::Net::MediaType::matchesRange() +- improved invalid socket handling: a Poco::Net::InvalidSocketException is + now thrown instead of an assertion when an operation is attempted on a closed or + otherwise uninitialized socket. + + +Release 1.4.0 (2010-12-14) +========================== + +- SSLManager: documentation fixes, code cleanup +- SSLManager: renamed PrivateKeyPassPhrase event to PrivateKeyPassphraseRequired +- added HTTPServerRequestImpl::socket() to get access to the underlying socket +- added Socket::secure() to find out whether a given socket supports SSL/TLS +- added SecureStreamSocket::havePeerCertificate() +- NetSSL: added support for turning off extended certificate validation (hostname matching) +- fixed SF# 2941228: ICMPClient::ping() issues on Mac OS X +- fixed SF# 2941231: ICMPEventArgs out of bounds array access +- added PageCompiler sample +- added missing newline at end of xmlparse.c +- Poco::Glob can now be used with an empty pattern which will match nothing (patch from Kim Graesman) +- added support for HTTP proxy authentication (Basic authentication only) +- fixed SF# 2958959: XMLWriter must encode CR, LF and TAB in attribute values as character entities. +- HTMLForm now supports PUT requests as well (see <http://pocoproject.org/forum/viewtopic.php?f=12&t=2163&p=3930#p3930>) +- fixed SF# #2970521: FileOutputStream and file permissions. + (also fixed in File class) +- removed an unused (and wrong) default parameter from EventImpl constructor for WIN32. +- added full support for session caching to NetSSL_OpenSSL +- fixed SF# 2984454: Poco::Util::Timer::scheduleAtFixedRate() works incorrectly +- fixed a bug in Poco::Util::Timer that could lead to high CPU load if + the system clock is moved forward. +- added system.nodeId to SystemConfiguration +- added a note to Poco::Util::ServerApplication documentation regarding + creation of threads +- added Poco::Net::IPAddress::broadcast() and Poco::Net::IPAddress::wildcard() to + create broadcast (255.255.255.255) and wildcard (0.0.0.0) addresses. +- fixed SF# 2916154: Poco::Net::IPAddress::isLoopback() only works for 127.0.0.1. +- added build configuration for iPhone Simulator +- GNU Make based build system provides new variables: POCO_HOST_BINDIR, POCO_HOST_BINPATH, + POCO_HOST_LIBDIR, POCO_HOST_LIBPATH and POCO_TARGET_* equivalents. +- Application::initialize() and Application::uninitialize() will now be called from within run(). + This solves various issues with uninitialize() not being called, or being called inappropriately + from the Application destructor. + Please note that this change will break applications that use the Application class, + but only call init() and not run(). +- added /startup option to specify startup mode for Windows services (automatic or manual) +- fixed SF# 2967354: SecureSocketImpl shutdown/close problem +- fixed SF# 3006340: LinearHashTable grows even if key already exists +- fixed a particularly nasty Windows error handling issue that manifested itself on WinCE: + WSAGetLastError() would be called after a std::string was created. The string creation could result + in a heap operation which called a Windows API to allocate memory. This would reset the + GetLastError() error code. Since WSAGetLastError() is just an alias for GetLastError(), the actual + error code from the socket operation would be lost. +- upgraded SQLite to 3.7.3 +- added --header-prefix option to PageCompiler +- fixed SF# 3003875: SQLite data binding is broken +- fixed SF# 2993988: Issue with multiple calls to open()/close() on File*Stream +- fixed SF# 2990256: HTMLForm and file uploads +- fixed SF# 2969227: DateTimeParser bug +- fixed SF# 2966698: Socket connect with timeout issue +- fixed SF# 2981041: Bind NULL to a query (patch supplied) +- fixed SF# 2961419: UTF8Encoding::convert() doesn't work properly in DEBUG mode +- fixed SF# 2957068: Timeout value not picked up by proxy in HTTPSClientSession +- fixed NetSSL_OpenSSL test runner for Poco::Util::Application class changes +- Poco::AbstractEvent, Poco::AbstractCache and related classes now accept a Mutex class as additional template argument. + Poco::NullMutex can be used if no synchronization is desired. +- Added Poco::AbstractEvent::empty() to check whether an event has registered delegates. +- Poco::URI now correctly handles IPv6 addresses. +- Added Poco::Nullable class template. +- Added Poco::NullMutex, a no-op mutex to be used as template argument for template classes + taking a mutex policy argument. +- Poco::XML::XMLWriter: fixed a namespace handling issue that occured with startPrefixMapping() and endPrefixMapping() +- Poco::Net::Context now allows for loading certificates and private keys from Poco::Crypto::X509Certificate objects + and Poco::Crypto::RSAKey objects. +- Poco::Crypto::RSAKey no longer uses temporary files for stream operations. Memory buffers are used instead. +- fixed SF# 2957865: added Poco::UUID::tryParse() +- All Zip classes now use Poco::File[Input|Output]Stream instead of std::[i|o]fstream. + UTF-8 filenames will now be handled correctly on Windows. +- fixed SF# 2902029: zlib flush support (Z_SYNC_FLUSH) +- added Poco::TextBufferIterator class +- fixed SF# 2977249: Use epoll instead select under Linux + Socket::select() and Socket::poll() will use epoll under Linux if the Net library is compiled + with -DPOCO_HAVE_FD_EPOLL. This is the default for the Linux build configuration (but not for + the various build configurations targeting embedded Linux platforms). +- fixed SF# 2941664: Memory leak in DeflatingStream with zero-length streams (also fixed some other potential, + but unlikely, memory leaks) +- fixed SF# 2946457: added RejectCertificateHandler +- fixed SF# 2946621: Poco::Path bug with POCO_WIN32_UTF8 +- fixed SF# 2929805: Environment::nodeId() does not work if no eth0 device exists +- Environment::nodeId() no longer throws if no hardware ethernet address can be determined. + It returns an all-zero address instead. +- Added additional classification functions to Poco::Unicode class; made classification functions inline. +- added Ascii class for ASCII character classification. + Methods of the Ascii class are now used instead of the + standard library functions (std::isspace(), etc.) due to + possible inconsistent results or assertions when the + standard library functions are used with character codes + outside the ASCII range. +- Poco::Net::MailMessage: fixed a bug in StringPartHandler that resulted in incorrect handling of non-ASCII data if + char is signed. +- Improved Poco::Net::SMTPClientSession compatibility with various mail servers when using AUTH_LOGIN authentication. +- Added CRAM-SHA1 support to Poco::Net::SMTPClientSession +- Poco::Net::SMTPClientSession now also supports login with AUTH PLAIN. +- Added Poco::Net::SecureSMTPClientSession class, supporting STARTTLS for secure SMTP connections. +- fixed an issue with SharedMemory on POSIX systems, where a shared memory region would be deleted + despite the server flag set to true (see http://pocoproject.org/forum/viewtopic.php?f=12&t=3494). +- PageCompiler: added a new page context directive, to allow passing custom context objects to the + request handler. +- fixed StreamSocketImpl::sendBytes() for non-blocking sockets +- added Poco::Net::DialogSocket::receiveRawBytes(), which should be used instead of receiveBytes() due to internal + buffering by DialogSocket. +- DOMParser: FEATURE_WHITESPACE has been renamed to FEATURE_FILTER_WHITESPACE (which now matches the underlying URI) + and is now handled correctly (previously we did the exact reverse thing) +- added Poco::Util::AbstractConfiguration::remove() to remove a configuration property; added removeRaw() implementations + to all implementations (contributions by Daniel Hobi and Alexey Shults). +- fixed NetSSL_OpenSSL compilation error on Windows with OpenSSL 1.0 +- Added optional FIPS mode support to NetSSL_OpenSSL (contributed by Lior Okman). + If OpenSSL has been configured and built with FIPS support, then FIPS support can + be enabled by calling Poco::Crypto::OpenSSLInitializer::enableFIPSMode(true); or + by setting the fips property in the OpenSSL configuration to true (see Poco::Net::SSLManager + for details). +- fixed SF# 3031530: Ping and possible no timeout +- added Poco::Net::SocketReactor::onBusy(), called whenever at least one notification will + be dispatched. +- fixed SF# 3034863: Compiler warning in net/IPAddress.h with poco 1.3.2 +- added support for CRAM-SHA1 authentication to SMTPClientSession +- Poco::format(): arguments can now be addressed by their index, e.g. %[2]d +- Poco::Util::Timer::cancel() now accepts an optional boolean argument. + If true is passed, cancel() waits until the task queue has been purged. + Otherwise, it returns immediately and works asynchronously, as before. +- Poco::Net::HTTPServerResponse::redirect() now accepts an optional additional + argument to specify the HTTP status code for the redirection. +- fixed a warning (BinaryReader.cpp) and error (ThreadLocal.cpp) in Foundation when compiling with Visual Studio 2010 +- fixed a wrong exception in Poco::Net::POP3ClientSession +- Poco::Net::FTPClientSession and Poco::Net::SMTPClientSession now set the error code in exceptions they throw +- fixed a potential race condition with terminating a Windows service based on Poco::Util::ServerApplication +- fixed a bug in global build configuration file: explicitly setting POCO_CONFIG did not work on Solaris platforms, + as it was always overridden by the automatically determined configuration. +- Added support for MinGW cross builds on Linux. +- Changed location of statically linked build products in the gmake-based build system. + Statically linked executables are now in bin/$(OSNAME)/$(OSARCH)/static and no longer + have the _s suffix +- The POCO_VERSION macro now is in its own header file, "Poco/Version.h". It is no longer + available through "Poco/Foundation.h". +- added Poco::Net::HTTPCookie::escape() and Poco::Net::HTTPCookie::unescape(). +- fixed SF# 3021173: Thread (POSIX) returns uninitialised value for OS priority +- fixed SF# 3040870: ThreadPool has no function to get assigned name +- fixed SF# 3044303: Can't use own config file on Solaris & OSARCH_64BITS ignored +- fixed SF# 2943896: AsyncChannel::log blocks +- fixed a bug in Poco::Util::WinRegistryKey::getInt(): + The size variable passed to RegQueryValueExW() should be initialized to the size + of the output buffer. +- Added rudimentary support for compiling with Clang 2.0 (Xcode 4) on Mac OS X. +- New build configurations for Mac OS X: Darwin32 and Darwin64 for explicit + 32-bit and 64-bit builds. Note that the default Darwin build configuration + will build 64-bit on Snow Leopard and 32-bit on Leopard, but will always place + build products in Darwin/i386. The new Darwin32 and Darwin64 configurations + will use the correct directories. +- fixed SF# 3051598: Bug in URL encoding +- Poco::ThreadPool::stopAll() (and thus also the destructor) will now wait for each + pooled thread to terminate before returning. This fixes an issue with creating + and orderly shutting down a thread pool in a plugin. Previously, a pooled thread + in a thread pool created by a dynamically loaded library might still be running + when the plugin's shared library was unloaded, resulting in Bad Things happening. + This can now no longer happen. As a downside, a pooled thread that fails to + finish will block stopAll() and the destructor forever. +- NetSSL_OpenSSL: for a SecureStreamSocket, available() now returns the number of bytes that + are pending in the SSL buffer (SSL_pending()), not the actual socket buffer. +- Added Poco::Net::HTTPClientSession::secure() to check for a secure connection. +- Poco::Net::HTTPRequest::setHost() now does not include the port number in the Host header + if it's either 80 or 443. +- log messages can now optionally include source file path and line number +- Poco::PatternFormatter can format source file path and line number (%U, %u) +- logging macros (poco_information(), etc.) now use __LINE__ and __FILE__ +- new logging macros that incorporate Poco::format(): poco_information_f1(logger, format, arg) with up to 4 arguments +- added Poco::Net::HTTPSession::attachSessionData() and Poco::Net::HTTPSession::sessionData() + to attach arbitrary data to a HTTP session. +- added additional constructors to zlib stream classes that allow passing + a windowBits parameter to the underlying zlib library. +- fixed a potential error handling issue in Poco::Net::SecureSocketImpl. +- fixed SF# 3110272: RSACipherImpl bug. +- fixed SF# 3081677: ConfigurationView's getRaw not retrieving xml attributes. +- added basic support for Canonical XML and better pretty-printing support to Poco::XML::XMLWriter. +- Poco::Util::AbstractConfiguration now supports events fired when changing or + removing properties. +- XML: added support for finding DOM nodes by XPath-like + expressions. Only a very minimal subset of XPath is supported. + See Poco::XML::Element::getNodeByPath(), Poco::XML::Element::getNodeByPathNS() + and the same methods in Poco::XML::Document. +- Poco::Timer: If the callback takes longer to execute than the + timer interval, the callback function will not be called until the next + proper interval. The number of skipped invocations since the last + invocation will be recorded and can be obtained by the callback + by calling skipped(). +- Poco::BinaryReader and Poco::BinaryWriter now support reading and + writing std::vectors of the supported basic types. Also, strings + can now be written in a different encoding (a Poco::TextEncoding + can be optionally passed to the constructor). +- Poco::UUID::nil() and Poco::UUID::isNil() have been renamed to + Poco::UUID::null() and Poco::UUID::isNull(), respectively, to avoid + issues with Objective-C++ projects on Mac OS X and iOS where nil is + a system-provided macro. +- Crypto bugfixes: RSACipherImpl now pads every block of data, not just the + last (or last two). +- Improved Crypto testsuite by adding new tests +- Added new Visual Studio project configurations: debug_static_mt and release_static_mt + (linking with static runtime libraries). The existing configurations debug_static + and release_static have been renamed to debug_static_md and release_static_md, respectively. + The suffixes of the static libraries have also changed. The static_md configurations + now build libraries with suffixes md[d], while the libraries built by the static_mt + configurations have mt[d] suffixes. +- Added Visual Studio project files for 64-bit builds. +- Added Visual Studio 2010 project files. +- Removed the use of local static objects in various methods due to + their construction not being threadsafe (and thus leading to + potential race conditions) on Windows/Visual C++. +- Fixed some warning on 64-bit Windows builds. +- The name of the Data connector libraries have changed. They are now + named PocoDataMySQL, PocoDataODBC and PocoDataSQLite. +- fixed SF# 3125498: Linux NetworkInterface::list() doesn't return IPv6 IPs +- fixed SF# 3125457: IPv6 IPAddress tests are wrong +- Added initialization functions for the NetSSL_OpenSSL and Crypto libraries. + These should be called instead of relying on automatic initialization, + implemented with static initializer objects, as this won't work with + statically linked executables (where the linker won't include the + static initializer object). + The functions are Poco::Crypto::initializeCrypto(), Poco::Crypto::uninitializeCrypto(), + Poco::Net::initializeSSL() and Poco::Net::uninitializeSSL(). + Applications using Crypto and/or NetSSL should call these methods appropriately at + program startup and shutdown. + Note: In release 1.3.6, similar functions have been added to the Net library. + + +Release 1.3.6p2 (2010-01-15) +============================ + +- fixed an issue in the Windows implementation Poco::RWLock, where + tryReadLock() sometimes would return false even if no writers + were using the lock (fix contributed by Bjrn Carlsson) +- added Poco::Environment::libraryVersion(). +- fixed SF# 2919461: Context ignores parameter cypherList +- removed an unused enum from RSACipherImpl.cpp (Crypto) +- integrated a new expat patch for CVE-2009-3560. +- fixed SF# 2926458: SSL Context Problem. The Poco::Net::Context + class now makes sure that OpenSSL is properly initialized. +- updated iPhone build configuration (contributed by Martin York) +- fixed SF# 1815124 (reopened): XML Compile failed on VS7.1 with + XML_UNICODE_WCHAR_T +- fixed SF# 2932647: FTPClientSession::getWorkingDirectory() returns a bad result + + +Release 1.3.6p1 (2009-12-21) +============================ + +- 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 <iface-Obj>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 +- 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<HTTPServerParams> +- 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:<path>" or "/B:<path>". + 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 + + +Release 1.3.3p1 (2008-10-09) +============================ + +- 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 phireis@gmail.com 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. <cstring>) instead of + C ones (<string.h>). 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 <windows.h> 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 +- 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 (info@appinf.com) 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 + + +Release 1.1b2 (2006-03-04) +========================== + +- made NetSSL threadsafe (added locking callbacks for OpenSSL) +- improved OpenSSL initialization (random generator seeding) +- various changes to improve compatibility with various platforms + + +Release 1.1b1 (2006-03-03) +========================== + +- 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 +- 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 + + +Release 1.0b2 (2006-01-16) +========================== + +- 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 + + +Release 1.0b1 (2006-01-09) +========================== + +- 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 + + +Release 1.0a1 (2006-01-03) [internal] +===================================== + +- 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++ <locale> 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. |