]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/commands/cmd_rules.cpp
Resolve /STATS S conflict between SVSHOLD and SHUN
[user/henk/code/inspircd.git] / src / commands / cmd_rules.cpp
index 78b3235fb3b69f9dcf4f8cb82a4fee37601d5be9..cd3253721222e98f73104dabf964aec1cdd100c3 100644 (file)
@@ -44,7 +44,12 @@ CmdResult CommandRules::Handle (const std::vector<std::string>& parameters, User
        if (parameters.size() > 0 && parameters[0] != ServerInstance->Config->ServerName)
                return CMD_SUCCESS;
 
-       if (!ServerInstance->Config->RULES.size())
+       ConfigTag* tag = NULL;
+       if (IS_LOCAL(user))
+               tag = user->GetClass()->config;
+       std::string rules_name = tag->getString("rules", "rules");
+       ConfigFileCache::iterator rules = ServerInstance->Config->Files.find(rules_name);
+       if (rules == ServerInstance->Config->Files.end())
        {
                user->SendText(":%s %03d %s :RULES file is missing.",
                        ServerInstance->Config->ServerName.c_str(), ERR_NORULES, user->nick.c_str());
@@ -53,7 +58,7 @@ CmdResult CommandRules::Handle (const std::vector<std::string>& parameters, User
        user->SendText(":%s %03d %s :%s server rules:", ServerInstance->Config->ServerName.c_str(),
                RPL_RULESTART, user->nick.c_str(), ServerInstance->Config->ServerName.c_str());
 
-       for (file_cache::iterator i = ServerInstance->Config->RULES.begin(); i != ServerInstance->Config->RULES.end(); i++)
+       for (file_cache::iterator i = rules->second.begin(); i != rules->second.end(); i++)
                user->SendText(":%s %03d %s :- %s", ServerInstance->Config->ServerName.c_str(), RPL_RULES, user->nick.c_str(),i->c_str());
 
        user->SendText(":%s %03d %s :End of RULES command.", ServerInstance->Config->ServerName.c_str(), RPL_RULESEND, user->nick.c_str());