Give m_connectban a configurable ban message

This commit is contained in:
Googolplexed 2014-02-27 11:55:20 +00:00 committed by Attila Molnar
parent 8af4a2795b
commit dcd07e3892
2 changed files with 8 additions and 2 deletions

View File

@ -563,7 +563,11 @@
# IP addresses (32 and 128 bits) into CIDR masks, to allow for throttling
# over whole ISPs/blocks of IPs, which may be needed to prevent attacks.
#
#<connectban threshold="10" duration="10m" ipv4cidr="32" ipv6cidr="128">
# A custom ban message may optionally be specified.
#
# <connectban threshold="10" duration="10m" ipv4cidr="32" ipv6cidr="128"
# 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.">
#
# This allows for 10 connections in an hour with a 10 minute ban if that is exceeded.
#
#<module name="m_connectban.so">

View File

@ -27,6 +27,7 @@ class ModuleConnectBan : public Module
unsigned int banduration;
unsigned int ipv4_cidr;
unsigned int ipv6_cidr;
std::string banmessage;
public:
Version GetVersion() CXX11_OVERRIDE
@ -42,6 +43,7 @@ class ModuleConnectBan : public Module
ipv6_cidr = tag->getInt("ipv6cidr", 128, 1, 128);
threshold = tag->getInt("threshold", 10, 1);
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
@ -72,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;