aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorleak <leak@bitmx.net>2014-07-07 21:37:20 +0200
committerleak <leak@bitmx.net>2014-07-07 21:37:55 +0200
commitc7d5660e992bdec5cdac6a9fab76ecb6447dcb49 (patch)
tree187f34ec0b0a0f765c81d36db8234d58c7f344fd /src
parent110396447f2f414f8834c1b86c764d97704537b7 (diff)
Readd support for TCP_NODELAY socket option
Diffstat (limited to 'src')
-rw-r--r--src/server/shared/Networking/AsyncAcceptor.h6
-rw-r--r--src/server/worldserver/Main.cpp3
2 files changed, 8 insertions, 1 deletions
diff --git a/src/server/shared/Networking/AsyncAcceptor.h b/src/server/shared/Networking/AsyncAcceptor.h
index c54471fd01a..fbb0313381e 100644
--- a/src/server/shared/Networking/AsyncAcceptor.h
+++ b/src/server/shared/Networking/AsyncAcceptor.h
@@ -33,6 +33,12 @@ public:
AsyncAccept();
};
+ AsyncAcceptor(boost::asio::io_service& ioService, std::string bindIp, int port, bool tcpNoDelay) :
+ AsyncAcceptor(ioService, bindIp, port)
+ {
+ _socket.set_option(boost::asio::ip::tcp::no_delay(tcpNoDelay));
+ };
+
private:
void AsyncAcceptor::AsyncAccept()
{
diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp
index ff53c91e7b6..dae947b7324 100644
--- a/src/server/worldserver/Main.cpp
+++ b/src/server/worldserver/Main.cpp
@@ -228,8 +228,9 @@ extern int main(int argc, char** argv)
// Launch the worldserver listener socket
uint16 worldPort = uint16(sWorld->getIntConfig(CONFIG_PORT_WORLD));
std::string worldListener = sConfigMgr->GetStringDefault("BindIP", "0.0.0.0");
+ bool tcpNoDelay = sConfigMgr->GetBoolDefault("Network.TcpNodelay", true);
- AsyncAcceptor<WorldTcpSession> worldAcceptor(_ioService, worldListener, worldPort);
+ AsyncAcceptor<WorldTcpSession> worldAcceptor(_ioService, worldListener, worldPort, tcpNoDelay);
sScriptMgr->OnStartup();