From: Wladimir J. van der Laan Date: Tue, 10 Apr 2012 20:14:47 +0000 (-0700) Subject: Merge pull request #1046 from laanwj/2012_04_rpcporterror X-Git-Tag: v0.4.0-unstable~129^2~94 X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=commitdiff_plain;h=b56772e5df75832b84efacba60bbb3e7910fa1cf;hp=962e2fcdb6aa43c9998b2be2ff96a679ff9db660 Merge pull request #1046 from laanwj/2012_04_rpcporterror Show error message instead of exception crash when unable to bind RPC port --- diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp index cbdd21c..4075c90 100644 --- a/src/bitcoinrpc.cpp +++ b/src/bitcoinrpc.cpp @@ -2376,9 +2376,21 @@ void ThreadRPCServer2(void* parg) asio::io_service io_service; ip::tcp::endpoint endpoint(bindAddress, GetArg("-rpcport", 8332)); - ip::tcp::acceptor acceptor(io_service, endpoint); - - acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true)); + ip::tcp::acceptor acceptor(io_service); + try + { + acceptor.open(endpoint.protocol()); + acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true)); + acceptor.bind(endpoint); + acceptor.listen(socket_base::max_connections); + } + catch(system::system_error &e) + { + ThreadSafeMessageBox(strprintf(_("An error occured while setting up the RPC port %i for listening: %s"), endpoint.port(), e.what()), + _("Error"), wxOK | wxMODAL); + QueueShutdown(); + return; + } ssl::context context(io_service, ssl::context::sslv23); if (fUseSSL)