From 78f26492a65b438f5b87f1574ed7785fd77ae2f0 Mon Sep 17 00:00:00 2001 From: w00t Date: Sat, 1 Nov 2008 23:02:23 +0000 Subject: Second attempt at time() -> SI->Time(), now problems with the original were fixed. (SI::TIME was not initialised). Thanks Namegduf! (Please test, all, valdebug etc, report odd behaviour/warnings!) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10783 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_messageflood.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/modules/m_messageflood.cpp') diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp index c374c5346..53df408f6 100644 --- a/src/modules/m_messageflood.cpp +++ b/src/modules/m_messageflood.cpp @@ -19,6 +19,8 @@ */ class floodsettings : public classbase { + private: + InspIRCd *ServerInstance; public: bool ban; int secs; @@ -26,10 +28,10 @@ class floodsettings : public classbase time_t reset; std::map counters; - floodsettings() : ban(0), secs(0), lines(0) {}; - floodsettings(bool a, int b, int c) : ban(a), secs(b), lines(c) + 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 = time(NULL) + secs; + reset = ServerInstance->Time() + secs; }; void addmessage(User* who) @@ -43,10 +45,10 @@ class floodsettings : public classbase { counters[who] = 1; } - if (time(NULL) > reset) + if (ServerInstance->Time() > reset) { counters.clear(); - reset = time(NULL) + secs; + reset = ServerInstance->Time() + secs; } } @@ -140,7 +142,7 @@ class MsgFlood : public ModeHandler if (!channel->GetExt("flood", f)) { parameter = std::string(ban ? "*" : "") + ConvToStr(nlines) + ":" +ConvToStr(nsecs); - floodsettings *fs = new floodsettings(ban,nsecs,nlines); + floodsettings *fs = new floodsettings(ServerInstance,ban,nsecs,nlines); channel->Extend("flood",fs); channel->SetMode('f', true); channel->SetModeParam('f', parameter.c_str(), true); @@ -160,7 +162,7 @@ class MsgFlood : public ModeHandler if ((((nlines != f->lines) || (nsecs != f->secs) || (ban != f->ban))) && (((nsecs > 0) && (nlines > 0)))) { delete f; - floodsettings *fs = new floodsettings(ban,nsecs,nlines); + floodsettings *fs = new floodsettings(ServerInstance,ban,nsecs,nlines); channel->Shrink("flood"); channel->Extend("flood",fs); channel->SetModeParam('f', cur_param.c_str(), false); -- cgit v1.3.1-10-gc9f91