]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_rline.cpp
Merge insp20
[user/henk/code/inspircd.git] / src / modules / m_rline.cpp
index d1ab5d9ba42cc35645ca77b54170a315f4319046..ca123cc11578f400eae45dc721bd1d8b0c7cb417 100644 (file)
@@ -23,7 +23,7 @@
 /* $ModDesc: RLINE: Regexp user banning. */
 
 #include "inspircd.h"
-#include "m_regex.h"
+#include "modules/regex.h"
 #include "xline.h"
 
 static bool ZlineOnMatch = false;
@@ -60,7 +60,8 @@ class RLine : public XLine
 
        bool Matches(User *u)
        {
-               if (u->exempt)
+               LocalUser* lu = IS_LOCAL(u);
+               if (lu && lu->exempt)
                        return false;
 
                std::string compare = u->nick + "!" + u->ident + "@" + u->host + " " + u->fullname;
@@ -90,15 +91,9 @@ class RLine : public XLine
                DefaultApply(u, "R", false);
        }
 
-       void DisplayExpiry()
+       const std::string& Displayable()
        {
-               ServerInstance->SNO->WriteToSnoMask('x',"Removing expired R-line %s (set by %s %ld seconds ago)",
-                       this->matchtext.c_str(), this->source.c_str(), (long int)(ServerInstance->Time() - this->set_time));
-       }
-
-       const char* Displayable()
-       {
-               return matchtext.c_str();
+               return matchtext;
        }
 
        std::string matchtext;
@@ -116,7 +111,7 @@ class RLineFactory : public XLineFactory
        RLineFactory(dynamic_reference<RegexFactory>& rx) : XLineFactory("R"), rxfactory(rx)
        {
        }
-       
+
        /** Generate a RLine
         */
        XLine* Generate(time_t set_time, long duration, std::string source, std::string reason, std::string xline_specific_mask)
@@ -129,10 +124,6 @@ class RLineFactory : public XLineFactory
 
                return new RLine(set_time, duration, source, reason, xline_specific_mask, rxfactory);
        }
-
-       ~RLineFactory()
-       {
-       }
 };
 
 /** Handle /RLINE
@@ -156,7 +147,7 @@ class CommandRLine : public Command
                {
                        // Adding - XXX todo make this respect <insane> tag perhaps..
 
-                       long duration = ServerInstance->Duration(parameters[1]);
+                       unsigned long duration = InspIRCd::Duration(parameters[1]);
                        XLine *r = NULL;
 
                        try
@@ -188,7 +179,7 @@ class CommandRLine : public Command
                                else
                                {
                                        delete r;
-                                       user->WriteServ("NOTICE %s :*** R-Line for %s already exists", user->nick.c_str(), parameters[0].c_str());
+                                       user->WriteNotice("*** R-Line for " + parameters[0] + " already exists");
                                }
                        }
                }
@@ -200,7 +191,7 @@ class CommandRLine : public Command
                        }
                        else
                        {
-                               user->WriteServ("NOTICE %s :*** R-Line %s not found in list, try /stats R.",user->nick.c_str(),parameters[0].c_str());
+                               user->WriteNotice("*** R-Line " + parameters[0] + " not found in list, try /stats R.");
                        }
                }
 
@@ -218,7 +209,6 @@ class CommandRLine : public Command
 
 class ModuleRLine : public Module
 {
- private:
        dynamic_reference<RegexFactory> rxfactory;
        RLineFactory f;
        CommandRLine r;
@@ -233,7 +223,7 @@ class ModuleRLine : public Module
        {
        }
 
-       void init()
+       void init() CXX11_OVERRIDE
        {
                OnRehash(NULL);
 
@@ -244,18 +234,18 @@ class ModuleRLine : public Module
                ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
        }
 
-       virtual ~ModuleRLine()
+       ~ModuleRLine()
        {
                ServerInstance->XLines->DelAll("R");
                ServerInstance->XLines->UnregisterFactory(&f);
        }
 
-       virtual Version GetVersion()
+       Version GetVersion() CXX11_OVERRIDE
        {
                return Version("RLINE: Regexp user banning.", VF_COMMON | VF_VENDOR, rxfactory ? rxfactory->name : "");
        }
 
-       ModResult OnUserRegister(LocalUser* user)
+       ModResult OnUserRegister(LocalUser* user) CXX11_OVERRIDE
        {
                // Apply lines on user connect
                XLine *rl = ServerInstance->XLines->MatchesLine("R", user);
@@ -269,7 +259,7 @@ class ModuleRLine : public Module
                return MOD_RES_PASSTHRU;
        }
 
-       virtual void OnRehash(User *user)
+       void OnRehash(User *user) CXX11_OVERRIDE
        {
                ConfigTag* tag = ServerInstance->Config->ConfValue("rline");
 
@@ -302,7 +292,7 @@ class ModuleRLine : public Module
                initing = false;
        }
 
-       virtual ModResult OnStats(char symbol, User* user, string_list &results)
+       ModResult OnStats(char symbol, User* user, string_list &results) CXX11_OVERRIDE
        {
                if (symbol != 'R')
                        return MOD_RES_PASSTHRU;
@@ -311,7 +301,7 @@ class ModuleRLine : public Module
                return MOD_RES_DENY;
        }
 
-       virtual void OnUserPostNick(User *user, const std::string &oldnick)
+       void OnUserPostNick(User *user, const std::string &oldnick) CXX11_OVERRIDE
        {
                if (!IS_LOCAL(user))
                        return;
@@ -328,7 +318,7 @@ class ModuleRLine : public Module
                }
        }
 
-       virtual void OnBackgroundTimer(time_t curtime)
+       void OnBackgroundTimer(time_t curtime) CXX11_OVERRIDE
        {
                if (added_zline)
                {
@@ -337,7 +327,7 @@ class ModuleRLine : public Module
                }
        }
 
-       void OnUnloadModule(Module* mod)
+       void OnUnloadModule(Module* mod) CXX11_OVERRIDE
        {
                // If the regex engine became unavailable or has changed, remove all rlines
                if (!rxfactory)