diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Server/WorldSession.h | 2 | ||||
-rw-r--r-- | src/server/game/Server/WorldSocket.cpp | 5 | ||||
-rw-r--r-- | src/server/shared/Networking/Socket.h | 9 |
4 files changed, 12 insertions, 13 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index c79d07a1318..559dd3f65fd 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -805,13 +805,6 @@ void WorldSession::HandleRequestAccountData(WorldPackets::ClientConfig::RequestA SendPacket(data.Write()); } -int32 WorldSession::HandleEnableNagleAlgorithm() -{ - // Instructs the server we wish to receive few amounts of large packets (SMSG_MULTIPLE_PACKETS?) - // instead of large amount of small packets - return 0; -} - void WorldSession::HandleSetActionButtonOpcode(WorldPackets::Spells::SetActionButton& packet) { uint32 action = ACTION_BUTTON_ACTION(packet.Action); @@ -1132,7 +1125,7 @@ void WorldSession::HandleFarSightOpcode(WorldPacket& recvData) void WorldSession::HandleSetTitleOpcode(WorldPackets::Character::SetTitle& packet) { TC_LOG_DEBUG("network", "CMSG_SET_TITLE"); - + // -1 at none if (packet.TitleID > 0 && packet.TitleID < MAX_TITLE_INDEX) { diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index b7670a1452f..da1035ebaec 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -1355,8 +1355,6 @@ class WorldSession void SendSpellCategoryCooldowns(); - int32 HandleEnableNagleAlgorithm(); - // Compact Unit Frames (4.x) void HandleSaveCUFProfiles(WorldPacket& recvPacket); void SendLoadCUFProfiles(); diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index 01035154214..e58037b3956 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -261,10 +261,9 @@ bool WorldSocket::ReadDataHandler() return true; case CMSG_ENABLE_NAGLE: { - TC_LOG_DEBUG("network", "%s", GetOpcodeNameForLogging(opcode).c_str()); + TC_LOG_DEBUG("network", "Client %s requested enabling nagle algorithm", GetRemoteIpAddress().to_string().c_str()); sScriptMgr->OnPacketReceive(_worldSession, packet); - if (_worldSession) - _worldSession->HandleEnableNagleAlgorithm(); + SetNoDelay(false); break; } case CMSG_CONNECT_TO_FAILED: diff --git a/src/server/shared/Networking/Socket.h b/src/server/shared/Networking/Socket.h index f7a1b954cb0..6482c0ed08a 100644 --- a/src/server/shared/Networking/Socket.h +++ b/src/server/shared/Networking/Socket.h @@ -169,6 +169,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 |