bool InspIRCd::NickMatchesEveryone(const std::string &nick, userrec* user) { char itrigger[MAXBUF]; long matches = 0; if (!Config->ConfValue(Config->config_data, "insane","trigger",0,itrigger,MAXBUF)) strlcpy(itrigger,"95.5",MAXBUF); if (Config->ConfValueBool(Config->config_data, "insane","nickmasks",0)) return false; for (user_hash::iterator u = clientlist->begin(); u != clientlist->end(); u++) { if (match(u->second->nick,nick.c_str())) matches++; } if (!matches) return false; float percent = ((float)matches / (float)clientlist->size()) * 100; if (percent > (float)atof(itrigger)) { WriteOpers("*** \2WARNING\2: %s tried to set a Q line mask of %s, which covers %.2f%% of the network!",user->nick,nick.c_str(),percent); return true; } return false; }
int WriteDatabases() { if (!WriteOpers()) return (0); #ifdef STATSERVICES if (!WriteStats()) return (0); #endif /* STATSERVICES */ #ifdef SEENSERVICES if (!WriteSeen()) return (0); #endif /* SEENSERVICES */ #ifdef NICKSERVICES if (!WriteNicks()) return (0); #ifdef CHANNELSERVICES if (!WriteChans()) return (0); #endif /* CHANNELSERVICES */ #ifdef MEMOSERVICES if (!WriteMemos()) return (0); #endif /* MEMOSERVICES */ #endif /* NICKSERVICES */ return (1); } /* WriteDatabases() */