aboutsummaryrefslogtreecommitdiff
path: root/src/server/authserver/Server/AuthSession.cpp
diff options
context:
space:
mode:
authorDDuarte <dnpd.dd@gmail.com>2014-07-25 18:01:27 +0100
committerDDuarte <dnpd.dd@gmail.com>2014-07-25 18:06:43 +0100
commit4f1d247dfba124c628feaa24c603cd5cc24f0349 (patch)
treecef8e772dee6871fec13343bb4a3a43d14d02796 /src/server/authserver/Server/AuthSession.cpp
parentcbcebbe63d794203ccce6ec06c39c5f2a0d2a6de (diff)
Core/Network: Fix some possible exceptions on socket.close()
Ref #12634
Diffstat (limited to 'src/server/authserver/Server/AuthSession.cpp')
-rw-r--r--src/server/authserver/Server/AuthSession.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/server/authserver/Server/AuthSession.cpp b/src/server/authserver/Server/AuthSession.cpp
index 9bd9313059a..cad82a80a07 100644
--- a/src/server/authserver/Server/AuthSession.cpp
+++ b/src/server/authserver/Server/AuthSession.cpp
@@ -161,7 +161,7 @@ void AuthSession::AsyncReadHeader()
}
else
{
- _socket.close();
+ CloseSocket();
}
});
}
@@ -176,7 +176,7 @@ void AuthSession::AsyncReadData(bool (AuthSession::*handler)(), size_t dataSize,
{
if (!(*this.*handler)())
{
- _socket.close();
+ CloseSocket();
return;
}
@@ -184,7 +184,7 @@ void AuthSession::AsyncReadData(bool (AuthSession::*handler)(), size_t dataSize,
}
else
{
- _socket.close();
+ CloseSocket();
}
});
}
@@ -195,7 +195,7 @@ void AuthSession::AsyncWrite(std::size_t length)
{
if (error)
{
- _socket.close();
+ CloseSocket();
}
});
}
@@ -935,3 +935,11 @@ void AuthSession::SetVSFields(const std::string& rI)
OPENSSL_free(v_hex);
OPENSSL_free(s_hex);
}
+
+void AuthSession::CloseSocket()
+{
+ boost::system::error_code socketError;
+ _socket.close(socketError);
+ if (socketError)
+ TC_LOG_DEBUG("server.authserver", "Account '%s' errored when closing socket: %i (%s)", _login.c_str(), socketError.value(), socketError.message());
+}