summaryrefslogtreecommitdiff
path: root/src/network/network_server.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2010-08-19 08:59:36 +0000
committerrubidium <rubidium@openttd.org>2010-08-19 08:59:36 +0000
commita4c6d07edc4937087e3f2d0b2bff52cc3980b9e2 (patch)
tree9a939be9e5c3b7bc5a0101cb3077a3d619d2dad8 /src/network/network_server.cpp
parentcfc0df152b40c7109ce6c2e60f80304fc97adb89 (diff)
downloadopenttd-a4c6d07edc4937087e3f2d0b2bff52cc3980b9e2.tar.xz
(svn r20553) -Feature: allow rate limiting of incoming commands
Diffstat (limited to 'src/network/network_server.cpp')
-rw-r--r--src/network/network_server.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp
index dc7d9d0f6..b8ea9fa62 100644
--- a/src/network/network_server.cpp
+++ b/src/network/network_server.cpp
@@ -897,6 +897,10 @@ DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_COMMAND)
return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_NOT_EXPECTED);
}
+ if (cs->incoming_queue.Count() >= _settings_client.network.max_commands_in_queue) {
+ return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_TOO_MANY_COMMANDS);
+ }
+
CommandPacket cp;
const char *err = cs->Recv_Command(p, &cp);