summaryrefslogtreecommitdiff
path: root/modules/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'modules/protocol')
-rw-r--r--modules/protocol/inspircd12.cpp5
-rw-r--r--modules/protocol/inspircd20.cpp1
-rw-r--r--modules/protocol/unreal.cpp5
3 files changed, 11 insertions, 0 deletions
diff --git a/modules/protocol/inspircd12.cpp b/modules/protocol/inspircd12.cpp
index 62886d311..1a7f338c1 100644
--- a/modules/protocol/inspircd12.cpp
+++ b/modules/protocol/inspircd12.cpp
@@ -374,6 +374,11 @@ class InspIRCd12Proto : public IRCDProto
void SendOper(User *u) anope_override
{
}
+
+ bool IsExtbanValid(const Anope::string &mask) anope_override
+ {
+ return mask.length() >= 3 && mask[1] == ':';
+ }
};
class InspIRCdExtBan : public ChannelModeList
diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp
index cd2a1bbd4..632c60a3c 100644
--- a/modules/protocol/inspircd20.cpp
+++ b/modules/protocol/inspircd20.cpp
@@ -72,6 +72,7 @@ class InspIRCd20Proto : public IRCDProto
void SendLogin(User *u) anope_override { insp12->SendLogin(u); }
void SendLogout(User *u) anope_override { insp12->SendLogout(u); }
void SendChannel(Channel *c) anope_override { insp12->SendChannel(c); }
+ bool IsExtbanValid(const Anope::string &mask) anope_override { return insp12->IsExtbanValid(mask); }
};
class InspIRCdExtBan : public ChannelModeList
diff --git a/modules/protocol/unreal.cpp b/modules/protocol/unreal.cpp
index 3f1d33279..4bfc8e3fb 100644
--- a/modules/protocol/unreal.cpp
+++ b/modules/protocol/unreal.cpp
@@ -337,6 +337,11 @@ class UnrealIRCdProto : public IRCDProto
return IRCDProto::IsChannelValid(chan);
}
+ bool IsExtbanValid(const Anope::string &mask) anope_override
+ {
+ return mask.length() >= 4 && mask[0] == '~' && mask[2] == ':';
+ }
+
void SendLogin(User *u) anope_override
{
if (!u->Account())