diff options
author | rubidium <rubidium@openttd.org> | 2010-08-19 08:59:36 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-08-19 08:59:36 +0000 |
commit | a4c6d07edc4937087e3f2d0b2bff52cc3980b9e2 (patch) | |
tree | 9a939be9e5c3b7bc5a0101cb3077a3d619d2dad8 /src/network/network_server.cpp | |
parent | cfc0df152b40c7109ce6c2e60f80304fc97adb89 (diff) | |
download | openttd-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.cpp | 4 |
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); |