From 880ae2dab166b4c8e72bc85a925c548f3d451a63 Mon Sep 17 00:00:00 2001 From: w00t Date: Sun, 4 Nov 2007 23:04:47 +0000 Subject: Integrate K/Gline into the bancache system by making some modifications to DefaultApply method. This means any type of XLine that uses DefaultApply can hook into the bancache system and add positive hits quickly and easily with no modification, which is neat. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8538 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/xline.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/xline.cpp') diff --git a/src/xline.cpp b/src/xline.cpp index 56bd029d7..59f94ce88 100644 --- a/src/xline.cpp +++ b/src/xline.cpp @@ -16,6 +16,7 @@ #include "inspircd.h" #include "wildcard.h" #include "xline.h" +#include "bancache.h" /* * This is now version 3 of the XLine subsystem, let's see if we can get it as nice and @@ -383,7 +384,7 @@ void XLine::Apply(User* u) { } -void XLine::DefaultApply(User* u, const std::string &line) +void XLine::DefaultApply(User* u, const std::string &line, bool bancache) { char reason[MAXBUF]; snprintf(reason, MAXBUF, "%s-Lined: %s", line.c_str(), this->reason); @@ -393,6 +394,13 @@ void XLine::DefaultApply(User* u, const std::string &line) User::QuitUser(ServerInstance, u, line + "-Lined", reason); else User::QuitUser(ServerInstance, u, reason); + + + if (bancache) + { + ServerInstance->Log(DEBUG, std::string("BanCache: Adding positive hit (") + line + ") for " + u->GetIPString()); + ServerInstance->BanCache->AddHit(u->GetIPString(), this->type, line + "-Lined: " + this->reason); + } } bool KLine::Matches(User *u) @@ -413,7 +421,7 @@ bool KLine::Matches(User *u) void KLine::Apply(User* u) { - DefaultApply(u, "K"); + DefaultApply(u, "K", (strcmp(this->identmask, "*") == 0) ? true : false); } bool GLine::Matches(User *u) @@ -434,7 +442,7 @@ bool GLine::Matches(User *u) void GLine::Apply(User* u) { - DefaultApply(u, "G"); + DefaultApply(u, "G", (strcmp(this->identmask, "*") == 0) ? true : false); } bool ELine::Matches(User *u) @@ -466,7 +474,7 @@ bool ZLine::Matches(User *u) void ZLine::Apply(User* u) { - DefaultApply(u, "Z"); + DefaultApply(u, "Z", true); } -- cgit v1.2.3