X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_messageflood.cpp;h=087d8e47ee950aadeeb3694a5cf24b1689488907;hb=f25c4b7a2263f5f3ce9bb41ba56b43c0d3a6d124;hp=ed40fca5b5b1f372ffb0e8ee8e1385df542eaceb;hpb=b6dbd6caab62bc2c0d11ce5a45d511611eb9c2ef;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp index ed40fca5b..087d8e47e 100644 --- a/src/modules/m_messageflood.cpp +++ b/src/modules/m_messageflood.cpp @@ -87,12 +87,6 @@ class MsgFlood : public ModeHandler return std::make_pair(false, parameter); } - bool CheckTimeStamp(time_t theirs, time_t ours, const std::string &their_param, const std::string &our_param, Channel* channel) - { - /* When TS is equal, the alphabetically later one wins */ - return (their_param < our_param); - } - ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding, bool) { floodsettings *f; @@ -143,8 +137,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 @@ -164,8 +157,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 @@ -189,7 +181,7 @@ class MsgFlood : public ModeHandler { delete f; channel->Shrink("flood"); - channel->SetMode('f', false); + channel->SetModeParam('f', ""); return MODEACTION_ALLOW; } } @@ -200,17 +192,14 @@ class MsgFlood : public ModeHandler class ModuleMsgFlood : public Module { - - MsgFlood* mf; + MsgFlood mf; public: ModuleMsgFlood(InspIRCd* Me) - : Module(Me) + : Module(Me), mf(Me) { - - mf = new MsgFlood(ServerInstance); - if (!ServerInstance->Modes->AddMode(mf)) + if (!ServerInstance->Modes->AddMode(&mf)) throw ModuleException("Could not add new modes!"); Implementation eventlist[] = { I_OnChannelDelete, I_OnUserPreNotice, I_OnUserPreMessage }; ServerInstance->Modules->Attach(eventlist, this, 3); @@ -245,7 +234,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; } @@ -286,8 +275,7 @@ class ModuleMsgFlood : public Module virtual ~ModuleMsgFlood() { - ServerInstance->Modes->DelMode(mf); - delete mf; + ServerInstance->Modes->DelMode(&mf); } virtual Version GetVersion()