In AutoSocket::async_shutdown, pass the error code to the handler, don't throw it.

This commit is contained in:
JoelKatz
2013-06-15 01:41:18 -07:00
parent 3c44019e01
commit 538da9494f

View File

@@ -128,9 +128,17 @@ public:
if (isSecure ()) if (isSecure ())
mSocket->async_shutdown (handler); mSocket->async_shutdown (handler);
else else
{
error_code ec;
try
{ {
lowest_layer ().shutdown (plain_socket::shutdown_both); lowest_layer ().shutdown (plain_socket::shutdown_both);
mSocket->get_io_service ().post (boost::bind (handler, error_code ())); }
catch (boost::system::system_error& e)
{
ec = e.code();
}
mSocket->get_io_service ().post (boost::bind (handler, ec));
} }
} }