diff options
author | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-11-04 23:04:47 +0000 |
---|---|---|
committer | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-11-04 23:04:47 +0000 |
commit | 880ae2dab166b4c8e72bc85a925c548f3d451a63 (patch) | |
tree | dc40b3d9e1ce366a48640fe1c24b23c398e1f85a /src | |
parent | cd44daa962c7b22f5564a771b78fcc63458b5eb8 (diff) |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/users.cpp | 6 | ||||
-rw-r--r-- | src/xline.cpp | 16 |
2 files changed, 14 insertions, 8 deletions
diff --git a/src/users.cpp b/src/users.cpp index e21b0d222..8dd3c3bf9 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -861,8 +861,6 @@ void User::AddClient(InspIRCd* Instance, int socket, int port, bool iscached, in if (r) { - Instance->Log(DEBUG, std::string("BanCache: Adding positive hit for ") + New->GetIPString()); - Instance->BanCache->AddHit(New->GetIPString(), "Z", std::string("Z-Lined: ") + r->reason); r->Apply(New); return; } @@ -965,7 +963,7 @@ void User::FullConnect() if (!this->exempt) { - XLine* r = ServerInstance->XLines->MatchesLine("G",this); + GLine *r = (GLine *)ServerInstance->XLines->MatchesLine("G", this); if (r) { @@ -974,7 +972,7 @@ void User::FullConnect() return; } - XLine* n = ServerInstance->XLines->MatchesLine("K",this); + KLine *n = (KLine *)ServerInstance->XLines->MatchesLine("K", this); if (n) { 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); } |