]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_whois.cpp
Fix namedmodes exposing non-key secret parameters to outsiders.
[user/henk/code/inspircd.git] / src / coremods / core_whois.cpp
index 455260051e78c29ad70872f26a7bf8ae55df1522..199c9e2acb20572a165ec666019bf8a53eb0cc06 100644 (file)
@@ -107,7 +107,7 @@ class CommandWhois : public SplitCommand
                , lineevprov(parent, "event/whoisline")
        {
                Penalty = 2;
-               syntax = "<nick>{,<nick>}";
+               syntax = "[<servername>] <nick>[,<nick>]+";
        }
 
        /** Handle command.
@@ -357,17 +357,19 @@ class CoreModWhois : public Module
        {
                ConfigTag* tag = ServerInstance->Config->ConfValue("options");
                const std::string splitwhois = tag->getString("splitwhois", "no");
+               SplitWhoisState newsplitstate;
                if (stdalgo::string::equalsci(splitwhois, "no"))
-                       cmd.splitwhois = SPLITWHOIS_NONE;
+                       newsplitstate = SPLITWHOIS_NONE;
                else if (stdalgo::string::equalsci(splitwhois, "split"))
-                       cmd.splitwhois = SPLITWHOIS_SPLIT;
+                       newsplitstate = SPLITWHOIS_SPLIT;
                else if (stdalgo::string::equalsci(splitwhois, "splitmsg"))
-                       cmd.splitwhois = SPLITWHOIS_SPLITMSG;
+                       newsplitstate = SPLITWHOIS_SPLITMSG;
                else
-                       throw ModuleException(splitwhois + " is an invalid <security:splitwhois> value, at " + tag->getTagLocation()); 
+                       throw ModuleException(splitwhois + " is an invalid <security:splitwhois> value, at " + tag->getTagLocation());
 
                ConfigTag* security = ServerInstance->Config->ConfValue("security");
                cmd.genericoper = security->getBool("genericoper");
+               cmd.splitwhois = newsplitstate;
        }
 
        Version GetVersion() CXX11_OVERRIDE