]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_connectban.cpp
m_spanningtree Remove duplicate code for sending channel messages from RouteCommand()
[user/henk/code/inspircd.git] / src / modules / m_connectban.cpp
index 26120add984381529a736bcd3af0f8b67b4e0d61..227373a36443ea12cd2484756134334a320d2e0b 100644 (file)
 #include "inspircd.h"
 #include "xline.h"
 
-/* $ModDesc: Throttles the connections of IP ranges who try to connect flood. */
-
 class ModuleConnectBan : public Module
 {
- private:
        clonemap connects;
        unsigned int threshold;
        unsigned int banduration;
        unsigned int ipv4_cidr;
        unsigned int ipv6_cidr;
+
  public:
-       void init()
+       void init() CXX11_OVERRIDE
        {
-               Implementation eventlist[] = { I_OnSetUserIP, I_OnGarbageCollect, I_OnRehash };
-               ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
                OnRehash(NULL);
        }
 
-       virtual ~ModuleConnectBan()
-       {
-       }
-
-       virtual Version GetVersion()
+       Version GetVersion() CXX11_OVERRIDE
        {
                return Version("Throttles the connections of IP ranges who try to connect flood.", VF_VENDOR);
        }
 
-       virtual void OnRehash(User* user)
+       void OnRehash(User* user) CXX11_OVERRIDE
        {
                ConfigTag* tag = ServerInstance->Config->ConfValue("connectban");
 
-               ipv4_cidr = tag->getInt("ipv4cidr", 32);
-               if (ipv4_cidr == 0)
-                       ipv4_cidr = 32;
-
-               ipv6_cidr = tag->getInt("ipv6cidr", 128);
-               if (ipv6_cidr == 0)
-                       ipv6_cidr = 128;
-
-               threshold = tag->getInt("threshold", 10);
-               if (threshold == 0)
-                       threshold = 10;
-
-               banduration = ServerInstance->Duration(tag->getString("duration", "10m"));
-               if (banduration == 0)
-                       banduration = 10*60;
+               ipv4_cidr = tag->getInt("ipv4cidr", 32, 1, 32);
+               ipv6_cidr = tag->getInt("ipv6cidr", 128, 1, 128);
+               threshold = tag->getInt("threshold", 10, 1);
+               banduration = tag->getDuration("duration", 10*60, 1);
        }
 
-       virtual void OnSetUserIP(LocalUser* u)
+       void OnSetUserIP(LocalUser* u) CXX11_OVERRIDE
        {
                if (u->exempt)
                        return;
@@ -117,9 +98,9 @@ class ModuleConnectBan : public Module
                }
        }
 
-       virtual void OnGarbageCollect()
+       void OnGarbageCollect()
        {
-               ServerInstance->Logs->Log("m_connectban",DEBUG, "Clearing map.");
+               ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Clearing map.");
                connects.clear();
        }
 };