X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fxline.cpp;h=20693b59910dd2cc2f368e3f65e216481b15a82d;hb=146d85b5dea9ecb803a9a47c68b5489905634125;hp=f50348c3cbaf832a233ab7befd72e605702c6e54;hpb=a5fe50aca04ca554d313e7361c571c6a497a9c4e;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/xline.cpp b/src/xline.cpp index f50348c3c..20693b599 100644 --- a/src/xline.cpp +++ b/src/xline.cpp @@ -259,7 +259,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 +281,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 +308,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 +409,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 +430,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 +471,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; } @@ -531,21 +531,21 @@ bool XLine::IsBurstable() 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.c_str()); - if (!ServerInstance->Config->MoronBanner.empty()) - u->WriteServ("NOTICE %s :*** %s", u->nick.c_str(), ServerInstance->Config->MoronBanner.c_str()); + const std::string banReason = line + "-Lined: " + reason; + + if (!ServerInstance->Config->XLineMessage.empty()) + u->WriteNotice("*** " + ServerInstance->Config->XLineMessage); if (ServerInstance->Config->HideBans) - ServerInstance->Users->QuitUser(u, line + "-Lined", sreason); + ServerInstance->Users->QuitUser(u, line + "-Lined", &banReason); else - ServerInstance->Users->QuitUser(u, sreason); + ServerInstance->Users->QuitUser(u, banReason); 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 +642,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 +692,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()