X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fxline.cpp;h=9b90c56f7979b830982e8c28df15af95138ce4be;hb=caa0c27a5a485151a0de21e700680c1e46ab85b4;hp=ff86997bb8dc6e608df61a03de1d2689b7667291;hpb=e586aaab7c4f7b03514c83451d73b73f55dc6998;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/xline.cpp b/src/xline.cpp index ff86997bb..9b90c56f7 100644 --- a/src/xline.cpp +++ b/src/xline.cpp @@ -23,7 +23,6 @@ #include "inspircd.h" #include "xline.h" -#include "bancache.h" /** An XLineFactory specialized to generate GLine* pointers */ @@ -259,7 +258,7 @@ bool XLineManager::AddLine(XLine* line, User* user) ContainerIter x = lookup_lines.find(line->type); if (x != lookup_lines.end()) { - LookupIter i = x->second.find(line->Displayable()); + LookupIter i = x->second.find(line->Displayable().c_str()); if (i != x->second.end()) { // XLine propagation bug was here, if the line to be added already exists and @@ -281,10 +280,10 @@ bool XLineManager::AddLine(XLine* line, User* user) if (xlf->AutoApplyToUserList(line)) pending_lines.push_back(line); - lookup_lines[line->type][line->Displayable()] = line; + lookup_lines[line->type][line->Displayable().c_str()] = line; line->OnAdd(); - FOREACH_MOD(I_OnAddLine,OnAddLine(user, line)); + FOREACH_MOD(OnAddLine, (user, line)); return true; } @@ -308,7 +307,7 @@ bool XLineManager::DelLine(const char* hostmask, const std::string &type, User* ServerInstance->BanCache->RemoveEntries(y->second->type, true); - FOREACH_MOD(I_OnDelLine,OnDelLine(user, y->second)); + FOREACH_MOD(OnDelLine, (user, y->second)); y->second->Unset(); @@ -409,7 +408,7 @@ XLine* XLineManager::MatchesLine(const std::string &type, const std::string &pat // removes lines that have expired void XLineManager::ExpireLine(ContainerIter container, LookupIter item) { - FOREACH_MOD(I_OnExpireLine, OnExpireLine(item->second)); + FOREACH_MOD(OnExpireLine, (item->second)); item->second->DisplayExpiry(); item->second->Unset(); @@ -430,10 +429,10 @@ void XLineManager::ExpireLine(ContainerIter container, LookupIter item) // applies lines, removing clients and changing nicks etc as applicable void XLineManager::ApplyLines() { - LocalUserList::reverse_iterator u2 = ServerInstance->Users->local_users.rbegin(); - while (u2 != ServerInstance->Users->local_users.rend()) + LocalUserList& list = ServerInstance->Users->local_users; + for (LocalUserList::iterator j = list.begin(); j != list.end(); ++j) { - LocalUser* u = *u2++; + LocalUser* u = *j; // Don't ban people who are exempt. if (u->exempt) @@ -471,7 +470,7 @@ void XLineManager::InvokeStats(const std::string &type, int numeric, User* user, ExpireLine(n, i); } else - results.push_back(ServerInstance->Config->ServerName+" "+ConvToStr(numeric)+" "+user->nick+" :"+i->second->Displayable()+" "+ + results.push_back(ConvToStr(numeric)+" "+user->nick+" :"+i->second->Displayable()+" "+ ConvToStr(i->second->set_time)+" "+ConvToStr(i->second->duration)+" "+i->second->source+" :"+i->second->reason); i = safei; } @@ -533,11 +532,11 @@ void XLine::DefaultApply(User* u, const std::string &line, bool bancache) { const std::string banReason = line + "-Lined: " + reason; - if (!ServerInstance->Config->MoronBanner.empty()) - u->WriteNotice("*** " + ServerInstance->Config->MoronBanner); + if (!ServerInstance->Config->XLineMessage.empty()) + u->WriteNotice("*** " + ServerInstance->Config->XLineMessage); if (ServerInstance->Config->HideBans) - ServerInstance->Users->QuitUser(u, line + "-Lined", banReason.c_str()); + ServerInstance->Users->QuitUser(u, line + "-Lined", &banReason); else ServerInstance->Users->QuitUser(u, banReason); @@ -545,7 +544,7 @@ void XLine::DefaultApply(User* u, const std::string &line, bool bancache) if (bancache) { ServerInstance->Logs->Log("BANCACHE", LOG_DEBUG, "BanCache: Adding positive hit (" + line + ") for " + u->GetIPString()); - ServerInstance->BanCache->AddHit(u->GetIPString(), this->type, line + "-Lined: " + this->reason, this->duration); + ServerInstance->BanCache->AddHit(u->GetIPString(), this->type, banReason, this->duration); } } @@ -642,7 +641,7 @@ bool QLine::Matches(User *u) void QLine::Apply(User* u) { /* Force to uuid on apply of qline, no need to disconnect any more :) */ - u->ForceNickChange(u->uuid.c_str()); + u->ForceNickChange(u->uuid); } @@ -692,32 +691,32 @@ void XLine::DisplayExpiry() { bool onechar = (type.length() == 1); ServerInstance->SNO->WriteToSnoMask('x', "Removing expired %s%s %s (set by %s %ld seconds ago)", - type.c_str(), (onechar ? "-Line" : ""), Displayable(), source.c_str(), (long)(ServerInstance->Time() - set_time)); + type.c_str(), (onechar ? "-Line" : ""), Displayable().c_str(), source.c_str(), (long)(ServerInstance->Time() - set_time)); } -const char* ELine::Displayable() +const std::string& ELine::Displayable() { - return matchtext.c_str(); + return matchtext; } -const char* KLine::Displayable() +const std::string& KLine::Displayable() { - return matchtext.c_str(); + return matchtext; } -const char* GLine::Displayable() +const std::string& GLine::Displayable() { - return matchtext.c_str(); + return matchtext; } -const char* ZLine::Displayable() +const std::string& ZLine::Displayable() { - return ipaddr.c_str(); + return ipaddr; } -const char* QLine::Displayable() +const std::string& QLine::Displayable() { - return nick.c_str(); + return nick; } bool KLine::IsBurstable()