POCO v1.7.8.p2 Release Notes

Release Date: 2017-04-18 // about 7 years ago
    • 🛠 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
    • 0️⃣ 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.
    • 0️⃣ 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::parseHex64: 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 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 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
    • 0️⃣ 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
    • 0️⃣ 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
    • 0️⃣ simplified default TCP/HTTPServer construction
    • 🛠 fixed GH #141: Application::run() documentation/implementation discrepancy
    • 🔄 changed RowFormatter to SharedPtr 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 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