* ---------------------------------------------------
*/
-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>
#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>
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;
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);
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))
{
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))
{