diff options
| author | 2025-04-16 12:26:51 +0100 | |
|---|---|---|
| committer | 2025-04-16 12:26:51 +0100 | |
| commit | e27ee3829851871460c0ed521cd8998f0b24e5c4 (patch) | |
| tree | 3879509b684e12fe35848cb3b66d7eb0606627d2 /modules/services.cpp | |
| parent | Move customversion from <security> to <options>. (diff) | |
Allow SVSCMODE to opt-out of a full ban check.
Diffstat (limited to 'modules/services.cpp')
| -rw-r--r-- | modules/services.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/modules/services.cpp b/modules/services.cpp index 12ff4d01c..93bdcc57e 100644 --- a/modules/services.cpp +++ b/modules/services.cpp @@ -266,6 +266,10 @@ public: if (!c) return CmdResult::FAILURE; + auto full = ServerInstance->Config->BanRealMask; + if (parameters.size() > 3) + full = !!ConvToNum<uint8_t>(parameters[3], 1); + for (auto mode : parameters[2]) { auto* mh = ServerInstance->Modes.FindMode(mode, MODETYPE_CHANNEL); @@ -279,7 +283,7 @@ public: Modes::ChangeList changelist; for (const auto& entry : *list) { - if (c->CheckBan(u, entry.mask)) + if (c->CheckBan(u, entry.mask, full)) changelist.push(mh, false, entry.mask); } ServerInstance->Modes.Process(user, c, nullptr, changelist); |
