diff --git a/src/cpp/ripple/AutoSocket.h b/src/cpp/ripple/AutoSocket.h index 9dd737ba3b..d472eb982e 100644 --- a/src/cpp/ripple/AutoSocket.h +++ b/src/cpp/ripple/AutoSocket.h @@ -129,8 +129,16 @@ public: mSocket->async_shutdown (handler); else { - lowest_layer ().shutdown (plain_socket::shutdown_both); - mSocket->get_io_service ().post (boost::bind (handler, error_code ())); + error_code ec; + try + { + lowest_layer ().shutdown (plain_socket::shutdown_both); + } + catch (boost::system::system_error& e) + { + ec = e.code(); + } + mSocket->get_io_service ().post (boost::bind (handler, ec)); } }