aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-02-20 12:57:38 +0100
committerShauren <shauren.trinity@gmail.com>2016-02-20 12:57:38 +0100
commit2a186f29f4e5fd31b7ac2aa9eb2701d190259eb5 (patch)
tree2af7dba37a54ce71d758c11cfc39069a426240b4
parent97a79af4701621ec04b88c8b548dbc35d120e99e (diff)
Core/Networking: Close the instance socket acceptor on shutdown
-rw-r--r--src/server/game/Server/WorldSocketMgr.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Server/WorldSocketMgr.cpp b/src/server/game/Server/WorldSocketMgr.cpp
index 94c5a8f6979..4f42e943245 100644
--- a/src/server/game/Server/WorldSocketMgr.cpp
+++ b/src/server/game/Server/WorldSocketMgr.cpp
@@ -49,7 +49,7 @@ WorldSocketMgr::WorldSocketMgr() : BaseSocketMgr(), _instanceAcceptor(nullptr),
WorldSocketMgr::~WorldSocketMgr()
{
- delete _instanceAcceptor;
+ ASSERT(!_instanceAcceptor, "StopNetwork must be called prior to WorldSocketMgr destruction");
}
bool WorldSocketMgr::StartNetwork(boost::asio::io_service& service, std::string const& bindIp, uint16 port)
@@ -85,8 +85,12 @@ bool WorldSocketMgr::StartNetwork(boost::asio::io_service& service, std::string
void WorldSocketMgr::StopNetwork()
{
+ _instanceAcceptor->Close();
BaseSocketMgr::StopNetwork();
+ delete _instanceAcceptor;
+ _instanceAcceptor = nullptr;
+
sScriptMgr->OnNetworkStop();
}