Exemple #1
0
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() */