From 49a21413eeb84cc6605b996233a02c406a1e6f9a Mon Sep 17 00:00:00 2001 From: danieldg Date: Sun, 13 Sep 2009 20:33:27 +0000 Subject: Fix cloaking/invite exception for new extban checks git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11713 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_cloaking.cpp | 13 +++++-------- src/modules/m_inviteexception.cpp | 5 ++--- 2 files changed, 7 insertions(+), 11 deletions(-) (limited to 'src/modules') 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; } } } -- cgit v1.2.3