summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/conf/inspircd.conf.example4
-rw-r--r--src/modules/m_dnsbl.cpp13
2 files changed, 13 insertions, 4 deletions
diff --git a/docs/conf/inspircd.conf.example b/docs/conf/inspircd.conf.example
index 67806e9e4..22369bc50 100644
--- a/docs/conf/inspircd.conf.example
+++ b/docs/conf/inspircd.conf.example
@@ -271,6 +271,10 @@
# maxconnwarn: Enable warnings when localmax or globalmax is hit (defaults to on)
maxconnwarn="off"
+ # usednsbl: Defines whether or not users in this class are subject to DNSBL. Default is yes.
+ # This setting only has effect when m_dnsbl is loaded.
+ #usednsbl="yes"
+
# useident: Defines if users in this class MUST respond to a ident query or not.
useident="no"
diff --git a/src/modules/m_dnsbl.cpp b/src/modules/m_dnsbl.cpp
index d7d013691..3a334ea37 100644
--- a/src/modules/m_dnsbl.cpp
+++ b/src/modules/m_dnsbl.cpp
@@ -352,16 +352,21 @@ class ModuleDNSBL : public Module
void OnSetUserIP(LocalUser* user)
{
- if (user->exempt)
+ if ((user->exempt) || (user->client_sa.sa.sa_family != AF_INET))
return;
+ if (user->MyClass)
+ {
+ if (!user->MyClass->config->getBool("usednsbl", true))
+ return;
+ }
+ else
+ ServerInstance->Logs->Log("m_dnsbl", DEBUG, "User has no connect class in OnSetUserIP");
+
unsigned char a, b, c, d;
char reversedipbuf[128];
std::string reversedip;
- if (user->client_sa.sa.sa_family != AF_INET)
- return;
-
d = (unsigned char) (user->client_sa.in4.sin_addr.s_addr >> 24) & 0xFF;
c = (unsigned char) (user->client_sa.in4.sin_addr.s_addr >> 16) & 0xFF;
b = (unsigned char) (user->client_sa.in4.sin_addr.s_addr >> 8) & 0xFF;