From: Rudolf Polzer Date: Sun, 8 Apr 2012 18:25:47 +0000 (+0200) Subject: enforce bans on first clientcommand too, not just on ClientConnect X-Git-Tag: xonotic-v0.7.0~342 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=7df45d32a20bdc8ef34632292330fee942b6b0d2;p=xonotic%2Fxonotic-data.pk3dir.git enforce bans on first clientcommand too, not just on ClientConnect --- diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index 38007434e..b68bce694 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -1355,7 +1355,7 @@ void ClientConnect (void) return; } - if(Ban_MaybeEnforceBan(self)) + if(Ban_MaybeEnforceBanOnce(self)) return; DecodeLevelParms(); diff --git a/qcsrc/server/cl_player.qc b/qcsrc/server/cl_player.qc index fc9ef5f24..db2707fb9 100644 --- a/qcsrc/server/cl_player.qc +++ b/qcsrc/server/cl_player.qc @@ -811,9 +811,6 @@ float Say(entity source, float teamsay, entity privatesay, string msgin, float f entity head; float ret; - if(Ban_MaybeEnforceBan(source)) - return 0; - if(!teamsay && !privatesay) if(substring(msgin, 0, 1) == " ") msgin = substring(msgin, 1, strlen(msgin) - 1); // work around DP say bug (say_team does not have this!) diff --git a/qcsrc/server/command/cmd.qc b/qcsrc/server/command/cmd.qc index e885c3054..32bd688d3 100644 --- a/qcsrc/server/command/cmd.qc +++ b/qcsrc/server/command/cmd.qc @@ -658,6 +658,10 @@ void ClientCommand_macro_write_aliases(float fh) void SV_ParseClientCommand(string command) { + // if we're banned, don't even parse the command + if(Ban_MaybeEnforceBanOnce(self)) + return; + float argc = tokenize_console(command); // for the mutator hook system diff --git a/qcsrc/server/ipban.qc b/qcsrc/server/ipban.qc index fc889ecf2..f770dc513 100644 --- a/qcsrc/server/ipban.qc +++ b/qcsrc/server/ipban.qc @@ -448,6 +448,15 @@ float Ban_MaybeEnforceBan(entity client) return FALSE; } +.float ban_checked; +float Ban_MaybeEnforceBanOnce(entity client) +{ + if(client.ban_checked) + return FALSE; + client.ban_checked = TRUE; + return Ban_MaybeEnforceBan(self); +} + string Ban_Enforce(float i, string reason) { string s;