- LocalStringExt webirc_hostname;
- LocalStringExt webirc_ip;
-
- CGIHostlist Hosts;
- CommandWebirc(Module* Creator)
- : Command(Creator, "WEBIRC", 4),
- realhost("cgiirc_realhost", Creator), realip("cgiirc_realip", Creator),
- webirc_hostname("cgiirc_webirc_hostname", Creator), webirc_ip("cgiirc_webirc_ip", Creator)
- {
- works_before_reg = true;
- this->syntax = "password client hostname ip";
- }
- CmdResult Handle(const std::vector<std::string> ¶meters, User *user)
+ UserCertificateAPI sslapi;
+ Events::ModuleEventProvider webircevprov;
+
+ CommandWebIRC(Module* Creator)
+ : SplitCommand(Creator, "WEBIRC", 4)
+ , gateway("cgiirc_gateway", ExtensionItem::EXT_USER, Creator)
+ , realhost("cgiirc_realhost", ExtensionItem::EXT_USER, Creator)
+ , realip("cgiirc_realip", ExtensionItem::EXT_USER, Creator)
+ , sslapi(Creator)
+ , webircevprov(Creator, "event/webirc")
+ {
+ allow_empty_last_param = false;
+ works_before_reg = true;
+ this->syntax = "<password> <gateway> <hostname> <ip> [<flags>]";
+ }
+
+ CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
+ {
+ if (user->registered == REG_ALL || realhost.get(user))
+ return CMD_FAILURE;
+
+ for (std::vector<WebIRCHost>::const_iterator iter = hosts.begin(); iter != hosts.end(); ++iter)