* +------------------------------------+
*
* InspIRCd: (C) 2002-2009 InspIRCd Development Team
- * See: http://www.inspircd.org/wiki/index.php/Credits
+ * See: http://wiki.inspircd.org/Credits
*
* This program is free but copyrighted software; see
* the file COPYING for details.
// applies lines, removing clients and changing nicks etc as applicable
void XLineManager::ApplyLines()
{
- for (std::vector<User*>::const_iterator u2 = ServerInstance->Users->local_users.begin(); u2 != ServerInstance->Users->local_users.end(); u2++)
+ std::vector<User*>::reverse_iterator u2 = ServerInstance->Users->local_users.rbegin();
+ while (u2 != ServerInstance->Users->local_users.rend())
{
- User* u = (User*)(*u2);
+ User* u = *u2++;
+
+ // Don't ban people who are exempt.
+ if (u->exempt)
+ continue;
for (std::vector<XLine *>::iterator i = pending_lines.begin(); i != pending_lines.end(); i++)
{
void XLine::DefaultApply(User* u, const std::string &line, bool bancache)
{
char sreason[MAXBUF];
- snprintf(sreason, MAXBUF, "%s-Lined: %s", line.c_str(), this->reason);
+ snprintf(sreason, MAXBUF, "%s-Lined: %s", line.c_str(), this->reason.c_str());
if (*ServerInstance->Config->MoronBanner)
u->WriteServ("NOTICE %s :*** %s", u->nick.c_str(), ServerInstance->Config->MoronBanner);
void KLine::Apply(User* u)
{
- DefaultApply(u, "K", (strcmp(this->identmask, "*") == 0) ? true : false);
+ DefaultApply(u, "K", (this->identmask == "*") ? true : false);
}
bool GLine::Matches(User *u)
void GLine::Apply(User* u)
{
- DefaultApply(u, "G", (strcmp(this->identmask, "*") == 0) ? true : false);
+ DefaultApply(u, "G", (this->identmask == "*") ? true : false);
}
bool ELine::Matches(User *u)
void ELine::DisplayExpiry()
{
- ServerInstance->SNO->WriteToSnoMask('x',"Removing expired E-Line %s@%s (set by %s %ld seconds ago)",this->identmask,this->hostmask,this->source,(long int)(ServerInstance->Time() - this->set_time));
+ ServerInstance->SNO->WriteToSnoMask('x',"Removing expired E-Line %s@%s (set by %s %ld seconds ago)",
+ identmask.c_str(),hostmask.c_str(),source.c_str(),(long)(ServerInstance->Time() - this->set_time));
}
void QLine::DisplayExpiry()
{
- ServerInstance->SNO->WriteToSnoMask('x',"Removing expired Q-Line %s (set by %s %ld seconds ago)",this->nick,this->source,(long int)(ServerInstance->Time() - this->set_time));
+ ServerInstance->SNO->WriteToSnoMask('x',"Removing expired Q-Line %s (set by %s %ld seconds ago)",
+ nick.c_str(),source.c_str(),(long)(ServerInstance->Time() - this->set_time));
}
void ZLine::DisplayExpiry()
{
- ServerInstance->SNO->WriteToSnoMask('x',"Removing expired Z-Line %s (set by %s %ld seconds ago)",this->ipaddr,this->source,(long int)(ServerInstance->Time() - this->set_time));
+ ServerInstance->SNO->WriteToSnoMask('x',"Removing expired Z-Line %s (set by %s %ld seconds ago)",
+ ipaddr.c_str(),source.c_str(),(long)(ServerInstance->Time() - this->set_time));
}
void KLine::DisplayExpiry()
{
- ServerInstance->SNO->WriteToSnoMask('x',"Removing expired K-Line %s@%s (set by %s %ld seconds ago)",this->identmask,this->hostmask,this->source,(long int)(ServerInstance->Time() - this->set_time));
+ ServerInstance->SNO->WriteToSnoMask('x',"Removing expired K-Line %s@%s (set by %s %ld seconds ago)",
+ identmask.c_str(),hostmask.c_str(),source.c_str(),(long)(ServerInstance->Time() - this->set_time));
}
void GLine::DisplayExpiry()
{
- ServerInstance->SNO->WriteToSnoMask('x',"Removing expired G-Line %s@%s (set by %s %ld seconds ago)",this->identmask,this->hostmask,this->source,(long int)(ServerInstance->Time() - this->set_time));
+ ServerInstance->SNO->WriteToSnoMask('x',"Removing expired G-Line %s@%s (set by %s %ld seconds ago)",
+ identmask.c_str(),hostmask.c_str(),source.c_str(),(long)(ServerInstance->Time() - this->set_time));
}
const char* ELine::Displayable()
const char* ZLine::Displayable()
{
- return ipaddr;
+ return ipaddr.c_str();
}
const char* QLine::Displayable()
{
- return nick;
+ return nick.c_str();
}
bool KLine::IsBurstable()