* ---------------------------------------------------
*/
+/* $Core: libIRCDhelper */
+
#include "inspircd.h"
#include <stdarg.h>
#include "wildcard.h"
return 0;
}
-/* wrapper for readability */
-int InspIRCd::InvisibleUserCount()
-{
- return ModeCount('i');
-}
-
/* return how many users are opered */
int InspIRCd::OperCount()
{
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)
{
}
/* open the proper logfile */
-bool InspIRCd::OpenLog(char** argv, int argc)
+bool InspIRCd::OpenLog(char**, int)
{
Config->MyDir = Config->GetFullProgDir();
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);
+}