aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/m_dnsbl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/m_dnsbl.cpp')
-rw-r--r--src/modules/m_dnsbl.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/modules/m_dnsbl.cpp b/src/modules/m_dnsbl.cpp
index ca8c6f10b..376ada344 100644
--- a/src/modules/m_dnsbl.cpp
+++ b/src/modules/m_dnsbl.cpp
@@ -280,6 +280,12 @@ class ModuleDNSBL : public Module, public Stats::EventListener
ServerInstance->SNO.EnableSnomask('d', "DNSBL");
}
+ void Prioritize() override
+ {
+ Module* corexline = ServerInstance->Modules.Find("core_xline");
+ ServerInstance->Modules.SetPriority(this, I_OnSetUserIP, PRIORITY_AFTER, corexline);
+ }
+
void ReadConfig(ConfigStatus& status) override
{
DNSBLConfList newentries;
@@ -343,7 +349,7 @@ class ModuleDNSBL : public Module, public Stats::EventListener
void OnSetUserIP(LocalUser* user) override
{
- if ((user->exempt) || !DNS)
+ if (user->exempt || user->quitting || !DNS)
return;
// Clients can't be in a DNSBL if they aren't connected via IPv4 or IPv6.
@@ -356,7 +362,10 @@ class ModuleDNSBL : public Module, public Stats::EventListener
return;
}
else
+ {
ServerInstance->Logs.Log(MODNAME, LOG_DEBUG, "User has no connect class in OnSetUserIP");
+ return;
+ }
std::string reversedip;
if (user->client_sa.family() == AF_INET)