Share

asio C++ library

File Release Notes and Changelog

Release Name: 1.3.1 (Development)

Notes:
The asio 1.3.1 release continues the 1.3.x development series, and
represents the complete feature set that will become asio 1.4.x.

Changes: The new features in this release are: * Lazy initialisation of the io_service reactor task. On platforms that use a reactor-based io_service (i.e. all POSIX platforms and Windows when I/O completion ports are disabled), the reactor is now lazily initialised when the first socket, timer or descriptor is created on the io_sevice. This change significantly reduces the memory usage of an io_service that is used purely as a message queue. * Bounds checking in ip::address_v4 and ip::address_v6. The address classes now perform boundary checking of integer arguments as per the TR2 networking proposal. The bug fixes of note in this release are: * Fixed an infinite recursion in synchronous SSL handshaking. * Fixed a memory leak cause by the prior change to allow globally scoped io_service objects in dynamically loaded libraries on Windows. Such applications must now call: asio::detail::thread::set_terminate_threads(true); prior to the DLL being unloaded, to prevent deadlock in DllMain. * Ensured the streambuf's egptr() (the end of the get area) is kept synchronised with changes to pptr() (the start of the put area). * Reduced data copying when a streambuf's internal buffer is resized or its contents are moved. * Made service typeids work across shared library boundaries when the default gcc linker visibility is set to hidden. * Fixed basic_socket_streambuf<> and basic_socket_iostream<> to work with Protocol objects that do not provide a resolver.