summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-09-13 20:33:27 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-09-13 20:33:27 +0000
commit49a21413eeb84cc6605b996233a02c406a1e6f9a (patch)
treec9d9c08eea0eed455a6d4f7b315584992e01062b
parent060e401cdb05ae6f933616f1d2923a0c619c43e0 (diff)
Fix cloaking/invite exception for new extban checks
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11713 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/modules/m_cloaking.cpp13
-rw-r--r--src/modules/m_inviteexception.cpp5
2 files changed, 7 insertions, 11 deletions
diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp
index 221c23d64..50bb4c4b6 100644
--- a/src/modules/m_cloaking.cpp
+++ b/src/modules/m_cloaking.cpp
@@ -305,19 +305,16 @@ class ModuleCloaking : public Module
}
}
- ModResult OnCheckBan(User* user, Channel* chan)
+ ModResult OnCheckBan(User* user, Channel* chan, const std::string& mask)
{
- char mask[MAXBUF];
+ char cmask[MAXBUF];
std::string* cloak = cu->ext.get(user);
/* Check if they have a cloaked host, but are not using it */
if (cloak && *cloak != user->dhost)
{
- snprintf(mask, MAXBUF, "%s!%s@%s", user->nick.c_str(), user->ident.c_str(), cloak->c_str());
- for (BanList::iterator i = chan->bans.begin(); i != chan->bans.end(); i++)
- {
- if (InspIRCd::Match(mask,i->data))
- return MOD_RES_DENY;
- }
+ snprintf(cmask, MAXBUF, "%s!%s@%s", user->nick.c_str(), user->ident.c_str(), cloak->c_str());
+ if (InspIRCd::Match(cmask,mask))
+ return MOD_RES_DENY;
}
return MOD_RES_PASSTHRU;
}
diff --git a/src/modules/m_inviteexception.cpp b/src/modules/m_inviteexception.cpp
index 0b3621af7..a7ae0c431 100644
--- a/src/modules/m_inviteexception.cpp
+++ b/src/modules/m_inviteexception.cpp
@@ -67,10 +67,9 @@ public:
std::string mask = std::string(user->nick) + "!" + user->ident + "@" + user->GetIPString();
for (modelist::iterator it = list->begin(); it != list->end(); it++)
{
- if(InspIRCd::Match(user->GetFullRealHost(), it->mask) || InspIRCd::Match(user->GetFullHost(), it->mask) || (InspIRCd::MatchCIDR(mask, it->mask)))
+ if (chan->CheckBan(user, it->mask))
{
- // They match an entry on the list, so let them in.
- return MOD_RES_DENY;
+ return MOD_RES_ALLOW;
}
}
}