From b153e1a47f7327f3002e26da265c3b656a969e76 Mon Sep 17 00:00:00 2001 From: leak Date: Sat, 19 Jul 2014 21:59:17 +0200 Subject: Fix terminate() being called on kicking a player (closing sockets twice is bad) Also, Boost, why does your is_open() suck.. --- src/server/game/Server/WorldSocket.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/server') diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index 3b9749dfd3b..e449f86ffe2 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -77,7 +77,12 @@ void WorldSocket::AsyncReadHeader() } else { - _socket.close(); + // _socket.is_open() till returns true even after calling close() + try + { + _socket.close(); + } + catch (std::exception const& /*ex*/) { } } }); } @@ -152,7 +157,12 @@ void WorldSocket::AsyncReadData(size_t dataSize) } else { - _socket.close(); + // _socket.is_open() till returns true even after calling close() + try + { + _socket.close(); + } + catch (std::exception const& /*ex*/) {} } }); } -- cgit v1.2.3