From cc2aa7df3833b8256f25320290b2bda2d7c5b771 Mon Sep 17 00:00:00 2001 From: DDuarte Date: Tue, 8 Oct 2019 16:01:58 +0200 Subject: [PATCH] Core/Bnetserver: Catch and log an exception that happens when WorldserverListenPort is already used Closes #15284 --- src/server/bnetserver/Realms/WorldListener.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/server/bnetserver/Realms/WorldListener.cpp b/src/server/bnetserver/Realms/WorldListener.cpp index 6a186ca7080..7b09a6826ea 100644 --- a/src/server/bnetserver/Realms/WorldListener.cpp +++ b/src/server/bnetserver/Realms/WorldListener.cpp @@ -63,9 +63,18 @@ void WorldListener::Run() void WorldListener::HandleOpen() { - _worldSocket->bind(std::string("tcp://*:") + std::to_string(_worldListenPort)); + try + { + _worldSocket->bind(std::string("tcp://*:") + std::to_string(_worldListenPort)); + } + catch (zmqpp::zmq_internal_exception& ex) + { + TC_LOG_FATAL("server.ipc", "Could not bind to WorldserverListenPort %u. Exception: %s. Shutting down bnetserver.", _worldListenPort, ex.what()); + abort(); + } + _poller->add(*_worldSocket); - TC_LOG_INFO("server.ipc", "Listening on connections from worldservers..."); + TC_LOG_INFO("server.ipc", "Listening on connections from worldservers on port %u...", _worldListenPort); } void WorldListener::HandleClose()