+class CoreModWhois : public Module
+{
+ private:
+ CommandWhois cmd;
+
+ public:
+ CoreModWhois()
+ : cmd(this)
+ {
+ }
+
+ void ReadConfig(ConfigStatus&) CXX11_OVERRIDE
+ {
+ ConfigTag* tag = ServerInstance->Config->ConfValue("options");
+ const std::string splitwhois = tag->getString("splitwhois", "no");
+ SplitWhoisState newsplitstate;
+ if (stdalgo::string::equalsci(splitwhois, "no"))
+ newsplitstate = SPLITWHOIS_NONE;
+ else if (stdalgo::string::equalsci(splitwhois, "split"))
+ newsplitstate = SPLITWHOIS_SPLIT;
+ else if (stdalgo::string::equalsci(splitwhois, "splitmsg"))
+ newsplitstate = SPLITWHOIS_SPLITMSG;
+ else
+ throw ModuleException(splitwhois + " is an invalid <options:splitwhois> value, at " + tag->getTagLocation());
+
+ ConfigTag* security = ServerInstance->Config->ConfValue("security");
+ cmd.genericoper = security->getBool("genericoper");
+ cmd.splitwhois = newsplitstate;
+ }
+
+ Version GetVersion() CXX11_OVERRIDE
+ {
+ return Version("Provides the WHOIS command", VF_VENDOR|VF_CORE);
+ }
+};
+
+MODULE_INIT(CoreModWhois)