- char buffer[MAXBUF];
- char itrigger[MAXBUF];
- long matches = 0;
-
- if (!ServerInstance->Config->ConfValue(ServerInstance->Config->config_data, "insane","trigger", 0, itrigger, MAXBUF))
- strlcpy(itrigger,"95.5",MAXBUF);
-
- if (ServerInstance->Config->ConfValueBool(ServerInstance->Config->config_data, "insane","hostmasks", 0))
- return false;
-
- for (user_hash::iterator u = ServerInstance->clientlist.begin(); u != ServerInstance->clientlist.end(); u++)
- {
- strlcpy(buffer,u->second->ident,MAXBUF);
- charlcat(buffer,'@',MAXBUF);
- strlcat(buffer,u->second->host,MAXBUF);
- if (match(buffer,mask.c_str()))
- matches++;
- }
- float percent = ((float)matches / (float)ServerInstance->clientlist.size()) * 100;
- if (percent > (float)atof(itrigger))
- {
- ServerInstance->WriteOpers("*** \2WARNING\2: %s tried to set a G/K/E line mask of %s, which covers %.2f%% of the network!",user->nick,mask.c_str(),percent);
- return true;
- }
- return false;