summaryrefslogtreecommitdiff
path: root/modules/protocol/inspircd12.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-08-12 14:36:49 -0400
committerAdam <Adam@anope.org>2013-08-12 14:36:49 -0400
commitf15a9749f9afc23e32e029ac495a53d24ac281b8 (patch)
tree4114f9b3a676d458285014539122018deb88be37 /modules/protocol/inspircd12.cpp
parentf1956b039d3c7be38ad03fbb79be6a4eed440cf0 (diff)
Use less strict valid ident checks on hybrid, unreal, and inspircd
Diffstat (limited to 'modules/protocol/inspircd12.cpp')
-rw-r--r--modules/protocol/inspircd12.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/modules/protocol/inspircd12.cpp b/modules/protocol/inspircd12.cpp
index 2c9103702..0098ae90b 100644
--- a/modules/protocol/inspircd12.cpp
+++ b/modules/protocol/inspircd12.cpp
@@ -390,6 +390,27 @@ class InspIRCd12Proto : public IRCDProto
{
return mask.length() >= 3 && mask[1] == ':';
}
+
+ bool IsIdentValid(const Anope::string &ident) anope_override
+ {
+ if (ident.empty() || ident.length() > Config->GetBlock("networkinfo")->Get<unsigned>("userlen"))
+ return false;
+
+ for (unsigned i = 0; i < ident.length(); ++i)
+ {
+ const char &c = ident[i];
+
+ if (c >= 'A' && c <= '}')
+ continue;
+
+ if ((c >= '0' && c <= '9') || c == '-' || c == '.')
+ continue;
+
+ return false;
+ }
+
+ return true;
+ }
};
class InspIRCdExtBan : public ChannelModeList