mirror of
https://github.com/pocoproject/poco.git
synced 2024-12-14 19:13:49 +01:00
79838aa76d
GH #42: Linux unbundled builds don't link
1842 lines
100 KiB
Plaintext
1842 lines
100 KiB
Plaintext
This is the changelog file for the POCO C++ Libraries.
|
|
|
|
Release 1.5.1 (2012-12-25)
|
|
==========================
|
|
- 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 #41: Buffer::resize crash
|
|
- fixed GH #42: Linux unbundled builds don't link
|
|
- fixed GH #44: Problems with win x64 build
|
|
|
|
|
|
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.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.
|
|
|
|
|
|
--
|
|
$Id: //poco/1.4/dist/CHANGELOG#59 $
|