* ---------------------------------------------------
*/
-/* $Core: libIRCDxline */
+/* $Core */
#include "inspircd.h"
-#include "wildcard.h"
#include "xline.h"
#include "bancache.h"
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<std::string> XLineManager::GetAllTypes()
{
std::vector<std::string> items;
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);
if (u->exempt)
return false;
- if ((match(u->ident, this->identmask)))
+ if (InspIRCd::Match(u->ident, this->identmask))
{
- if ((match(u->host, this->hostmask, true)) || (match(u->GetIPString(), this->hostmask, true)))
+ if (InspIRCd::MatchCIDR(u->host, this->hostmask) ||
+ InspIRCd::MatchCIDR(u->GetIPString(), this->hostmask))
{
return true;
}
if (u->exempt)
return false;
- if ((match(u->ident, this->identmask)))
+ if (InspIRCd::Match(u->ident, this->identmask))
{
- if ((match(u->host, this->hostmask, true)) || (match(u->GetIPString(), this->hostmask, true)))
+ if (InspIRCd::MatchCIDR(u->host, this->hostmask) ||
+ InspIRCd::MatchCIDR(u->GetIPString(), this->hostmask))
{
return true;
}
if (u->exempt)
return false;
- if ((match(u->ident, this->identmask)))
+ if (InspIRCd::Match(u->ident, this->identmask))
{
- if ((match(u->host, this->hostmask, true)) || (match(u->GetIPString(), this->hostmask, true)))
+ if (InspIRCd::MatchCIDR(u->host, this->hostmask) ||
+ InspIRCd::MatchCIDR(u->GetIPString(), this->hostmask))
{
return true;
}
if (u->exempt)
return false;
- if (match(u->GetIPString(), this->ipaddr, true))
+ if (InspIRCd::MatchCIDR(u->GetIPString(), this->ipaddr))
return true;
else
return false;
if (u->exempt)
return false;
- if (match(u->nick, this->nick))
+ if (InspIRCd::Match(u->nick, this->nick))
return true;
return false;
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, this->ipaddr, true))
+ if (InspIRCd::MatchCIDR(str, this->ipaddr))
return true;
else
return false;
bool QLine::Matches(const std::string &str)
{
- if (match(str, this->nick))
+ if (InspIRCd::Match(str, this->nick))
return true;
return false;
bool ELine::Matches(const std::string &str)
{
- return ((match(str, matchtext, true)));
+ return (InspIRCd::MatchCIDR(str, matchtext));
}
bool KLine::Matches(const std::string &str)
{
- return ((match(str.c_str(), matchtext, true)));
+ return (InspIRCd::MatchCIDR(str.c_str(), matchtext));
}
bool GLine::Matches(const std::string &str)
{
- return ((match(str, matchtext, true)));
+ return (InspIRCd::MatchCIDR(str, matchtext));
}
void ELine::OnAdd()