From 4f1d247dfba124c628feaa24c603cd5cc24f0349 Mon Sep 17 00:00:00 2001 From: DDuarte Date: Fri, 25 Jul 2014 18:01:27 +0100 Subject: Core/Network: Fix some possible exceptions on socket.close() Ref #12634 --- src/server/authserver/Server/AuthSession.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/server/authserver/Server/AuthSession.cpp') 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()); +} -- cgit v1.2.3