fix crash which could happen when closing an invalid socket

for some reason boost::asio doesn't account for this and lets us simply
die when/if this happens.
This commit is contained in:
Lion Kortlepel committed 2022-11-23 09:34:51 +01:00
1 parent 35b38f35bb
commit eaab5eaf30
2 files changed
+7

No files matched your search

+6
View File
@@ -59,7 +59,13 @@ std::string TClient::GetCarPositionRaw(int Ident) {
}
void TClient::Disconnect(std::string_view Reason) {
// we need exclusivity here in case we can't
std::unique_lock Lock(mDisconnectMtx);
beammp_debugf("Disconnecting client {} for reason: {}", GetID(), Reason);
if (mSocket.is_open()) {
beammp_debug("Somehow Disconnect() was called twice, ignoring");
return;
}
boost::system::error_code ec;
mSocket.shutdown(socket_base::shutdown_both, ec);
if (ec) {