Mercurial > hg > bitcoin
changeset 2187:a9bee27b1b96 draft
Show error message instead of exception crash when unable to bind RPC port
Fixes issue #875
author | Wladimir J. van der Laan <laanwj@gmail.com> |
---|---|
date | Thu, 05 Apr 2012 20:36:27 +0200 |
parents | 4dc992495233 |
children | 7985e180ee11 |
files | src/bitcoinrpc.cpp |
diffstat | 1 files changed, 15 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/bitcoinrpc.cpp +++ b/src/bitcoinrpc.cpp @@ -2377,9 +2377,21 @@ 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)