Make basic_io_object constructor protected.
Make a 0-length send or receive on a stream socket into a no-op.
Add cancel() function for cancelling asynchronous socket operations.
The Win32 implementation only works if all operations for the socket
have been issued from the same thread, otherwise it fails with
asio::error::not_supported.
Add workaround for an apparent Windows bug where using getpeername on
a socket accepted using AcceptEx will sometimes return an endpoint
that is all zeroes.
Make a strand last as long as it has any handlers to dispatch. Make
strand a nested class of io_service.
Add io_service() function to io_service::work to return a reference to
the io_service object on which the work is being performed. Renamed
io_service::service::owner() to io_service::service::io_service().
Unset linger object when socket objects are destroyed.
Rename asio_handler_dispatch to asio_handler_invoke.
Rename basic_socketbuf to basic_socket_streambuf.
Update ip::address_v4 and ip::address_v6 classes to match TR2
proposal.
Add run_one(), poll() and poll_one() functions to the io_service.
Remove need to #define FD_SETSIZE on Win32.
Add detection of incorrect inclusion of WinSock.h.
Fix some SSL bugs. Add ability to customise the SSL password callback
function.
Set the reuse_address option by default on acceptors.
The macros FIONREAD and FIONBIO are not integer constants on all
platforms, and so cannot be used as template arguments. Make the
corresponding I/O control commands into proper classes, not templates.
Fixes to better support *BSD platforms.
Add support for buffer debugging, if the standard library supports
iterator debugging (as MSVC8's standard lib does).
Ensure the IOCP queue is drained correctly at shutdown.
Move basic_resolver and resolver service into the ip namespace.
Fix some issues found by the inspect tool.
[SVN r35833]
- A read operation should check the read buffer first to see if there's any
data present and use that first, before issuing a new read from the
socket.
- The read buffer was a member of the openssl_operation class, and a new
openssl_operation object is created for each read or write initiated by
the application. This meant that any surplus data from a previous read is
lost. Changed the buffer to be a member of the stream object.
[SVN r34738]
immediately if called from within the strand.
Add hook function for customising handler dispatch.
Need to use reinterpret_cast when testing for enable_connection_aborted
socket option, to allow non-int socket options to compile correctly.
[SVN r34464]