diff --git a/src/asio_service.cxx b/src/asio_service.cxx index 740ebc9d..461f786f 100644 --- a/src/asio_service.cxx +++ b/src/asio_service.cxx @@ -1462,6 +1462,15 @@ class asio_rpc_client asio::ip::tcp::resolver::iterator itor ) -> void { if (!err) { + if (send_timeout_ms != 0) { + operation_timer_.expires_after + ( std::chrono::duration_cast + ( std::chrono::milliseconds( send_timeout_ms ) ) ); + operation_timer_.async_wait( + std::bind( &asio_rpc_client::cancel_socket, + this, + std::placeholders::_1 ) ); + } asio::async_connect ( socket(), itor, @@ -1472,15 +1481,6 @@ class asio_rpc_client send_timeout_ms, std::placeholders::_1, std::placeholders::_2 ) ); - if (send_timeout_ms != 0) { - operation_timer_.expires_after - ( std::chrono::duration_cast - ( std::chrono::milliseconds( send_timeout_ms ) ) ); - operation_timer_.async_wait( - std::bind( &asio_rpc_client::cancel_socket, - this, - std::placeholders::_1 ) ); - } } else { std::string err_msg = lstrfmt("failed to resolve host %s " "due to error %d, %s")