]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/commands.cpp
Remove an extern, partly because it's unused, partly because it then gets shadowed...
[user/henk/code/inspircd.git] / src / commands.cpp
index 46e3ae9829d95c6b01bf3b3fb7fb42efbdf6163c..e4fc939ea608a528dda56dc2358bcdfb9369614d 100644 (file)
  * ---------------------------------------------------
  */
 
-using namespace std;
-
 #include "inspircd_config.h"
 #include "inspircd.h"
-#include "inspircd_io.h"
+#include "configreader.h"
 #include <unistd.h>
 #include <sys/errno.h>
 #include <sys/ioctl.h>
@@ -26,15 +24,8 @@ using namespace std;
 #include <cstdio>
 #include <time.h>
 #include <string>
-#ifdef GCC3
-#include <ext/hash_map>
-#else
-#include <hash_map>
-#endif
-#include <map>
 #include <sstream>
 #include <vector>
-#include <deque>
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/resource.h>
@@ -67,8 +58,8 @@ extern ServerConfig* Config;
 extern InspIRCd* ServerInstance;
 
 extern int MODCOUNT;
-extern std::vector<Module*> modules;
-extern std::vector<ircd_module*> factory;
+extern ModuleList modules;
+extern FactoryList factory;
 extern time_t TIME;
 
 const long duration_m = 60;
@@ -212,16 +203,16 @@ long duration(const char* str)
 
 bool host_matches_everyone(const std::string &mask, userrec* user)
 {
-       char insanemasks[MAXBUF];
        char buffer[MAXBUF];
        char itrigger[MAXBUF];
-       Config->ConfValue(Config->config_data, "insane","hostmasks", 0, insanemasks, MAXBUF);
-       Config->ConfValue(Config->config_data, "insane","trigger", 0, itrigger, MAXBUF);
-       if (*itrigger == 0)
+       long matches = 0;
+       
+       if (!Config->ConfValue(Config->config_data, "insane","trigger", 0, itrigger, MAXBUF))
                strlcpy(itrigger,"95.5",MAXBUF);
-       if ((*insanemasks == 'y') || (*insanemasks == 't') || (*insanemasks == '1'))
+       
+       if (Config->ConfValueBool(Config->config_data, "insane","hostmasks", 0))
                return false;
-       long matches = 0;
+       
        for (user_hash::iterator u = clientlist.begin(); u != clientlist.end(); u++)
        {
                strlcpy(buffer,u->second->ident,MAXBUF);
@@ -241,20 +232,21 @@ bool host_matches_everyone(const std::string &mask, userrec* user)
 
 bool ip_matches_everyone(const std::string &ip, userrec* user)
 {
-       char insanemasks[MAXBUF];
        char itrigger[MAXBUF];
-       Config->ConfValue(Config->config_data, "insane","ipmasks",0,insanemasks,MAXBUF);
-       Config->ConfValue(Config->config_data, "insane","trigger",0,itrigger,MAXBUF);
-       if (*itrigger == 0)
+       long matches = 0;
+       
+       if (!Config->ConfValue(Config->config_data, "insane","trigger",0,itrigger,MAXBUF))
                strlcpy(itrigger,"95.5",MAXBUF);
-       if ((*insanemasks == 'y') || (*insanemasks == 't') || (*insanemasks == '1'))
+       
+       if (Config->ConfValueBool(Config->config_data, "insane","ipmasks",0))
                return false;
-       long matches = 0;
+       
        for (user_hash::iterator u = clientlist.begin(); u != clientlist.end(); u++)
        {
                if (match((char*)inet_ntoa(u->second->ip4),ip.c_str()))
                        matches++;
        }
+       
        float percent = ((float)matches / (float)clientlist.size()) * 100;
        if (percent > (float)atof(itrigger))
        {
@@ -266,20 +258,21 @@ bool ip_matches_everyone(const std::string &ip, userrec* user)
 
 bool nick_matches_everyone(const std::string &nick, userrec* user)
 {
-       char insanemasks[MAXBUF];
        char itrigger[MAXBUF];
-       Config->ConfValue(Config->config_data, "insane","nickmasks",0,insanemasks,MAXBUF);
-       Config->ConfValue(Config->config_data, "insane","trigger",0,itrigger,MAXBUF);
-       if (*itrigger == 0)
+       long matches = 0;
+       
+       if (!Config->ConfValue(Config->config_data, "insane","trigger",0,itrigger,MAXBUF))
                strlcpy(itrigger,"95.5",MAXBUF);
-       if ((*insanemasks == 'y') || (*insanemasks == 't') || (*insanemasks == '1'))
+       
+       if (Config->ConfValueBool(Config->config_data, "insane","nickmasks",0))
                return false;
-       long matches = 0;
+
        for (user_hash::iterator u = clientlist.begin(); u != clientlist.end(); u++)
        {
                if (match(u->second->nick,nick.c_str()))
                        matches++;
        }
+       
        float percent = ((float)matches / (float)clientlist.size()) * 100;
        if (percent > (float)atof(itrigger))
        {