diff options
author | Shauren <shauren.trinity@gmail.com> | 2016-05-09 00:08:18 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-05-09 00:08:18 +0200 |
commit | 42ab42ce2781f8d89bcf35b11b2ca12775c9b4b7 (patch) | |
tree | 057d666a404bb9317da7edc3533e0099910b495e | |
parent | b29005925edeeda313d81a69873f59c5007287d2 (diff) |
Core/Networking: Fixed cleanup of disconnected sockets
Ref #15892
-rw-r--r-- | src/server/game/Server/WorldSession.cpp | 12 |
1 files 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(); + } } } |