diff options
-rw-r--r-- | src/modules/m_services_account.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp index 08986d53c..ac5338332 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -209,6 +209,10 @@ class ModuleServicesAccount : public Module ModResult OnCheckBan(User* user, Channel* chan, const std::string& mask) { + static bool checking = false; + if (checking) + return MOD_RES_PASSTHRU; + if (mask[1] == ':') { if (mask[0] == 'R') @@ -226,7 +230,11 @@ class ModuleServicesAccount : public Module /* If we made it this far we know the user isn't registered so just deny if it matches */ - if (chan->GetExtBanStatus(user, 'U') == MOD_RES_DENY) + checking = true; + bool result = chan->CheckBan(user, mask.substr(2)); + checking = false; + + if (result) return MOD_RES_DENY; } } |