aboutsummaryrefslogtreecommitdiffstats
path: root/modules/cloak.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2025-04-16 12:13:11 +0100
committerGravatar Sadie Powell2025-04-16 12:13:11 +0100
commita3e736de1d3b6423e88b58506c0bfbe89dec3bd3 (patch)
tree04ffa9b7f162c00c5ce4f5da11344ff02622660a /modules/cloak.cpp
parentRefuse to hash passwords using insecure algorithms in MKPASSWD. (diff)
Add <security:banrealmask>.
Diffstat (limited to 'modules/cloak.cpp')
-rw-r--r--modules/cloak.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/modules/cloak.cpp b/modules/cloak.cpp
index de39be736..d7e9bb341 100644
--- a/modules/cloak.cpp
+++ b/modules/cloak.cpp
@@ -484,7 +484,7 @@ public:
}
}
- ModResult OnCheckBan(User* user, Channel* chan, const std::string& mask) override
+ ModResult OnCheckBan(User* user, Channel* chan, const std::string& mask, bool full) override
{
LocalUser* lu = IS_LOCAL(user);
if (!lu)
@@ -503,11 +503,14 @@ public:
const auto &ruser = cloak.username.empty() ? user->GetRealUser() : cloak.username;
const auto &duser = cloak.username.empty() ? user->GetDisplayedUser() : cloak.username;
- std::string cloakmask = FMT::format("{}!{}@{}", user->nick, ruser, cloak.hostname);
- if (InspIRCd::Match(cloakmask, mask))
- return MOD_RES_DENY;
+ if (full)
+ {
+ auto cloakmask = FMT::format("{}!{}@{}", user->nick, ruser, cloak.hostname);
+ if (InspIRCd::Match(cloakmask, mask))
+ return MOD_RES_DENY;
+ }
- cloakmask = FMT::format("{}!{}@{}", user->nick, duser, cloak.hostname);
+ auto cloakmask = FMT::format("{}!{}@{}", user->nick, duser, cloak.hostname);
if (InspIRCd::Match(cloakmask, mask))
return MOD_RES_DENY;
}