aboutsummaryrefslogtreecommitdiffstats
path: root/modules/services.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2025-04-16 12:26:51 +0100
committerGravatar Sadie Powell2025-04-16 12:26:51 +0100
commite27ee3829851871460c0ed521cd8998f0b24e5c4 (patch)
tree3879509b684e12fe35848cb3b66d7eb0606627d2 /modules/services.cpp
parentMove 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.cpp6
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);