aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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();
+ }
}
}