]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_cloaking.cpp
Fix access checks on chanprotect preventing use of SAMODE
[user/henk/code/inspircd.git] / src / modules / m_cloaking.cpp
index 221c23d6421a20a6f5c67e687263a163babe7064..50bb4c4b6d03b34761ee1e3a7ef13853fccae8eb 100644 (file)
@@ -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;
        }