]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_check.cpp
Pass the ModeHandler to User::HasModePermission()
[user/henk/code/inspircd.git] / src / modules / m_check.cpp
index ef9507aa1ef82a1e26364bfa71cd2daa9e6c9384..ddac033c1088ce65916aef450f3ce56238088509 100644 (file)
@@ -184,10 +184,10 @@ class CommandCheck : public Command
                                        for(char c='A'; c <= 'z'; c++)
                                        {
                                                ModeHandler* mh = ServerInstance->Modes->FindMode(c, MODETYPE_USER);
-                                               if (mh && mh->NeedsOper() && loctarg->HasModePermission(c, MODETYPE_USER))
+                                               if (mh && mh->NeedsOper() && loctarg->HasModePermission(mh))
                                                        umodes.push_back(c);
                                                mh = ServerInstance->Modes->FindMode(c, MODETYPE_CHANNEL);
-                                               if (mh && mh->NeedsOper() && loctarg->HasModePermission(c, MODETYPE_CHANNEL))
+                                               if (mh && mh->NeedsOper() && loctarg->HasModePermission(mh))
                                                        cmodes.push_back(c);
                                        }
                                        context.Write("modeperms", "user=" + umodes + " channel=" + cmodes);
@@ -301,7 +301,7 @@ class CommandCheck : public Command
 
        RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters)
        {
-               if (parameters.size() > 1)
+               if ((parameters.size() > 1) && (parameters[1].find('.') != std::string::npos))
                        return ROUTE_OPT_UCAST(parameters[1]);
                return ROUTE_LOCALONLY;
        }