diff options
author | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-05-08 16:54:16 +0000 |
---|---|---|
committer | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-05-08 16:54:16 +0000 |
commit | c3e52465901f11226616a2a93393c3d07295b45d (patch) | |
tree | e8939bbbaaae24d1b8c3dda0567130eac120ab22 /src/modules/m_quitban.cpp | |
parent | 80a4db3cb0c7085f451433cf38506db2eb68a1a9 (diff) |
Rename to m_connectban
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9664 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_quitban.cpp')
-rw-r--r-- | src/modules/m_quitban.cpp | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/src/modules/m_quitban.cpp b/src/modules/m_quitban.cpp deleted file mode 100644 index a1ff0816c..000000000 --- a/src/modules/m_quitban.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ - * - * InspIRCd: (C) 2002-2008 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits - * - * This program is free but copyrighted software; see - * the file COPYING for details. - * - * --------------------------------------------------- - */ - -#include "inspircd.h" -#include "xline.h" - -/* $ModDesc: Throttles the connections of any users who try connect flood */ - -class ModuleQuitBan : public Module -{ - private: - clonemap connects; - unsigned int threshold; - unsigned int banduration; - public: - ModuleQuitBan(InspIRCd* Me) : Module(Me) - { - Implementation eventlist[] = { I_OnUserConnect, I_OnGarbageCollect, I_OnRehash }; - ServerInstance->Modules->Attach(eventlist, this, 3); - OnRehash(NULL, ""); - } - - virtual ~ModuleQuitBan() - { - } - - virtual Version GetVersion() - { - return Version(1,2,0,0,VF_VENDOR,API_VERSION); - } - - virtual void OnRehash(User* user, const std::string ¶meter) - { - ConfigReader Conf(ServerInstance); - std::string duration; - - threshold = Conf.ReadInteger("connectban", "threshold", 0, true); - - if (threshold == 0) - threshold = 10; - - duration = Conf.ReadValue("connectban", "duration", 0, true); - - if (duration.empty()) - duration = "10m"; - - banduration = ServerInstance->Duration(duration); - } - - virtual void OnUserConnect(User *u) - { - clonemap::iterator i = connects.find(u->GetIPString()); - - if (i != connects.end()) - { - i->second++; - ServerInstance->Logs->Log("m_connectban",DEBUG, "Count for IP is now %d", i->second); - - if (i->second >= threshold) - { - // Create zline for set duration. - ZLine* zl = new ZLine(ServerInstance, ServerInstance->Time(), banduration, ServerInstance->Config->ServerName, "Connect flooding", u->GetIPString()); - if (ServerInstance->XLines->AddLine(zl,NULL)) - ServerInstance->XLines->ApplyLines(); - else - delete zl; - - ServerInstance->SNO->WriteToSnoMask('x', "Connect flooding from IP %s (%d)", u->GetIPString(), threshold); - connects.erase(i); - } - } - else - { - connects[u->GetIPString()] = 1; - ServerInstance->Logs->Log("m_quitban",DEBUG, "Added new record"); - } - } - - virtual void OnGarbageCollect() - { - ServerInstance->Logs->Log("m_quitban",DEBUG, "Clearing map."); - connects.clear(); - } -}; - -MODULE_INIT(ModuleQuitBan) |