aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorleak <leak@bitmx.net>2014-07-19 21:59:17 +0200
committerleak <leak@bitmx.net>2014-07-19 21:59:17 +0200
commitb153e1a47f7327f3002e26da265c3b656a969e76 (patch)
treeeb1b1f3735fc5175e46d360fc85521c6684cff9e
parent16f375f3970d047d63eb0e34c2b203e6db51433b (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.cpp14
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*/) {}
}
});
}