]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_messageflood.cpp
kick_channel -> chanrec::KickUser(), server_kick_channel -> chanrec::ServerKickUser()
[user/henk/code/inspircd.git] / src / modules / m_messageflood.cpp
index 8f310f4b2e9797ec3f117f16287501431f389ddb..f322a63e6a5bd8930a26eec884d6ea1dc8626f4c 100644 (file)
@@ -88,6 +88,21 @@ class MsgFlood : public ModeHandler
  public:
        MsgFlood() : ModeHandler('f', 1, 0, false, MODETYPE_CHANNEL, false) { }
 
+        ModePair ModeSet(userrec* source, userrec* dest, chanrec* channel, const std::string &parameter)
+        {
+               floodsettings* x;
+               if (channel->GetExt("flood",x))
+                       return std::make_pair(true, (x->ban ? "*" : "")+ConvToStr(x->lines)+":"+ConvToStr(x->secs));
+                else
+                        return std::make_pair(false, parameter);
+        }
+
+       bool CheckTimeStamp(time_t theirs, time_t ours, const std::string &their_param, const std::string &our_param, chanrec* channel)
+       {
+               /* When TS is equal, the alphabetically later one wins */
+               return (their_param < our_param);
+       }
+
        ModeAction OnModeChange(userrec* source, userrec* dest, chanrec* channel, std::string &parameter, bool adding)
        {
                floodsettings *f;
@@ -195,12 +210,12 @@ class ModuleMsgFlood : public Module
                                        f->clear(user);
                                        if (f->ban)
                                        {
-                                               char* parameters[3];
+                                               const char* parameters[3];
                                                parameters[0] = dest->name;
                                                parameters[1] = "+b";
                                                parameters[2] = user->MakeWildHost();
                                                Srv->SendMode(parameters,3,user);
-                                                std::deque<std::string> n;
+                                               std::deque<std::string> n;
                                                /* Propogate the ban to other servers.
                                                 * We dont know what protocol we may be using,
                                                 * so this event is picked up by our protocol