diff --git a/src/cpp/ripple/RPCServer.cpp b/src/cpp/ripple/RPCServer.cpp index 188beb9b8..dc6794e27 100644 --- a/src/cpp/ripple/RPCServer.cpp +++ b/src/cpp/ripple/RPCServer.cpp @@ -63,7 +63,7 @@ void RPCServer::handle_read_line (const boost::system::error_code& e) { // request with no body WriteLog (lsWARNING, RPCServer) << "RPC HTTP request with no body"; - mSocket.async_shutdown (boost::bind (&RPCServer::handle_shutdown, shared_from_this(), boost::asio::placeholders::error)); + mSocket.async_shutdown (mStrand.wrap (boost::bind (&RPCServer::handle_shutdown, shared_from_this(), boost::asio::placeholders::error))); return; } else if (action == haREAD_LINE) @@ -79,7 +79,7 @@ void RPCServer::handle_read_line (const boost::system::error_code& e) if ((rLen < 0) || (rLen > RPC_MAXIMUM_QUERY)) { WriteLog (lsWARNING, RPCServer) << "Illegal RPC request length " << rLen; - mSocket.async_shutdown (boost::bind (&RPCServer::handle_shutdown, shared_from_this(), boost::asio::placeholders::error)); + mSocket.async_shutdown (mStrand.wrap (boost::bind (&RPCServer::handle_shutdown, shared_from_this(), boost::asio::placeholders::error))); return; } @@ -100,7 +100,7 @@ void RPCServer::handle_read_line (const boost::system::error_code& e) } } else - mSocket.async_shutdown (boost::bind (&RPCServer::handle_shutdown, shared_from_this(), boost::asio::placeholders::error)); + mSocket.async_shutdown (mStrand.wrap (boost::bind (&RPCServer::handle_shutdown, shared_from_this(), boost::asio::placeholders::error))); } std::string RPCServer::handleRequest (const std::string& requestStr) @@ -190,7 +190,7 @@ void RPCServer::handle_write (const boost::system::error_code& e) HTTPRequestAction action = mHTTPRequest.requestDone (false); if (action == haCLOSE_CONN) - mSocket.async_shutdown (boost::bind (&RPCServer::handle_shutdown, shared_from_this(), boost::asio::placeholders::error)); + mSocket.async_shutdown (mStrand.wrap (boost::bind (&RPCServer::handle_shutdown, shared_from_this(), boost::asio::placeholders::error))); else { boost::asio::async_read_until (mSocket, mLineBuffer, "\r\n",