aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-05-09 00:08:18 +0200
committerShauren <shauren.trinity@gmail.com>2016-05-09 00:08:18 +0200
commit42ab42ce2781f8d89bcf35b11b2ca12775c9b4b7 (patch)
tree057d666a404bb9317da7edc3533e0099910b495e
parentb29005925edeeda313d81a69873f59c5007287d2 (diff)
Core/Networking: Fixed cleanup of disconnected sockets
Ref #15892
-rw-r--r--src/server/game/Server/WorldSession.cpp12
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();
+ }
}
}