]> git.donarmstrong.com Git - infobot.git/commitdiff
prevent erratic (multiple) changes of chan limit in short space of time.
authordms <dms@c11ca15a-4712-0410-83d8-924469b57eb5>
Sat, 14 Apr 2001 14:48:24 +0000 (14:48 +0000)
committerdms <dms@c11ca15a-4712-0410-83d8-924469b57eb5>
Sat, 14 Apr 2001 14:48:24 +0000 (14:48 +0000)
this would be a major problem in chanlimitVerify@IrcHelpers.pl since
it's called for every join.  Better safe than sorry.

git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk/blootbot@441 c11ca15a-4712-0410-83d8-924469b57eb5

src/IRC/IrcHelpers.pl
src/IRC/Schedulers.pl

index 6358aeafa4cbe780211e4d723699a1a2ac93922d..e8d2826b71b752075960a350b5309c681ee47aa7 100644 (file)
@@ -266,6 +266,14 @@ sub chanLimitVerify {
            &WARN("clc: stupid to have plus at $plus, fix it!");
        }
 
+       if (exists $cache{chanlimitChange_$chan}) {
+           if (time() - $cache{chanlimitChange_$chan} < 60) {
+               &DEBUG("not going to change chanlimit!");
+               return;
+           }
+           delete $cache{chanlimitChange_$chan};
+       }
+
        ### todo: check if we have ops.
        ### todo: if not, check if nickserv/chanserv is avail.
        ### todo: unify code with chanlimitcheck()
index e509902361aa965a86e5942e7ce050c4aba180aa..843c2b2eef36816b5a379f42f8b423503b077123 100644 (file)
@@ -378,7 +378,16 @@ sub chanlimitCheck {
            &status("ChanLimit: setting for first time or from netsplit, for $chan");
        }
 
+       if (exists $cache{chanlimitChange_$chan}) {
+           if (time() - $cache{chanlimitChange_$chan} < 60) {
+               &DEBUG("not going to change chanlimit!");
+               return;
+           }
+           delete $cache{chanlimitChange_$chan};
+       }
+
        &rawout("MODE $chan +l $newlimit");
+       $cache{chanlimitChange_$chan} = time();
     }
 }