From 42ab42ce2781f8d89bcf35b11b2ca12775c9b4b7 Mon Sep 17 00:00:00 2001 From: Shauren Date: Mon, 9 May 2016 00:08:18 +0200 Subject: [PATCH] Core/Networking: Fixed cleanup of disconnected sockets Ref #15892 --- src/server/game/Server/WorldSession.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index fefb20b6fd3..41141148922 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -482,8 +482,16 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater) expireTime -= expireTime > diff ? diff : expireTime; if (expireTime < diff || forceExit || !GetPlayer()) { - m_Socket[CONNECTION_TYPE_REALM].reset(); - m_Socket[CONNECTION_TYPE_INSTANCE].reset(); + if (m_Socket[CONNECTION_TYPE_REALM]) + { + m_Socket[CONNECTION_TYPE_REALM]->CloseSocket(); + m_Socket[CONNECTION_TYPE_REALM].reset(); + } + if (m_Socket[CONNECTION_TYPE_INSTANCE]) + { + m_Socket[CONNECTION_TYPE_INSTANCE]->CloseSocket(); + m_Socket[CONNECTION_TYPE_INSTANCE].reset(); + } } }