diff options
author | Cory Fields <cory-nospam-@coryfields.com> | 2014-12-29 15:19:19 -0500 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-12-30 17:38:03 +0100 |
commit | 87d43a3c8e8679cc4a88e4a29545e190c099d973 (patch) | |
tree | 8ecaaf79f36201f1be73c8c10d0aa42a4888338d /src/rpcserver.cpp | |
parent | ed934bdb4dab0b765ce5d16cb5182ecee5fade0b (diff) | |
download | bitcoin-87d43a3c8e8679cc4a88e4a29545e190c099d973.tar.xz |
rpcserver: attempt to fix uncaught exception.
Rebased-From: f9c571aad8261eb9a5cab9dce5b490bd253c5fe1
Github-Pull: #5565
Diffstat (limited to 'src/rpcserver.cpp')
-rw-r--r-- | src/rpcserver.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index 252b0866a2..4b82646585 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -650,14 +650,16 @@ void StartRPCThreads() bool fListening = false; std::string strerr; + std::string straddress; BOOST_FOREACH(const ip::tcp::endpoint &endpoint, vEndpoints) { - asio::ip::address bindAddress = endpoint.address(); - LogPrintf("Binding RPC on address %s port %i (IPv4+IPv6 bind any: %i)\n", bindAddress.to_string(), endpoint.port(), bBindAny); - boost::system::error_code v6_only_error; - boost::shared_ptr<ip::tcp::acceptor> acceptor(new ip::tcp::acceptor(*rpc_io_service)); - try { + asio::ip::address bindAddress = endpoint.address(); + straddress = bindAddress.to_string(); + LogPrintf("Binding RPC on address %s port %i (IPv4+IPv6 bind any: %i)\n", straddress, endpoint.port(), bBindAny); + boost::system::error_code v6_only_error; + boost::shared_ptr<ip::tcp::acceptor> acceptor(new ip::tcp::acceptor(*rpc_io_service)); + acceptor->open(endpoint.protocol()); acceptor->set_option(boost::asio::ip::tcp::acceptor::reuse_address(true)); @@ -678,8 +680,8 @@ void StartRPCThreads() } catch(boost::system::system_error &e) { - LogPrintf("ERROR: Binding RPC on address %s port %i failed: %s\n", bindAddress.to_string(), endpoint.port(), e.what()); - strerr = strprintf(_("An error occurred while setting up the RPC address %s port %u for listening: %s"), bindAddress.to_string(), endpoint.port(), e.what()); + LogPrintf("ERROR: Binding RPC on address %s port %i failed: %s\n", straddress, endpoint.port(), e.what()); + strerr = strprintf(_("An error occurred while setting up the RPC address %s port %u for listening: %s"), straddress, endpoint.port(), e.what()); } } |