]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/xline.cpp
(sort of..) Revert commit 7736e920fe6ccaf9ad1984afc70db19efd4fb8cd - remove dupe...
[user/henk/code/inspircd.git] / src / xline.cpp
index 53493b59e72888701d6d55879792e9983b05d004..22086375dd4333261f01dbc54aa00dd109df9314 100644 (file)
@@ -165,12 +165,21 @@ IdentHostPair XLineManager::IdentSplit(const std::string &ident_and_host)
 
 bool XLineManager::AddLine(XLine* line, User* user)
 {
-       /*IdentHostPair ih = IdentSplit(hostmask);*/
-
        ServerInstance->BanCache->RemoveEntries(line->type, false); // XXX perhaps remove ELines here?
 
-       if (DelLine(line->Displayable(), line->type, user, true))
-               return false;
+       /* If the line exists, check if its an expired line */
+       ContainerIter x = lookup_lines.find(line->type);
+       if (x != lookup_lines.end())
+       {
+               LookupIter i = x->second.find(line->Displayable());
+               if (i != x->second.end())
+               {
+                       if (i->second->duration && ServerInstance->Time() > i->second->expiry)
+                               ExpireLine(x, i);
+                       else
+                               return false;
+               }
+       }
 
        /*ELine* item = new ELine(ServerInstance, ServerInstance->Time(), duration, source, reason, ih.first.c_str(), ih.second.c_str());*/
        XLineFactory* xlf = GetFactory(line->type);
@@ -457,10 +466,10 @@ bool KLine::Matches(User *u)
        if (u->exempt)
                return false;
 
-       if (InspIRCd::Match(u->ident, this->identmask, NULL))
+       if (InspIRCd::Match(u->ident, this->identmask))
        {
-               if (InspIRCd::MatchCIDR(u->host, this->hostmask, NULL) ||
-                   InspIRCd::MatchCIDR(u->GetIPString(), this->hostmask, NULL))
+               if (InspIRCd::MatchCIDR(u->host, this->hostmask) ||
+                   InspIRCd::MatchCIDR(u->GetIPString(), this->hostmask))
                {
                        return true;
                }
@@ -479,10 +488,10 @@ bool GLine::Matches(User *u)
        if (u->exempt)
                return false;
 
-       if (InspIRCd::Match(u->ident, this->identmask, NULL))
+       if (InspIRCd::Match(u->ident, this->identmask))
        {
-               if (InspIRCd::MatchCIDR(u->host, this->hostmask, NULL) ||
-                   InspIRCd::MatchCIDR(u->GetIPString(), this->hostmask, NULL))
+               if (InspIRCd::MatchCIDR(u->host, this->hostmask) ||
+                   InspIRCd::MatchCIDR(u->GetIPString(), this->hostmask))
                {
                        return true;
                }
@@ -501,10 +510,10 @@ bool ELine::Matches(User *u)
        if (u->exempt)
                return false;
 
-       if (InspIRCd::Match(u->ident, this->identmask, NULL))
+       if (InspIRCd::Match(u->ident, this->identmask))
        {
-               if (InspIRCd::MatchCIDR(u->host, this->hostmask, NULL) ||
-                   InspIRCd::MatchCIDR(u->GetIPString(), this->hostmask, NULL))
+               if (InspIRCd::MatchCIDR(u->host, this->hostmask) ||
+                   InspIRCd::MatchCIDR(u->GetIPString(), this->hostmask))
                {
                        return true;
                }
@@ -518,7 +527,7 @@ bool ZLine::Matches(User *u)
        if (u->exempt)
                return false;
 
-       if (InspIRCd::MatchCIDR(u->GetIPString(), this->ipaddr, NULL))
+       if (InspIRCd::MatchCIDR(u->GetIPString(), this->ipaddr))
                return true;
        else
                return false;
@@ -532,10 +541,7 @@ void ZLine::Apply(User* u)
 
 bool QLine::Matches(User *u)
 {
-       if (u->exempt)
-               return false;
-
-       if (InspIRCd::Match(u->nick, this->nick, lowermap))
+       if (InspIRCd::Match(u->nick, this->nick))
                return true;
 
        return false;
@@ -550,7 +556,7 @@ void QLine::Apply(User* u)
 
 bool ZLine::Matches(const std::string &str)
 {
-       if (InspIRCd::MatchCIDR(str, this->ipaddr, NULL))
+       if (InspIRCd::MatchCIDR(str, this->ipaddr))
                return true;
        else
                return false;
@@ -558,7 +564,7 @@ bool ZLine::Matches(const std::string &str)
 
 bool QLine::Matches(const std::string &str)
 {
-       if (InspIRCd::Match(str, this->nick, lowermap))
+       if (InspIRCd::Match(str, this->nick))
                return true;
 
        return false;
@@ -566,17 +572,17 @@ bool QLine::Matches(const std::string &str)
 
 bool ELine::Matches(const std::string &str)
 {
-       return (InspIRCd::MatchCIDR(str, matchtext, NULL));
+       return (InspIRCd::MatchCIDR(str, matchtext));
 }
 
 bool KLine::Matches(const std::string &str)
 {
-       return (InspIRCd::MatchCIDR(str.c_str(), matchtext, NULL));
+       return (InspIRCd::MatchCIDR(str.c_str(), matchtext));
 }
 
 bool GLine::Matches(const std::string &str)
 {
-       return (InspIRCd::MatchCIDR(str, matchtext, NULL));
+       return (InspIRCd::MatchCIDR(str, matchtext));
 }
 
 void ELine::OnAdd()