diff options
| author | 2025-04-16 12:13:11 +0100 | |
|---|---|---|
| committer | 2025-04-16 12:13:11 +0100 | |
| commit | a3e736de1d3b6423e88b58506c0bfbe89dec3bd3 (patch) | |
| tree | 04ffa9b7f162c00c5ce4f5da11344ff02622660a /modules/cloak.cpp | |
| parent | Refuse to hash passwords using insecure algorithms in MKPASSWD. (diff) | |
Add <security:banrealmask>.
Diffstat (limited to 'modules/cloak.cpp')
| -rw-r--r-- | modules/cloak.cpp | 13 |
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; } |
