aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/authserver/Server/AuthSession.cpp16
-rw-r--r--src/server/authserver/Server/AuthSession.h1
-rw-r--r--src/server/game/Server/WorldSocket.cpp22
-rw-r--r--src/server/game/Server/WorldSocket.h4
4 files changed, 30 insertions, 13 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());
+}
diff --git a/src/server/authserver/Server/AuthSession.h b/src/server/authserver/Server/AuthSession.h
index 4ae33f44cb3..6dc9c404857 100644
--- a/src/server/authserver/Server/AuthSession.h
+++ b/src/server/authserver/Server/AuthSession.h
@@ -58,6 +58,7 @@ private:
void AsyncReadData(bool (AuthSession::*handler)(), size_t dataSize, size_t bufferOffset);
void AsyncWrite(size_t length);
+ void CloseSocket();
void SetVSFields(const std::string& rI);
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index 6ef986dbd22..682ea320365 100644
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -78,8 +78,7 @@ void WorldSocket::AsyncReadHeader()
else
{
// _socket.is_open() till returns true even after calling close()
- boost::system::error_code socketError;
- _socket.close(socketError);
+ CloseSocket();
}
});
}
@@ -155,8 +154,7 @@ void WorldSocket::AsyncReadData(size_t dataSize)
else
{
// _socket.is_open() till returns true even after calling close()
- boost::system::error_code socketError;
- _socket.close(socketError);
+ CloseSocket();
}
});
}
@@ -202,7 +200,7 @@ void WorldSocket::AsyncWrite(std::vector<uint8> const& data)
AsyncWrite(_writeQueue.front());
}
else
- _socket.close();
+ CloseSocket();
});
}
@@ -475,7 +473,7 @@ void WorldSocket::HandlePing(WorldPacket& recvPacket)
TC_LOG_ERROR("network", "WorldSocket::HandlePing: %s kicked for over-speed pings (address: %s)",
_worldSession->GetPlayerInfo().c_str(), GetRemoteIpAddress().c_str());
- _socket.close();
+ CloseSocket();
return;
}
}
@@ -494,7 +492,7 @@ void WorldSocket::HandlePing(WorldPacket& recvPacket)
TC_LOG_ERROR("network", "WorldSocket::HandlePing: peer sent CMSG_PING, but is not authenticated or got recently kicked, address = %s",
GetRemoteIpAddress().c_str());
- _socket.close();
+ CloseSocket();
return;
}
@@ -502,3 +500,13 @@ void WorldSocket::HandlePing(WorldPacket& recvPacket)
packet << ping;
return AsyncWrite(packet);
}
+
+void WorldSocket::CloseSocket()
+{
+ boost::system::error_code socketError;
+ _socket.close(socketError);
+ if (socketError)
+ TC_LOG_DEBUG("network", "WorldSocket::CloseSocket: Player '%s' (%s) errored when closing socket: %i (%s)",
+ _worldSession ? _worldSession->GetPlayerInfo().c_str() : "unknown", GetRemoteIpAddress().c_str(),
+ socketError.value(), socketError.message());
+}
diff --git a/src/server/game/Server/WorldSocket.h b/src/server/game/Server/WorldSocket.h
index 07aae10513f..0f3fc553872 100644
--- a/src/server/game/Server/WorldSocket.h
+++ b/src/server/game/Server/WorldSocket.h
@@ -55,8 +55,8 @@ public:
std::string GetRemoteIpAddress() const { return _socket.remote_endpoint().address().to_string(); };
uint16 GetRemotePort() const { return _socket.remote_endpoint().port(); }
- void CloseSocket() { _socket.close(); };
- bool IsOpen() { return _socket.is_open(); };
+ void CloseSocket();
+ bool IsOpen() const { return _socket.is_open(); }
void AsyncWrite(WorldPacket const& packet);