X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_messageflood.cpp;h=9e2f2a0301bb3ab1812c869ab9c821707cd0f04a;hb=4cb2be033bbb0eafc7ee4fa579daf7ccaca8860b;hp=c88c93577c40274ecfea0c5c43dc20799e6280d1;hpb=2f0b2d4656eb1e0a5cfbda54631ebecbb16cfe4d;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp index c88c93577..9e2f2a030 100644 --- a/src/modules/m_messageflood.cpp +++ b/src/modules/m_messageflood.cpp @@ -67,6 +67,7 @@ class floodsettings std::map::iterator iter = counters.find(who); if (iter != counters.end()) { + log(DEBUG,"should kick? %d, %d",iter->second,this->lines); return (iter->second >= this->lines); } else return false; @@ -171,7 +172,7 @@ class ModuleMsgFlood : public Module return 0; } - int ProcessMessages(userrec* user,chanrec* dest,std::string &text) + void ProcessMessages(userrec* user,chanrec* dest,std::string &text) { floodsettings *f = (floodsettings*)dest->GetExt("flood"); if (f) @@ -181,29 +182,33 @@ class ModuleMsgFlood : public Module { /* Youre outttta here! */ f->clear(user); + if (f->ban) + { + char* parameters[3]; + parameters[0] = dest->name; + parameters[1] = "+b"; + parameters[2] = user->MakeWildHost(); + Srv->SendMode(parameters,3,user); + } Srv->KickUser(NULL, user, dest, "Channel flood triggered (mode +f)"); - return 1; } } - return 0; } - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text) - { + virtual void OnUserMessage(userrec* user, void* dest, int target_type, std::string text) + { if (target_type == TYPE_CHANNEL) { - return ProcessMessages(user,(chanrec*)dest,text); + ProcessMessages(user,(chanrec*)dest,text); } - else return 0; } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text) + virtual void OnUserNotice(userrec* user, void* dest, int target_type, std::string text) { if (target_type == TYPE_CHANNEL) { - return ProcessMessages(user,(chanrec*)dest,text); + ProcessMessages(user,(chanrec*)dest,text); } - else return 0; } void OnChannelDelete(chanrec* chan) @@ -218,7 +223,7 @@ class ModuleMsgFlood : public Module void Implements(char* List) { - List[I_On005Numeric] = List[I_OnExtendedMode] = List[I_OnChannelDelete] = List[I_OnUserPreNotice] = List[I_OnUserPreMessage] = 1; + List[I_On005Numeric] = List[I_OnExtendedMode] = List[I_OnChannelDelete] = List[I_OnUserNotice] = List[I_OnUserMessage] = 1; } virtual void On005Numeric(std::string &output)