X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_connflood.cpp;h=a226fa1893e976e53d2df7ff56432d48b4e520cd;hb=bcac49dca78631687975771c6d0a76b595171664;hp=e5d3fd2adf9978b37b8e90e8cad2e25a7184f54b;hpb=93876363f89ea7a451ba1e18407e08a539854208;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_connflood.cpp b/src/modules/m_connflood.cpp index e5d3fd2ad..a226fa189 100644 --- a/src/modules/m_connflood.cpp +++ b/src/modules/m_connflood.cpp @@ -21,10 +21,11 @@ using namespace std; #include "users.h" #include "modules.h" +#include "inspircd.h" + /* $ModDesc: Connection throttle */ int conns = 0, throttled = 0; -extern time_t TIME; class ModuleConnFlood : public Module { @@ -34,12 +35,12 @@ private: std::string quitmsg; ConfigReader* conf; - Server *Srv; + public: - ModuleConnFlood(Server* Me) : Module::Module(Me) + ModuleConnFlood(InspIRCd* Me) : Module::Module(Me) { - Srv = Me; + InitConf(); } @@ -49,7 +50,7 @@ public: virtual Version GetVersion() { - return Version(1,0,0,0,0); + return Version(1,1,0,0,VF_VENDOR,API_VERSION); } void Implements(char* List) @@ -60,7 +61,7 @@ public: void InitConf() { /* read configuration variables */ - conf = new ConfigReader; + conf = new ConfigReader(ServerInstance); /* throttle configuration */ seconds = conf->ReadInteger("connflood", "seconds", 0, true); maxconns = conf->ReadInteger("connflood", "maxconns", 0, true); @@ -70,12 +71,12 @@ public: /* seconds to wait when the server just booted */ boot_wait = conf->ReadInteger("connflood", "bootwait", 0, true); - first = TIME; + first = ServerInstance->Time(); } - virtual void OnUserRegister(userrec* user) + virtual int OnUserRegister(userrec* user) { - time_t next = TIME; + time_t next = ServerInstance->Time(); if (!first) first = next - boot_wait; @@ -91,11 +92,11 @@ public: { /* expire throttle */ throttled = 0; - Srv->SendOpers("*** Connection throttle deactivated"); - return; + ServerInstance->WriteOpers("*** Connection throttle deactivated"); + return 0; } - userrec::QuitUser(user, quitmsg); - return; + userrec::QuitUser(ServerInstance, user, quitmsg); + return 1; } if (tdiff <= seconds) @@ -103,9 +104,9 @@ public: if (conns >= maxconns) { throttled = 1; - Srv->SendOpers("*** Connection throttle activated"); - userrec::QuitUser(user, quitmsg); - return; + ServerInstance->WriteOpers("*** Connection throttle activated"); + userrec::QuitUser(ServerInstance, user, quitmsg); + return 1; } } else @@ -113,6 +114,7 @@ public: conns = 1; first = next; } + return 0; } virtual void OnRehash(const std::string ¶meter) @@ -134,7 +136,7 @@ public: { } - virtual Module * CreateModule(Server* Me) + virtual Module * CreateModule(InspIRCd* Me) { return new ModuleConnFlood(Me); }