diff options
| author | Rat <gmstreetrat@gmail.com> | 2015-03-29 11:25:48 +0200 |
|---|---|---|
| committer | Rat <gmstreetrat@gmail.com> | 2015-03-29 11:25:48 +0200 |
| commit | 3660c3a37f7f5a61e14f28c09f94f57fe6315788 (patch) | |
| tree | 61e92a0de035697d350d1545c1bdafd569d91778 /src/server/shared/Networking | |
| parent | eebc468e628acc801a6426e03815150c8cfd9172 (diff) | |
| parent | c26dbb786a91b0454a8648039b63d3dc9ddd1c42 (diff) | |
Merge branch '6.x' of https://github.com/TrinityCore/TrinityCore into 6.x
Conflicts:
src/server/game/Handlers/MiscHandler.cpp
src/server/game/Server/Protocol/Opcodes.cpp
Diffstat (limited to 'src/server/shared/Networking')
| -rw-r--r-- | src/server/shared/Networking/Socket.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/server/shared/Networking/Socket.h b/src/server/shared/Networking/Socket.h index f7a1b954cb0..0ac23a96224 100644 --- a/src/server/shared/Networking/Socket.h +++ b/src/server/shared/Networking/Socket.h @@ -62,7 +62,7 @@ public: return false; #ifndef TC_SOCKET_USE_IOCP - std::unique_lock<std::mutex> guard(_writeLock, std::try_to_lock); + std::unique_lock<std::mutex> guard(_writeLock); if (!guard) return true; @@ -140,6 +140,8 @@ public: if (shutdownError) TC_LOG_DEBUG("network", "Socket::CloseSocket: %s errored when shutting down socket: %i (%s)", GetRemoteIpAddress().to_string().c_str(), shutdownError.value(), shutdownError.message().c_str()); + + OnClose(); } /// Marks the socket for closing after write buffer becomes empty @@ -148,6 +150,8 @@ public: MessageBuffer& GetReadBuffer() { return _readBuffer; } protected: + virtual void OnClose() { } + virtual void ReadHandler() = 0; bool AsyncProcessQueue(std::unique_lock<std::mutex>&) @@ -169,6 +173,15 @@ protected: return false; } + void SetNoDelay(bool enable) + { + boost::system::error_code err; + _socket.set_option(boost::asio::ip::tcp::no_delay(enable), err); + if (err) + TC_LOG_DEBUG("network", "Socket::SetNoDelay: failed to set_option(boost::asio::ip::tcp::no_delay) for %s - %d (%s)", + GetRemoteIpAddress().to_string().c_str(), err.value(), err.message().c_str()); + } + std::mutex _writeLock; std::queue<MessageBuffer> _writeQueue; #ifndef TC_SOCKET_USE_IOCP |
