X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_messageflood.cpp;h=2342870b8e55cde20be5e190cd7d65f99c35bd65;hb=8be88f3e732e7a40f2e501c5e5b78c7f1b999f2d;hp=53df408f696e6dcdc7bca05892cd410732a732e9;hpb=164998f1e6e2cb885fb4d630ded29ed5191218c8;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp index 53df408f6..2342870b8 100644 --- a/src/modules/m_messageflood.cpp +++ b/src/modules/m_messageflood.cpp @@ -2,8 +2,8 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2008 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits + * InspIRCd: (C) 2002-2009 InspIRCd Development Team + * See: http://wiki.inspircd.org/Credits * * This program is free but copyrighted software; see * the file COPYING for details. @@ -28,7 +28,6 @@ class floodsettings : public classbase time_t reset; std::map counters; - floodsettings(InspIRCd *Instance) : ServerInstance(Instance), ban(0), secs(0), lines(0) {}; floodsettings(InspIRCd *Instance, bool a, int b, int c) : ServerInstance(Instance), ban(a), secs(b), lines(c) { reset = ServerInstance->Time() + secs; @@ -131,7 +130,7 @@ class MsgFlood : public ModeHandler /* Set up the flood parameters for this channel */ int nlines = atoi(lines); int nsecs = atoi(secs); - if ((nlines<1) || (nsecs<1)) + if ((nlines<2) || (nsecs<1)) { source->WriteNumeric(608, "%s %s :Invalid flood parameter",source->nick.c_str(),channel->name.c_str()); parameter.clear(); @@ -144,8 +143,7 @@ class MsgFlood : public ModeHandler parameter = std::string(ban ? "*" : "") + ConvToStr(nlines) + ":" +ConvToStr(nsecs); floodsettings *fs = new floodsettings(ServerInstance,ban,nsecs,nlines); channel->Extend("flood",fs); - channel->SetMode('f', true); - channel->SetModeParam('f', parameter.c_str(), true); + channel->SetModeParam('f', parameter); return MODEACTION_ALLOW; } else @@ -165,8 +163,7 @@ class MsgFlood : public ModeHandler floodsettings *fs = new floodsettings(ServerInstance,ban,nsecs,nlines); channel->Shrink("flood"); channel->Extend("flood",fs); - channel->SetModeParam('f', cur_param.c_str(), false); - channel->SetModeParam('f', parameter.c_str(), true); + channel->SetModeParam('f', parameter); return MODEACTION_ALLOW; } else @@ -190,7 +187,7 @@ class MsgFlood : public ModeHandler { delete f; channel->Shrink("flood"); - channel->SetMode('f', false); + channel->SetModeParam('f', ""); return MODEACTION_ALLOW; } } @@ -246,7 +243,7 @@ class ModuleMsgFlood : public Module char kickmessage[MAXBUF]; snprintf(kickmessage, MAXBUF, "Channel flood triggered (limit is %d lines in %d secs)", f->lines, f->secs); - if (!dest->ServerKickUser(user, kickmessage, true)) + if (!dest->ServerKickUser(user, kickmessage)) { delete dest; }