X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fxline.cpp;h=8843b99898908babdc5cecacfbc3fd025caf8315;hb=985c2bd1e6ea0bba467143406b83ba4a9f77fce1;hp=1b56f2920b36a5450117228342040f59dbd2e1a6;hpb=0276e5138a8f886fe709ffed534aaf5ff826b5be;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/xline.cpp b/src/xline.cpp index 1b56f2920..8843b9989 100644 --- a/src/xline.cpp +++ b/src/xline.cpp @@ -11,7 +11,7 @@ * --------------------------------------------------- */ -/* $Core: libIRCDxline */ +/* $Core */ #include "inspircd.h" #include "wildcard.h" @@ -116,6 +116,22 @@ XLineLookup* XLineManager::GetAll(const std::string &type) return &(n->second); } +void XLineManager::DelAll(const std::string &type) +{ + ContainerIter n = lookup_lines.find(type); + + if (n == lookup_lines.end()) + return; + + LookupIter x; + + /* Delete all of a given type (this should probably use DelLine, but oh well) */ + while ((x = n->second.begin()) != n->second.end()) + { + ExpireLine(n, x); + } +} + std::vector XLineManager::GetAllTypes() { std::vector items; @@ -419,7 +435,7 @@ 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); if (*ServerInstance->Config->MoronBanner) - u->WriteServ("NOTICE %s :*** %s", u->nick, ServerInstance->Config->MoronBanner); + u->WriteServ("NOTICE %s :*** %s", u->nick.c_str(), ServerInstance->Config->MoronBanner); if (ServerInstance->Config->HideBans) ServerInstance->Users->QuitUser(u, line + "-Lined", sreason); @@ -526,7 +542,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); + u->ForceNickChange(u->uuid.c_str()); }