]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/helperfuncs.cpp
It compiles; ship it.
[user/henk/code/inspircd.git] / src / helperfuncs.cpp
index 63f599f75731db5faad88eeaed29802f0e297f76..a1d40cc5fabe1932b4e05a7d4cb5bf3958fddead 100644 (file)
@@ -11,6 +11,8 @@
  * ---------------------------------------------------
  */
 
+/* $Core: libIRCDhelper */
+
 #include "inspircd.h"
 #include <stdarg.h>
 #include "wildcard.h"
@@ -360,12 +362,6 @@ int InspIRCd::ModeCount(const char mode)
                return 0;
 }
 
-/* wrapper for readability */
-int InspIRCd::InvisibleUserCount()
-{
-       return ModeCount('i');
-}
-
 /* return how many users are opered */
 int InspIRCd::OperCount()
 {
@@ -391,6 +387,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)
 {
@@ -479,7 +507,7 @@ bool IsIdentHandler::Call(const char* n)
 }
 
 /* open the proper logfile */
-bool InspIRCd::OpenLog(char** argv, int argc)
+bool InspIRCd::OpenLog(char**, int)
 {
        Config->MyDir = Config->GetFullProgDir();
 
@@ -592,4 +620,26 @@ long InspIRCd::Duration(const std::string &str)
        return total + subtotal;
 }
 
+bool InspIRCd::ULine(const char* server)
+{
+       if (!server)
+               return false;
+       if (!*server)
+               return true;
+
+       return (Config->ulines.find(server) != Config->ulines.end());
+}
+
+bool InspIRCd::SilentULine(const char* server)
+{
+       std::map<irc::string,bool>::iterator n = Config->ulines.find(server);
+       if (n != Config->ulines.end())
+               return n->second;
+       else return false;
+}
+
+std::string InspIRCd::TimeString(time_t curtime)
+{
+       return std::string(ctime(&curtime),24);
+}