]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_connectban.cpp
Update detection in module loading commands that relied on old command module names
[user/henk/code/inspircd.git] / src / modules / m_connectban.cpp
index 36e10ec5b99e8247ffbd6a43fb571bdbfee77fba..59b8f2d36f809ed1954442744f8b1d9057b89956 100644 (file)
@@ -27,28 +27,23 @@ class ModuleConnectBan : public Module
        unsigned int banduration;
        unsigned int ipv4_cidr;
        unsigned int ipv6_cidr;
+       std::string banmessage;
 
  public:
-       void init() CXX11_OVERRIDE
-       {
-               OnRehash(NULL);
-       }
-
        Version GetVersion() CXX11_OVERRIDE
        {
                return Version("Throttles the connections of IP ranges who try to connect flood.", VF_VENDOR);
        }
 
-       void OnRehash(User* user) CXX11_OVERRIDE
+       void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
        {
                ConfigTag* tag = ServerInstance->Config->ConfValue("connectban");
 
                ipv4_cidr = tag->getInt("ipv4cidr", 32, 1, 32);
                ipv6_cidr = tag->getInt("ipv6cidr", 128, 1, 128);
                threshold = tag->getInt("threshold", 10, 1);
-               banduration = InspIRCd::Duration(tag->getString("duration", "10m"));
-               if (banduration == 0)
-                       banduration = 10*60;
+               banduration = tag->getDuration("duration", 10*60, 1);
+               banmessage = tag->getString("banmessage", "Your IP range has been attempting to connect too many times in too short a duration. Wait a while, and you will be able to connect.");
        }
 
        void OnSetUserIP(LocalUser* u) CXX11_OVERRIDE
@@ -79,7 +74,7 @@ class ModuleConnectBan : public Module
                        if (i->second >= threshold)
                        {
                                // Create zline for set duration.
-                               ZLine* zl = new ZLine(ServerInstance->Time(), banduration, ServerInstance->Config->ServerName, "Your IP range has been attempting to connect too many times in too short a duration. Wait a while, and you will be able to connect.", mask.str());
+                               ZLine* zl = new ZLine(ServerInstance->Time(), banduration, ServerInstance->Config->ServerName, banmessage, mask.str());
                                if (!ServerInstance->XLines->AddLine(zl, NULL))
                                {
                                        delete zl;
@@ -87,7 +82,7 @@ class ModuleConnectBan : public Module
                                }
                                ServerInstance->XLines->ApplyLines();
                                std::string maskstr = mask.str();
-                               std::string timestr = ServerInstance->TimeString(zl->expiry);
+                               std::string timestr = InspIRCd::TimeString(zl->expiry);
                                ServerInstance->SNO->WriteGlobalSno('x',"Module m_connectban added Z:line on *@%s to expire on %s: Connect flooding",
                                        maskstr.c_str(), timestr.c_str());
                                ServerInstance->SNO->WriteGlobalSno('a', "Connect flooding from IP range %s (%d)", maskstr.c_str(), threshold);