diff options
author | MadCamel <madcamel@gmail.com> | 2010-04-04 13:48:37 -0400 |
---|---|---|
committer | MadCamel <madcamel@gmail.com> | 2010-04-04 13:48:37 -0400 |
commit | 30728fa5dca858af79038878d597ffd24cb1fc26 (patch) | |
tree | ed2c7e54c6b70128a9d57ac03b837b32996dc9ed /src/map/map.h | |
parent | 6d2fb0bf050c95a6ea1dbed09c7faef05b77253f (diff) | |
download | tmwa-30728fa5dca858af79038878d597ffd24cb1fc26.tar.gz tmwa-30728fa5dca858af79038878d597ffd24cb1fc26.tar.bz2 tmwa-30728fa5dca858af79038878d597ffd24cb1fc26.tar.xz tmwa-30728fa5dca858af79038878d597ffd24cb1fc26.zip |
Added packet rate limiter and flood prevention system.
The idea behind this is to keep abusive clients from flooding the
server. Everything from over-voracious auto pick-up to exploitation
of NPC vulnerabilities is mitigated by this. It will also eventually
reduce server traffic, load, and possibly lag.
Config options in battle_athena.conf:
packet_spam_flood (default 30)
packet_spam_threshold (default 2)
packet_spam_kick (default 1)
Each packet type has a specified allowed incoming rate in milliseconds,
if this rate is exceeded the packet is ignored. If over 'flood' overruns
in 'threshold' seconds are detected, a flood is logged and a kick may be
triggered depending on the 'kick' config boolean.
The packet rates and flood thresholds have been tested and tweaked
on a live server, this should only affect abusive clients. Only
extremely abusive clients will trigger a log/kick condition.
This probably obsoletes the trade and kick spam code.
Diffstat (limited to 'src/map/map.h')
-rw-r--r-- | src/map/map.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/map/map.h b/src/map/map.h index 2ba31b1..936513b 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -402,6 +402,10 @@ struct map_session_data time_t sit_reset_due; int sits_in; + + unsigned int flood_rates[0x220]; + time_t packet_flood_reset_due; + int packet_flood_in; }; struct npc_timerevent_list |