diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Server/WorldSocketMgr.cpp | 4 | ||||
-rw-r--r-- | src/server/shared/Networking/SocketMgr.h | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/server/game/Server/WorldSocketMgr.cpp b/src/server/game/Server/WorldSocketMgr.cpp index bf3f5c9a315..75299c6f3ce 100644 --- a/src/server/game/Server/WorldSocketMgr.cpp +++ b/src/server/game/Server/WorldSocketMgr.cpp @@ -92,13 +92,13 @@ bool WorldSocketMgr::StartWorldNetwork(Trinity::Asio::IoContext& ioContext, std: if (!instanceAcceptor->Bind()) { TC_LOG_ERROR("network", "StartNetwork failed to bind instance socket acceptor"); + delete instanceAcceptor; return false; } _instanceAcceptor = instanceAcceptor; - _acceptor->SetSocketFactory(std::bind(&BaseSocketMgr::GetSocketForAccept, this)); - _instanceAcceptor->SetSocketFactory(std::bind(&BaseSocketMgr::GetSocketForAccept, this)); + _instanceAcceptor->SetSocketFactory([this]() { return GetSocketForAccept(); }); _acceptor->AsyncAcceptWithCallback<&OnSocketAccept>(); _instanceAcceptor->AsyncAcceptWithCallback<&OnSocketAccept>(); diff --git a/src/server/shared/Networking/SocketMgr.h b/src/server/shared/Networking/SocketMgr.h index 64f064aadf2..0aa443f4cc8 100644 --- a/src/server/shared/Networking/SocketMgr.h +++ b/src/server/shared/Networking/SocketMgr.h @@ -66,6 +66,8 @@ public: for (int32 i = 0; i < _threadCount; ++i) _threads[i].Start(); + _acceptor->SetSocketFactory([this]() { return GetSocketForAccept(); }); + return true; } |