summaryrefslogtreecommitdiff
path: root/src/modules/m_quitban.cpp
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-05-08 16:54:16 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-05-08 16:54:16 +0000
commitc3e52465901f11226616a2a93393c3d07295b45d (patch)
treee8939bbbaaae24d1b8c3dda0567130eac120ab22 /src/modules/m_quitban.cpp
parent80a4db3cb0c7085f451433cf38506db2eb68a1a9 (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.cpp96
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 &parameter)
- {
- 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)