X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fxline.cpp;h=8843b99898908babdc5cecacfbc3fd025caf8315;hb=4233ad22c0cc94c45f877b75dd964e4b7f82c516;hp=1e2e415cde1a2995eb44726e42dc08f8a4e008ff;hpb=15a1ffae233e1bf28a3c1dc9e1e8b6298c6a0f57;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/xline.cpp b/src/xline.cpp index 1e2e415cd..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,13 +542,13 @@ 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()); } bool ZLine::Matches(const std::string &str) { - if (match(str.c_str(), this->ipaddr, true)) + if (match(str, this->ipaddr, true)) return true; else return false; @@ -540,7 +556,7 @@ bool ZLine::Matches(const std::string &str) bool QLine::Matches(const std::string &str) { - if (match(str.c_str(), this->nick)) + if (match(str, this->nick)) return true; return false; @@ -548,17 +564,17 @@ bool QLine::Matches(const std::string &str) bool ELine::Matches(const std::string &str) { - return ((match(str.c_str(), matchtext.c_str(), true))); + return ((match(str, matchtext, true))); } bool KLine::Matches(const std::string &str) { - return ((match(str.c_str(), matchtext.c_str(), true))); + return ((match(str.c_str(), matchtext, true))); } bool GLine::Matches(const std::string &str) { - return ((match(str.c_str(), matchtext.c_str(), true))); + return ((match(str, matchtext, true))); } void ELine::OnAdd()