From 4cc6e5e14fdbde499481dbab5ab2ad1257b8af9c Mon Sep 17 00:00:00 2001 From: w00t Date: Mon, 22 Oct 2007 10:14:18 +0000 Subject: Move InspIRCd::IsValidMask() to helperfuncs.cpp git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8298 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/helperfuncs.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/helperfuncs.cpp') diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp index ceb4711a9..388e9bb50 100644 --- a/src/helperfuncs.cpp +++ b/src/helperfuncs.cpp @@ -391,6 +391,38 @@ long InspIRCd::LocalUserCount() return (local_users.size() - this->UnregisteredUserCount()); } +bool InspIRCd::IsValidMask(const std::string &mask) +{ + char* dest = (char*)mask.c_str(); + int exclamation = 0; + int atsign = 0; + + for (char* i = dest; *i; i++) + { + /* out of range character, bad mask */ + if (*i < 32 || *i > 126) + { + return false; + } + + switch (*i) + { + case '!': + exclamation++; + break; + case '@': + atsign++; + break; + } + } + + /* valid masks only have 1 ! and @ */ + if (exclamation != 1 || atsign != 1) + return false; + + return true; +} + /* true for valid channel name, false else */ bool InspIRCd::IsChannel(const char *chname) { -- cgit v1.2.3