diff options
author | leak <leak@bitmx.net> | 2014-07-19 21:59:17 +0200 |
---|---|---|
committer | leak <leak@bitmx.net> | 2014-07-19 21:59:17 +0200 |
commit | b153e1a47f7327f3002e26da265c3b656a969e76 (patch) | |
tree | eb1b1f3735fc5175e46d360fc85521c6684cff9e | |
parent | 16f375f3970d047d63eb0e34c2b203e6db51433b (diff) |
Fix terminate() being called on kicking a player (closing sockets twice is bad)
Also, Boost, why does your is_open() suck..
-rw-r--r-- | src/server/game/Server/WorldSocket.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
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*/) {} } }); } |