From 1a800f7b3db23cdef7e167cd25c0f3b2a64a8e46 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Thu, 9 Apr 2020 18:57:50 +0100 Subject: [PATCH] Improve storage of module description, flags, and link data. --- include/modules.h | 54 ++++++++-------------- src/coremods/core_channel/core_channel.cpp | 8 +--- src/coremods/core_dns.cpp | 8 +--- src/coremods/core_hostname_lookup.cpp | 8 +--- src/coremods/core_info/cmd_modules.cpp | 8 ++-- src/coremods/core_info/core_info.cpp | 8 +--- src/coremods/core_list.cpp | 8 +--- src/coremods/core_loadmodule.cpp | 9 ++-- src/coremods/core_lusers.cpp | 8 +--- src/coremods/core_message.cpp | 8 +--- src/coremods/core_mode.cpp | 8 +--- src/coremods/core_oper/core_oper.cpp | 8 +--- src/coremods/core_reloadmodule.cpp | 8 +--- src/coremods/core_serialize_rfc.cpp | 8 +--- src/coremods/core_stats.cpp | 7 +-- src/coremods/core_stub.cpp | 8 +--- src/coremods/core_user/core_user.cpp | 8 +--- src/coremods/core_wallops.cpp | 8 +--- src/coremods/core_who.cpp | 8 +--- src/coremods/core_whois.cpp | 8 +--- src/coremods/core_whowas.cpp | 8 +--- src/coremods/core_xline/core_xline.cpp | 12 ++--- src/modulemanager.cpp | 3 +- src/modules.cpp | 12 ++--- src/modules/extra/m_geo_maxmind.cpp | 8 +--- src/modules/extra/m_ldap.cpp | 10 ++-- src/modules/extra/m_mysql.cpp | 12 ++--- src/modules/extra/m_pgsql.cpp | 10 ++-- src/modules/extra/m_regex_pcre.cpp | 11 ++--- src/modules/extra/m_regex_posix.cpp | 10 ++-- src/modules/extra/m_regex_re2.cpp | 10 ++-- src/modules/extra/m_regex_tre.cpp | 10 ++-- src/modules/extra/m_sqlite3.cpp | 11 +++-- src/modules/extra/m_ssl_gnutls.cpp | 6 +-- src/modules/extra/m_ssl_mbedtls.cpp | 11 +++-- src/modules/extra/m_ssl_openssl.cpp | 6 +-- src/modules/extra/m_sslrehashsignal.cpp | 10 ++-- src/modules/m_abbreviation.cpp | 10 ++-- src/modules/m_alias.cpp | 8 +--- src/modules/m_allowinvite.cpp | 8 +--- src/modules/m_alltime.cpp | 11 ++--- src/modules/m_anticaps.cpp | 8 +--- src/modules/m_auditorium.cpp | 8 +--- src/modules/m_autoop.cpp | 9 ++-- src/modules/m_banexception.cpp | 8 +--- src/modules/m_banredirect.cpp | 9 ++-- src/modules/m_bcrypt.cpp | 10 ++-- src/modules/m_blockamsg.cpp | 9 +--- src/modules/m_blockcolor.cpp | 8 +--- src/modules/m_botmode.cpp | 8 +--- src/modules/m_callerid.cpp | 8 +--- src/modules/m_cap.cpp | 8 +--- src/modules/m_cban.cpp | 8 +--- src/modules/m_censor.cpp | 10 ++-- src/modules/m_cgiirc.cpp | 8 +--- src/modules/m_chancreate.cpp | 10 ++-- src/modules/m_chanfilter.cpp | 10 ++-- src/modules/m_chanhistory.cpp | 8 +--- src/modules/m_chanlog.cpp | 10 ++-- src/modules/m_channames.cpp | 8 +--- src/modules/m_channelban.cpp | 8 +--- src/modules/m_check.cpp | 13 +++--- src/modules/m_chghost.cpp | 9 ++-- src/modules/m_chgident.cpp | 12 ++--- src/modules/m_chgname.cpp | 12 ++--- src/modules/m_classban.cpp | 8 +--- src/modules/m_clearchan.cpp | 9 ++-- src/modules/m_cloaking.cpp | 14 +++--- src/modules/m_clones.cpp | 10 ++-- src/modules/m_codepage.cpp | 7 +-- src/modules/m_commonchans.cpp | 12 ++--- src/modules/m_conn_join.cpp | 9 ++-- src/modules/m_conn_umodes.cpp | 4 +- src/modules/m_conn_waitpong.cpp | 8 +--- src/modules/m_connectban.cpp | 8 +--- src/modules/m_connflood.cpp | 7 +-- src/modules/m_customprefix.cpp | 12 +++-- src/modules/m_customtitle.cpp | 9 ++-- src/modules/m_cycle.cpp | 9 ++-- src/modules/m_dccallow.cpp | 9 ++-- src/modules/m_deaf.cpp | 9 ++-- src/modules/m_delayjoin.cpp | 9 +--- src/modules/m_delaymsg.cpp | 9 +--- src/modules/m_denychans.cpp | 9 +--- src/modules/m_disable.cpp | 10 ++-- src/modules/m_dnsbl.cpp | 10 +--- src/modules/m_exemptchanops.cpp | 10 ++-- src/modules/m_filter.cpp | 10 ++-- src/modules/m_gecosban.cpp | 8 +--- src/modules/m_geoban.cpp | 8 +--- src/modules/m_geoclass.cpp | 8 +--- src/modules/m_globalload.cpp | 11 ++--- src/modules/m_globops.cpp | 12 +++-- src/modules/m_haproxy.cpp | 8 +--- src/modules/m_helpop.cpp | 8 +--- src/modules/m_hidechans.cpp | 10 ++-- src/modules/m_hidelist.cpp | 10 ++-- src/modules/m_hidemode.cpp | 8 +--- src/modules/m_hideoper.cpp | 8 +--- src/modules/m_hostchange.cpp | 10 ++-- src/modules/m_hostcycle.cpp | 8 +--- src/modules/m_httpd.cpp | 9 ++-- src/modules/m_httpd_acl.cpp | 9 ++-- src/modules/m_httpd_config.cpp | 9 ++-- src/modules/m_httpd_stats.cpp | 12 ++--- src/modules/m_ident.cpp | 8 +--- src/modules/m_inviteexception.cpp | 8 +--- src/modules/m_ircv3.cpp | 10 ++-- src/modules/m_ircv3_accounttag.cpp | 9 ++-- src/modules/m_ircv3_batch.cpp | 9 ++-- src/modules/m_ircv3_capnotify.cpp | 8 +--- src/modules/m_ircv3_chghost.cpp | 8 +--- src/modules/m_ircv3_ctctags.cpp | 8 +--- src/modules/m_ircv3_echomessage.cpp | 8 +--- src/modules/m_ircv3_invitenotify.cpp | 8 +--- src/modules/m_ircv3_labeledresponse.cpp | 8 +--- src/modules/m_ircv3_msgid.cpp | 8 +--- src/modules/m_ircv3_servertime.cpp | 9 ++-- src/modules/m_ircv3_sts.cpp | 8 +--- src/modules/m_joinflood.cpp | 8 +--- src/modules/m_kicknorejoin.cpp | 7 +-- src/modules/m_knock.cpp | 8 +--- src/modules/m_ldapauth.cpp | 8 +--- src/modules/m_ldapoper.cpp | 8 +--- src/modules/m_lockserv.cpp | 10 ++-- src/modules/m_maphide.cpp | 12 +++-- src/modules/m_md5.cpp | 11 ++--- src/modules/m_messageflood.cpp | 8 +--- src/modules/m_mlock.cpp | 8 +--- src/modules/m_modenotice.cpp | 9 ++-- src/modules/m_monitor.cpp | 8 +--- src/modules/m_muteban.cpp | 8 +--- src/modules/m_namedmodes.cpp | 12 ++--- src/modules/m_namesx.cpp | 8 +--- src/modules/m_nationalchars.cpp | 8 +--- src/modules/m_nickflood.cpp | 9 ++-- src/modules/m_nicklock.cpp | 10 ++-- src/modules/m_noctcp.cpp | 8 +--- src/modules/m_nokicks.cpp | 8 +--- src/modules/m_nonicks.cpp | 8 +--- src/modules/m_nonotice.cpp | 8 +--- src/modules/m_nopartmsg.cpp | 8 +--- src/modules/m_ojoin.cpp | 9 ++-- src/modules/m_operchans.cpp | 8 +--- src/modules/m_operjoin.cpp | 11 +++-- src/modules/m_operlevels.cpp | 4 +- src/modules/m_operlog.cpp | 8 +--- src/modules/m_opermodes.cpp | 4 +- src/modules/m_opermotd.cpp | 11 ++--- src/modules/m_operprefix.cpp | 10 ++-- src/modules/m_override.cpp | 8 +--- src/modules/m_passforward.cpp | 4 +- src/modules/m_password_hash.cpp | 8 +--- src/modules/m_pbkdf2.cpp | 10 ++-- src/modules/m_permchannels.cpp | 8 +--- src/modules/m_randquote.cpp | 10 ++-- src/modules/m_redirect.cpp | 9 ++-- src/modules/m_regex_glob.cpp | 12 ++--- src/modules/m_regex_stdlib.cpp | 11 ++--- src/modules/m_remove.cpp | 9 ++-- src/modules/m_repeat.cpp | 7 +-- src/modules/m_restrictchans.cpp | 11 +++-- src/modules/m_restrictmsg.cpp | 8 +--- src/modules/m_rline.cpp | 13 ++++-- src/modules/m_rmode.cpp | 8 ++-- src/modules/m_sajoin.cpp | 10 ++-- src/modules/m_sakick.cpp | 10 ++-- src/modules/m_samode.cpp | 10 ++-- src/modules/m_sanick.cpp | 10 ++-- src/modules/m_sapart.cpp | 10 ++-- src/modules/m_saquit.cpp | 10 ++-- src/modules/m_sasl.cpp | 10 ++-- src/modules/m_satopic.cpp | 10 ++-- src/modules/m_securelist.cpp | 7 +-- src/modules/m_seenicks.cpp | 10 ++-- src/modules/m_serverban.cpp | 8 +--- src/modules/m_services_account.cpp | 8 +--- src/modules/m_servprotect.cpp | 15 +++--- src/modules/m_sethost.cpp | 9 ++-- src/modules/m_setident.cpp | 10 ++-- src/modules/m_setidle.cpp | 10 ++-- src/modules/m_setname.cpp | 8 +--- src/modules/m_sha1.cpp | 9 ++-- src/modules/m_sha256.cpp | 11 ++--- src/modules/m_showfile.cpp | 11 +++-- src/modules/m_showwhois.cpp | 9 ++-- src/modules/m_shun.cpp | 9 ++-- src/modules/m_silence.cpp | 8 +--- src/modules/m_spanningtree/capab.cpp | 11 +++-- src/modules/m_spanningtree/main.cpp | 17 ++++--- src/modules/m_spanningtree/main.h | 1 - src/modules/m_spanningtree/postcommand.cpp | 4 +- src/modules/m_sqlauth.cpp | 8 +--- src/modules/m_sqloper.cpp | 9 ++-- src/modules/m_sslinfo.cpp | 8 +--- src/modules/m_sslmodes.cpp | 8 +--- src/modules/m_starttls.cpp | 9 ++-- src/modules/m_stripcolor.cpp | 9 +--- src/modules/m_svshold.cpp | 9 ++-- src/modules/m_swhois.cpp | 13 +++--- src/modules/m_timedbans.cpp | 9 ++-- src/modules/m_tline.cpp | 10 ++-- src/modules/m_topiclock.cpp | 10 ++-- src/modules/m_uhnames.cpp | 8 +--- src/modules/m_uninvite.cpp | 11 ++--- src/modules/m_userip.cpp | 8 +--- src/modules/m_vhost.cpp | 9 ++-- src/modules/m_watch.cpp | 8 +--- src/modules/m_websocket.cpp | 9 ++-- src/modules/m_xline_db.cpp | 8 +--- 210 files changed, 681 insertions(+), 1244 deletions(-) diff --git a/include/modules.h b/include/modules.h index 3063bf03a..b493f332e 100644 --- a/include/modules.h +++ b/include/modules.h @@ -164,31 +164,6 @@ do { \ WHILE_EACH_HOOK(n); \ } while (0) -/** Holds a module's Version information. - * The members (set by the constructor only) indicate details as to the version number - * of a module. A class of type Version is returned by the GetVersion method of the Module class. - */ -class CoreExport Version -{ - public: - /** Module description - */ - const std::string description; - - /** Flags - */ - const int Flags; - - /** Server linking description string */ - const std::string link_data; - - /** Simple module version */ - Version(const std::string &desc, int flags = VF_NONE); - - /** Complex version information, including linking compatability data */ - Version(const std::string &desc, int flags, const std::string& linkdata); -}; - class CoreExport DataProvider : public ServiceProvider { public: @@ -231,6 +206,13 @@ enum Implementation */ class CoreExport Module : public classbase, public usecountbase { + protected: + /** Initializes a new instance of the Module class. + * @param mdesc A description of this module. + * @param mflags The properties of this module. + */ + Module(int mflags, const std::string& mdesc); + /** Detach an event from this module * @param i Event type to detach */ @@ -253,6 +235,12 @@ class CoreExport Module : public classbase, public usecountbase */ bool dying = false; + /** A description of this module. */ + const std::string description; + + /** The properties of this module. */ + const int flags; + /** Module setup * \exception ModuleException Throwing this class, or any class derived from ModuleException, causes loading of the module to abort. */ @@ -268,21 +256,19 @@ class CoreExport Module : public classbase, public usecountbase */ virtual ~Module(); - /** Called when the hooks provided by a module need to be prioritised. */ - virtual void Prioritize() { } + /** Retrieves link compatibility data for this module. + * @param data The location to store link compatibility data. + */ + virtual void GetLinkData(std::string& data); /** This method is called when you should reload module specific configuration: * on boot, on a /REHASH and on module load. - * @param status The current status, can be inspected for more information; - * also used for reporting configuration errors and warnings. + * @param status The current status, can be inspected for more information. */ virtual void ReadConfig(ConfigStatus& status); - /** Returns the version number of a Module. - * The method should return a Version object with its version information assigned via - * Version::Version - */ - virtual Version GetVersion() = 0; + /** Called when the hooks provided by a module need to be prioritised. */ + virtual void Prioritize(); /** Called when a user connects. * The details of the connecting user are available to you in the parameter User *user diff --git a/src/coremods/core_channel/core_channel.cpp b/src/coremods/core_channel/core_channel.cpp index ef57978a6..13c244a88 100644 --- a/src/coremods/core_channel/core_channel.cpp +++ b/src/coremods/core_channel/core_channel.cpp @@ -130,7 +130,8 @@ class CoreModChannel public: CoreModChannel() - : CheckExemption::EventListener(this, UINT_MAX) + : Module(VF_CORE | VF_VENDOR, "Provides the INVITE, JOIN, KICK, NAMES, and TOPIC commands") + , CheckExemption::EventListener(this, UINT_MAX) , ISupport::EventListener(this) , invapi(this) , cmdinvite(this, invapi) @@ -372,11 +373,6 @@ class CoreModChannel ServerInstance->Modules.SetPriority(this, I_OnPostJoin, PRIORITY_FIRST); ServerInstance->Modules.SetPriority(this, I_OnUserPreJoin, PRIORITY_LAST); } - - Version GetVersion() override - { - return Version("Provides the INVITE, JOIN, KICK, NAMES, and TOPIC commands", VF_VENDOR|VF_CORE); - } }; MODULE_INIT(CoreModChannel) diff --git a/src/coremods/core_dns.cpp b/src/coremods/core_dns.cpp index 1f72489b5..bbaffdfee 100644 --- a/src/coremods/core_dns.cpp +++ b/src/coremods/core_dns.cpp @@ -824,7 +824,8 @@ class ModuleDNS : public Module public: ModuleDNS() - : manager(this) + : Module(VF_CORE | VF_VENDOR, "Provides support for DNS lookups") + , manager(this) { } @@ -864,11 +865,6 @@ class ModuleDNS : public Module } } } - - Version GetVersion() override - { - return Version("Provides support for DNS lookups", VF_CORE|VF_VENDOR); - } }; MODULE_INIT(ModuleDNS) diff --git a/src/coremods/core_hostname_lookup.cpp b/src/coremods/core_hostname_lookup.cpp index 9fb4ec19b..73b524662 100644 --- a/src/coremods/core_hostname_lookup.cpp +++ b/src/coremods/core_hostname_lookup.cpp @@ -166,7 +166,8 @@ class ModuleHostnameLookup : public Module public: ModuleHostnameLookup() - : dnsLookup(this, "dnsLookup", ExtensionItem::EXT_USER) + : Module(VF_CORE | VF_VENDOR, "Provides support for DNS lookups on connecting clients") + , dnsLookup(this, "dnsLookup", ExtensionItem::EXT_USER) , DNS(this, "DNS") { dl = &dnsLookup; @@ -206,11 +207,6 @@ class ModuleHostnameLookup : public Module { return this->dnsLookup.get(user) ? MOD_RES_DENY : MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides support for DNS lookups on connecting clients", VF_CORE|VF_VENDOR); - } }; MODULE_INIT(ModuleHostnameLookup) diff --git a/src/coremods/core_info/cmd_modules.cpp b/src/coremods/core_info/cmd_modules.cpp index b6724dc82..26894abdf 100644 --- a/src/coremods/core_info/cmd_modules.cpp +++ b/src/coremods/core_info/cmd_modules.cpp @@ -66,22 +66,20 @@ CmdResult CommandModules::Handle(User* user, const Params& parameters) for (ModuleManager::ModuleMap::const_iterator i = mods.begin(); i != mods.end(); ++i) { Module* m = i->second; - Version V = m->GetVersion(); - if (IS_LOCAL(user) && user->HasPrivPermission("servers/auspex")) { std::string flags("VCO"); size_t pos = 0; for (int mult = 2; mult <= VF_OPTCOMMON; mult *= 2, ++pos) - if (!(V.Flags & mult)) + if (!(m->flags & mult)) flags[pos] = '-'; const char* srcrev = m->ModuleDLLManager->GetVersion(); - user->WriteRemoteNumeric(RPL_MODLIST, m->ModuleSourceFile, srcrev ? "*" : srcrev, flags, V.description); + user->WriteRemoteNumeric(RPL_MODLIST, m->ModuleSourceFile, srcrev ? "*" : srcrev, flags, m->description); } else { - user->WriteRemoteNumeric(RPL_MODLIST, m->ModuleSourceFile, '*', '*', V.description); + user->WriteRemoteNumeric(RPL_MODLIST, m->ModuleSourceFile, '*', '*', m->description); } } user->WriteRemoteNumeric(RPL_ENDOFMODLIST, "End of MODULES list"); diff --git a/src/coremods/core_info/core_info.cpp b/src/coremods/core_info/core_info.cpp index 8e2b026a5..7c450ba2a 100644 --- a/src/coremods/core_info/core_info.cpp +++ b/src/coremods/core_info/core_info.cpp @@ -89,7 +89,8 @@ class CoreModInfo : public Module } public: CoreModInfo() - : cmdadmin(this) + : Module(VF_CORE | VF_VENDOR, "Provides the ADMIN, COMMANDS, INFO, MODULES, MOTD, TIME, SERVLIST, and VERSION commands") + , cmdadmin(this) , cmdcommands(this) , cmdinfo(this) , cmdmodules(this) @@ -188,11 +189,6 @@ class CoreModInfo : public Module { ServerInstance->Modules.SetPriority(this, I_OnUserConnect, PRIORITY_FIRST); } - - Version GetVersion() override - { - return Version("Provides the ADMIN, COMMANDS, INFO, MODULES, MOTD, TIME, SERVLIST, and VERSION commands", VF_VENDOR|VF_CORE); - } }; MODULE_INIT(CoreModInfo) diff --git a/src/coremods/core_list.cpp b/src/coremods/core_list.cpp index 96b521d23..f639d4d4f 100644 --- a/src/coremods/core_list.cpp +++ b/src/coremods/core_list.cpp @@ -213,7 +213,8 @@ class CoreModList public: CoreModList() - : ISupport::EventListener(this) + : Module(VF_CORE | VF_VENDOR, "Provides the LIST command") + , ISupport::EventListener(this) , cmd(this) { } @@ -229,11 +230,6 @@ class CoreModList tokens["ELIST"] = "CMNTU"; tokens["SAFELIST"]; } - - Version GetVersion() override - { - return Version("Provides the LIST command", VF_VENDOR|VF_CORE); - } }; MODULE_INIT(CoreModList) diff --git a/src/coremods/core_loadmodule.cpp b/src/coremods/core_loadmodule.cpp index 8928aa182..be96f4299 100644 --- a/src/coremods/core_loadmodule.cpp +++ b/src/coremods/core_loadmodule.cpp @@ -123,14 +123,11 @@ class CoreModLoadModule : public Module public: CoreModLoadModule() - : cmdloadmod(this), cmdunloadmod(this) + : Module(VF_CORE | VF_VENDOR, "Provides the LOADMODULE and UNLOADMODULE commands") + , cmdloadmod(this) + , cmdunloadmod(this) { } - - Version GetVersion() override - { - return Version("Provides the LOADMODULE and UNLOADMODULE commands", VF_VENDOR|VF_CORE); - } }; MODULE_INIT(CoreModLoadModule) diff --git a/src/coremods/core_lusers.cpp b/src/coremods/core_lusers.cpp index 1075d406f..88be26901 100644 --- a/src/coremods/core_lusers.cpp +++ b/src/coremods/core_lusers.cpp @@ -146,7 +146,8 @@ class ModuleLusers : public Module public: ModuleLusers() - : invisiblemode(this, "invisible") + : Module(VF_CORE | VF_VENDOR, "Provides the LUSERS command") + , invisiblemode(this, "invisible") , counters(invisiblemode) , cmd(this, counters) , mw(this, counters.invisible) @@ -165,11 +166,6 @@ class ModuleLusers : public Module if (!user->server->IsULine() && user->IsModeSet(invisiblemode)) counters.invisible--; } - - Version GetVersion() override - { - return Version("Provides the LUSERS command", VF_VENDOR | VF_CORE); - } }; MODULE_INIT(ModuleLusers) diff --git a/src/coremods/core_message.cpp b/src/coremods/core_message.cpp index bc4ab3662..3dc088298 100644 --- a/src/coremods/core_message.cpp +++ b/src/coremods/core_message.cpp @@ -391,7 +391,8 @@ class ModuleCoreMessage : public Module public: ModuleCoreMessage() - : cmdprivmsg(this, MSG_PRIVMSG) + : Module(VF_CORE | VF_VENDOR, "Provides the NOTICE, PRIVMSG, and SQUERY commands") + , cmdprivmsg(this, MSG_PRIVMSG) , cmdnotice(this, MSG_NOTICE) , cmdsquery(this) , moderatedmode(this, "moderated") @@ -430,11 +431,6 @@ class ModuleCoreMessage : public Module return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides the NOTICE, PRIVMSG, and SQUERY commands", VF_CORE|VF_VENDOR); - } }; MODULE_INIT(ModuleCoreMessage) diff --git a/src/coremods/core_mode.cpp b/src/coremods/core_mode.cpp index f431d954c..99b35fb88 100644 --- a/src/coremods/core_mode.cpp +++ b/src/coremods/core_mode.cpp @@ -283,7 +283,8 @@ class CoreModMode public: CoreModMode() - : ISupport::EventListener(this) + : Module(VF_CORE | VF_VENDOR, "Provides the MODE command") + , ISupport::EventListener(this) , cmdmode(this) { } @@ -293,11 +294,6 @@ class CoreModMode tokens["CHANMODES"] = ServerInstance->Modes.GiveModeList(MODETYPE_CHANNEL); tokens["USERMODES"] = ServerInstance->Modes.GiveModeList(MODETYPE_USER); } - - Version GetVersion() override - { - return Version("Provides the MODE command", VF_VENDOR|VF_CORE); - } }; MODULE_INIT(CoreModMode) diff --git a/src/coremods/core_oper/core_oper.cpp b/src/coremods/core_oper/core_oper.cpp index edd304ee2..2f6abea29 100644 --- a/src/coremods/core_oper/core_oper.cpp +++ b/src/coremods/core_oper/core_oper.cpp @@ -32,7 +32,8 @@ class CoreModOper : public Module public: CoreModOper() - : cmddie(this) + : Module(VF_CORE | VF_VENDOR, "Provides the DIE, KILL, OPER, REHASH, and RESTART commands") + , cmddie(this) , cmdkill(this) , cmdoper(this) , cmdrehash(this) @@ -61,11 +62,6 @@ class CoreModOper : public Module if (!klass.empty()) luser->SetClass(klass); } - - Version GetVersion() override - { - return Version("Provides the DIE, KILL, OPER, REHASH, and RESTART commands", VF_VENDOR | VF_CORE); - } }; MODULE_INIT(CoreModOper) diff --git a/src/coremods/core_reloadmodule.cpp b/src/coremods/core_reloadmodule.cpp index e0cf5508f..2051b28d6 100644 --- a/src/coremods/core_reloadmodule.cpp +++ b/src/coremods/core_reloadmodule.cpp @@ -773,14 +773,10 @@ class CoreModReloadmodule : public Module public: CoreModReloadmodule() - : cmd(this) + : Module(VF_CORE | VF_VENDOR, "Provides the RELOADMODULE command") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the RELOADMODULE command", VF_CORE | VF_VENDOR); - } }; MODULE_INIT(CoreModReloadmodule) diff --git a/src/coremods/core_serialize_rfc.cpp b/src/coremods/core_serialize_rfc.cpp index 3b8349816..0835c3b0e 100644 --- a/src/coremods/core_serialize_rfc.cpp +++ b/src/coremods/core_serialize_rfc.cpp @@ -229,7 +229,8 @@ class ModuleCoreRFCSerializer : public Module public: ModuleCoreRFCSerializer() - : rfcserializer(this) + : Module(VF_CORE | VF_VENDOR, "RFC client protocol serializer and unserializer") + , rfcserializer(this) { } @@ -248,11 +249,6 @@ class ModuleCoreRFCSerializer : public Module if (!user->serializer) user->serializer = &rfcserializer; } - - Version GetVersion() override - { - return Version("RFC client protocol serializer and unserializer", VF_CORE|VF_VENDOR); - } }; MODULE_INIT(ModuleCoreRFCSerializer) diff --git a/src/coremods/core_stats.cpp b/src/coremods/core_stats.cpp index 14c38f253..9b3ebb2b7 100644 --- a/src/coremods/core_stats.cpp +++ b/src/coremods/core_stats.cpp @@ -412,7 +412,8 @@ class CoreModStats : public Module public: CoreModStats() - : cmd(this) + : Module(VF_CORE | VF_VENDOR, "Provides the STATS command") + , cmd(this) { } @@ -422,10 +423,6 @@ class CoreModStats : public Module cmd.userstats = security->getString("userstats"); } - Version GetVersion() override - { - return Version("Provides the STATS command", VF_CORE | VF_VENDOR); - } }; MODULE_INIT(CoreModStats) diff --git a/src/coremods/core_stub.cpp b/src/coremods/core_stub.cpp index b6fb1f0c6..8d577cb31 100644 --- a/src/coremods/core_stub.cpp +++ b/src/coremods/core_stub.cpp @@ -184,7 +184,8 @@ class CoreModStub : public Module public: CoreModStub() - : cmdconnect(this) + : Module(VF_CORE | VF_VENDOR, "Provides stubs for unimplemented commands") + , cmdconnect(this) , cmdlinks(this) , cmdserver(this) , cmdsquit(this) @@ -192,11 +193,6 @@ class CoreModStub : public Module , cmdusers(this) { } - - Version GetVersion() override - { - return Version("Provides stubs for unimplemented commands", VF_VENDOR|VF_CORE); - } }; MODULE_INIT(CoreModStub) diff --git a/src/coremods/core_user/core_user.cpp b/src/coremods/core_user/core_user.cpp index f70449c50..db2d34915 100644 --- a/src/coremods/core_user/core_user.cpp +++ b/src/coremods/core_user/core_user.cpp @@ -156,7 +156,8 @@ class CoreModUser : public Module public: CoreModUser() - : cmdaway(this) + : Module(VF_CORE | VF_VENDOR, "Provides the AWAY, ISON, NICK, PART, PASS, PING, PONG, QUIT, USERHOST, and USER commands") + , cmdaway(this) , cmdnick(this) , cmdpart(this) , cmdpass(this) @@ -177,11 +178,6 @@ class CoreModUser : public Module cmdpart.msgwrap.ReadConfig("prefixpart", "suffixpart", "fixedpart"); cmdquit.msgwrap.ReadConfig("prefixquit", "suffixquit", "fixedquit"); } - - Version GetVersion() override - { - return Version("Provides the AWAY, ISON, NICK, PART, PASS, PING, PONG, QUIT, USERHOST, and USER commands", VF_VENDOR|VF_CORE); - } }; MODULE_INIT(CoreModUser) diff --git a/src/coremods/core_wallops.cpp b/src/coremods/core_wallops.cpp index 9d6c67bb6..3d4a29e38 100644 --- a/src/coremods/core_wallops.cpp +++ b/src/coremods/core_wallops.cpp @@ -87,14 +87,10 @@ class CoreModWallops : public Module public: CoreModWallops() - : cmd(this) + : Module(VF_CORE | VF_VENDOR, "Provides the WALLOPS command") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the WALLOPS command", VF_CORE | VF_VENDOR); - } }; MODULE_INIT(CoreModWallops) diff --git a/src/coremods/core_who.cpp b/src/coremods/core_who.cpp index ca153bd89..b602f30df 100644 --- a/src/coremods/core_who.cpp +++ b/src/coremods/core_who.cpp @@ -591,7 +591,8 @@ class CoreModWho public: CoreModWho() - : ISupport::EventListener(this) + : Module(VF_CORE | VF_VENDOR, "Provides the WHO command") + , ISupport::EventListener(this) , cmd(this) { } @@ -600,11 +601,6 @@ class CoreModWho { tokens["WHOX"]; } - - Version GetVersion() override - { - return Version("Provides the WHO command", VF_VENDOR|VF_CORE); - } }; MODULE_INIT(CoreModWho) diff --git a/src/coremods/core_whois.cpp b/src/coremods/core_whois.cpp index 2bf3ea778..99701072e 100644 --- a/src/coremods/core_whois.cpp +++ b/src/coremods/core_whois.cpp @@ -357,7 +357,8 @@ class CoreModWhois : public Module public: CoreModWhois() - : cmd(this) + : Module(VF_CORE | VF_VENDOR, "Provides the WHOIS command") + , cmd(this) { } @@ -379,11 +380,6 @@ class CoreModWhois : public Module cmd.genericoper = security->getBool("genericoper"); cmd.splitwhois = newsplitstate; } - - Version GetVersion() override - { - return Version("Provides the WHOIS command", VF_VENDOR|VF_CORE); - } }; MODULE_INIT(CoreModWhois) diff --git a/src/coremods/core_whowas.cpp b/src/coremods/core_whowas.cpp index 02820aa7b..0a3070422 100644 --- a/src/coremods/core_whowas.cpp +++ b/src/coremods/core_whowas.cpp @@ -411,7 +411,8 @@ class ModuleWhoWas : public Module, public Stats::EventListener public: ModuleWhoWas() - : Stats::EventListener(this) + : Module(VF_CORE | VF_VENDOR, "Provides the WHOWAS command") + , Stats::EventListener(this) , cmd(this) { } @@ -444,11 +445,6 @@ class ModuleWhoWas : public Module, public Stats::EventListener cmd.manager.UpdateConfig(NewGroupSize, NewMaxGroups, NewMaxKeep); } - - Version GetVersion() override - { - return Version("Provides the WHOWAS command", VF_VENDOR); - } }; MODULE_INIT(ModuleWhoWas) diff --git a/src/coremods/core_xline/core_xline.cpp b/src/coremods/core_xline/core_xline.cpp index 51691c3bf..d4f1f8e40 100644 --- a/src/coremods/core_xline/core_xline.cpp +++ b/src/coremods/core_xline/core_xline.cpp @@ -64,7 +64,12 @@ class CoreModXLine : public Module public: CoreModXLine() - : cmdeline(this), cmdgline(this), cmdkline(this), cmdqline(this), cmdzline(this) + : Module(VF_CORE | VF_VENDOR, "Provides the ELINE, GLINE, KLINE, QLINE, and ZLINE commands") + , cmdeline(this) + , cmdgline(this) + , cmdkline(this) + , cmdqline(this) + , cmdzline(this) { } @@ -104,11 +109,6 @@ class CoreModXLine : public Module // ELines in XLineManager::CheckELines() and expire them here instead. ServerInstance->XLines->GetAll("E"); } - - Version GetVersion() override - { - return Version("Provides the ELINE, GLINE, KLINE, QLINE, and ZLINE commands", VF_VENDOR|VF_CORE); - } }; MODULE_INIT(CoreModXLine) diff --git a/src/modulemanager.cpp b/src/modulemanager.cpp index 5ec96cbbb..91389545c 100644 --- a/src/modulemanager.cpp +++ b/src/modulemanager.cpp @@ -86,9 +86,8 @@ bool ModuleManager::Load(const std::string& modname, bool defer) newmod->init(); newmod->ReadConfig(confstatus); - Version v = newmod->GetVersion(); ServerInstance->Logs.Log("MODULE", LOG_DEFAULT, "New module introduced: %s (Module version %s)%s", - filename.c_str(), version, (!(v.Flags & VF_VENDOR) ? " [3rd Party]" : " [Vendor]")); + filename.c_str(), version, (!(newmod->flags & VF_VENDOR) ? " [3rd Party]" : " [Vendor]")); } } else diff --git a/src/modules.cpp b/src/modules.cpp index eb33267de..1f909bb3e 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -44,13 +44,9 @@ void dynamic_reference_base::reset_all() (*i)->resolve(); } -// Version is a simple class for holding a modules version number -Version::Version(const std::string &desc, int flags) : description(desc), Flags(flags) -{ -} - -Version::Version(const std::string &desc, int flags, const std::string& linkdata) -: description(desc), Flags(flags), link_data(linkdata) +Module::Module(int mflags, const std::string& mdesc) + : description(mdesc) + , flags(mflags) { } @@ -71,6 +67,8 @@ void Module::DetachEvent(Implementation i) ServerInstance->Modules.Detach(i, this); } +void Module::GetLinkData(std::string& out) { } +void Module::Prioritize() { } void Module::ReadConfig(ConfigStatus& status) { } ModResult Module::OnSendSnotice(char &snomask, std::string &type, const std::string &message) { DetachEvent(I_OnSendSnotice); return MOD_RES_PASSTHRU; } void Module::OnUserConnect(LocalUser*) { DetachEvent(I_OnUserConnect); } diff --git a/src/modules/extra/m_geo_maxmind.cpp b/src/modules/extra/m_geo_maxmind.cpp index cdd3424a6..de01af4bc 100644 --- a/src/modules/extra/m_geo_maxmind.cpp +++ b/src/modules/extra/m_geo_maxmind.cpp @@ -142,7 +142,8 @@ class ModuleGeoMaxMind : public Module public: ModuleGeoMaxMind() - : geoapi(this) + : Module(VF_VENDOR, "Provides Geolocation lookups using the libMaxMindDB library") + , geoapi(this) { memset(&geoapi.mmdb, 0, sizeof(geoapi.mmdb)); } @@ -152,11 +153,6 @@ class ModuleGeoMaxMind : public Module MMDB_close(&geoapi.mmdb); } - Version GetVersion() override - { - return Version("Provides Geolocation lookups using the libMaxMindDB library", VF_VENDOR); - } - void ReadConfig(ConfigStatus& status) override { ConfigTag* tag = ServerInstance->Config->ConfValue("maxmind"); diff --git a/src/modules/extra/m_ldap.cpp b/src/modules/extra/m_ldap.cpp index d536dc0ed..404588224 100644 --- a/src/modules/extra/m_ldap.cpp +++ b/src/modules/extra/m_ldap.cpp @@ -621,6 +621,11 @@ class ModuleLDAP : public Module } } + ModuleLDAP() + : Module(VF_VENDOR, "Provides LDAP support") + { + } + ~ModuleLDAP() { for (ServiceMap::iterator i = LDAPServices.begin(); i != LDAPServices.end(); ++i) @@ -631,11 +636,6 @@ class ModuleLDAP : public Module delete conn; } } - - Version GetVersion() override - { - return Version("Provides LDAP support", VF_VENDOR); - } }; int LDAPBind::run() diff --git a/src/modules/extra/m_mysql.cpp b/src/modules/extra/m_mysql.cpp index f4207dcb2..42496103b 100644 --- a/src/modules/extra/m_mysql.cpp +++ b/src/modules/extra/m_mysql.cpp @@ -139,10 +139,10 @@ class ModuleSQL : public Module ConnMap connections; // main thread only void init() override; + ModuleSQL(); ~ModuleSQL(); void ReadConfig(ConfigStatus& status) override; void OnUnloadModule(Module* mod) override; - Version GetVersion() override; }; class DispatcherThread : public SocketThread @@ -442,6 +442,11 @@ void ModuleSQL::init() Dispatcher->Start(); } +ModuleSQL::ModuleSQL() + : Module(VF_VENDOR, "Provides MySQL support") +{ +} + ModuleSQL::~ModuleSQL() { if (Dispatcher) @@ -535,11 +540,6 @@ void ModuleSQL::OnUnloadModule(Module* mod) Dispatcher->OnNotify(); } -Version ModuleSQL::GetVersion() -{ - return Version("Provides MySQL support", VF_VENDOR); -} - void DispatcherThread::OnStart() { this->LockQueue(); diff --git a/src/modules/extra/m_pgsql.cpp b/src/modules/extra/m_pgsql.cpp index 8702ab8a4..a35061b1a 100644 --- a/src/modules/extra/m_pgsql.cpp +++ b/src/modules/extra/m_pgsql.cpp @@ -537,6 +537,11 @@ class ModulePgSQL : public Module ConnMap connections; ReconnectTimer* retimer = nullptr; + ModulePgSQL() + : Module(VF_VENDOR, "PostgreSQL Service Provider module for all other m_sql* modules, uses v2 of the SQL API") + { + } + ~ModulePgSQL() { delete retimer; @@ -611,11 +616,6 @@ class ModulePgSQL : public Module } } } - - Version GetVersion() override - { - return Version("PostgreSQL Service Provider module for all other m_sql* modules, uses v2 of the SQL API", VF_VENDOR); - } }; bool ReconnectTimer::Tick(time_t time) diff --git a/src/modules/extra/m_regex_pcre.cpp b/src/modules/extra/m_regex_pcre.cpp index 85378ef48..aee5676d8 100644 --- a/src/modules/extra/m_regex_pcre.cpp +++ b/src/modules/extra/m_regex_pcre.cpp @@ -81,15 +81,14 @@ class PCREFactory : public RegexFactory class ModuleRegexPCRE : public Module { - public: + private: PCREFactory ref; - ModuleRegexPCRE() : ref(this) - { - } - Version GetVersion() override + public: + ModuleRegexPCRE() + : Module(VF_VENDOR, "Regex Provider Module for PCRE") + , ref(this) { - return Version("Regex Provider Module for PCRE", VF_VENDOR); } }; diff --git a/src/modules/extra/m_regex_posix.cpp b/src/modules/extra/m_regex_posix.cpp index abf195765..3b0c5c410 100644 --- a/src/modules/extra/m_regex_posix.cpp +++ b/src/modules/extra/m_regex_posix.cpp @@ -77,18 +77,16 @@ class PosixFactory : public RegexFactory class ModuleRegexPOSIX : public Module { + private: PosixFactory ref; public: - ModuleRegexPOSIX() : ref(this) + ModuleRegexPOSIX() + : Module(VF_VENDOR, "Regex Provider Module for POSIX Regular Expressions") + , ref(this) { } - Version GetVersion() override - { - return Version("Regex Provider Module for POSIX Regular Expressions", VF_VENDOR); - } - void ReadConfig(ConfigStatus& status) override { ref.extended = ServerInstance->Config->ConfValue("posix")->getBool("extended"); diff --git a/src/modules/extra/m_regex_re2.cpp b/src/modules/extra/m_regex_re2.cpp index d948eaa1d..e68e09d21 100644 --- a/src/modules/extra/m_regex_re2.cpp +++ b/src/modules/extra/m_regex_re2.cpp @@ -71,17 +71,15 @@ class RE2Factory : public RegexFactory class ModuleRegexRE2 : public Module { + private: RE2Factory ref; public: - ModuleRegexRE2() : ref(this) + ModuleRegexRE2() + : Module(VF_VENDOR, "Regex Provider Module for RE2") + , ref(this) { } - - Version GetVersion() override - { - return Version("Regex Provider Module for RE2", VF_VENDOR); - } }; MODULE_INIT(ModuleRegexRE2) diff --git a/src/modules/extra/m_regex_tre.cpp b/src/modules/extra/m_regex_tre.cpp index dad704fa5..c8adebdcc 100644 --- a/src/modules/extra/m_regex_tre.cpp +++ b/src/modules/extra/m_regex_tre.cpp @@ -83,17 +83,15 @@ class TREFactory : public RegexFactory class ModuleRegexTRE : public Module { + private: TREFactory trf; public: - ModuleRegexTRE() : trf(this) + ModuleRegexTRE() + : Module(VF_VENDOR, "Regex Provider Module for TRE Regular Expressions") + , trf(this) { } - - Version GetVersion() override - { - return Version("Regex Provider Module for TRE Regular Expressions", VF_VENDOR); - } }; MODULE_INIT(ModuleRegexTRE) diff --git a/src/modules/extra/m_sqlite3.cpp b/src/modules/extra/m_sqlite3.cpp index 1b315df27..8b0d76c63 100644 --- a/src/modules/extra/m_sqlite3.cpp +++ b/src/modules/extra/m_sqlite3.cpp @@ -228,9 +228,15 @@ class SQLConn : public SQL::Provider class ModuleSQLite3 : public Module { + private: ConnMap conns; public: + ModuleSQLite3() + : Module(VF_VENDOR, "Provides SQLite3 support") + { + } + ~ModuleSQLite3() { ClearConns(); @@ -260,11 +266,6 @@ class ModuleSQLite3 : public Module ServerInstance->Modules.AddService(*conn); } } - - Version GetVersion() override - { - return Version("Provides SQLite3 support", VF_VENDOR); - } }; MODULE_INIT(ModuleSQLite3) diff --git a/src/modules/extra/m_ssl_gnutls.cpp b/src/modules/extra/m_ssl_gnutls.cpp index 4a6598485..3e4e77fe1 100644 --- a/src/modules/extra/m_ssl_gnutls.cpp +++ b/src/modules/extra/m_ssl_gnutls.cpp @@ -1185,6 +1185,7 @@ class ModuleSSLGnuTLS : public Module public: ModuleSSLGnuTLS() + : Module(VF_VENDOR, "Provides SSL support via GnuTLS") { thismod = this; } @@ -1232,11 +1233,6 @@ class ModuleSSLGnuTLS : public Module } } - Version GetVersion() override - { - return Version("Provides SSL support via GnuTLS", VF_VENDOR); - } - ModResult OnCheckReady(LocalUser* user) override { const GnuTLSIOHook* const iohook = static_cast(user->eh.GetModHook(this)); diff --git a/src/modules/extra/m_ssl_mbedtls.cpp b/src/modules/extra/m_ssl_mbedtls.cpp index 734b83d8d..ee6d88a5e 100644 --- a/src/modules/extra/m_ssl_mbedtls.cpp +++ b/src/modules/extra/m_ssl_mbedtls.cpp @@ -855,6 +855,7 @@ mbedTLS::Profile& mbedTLSIOHook::GetProfile() class ModuleSSLmbedTLS : public Module { + private: typedef std::vector > ProfileList; mbedTLS::Entropy entropy; @@ -926,6 +927,11 @@ class ModuleSSLmbedTLS : public Module } public: + ModuleSSLmbedTLS() + : Module(VF_VENDOR, "Provides SSL support via mbedTLS (PolarSSL)") + { + } + void init() override { char verbuf[16]; // Should be at least 9 bytes in size @@ -974,11 +980,6 @@ class ModuleSSLmbedTLS : public Module return MOD_RES_DENY; return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides SSL support via mbedTLS (PolarSSL)", VF_VENDOR); - } }; MODULE_INIT(ModuleSSLmbedTLS) diff --git a/src/modules/extra/m_ssl_openssl.cpp b/src/modules/extra/m_ssl_openssl.cpp index 660b399bd..95e74bf7b 100644 --- a/src/modules/extra/m_ssl_openssl.cpp +++ b/src/modules/extra/m_ssl_openssl.cpp @@ -960,6 +960,7 @@ class ModuleSSLOpenSSL : public Module public: ModuleSSLOpenSSL() + : Module(VF_VENDOR, "Provides SSL support via OpenSSL") { // Initialize OpenSSL OPENSSL_init_ssl(0, NULL); @@ -1022,11 +1023,6 @@ class ModuleSSLOpenSSL : public Module return MOD_RES_DENY; return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides SSL support via OpenSSL", VF_VENDOR); - } }; MODULE_INIT(ModuleSSLOpenSSL) diff --git a/src/modules/extra/m_sslrehashsignal.cpp b/src/modules/extra/m_sslrehashsignal.cpp index 082666a2f..4aa5ee11b 100644 --- a/src/modules/extra/m_sslrehashsignal.cpp +++ b/src/modules/extra/m_sslrehashsignal.cpp @@ -30,6 +30,11 @@ class ModuleSSLRehashSignal : public Module } public: + ModuleSSLRehashSignal() + : Module(VF_VENDOR, "Reloads SSL credentials on SIGUSR1") + { + } + ~ModuleSSLRehashSignal() { signal(SIGUSR1, SIG_IGN); @@ -53,11 +58,6 @@ class ModuleSSLRehashSignal : public Module FOREACH_MOD(OnModuleRehash, (NULL, str)); signaled = 0; } - - Version GetVersion() - { - return Version("Reloads SSL credentials on SIGUSR1", VF_VENDOR); - } }; MODULE_INIT(ModuleSSLRehashSignal) diff --git a/src/modules/m_abbreviation.cpp b/src/modules/m_abbreviation.cpp index 99bd5537c..ed07c7c74 100644 --- a/src/modules/m_abbreviation.cpp +++ b/src/modules/m_abbreviation.cpp @@ -32,16 +32,16 @@ enum class ModuleAbbreviation : public Module { public: + ModuleAbbreviation() + : Module(VF_VENDOR, "Provides the ability to abbreviate commands a-la BBC BASIC keywords") + { + } + void Prioritize() override { ServerInstance->Modules.SetPriority(this, I_OnPreCommand, PRIORITY_FIRST); } - Version GetVersion() override - { - return Version("Provides the ability to abbreviate commands a-la BBC BASIC keywords", VF_VENDOR); - } - ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated) override { /* Command is already validated, has a length of 0, or last character is not a . */ diff --git a/src/modules/m_alias.cpp b/src/modules/m_alias.cpp index 5cd2f91d2..be5f56fd0 100644 --- a/src/modules/m_alias.cpp +++ b/src/modules/m_alias.cpp @@ -115,15 +115,11 @@ class ModuleAlias : public Module } ModuleAlias() - : botmode(this, "bot") + : Module(VF_VENDOR, "Provides aliases of commands") + , botmode(this, "bot") { } - Version GetVersion() override - { - return Version("Provides aliases of commands", VF_VENDOR); - } - std::string GetVar(std::string varname, const std::string &original_line) { irc::spacesepstream ss(original_line); diff --git a/src/modules/m_allowinvite.cpp b/src/modules/m_allowinvite.cpp index c219805f8..7d4412f2f 100644 --- a/src/modules/m_allowinvite.cpp +++ b/src/modules/m_allowinvite.cpp @@ -35,7 +35,8 @@ class ModuleAllowInvite public: ModuleAllowInvite() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides channel mode +A to allow /INVITE freely on a channel, and extban 'A' to deny specific users it") + , ISupport::EventListener(this) , ni(this, "allowinvite", 'A') { } @@ -65,11 +66,6 @@ class ModuleAllowInvite return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides channel mode +A to allow /INVITE freely on a channel, and extban 'A' to deny specific users it", VF_VENDOR); - } }; MODULE_INIT(ModuleAllowInvite) diff --git a/src/modules/m_alltime.cpp b/src/modules/m_alltime.cpp index 17d2b95b9..bb4cdc7ce 100644 --- a/src/modules/m_alltime.cpp +++ b/src/modules/m_alltime.cpp @@ -53,18 +53,15 @@ class CommandAlltime : public Command class Modulealltime : public Module { + private: CommandAlltime mycommand; + public: Modulealltime() - : mycommand(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the ALLTIME command, displays timestamps from all servers connected to the network") + , mycommand(this) { } - - Version GetVersion() override - { - return Version("Provides the ALLTIME command, displays timestamps from all servers connected to the network", VF_OPTCOMMON | VF_VENDOR); - } - }; MODULE_INIT(Modulealltime) diff --git a/src/modules/m_anticaps.cpp b/src/modules/m_anticaps.cpp index 6b7236d91..4502e03b3 100644 --- a/src/modules/m_anticaps.cpp +++ b/src/modules/m_anticaps.cpp @@ -180,7 +180,8 @@ class ModuleAntiCaps : public Module public: ModuleAntiCaps() - : exemptionprov(this) + : Module(VF_VENDOR | VF_COMMON, "Provides support for punishing users that send capitalised messages") + , exemptionprov(this) , mode(this) { } @@ -296,11 +297,6 @@ class ModuleAntiCaps : public Module } return MOD_RES_DENY; } - - Version GetVersion() override - { - return Version("Provides support for punishing users that send capitalised messages", VF_COMMON|VF_VENDOR); - } }; MODULE_INIT(ModuleAntiCaps) diff --git a/src/modules/m_auditorium.cpp b/src/modules/m_auditorium.cpp index 704d3dace..09fe24540 100644 --- a/src/modules/m_auditorium.cpp +++ b/src/modules/m_auditorium.cpp @@ -74,7 +74,8 @@ class ModuleAuditorium public: ModuleAuditorium() - : Names::EventListener(this) + : Module(VF_VENDOR, "Provides channel mode +u, auditorium channels where nobody can see others joining and parting or the nick list") + , Names::EventListener(this) , Who::EventListener(this) , exemptionprov(this) , aum(this) @@ -90,11 +91,6 @@ class ModuleAuditorium OperCanSee = tag->getBool("opercansee", true); } - Version GetVersion() override - { - return Version("Provides channel mode +u, auditorium channels where nobody can see others joining and parting or the nick list", VF_VENDOR); - } - /* Can they be seen by everyone? */ bool IsVisible(Membership* memb) { diff --git a/src/modules/m_autoop.cpp b/src/modules/m_autoop.cpp index 01ed0a1f8..6faefa78d 100644 --- a/src/modules/m_autoop.cpp +++ b/src/modules/m_autoop.cpp @@ -86,7 +86,9 @@ class ModuleAutoOp : public Module AutoOpList mh; public: - ModuleAutoOp() : mh(this) + ModuleAutoOp() + : Module(VF_VENDOR, "Provides channel mode +w, basic channel access controls") + , mh(this) { } @@ -119,11 +121,6 @@ class ModuleAutoOp : public Module { mh.DoRehash(); } - - Version GetVersion() override - { - return Version("Provides channel mode +w, basic channel access controls", VF_VENDOR); - } }; MODULE_INIT(ModuleAutoOp) diff --git a/src/modules/m_banexception.cpp b/src/modules/m_banexception.cpp index 0511d8c73..19e911272 100644 --- a/src/modules/m_banexception.cpp +++ b/src/modules/m_banexception.cpp @@ -53,7 +53,8 @@ class ModuleBanException public: ModuleBanException() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides channel mode +e, ban exceptions") + , ISupport::EventListener(this) , be(this) { } @@ -108,11 +109,6 @@ class ModuleBanException { be.DoRehash(); } - - Version GetVersion() override - { - return Version("Provides channel mode +e, ban exceptions", VF_VENDOR); - } }; MODULE_INIT(ModuleBanException) diff --git a/src/modules/m_banredirect.cpp b/src/modules/m_banredirect.cpp index f0737351a..d22512f76 100644 --- a/src/modules/m_banredirect.cpp +++ b/src/modules/m_banredirect.cpp @@ -247,6 +247,7 @@ class BanRedirect : public ModeWatcher class ModuleBanRedirect : public Module { + private: BanRedirect re; bool nofollow = false; ChanModeReference limitmode; @@ -254,7 +255,8 @@ class ModuleBanRedirect : public Module public: ModuleBanRedirect() - : re(this) + : Module(VF_VENDOR | VF_COMMON, "Allows an extended ban (+b) syntax redirecting banned users to another channel") + , re(this) , limitmode(this, "limit") , redirectmode(this, "redirect") { @@ -349,11 +351,6 @@ class ModuleBanRedirect : public Module } return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Allows an extended ban (+b) syntax redirecting banned users to another channel", VF_COMMON|VF_VENDOR); - } }; MODULE_INIT(ModuleBanRedirect) diff --git a/src/modules/m_bcrypt.cpp b/src/modules/m_bcrypt.cpp index 2bf09acfa..560a28927 100644 --- a/src/modules/m_bcrypt.cpp +++ b/src/modules/m_bcrypt.cpp @@ -80,10 +80,13 @@ class BCryptProvider : public HashProvider class ModuleBCrypt : public Module { + private: BCryptProvider bcrypt; public: - ModuleBCrypt() : bcrypt(this) + ModuleBCrypt() + : Module(VF_VENDOR, "Implements bcrypt hashing") + , bcrypt(this) { } @@ -92,11 +95,6 @@ class ModuleBCrypt : public Module ConfigTag* conf = ServerInstance->Config->ConfValue("bcrypt"); bcrypt.rounds = conf->getUInt("rounds", 10, 1); } - - Version GetVersion() override - { - return Version("Implements bcrypt hashing", VF_VENDOR); - } }; MODULE_INIT(ModuleBCrypt) diff --git a/src/modules/m_blockamsg.cpp b/src/modules/m_blockamsg.cpp index ea2c84d54..37aaaa24e 100644 --- a/src/modules/m_blockamsg.cpp +++ b/src/modules/m_blockamsg.cpp @@ -55,15 +55,10 @@ class ModuleBlockAmsg : public Module public: ModuleBlockAmsg() - : blockamsg(this, "blockamsg", ExtensionItem::EXT_USER) + : Module(VF_VENDOR, "Attempt to block /amsg or /ame, at least some of the irritating client scripts") + , blockamsg(this, "blockamsg", ExtensionItem::EXT_USER) { } - - Version GetVersion() override - { - return Version("Attempt to block /amsg or /ame, at least some of the irritating client scripts", VF_VENDOR); - } - void ReadConfig(ConfigStatus& status) override { ConfigTag* tag = ServerInstance->Config->ConfValue("blockamsg"); diff --git a/src/modules/m_blockcolor.cpp b/src/modules/m_blockcolor.cpp index 920ce63e3..df2a51a9c 100644 --- a/src/modules/m_blockcolor.cpp +++ b/src/modules/m_blockcolor.cpp @@ -41,7 +41,8 @@ class ModuleBlockColor public: ModuleBlockColor() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides channel mode +c to block color") + , ISupport::EventListener(this) , exemptionprov(this) , bc(this, "blockcolor", 'c') { @@ -81,11 +82,6 @@ class ModuleBlockColor } return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides channel mode +c to block color",VF_VENDOR); - } }; MODULE_INIT(ModuleBlockColor) diff --git a/src/modules/m_botmode.cpp b/src/modules/m_botmode.cpp index 6fc2ddde3..e7c7d238d 100644 --- a/src/modules/m_botmode.cpp +++ b/src/modules/m_botmode.cpp @@ -68,17 +68,13 @@ class ModuleBotMode : public Module, public Whois::EventListener public: ModuleBotMode() - : Whois::EventListener(this) + : Module(VF_VENDOR, "Provides user mode +B to mark the user as a bot") + , Whois::EventListener(this) , bm(this, "bot", 'B') , tag(this, bm) { } - Version GetVersion() override - { - return Version("Provides user mode +B to mark the user as a bot",VF_VENDOR); - } - void OnWhois(Whois::Context& whois) override { if (whois.GetTarget()->IsModeSet(bm)) diff --git a/src/modules/m_callerid.cpp b/src/modules/m_callerid.cpp index 2e495f1d8..64396b7f5 100644 --- a/src/modules/m_callerid.cpp +++ b/src/modules/m_callerid.cpp @@ -388,7 +388,8 @@ class ModuleCallerID public: ModuleCallerID() - : CTCTags::EventListener(this) + : Module(VF_VENDOR | VF_COMMON, "Implementation of callerid, provides user mode +g and the ACCEPT command") + , CTCTags::EventListener(this) , ISupport::EventListener(this) , cmd(this) , api(this, cmd.extInfo) @@ -396,11 +397,6 @@ public: { } - Version GetVersion() override - { - return Version("Implementation of callerid, provides user mode +g and the ACCEPT command", VF_COMMON | VF_VENDOR); - } - void OnBuildISupport(ISupport::TokenMap& tokens) override { tokens["ACCEPT"] = ConvToStr(cmd.maxaccepts); diff --git a/src/modules/m_cap.cpp b/src/modules/m_cap.cpp index 7f3cd7658..f0a202924 100644 --- a/src/modules/m_cap.cpp +++ b/src/modules/m_cap.cpp @@ -493,7 +493,8 @@ class ModuleCap : public Module public: ModuleCap() - : cmd(this) + : Module(VF_VENDOR, "Provides support for CAP capability negotiation") + , cmd(this) , cap(this) { } @@ -502,11 +503,6 @@ class ModuleCap : public Module { return (cmd.holdext.get(user) ? MOD_RES_DENY : MOD_RES_PASSTHRU); } - - Version GetVersion() override - { - return Version("Provides support for CAP capability negotiation", VF_VENDOR); - } }; MODULE_INIT(ModuleCap) diff --git a/src/modules/m_cban.cpp b/src/modules/m_cban.cpp index 5c97914e3..136e499f7 100644 --- a/src/modules/m_cban.cpp +++ b/src/modules/m_cban.cpp @@ -167,7 +167,8 @@ class ModuleCBan : public Module, public Stats::EventListener public: ModuleCBan() - : Stats::EventListener(this) + : Module(VF_VENDOR | VF_COMMON, "Provides the CBAN command, like Q-lines, but for channels") + , Stats::EventListener(this) , mycommand(this) { } @@ -207,11 +208,6 @@ class ModuleCBan : public Module, public Stats::EventListener return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides the CBAN command, like Q-lines, but for channels", VF_COMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleCBan) diff --git a/src/modules/m_censor.cpp b/src/modules/m_censor.cpp index 708ac5f8d..0c8038f6b 100644 --- a/src/modules/m_censor.cpp +++ b/src/modules/m_censor.cpp @@ -32,6 +32,7 @@ typedef insp::flat_map censor_t; class ModuleCensor : public Module { + private: CheckExemption::EventProvider exemptionprov; censor_t censors; SimpleUserModeHandler cu; @@ -39,7 +40,8 @@ class ModuleCensor : public Module public: ModuleCensor() - : exemptionprov(this) + : Module(VF_VENDOR, "Provides user and channel mode +G") + , exemptionprov(this) , cu(this, "u_censor", 'G') , cc(this, "censor", 'G') { @@ -119,12 +121,6 @@ class ModuleCensor : public Module } censors.swap(newcensors); } - - Version GetVersion() override - { - return Version("Provides user and channel mode +G", VF_VENDOR); - } - }; MODULE_INIT(ModuleCensor) diff --git a/src/modules/m_cgiirc.cpp b/src/modules/m_cgiirc.cpp index 241eb118b..dc6245921 100644 --- a/src/modules/m_cgiirc.cpp +++ b/src/modules/m_cgiirc.cpp @@ -268,7 +268,8 @@ class ModuleCgiIRC public: ModuleCgiIRC() - : WebIRC::EventListener(this) + : Module(VF_VENDOR, "Enables forwarding the real IP address of a user from a gateway to the IRC server") + , WebIRC::EventListener(this) , Whois::EventListener(this) , cmd(this) { @@ -463,11 +464,6 @@ class ModuleCgiIRC else whois.SendLine(RPL_WHOISGATEWAY, *realhost, *realip, "is connected via an ident gateway"); } - - Version GetVersion() override - { - return Version("Enables forwarding the real IP address of a user from a gateway to the IRC server", VF_VENDOR); - } }; MODULE_INIT(ModuleCgiIRC) diff --git a/src/modules/m_chancreate.cpp b/src/modules/m_chancreate.cpp index 417cad29a..cc6c56eba 100644 --- a/src/modules/m_chancreate.cpp +++ b/src/modules/m_chancreate.cpp @@ -28,16 +28,16 @@ class ModuleChanCreate : public Module { public: + ModuleChanCreate() + : Module(VF_VENDOR, "Provides snomasks 'j' and 'J', to which notices about newly created channels are sent") + { + } + void init() override { ServerInstance->SNO.EnableSnomask('j', "CHANCREATE"); } - Version GetVersion() override - { - return Version("Provides snomasks 'j' and 'J', to which notices about newly created channels are sent", VF_VENDOR); - } - void OnUserJoin(Membership* memb, bool sync, bool created, CUList& except) override { if ((created) && (IS_LOCAL(memb->user))) diff --git a/src/modules/m_chanfilter.cpp b/src/modules/m_chanfilter.cpp index ac27b3117..2596f386f 100644 --- a/src/modules/m_chanfilter.cpp +++ b/src/modules/m_chanfilter.cpp @@ -86,7 +86,8 @@ class ModuleChanFilter : public Module public: ModuleChanFilter() - : exemptionprov(this) + : Module(VF_VENDOR, "Provides channel-specific censor lists (like mode +G but varies from channel to channel)") + , exemptionprov(this) , cf(this) { } @@ -161,14 +162,11 @@ class ModuleChanFilter : public Module return MOD_RES_PASSTHRU; } - Version GetVersion() override + void GetLinkData(std::string& data) override { // We don't send any link data if the length is 35 for compatibility with the 2.0 branch. - std::string maxfilterlen; if (cf.maxlen != 35) - maxfilterlen.assign(ConvToStr(cf.maxlen)); - - return Version("Provides channel-specific censor lists (like mode +G but varies from channel to channel)", VF_VENDOR, maxfilterlen); + data.assign(ConvToStr(cf.maxlen)); } }; diff --git a/src/modules/m_chanhistory.cpp b/src/modules/m_chanhistory.cpp index 60dc3bd81..03ca5a049 100644 --- a/src/modules/m_chanhistory.cpp +++ b/src/modules/m_chanhistory.cpp @@ -182,7 +182,8 @@ class ModuleChanHistory public: ModuleChanHistory() - : ServerProtocol::BroadcastEventListener(this) + : Module(VF_VENDOR, "Provides channel mode +H, allows for the channel message history to be replayed on join") + , ServerProtocol::BroadcastEventListener(this) , m(this) , botmode(this, "bot") , batchcap(this) @@ -249,11 +250,6 @@ class ModuleChanHistory SendHistory(localuser, memb->chan, list, mintime); } - - Version GetVersion() override - { - return Version("Provides channel mode +H, allows for the channel message history to be replayed on join", VF_VENDOR); - } }; MODULE_INIT(ModuleChanHistory) diff --git a/src/modules/m_chanlog.cpp b/src/modules/m_chanlog.cpp index 2ee0878c7..9d335ad5c 100644 --- a/src/modules/m_chanlog.cpp +++ b/src/modules/m_chanlog.cpp @@ -35,6 +35,11 @@ class ModuleChanLog : public Module ChanLogTargets logstreams; public: + ModuleChanLog() + : Module(VF_VENDOR, "Logs snomask output to channel(s)") + { + } + void ReadConfig(ConfigStatus& status) override { std::string snomasks; @@ -83,11 +88,6 @@ class ModuleChanLog : public Module return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Logs snomask output to channel(s)", VF_VENDOR); - } }; MODULE_INIT(ModuleChanLog) diff --git a/src/modules/m_channames.cpp b/src/modules/m_channames.cpp index a5de222c0..43cdc3c6a 100644 --- a/src/modules/m_channames.cpp +++ b/src/modules/m_channames.cpp @@ -55,7 +55,8 @@ class ModuleChannelNames : public Module public: ModuleChannelNames() - : rememberer(ServerInstance->IsChannel) + : Module(VF_VENDOR, "Implements config tags which allow changing characters allowed in channel names") + , rememberer(ServerInstance->IsChannel) , permchannelmode(this, "permanent") { } @@ -149,11 +150,6 @@ class ModuleChannelNames : public Module ValidateChans(); return Module::cull(); } - - Version GetVersion() override - { - return Version("Implements config tags which allow changing characters allowed in channel names", VF_VENDOR); - } }; MODULE_INIT(ModuleChannelNames) diff --git a/src/modules/m_channelban.cpp b/src/modules/m_channelban.cpp index b4ce8bdbc..fe28317a8 100644 --- a/src/modules/m_channelban.cpp +++ b/src/modules/m_channelban.cpp @@ -32,15 +32,11 @@ class ModuleBadChannelExtban { public: ModuleBadChannelExtban() - : ISupport::EventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides extban 'j', ban users that are present in another channel, and optionally on their status there") + , ISupport::EventListener(this) { } - Version GetVersion() override - { - return Version("Provides extban 'j', ban users that are present in another channel, and optionally on their status there", VF_OPTCOMMON|VF_VENDOR); - } - ModResult OnCheckBan(User *user, Channel *c, const std::string& mask) override { if ((mask.length() > 2) && (mask[0] == 'j') && (mask[1] == ':')) diff --git a/src/modules/m_check.cpp b/src/modules/m_check.cpp index a818f3abf..10832e665 100644 --- a/src/modules/m_check.cpp +++ b/src/modules/m_check.cpp @@ -319,15 +319,14 @@ class CommandCheck : public Command class ModuleCheck : public Module { - CommandCheck mycommand; - public: - ModuleCheck() : mycommand(this) - { - } + private: + CommandCheck cmd; - Version GetVersion() override + public: + ModuleCheck() + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the CHECK command to view user, channel, IP address or hostname information") + , cmd(this) { - return Version("Provides the CHECK command to view user, channel, IP address or hostname information", VF_VENDOR|VF_OPTCOMMON); } }; diff --git a/src/modules/m_chghost.cpp b/src/modules/m_chghost.cpp index a6887bfa6..1c3298d69 100644 --- a/src/modules/m_chghost.cpp +++ b/src/modules/m_chghost.cpp @@ -88,11 +88,13 @@ class CommandChghost : public Command class ModuleChgHost : public Module { + private: CommandChghost cmd; public: ModuleChgHost() - : cmd(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the CHGHOST command") + , cmd(this) { } @@ -105,11 +107,6 @@ class ModuleChgHost : public Module for (std::string::const_iterator n = hmap.begin(); n != hmap.end(); n++) cmd.hostmap.set(static_cast(*n)); } - - Version GetVersion() override - { - return Version("Provides the CHGHOST command", VF_OPTCOMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleChgHost) diff --git a/src/modules/m_chgident.cpp b/src/modules/m_chgident.cpp index 0b3ddeb7a..7621f41c9 100644 --- a/src/modules/m_chgident.cpp +++ b/src/modules/m_chgident.cpp @@ -81,17 +81,15 @@ class CommandChgident : public Command class ModuleChgIdent : public Module { + private: CommandChgident cmd; -public: - ModuleChgIdent() : cmd(this) + public: + ModuleChgIdent() + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the CHGIDENT command") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the CHGIDENT command", VF_OPTCOMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleChgIdent) diff --git a/src/modules/m_chgname.cpp b/src/modules/m_chgname.cpp index 0a29cb60e..1c05a9335 100644 --- a/src/modules/m_chgname.cpp +++ b/src/modules/m_chgname.cpp @@ -78,17 +78,15 @@ class CommandChgname : public Command class ModuleChgName : public Module { + private: CommandChgname cmd; -public: - ModuleChgName() : cmd(this) + public: + ModuleChgName() + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the CHGNAME command") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the CHGNAME command", VF_OPTCOMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleChgName) diff --git a/src/modules/m_classban.cpp b/src/modules/m_classban.cpp index bae27d00d..ed07ebb51 100644 --- a/src/modules/m_classban.cpp +++ b/src/modules/m_classban.cpp @@ -27,7 +27,8 @@ class ModuleClassBan { public: ModuleClassBan() - : ISupport::EventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides extban 'n', connection class bans") + , ISupport::EventListener(this) { } @@ -46,11 +47,6 @@ class ModuleClassBan { tokens["EXTBAN"].push_back('n'); } - - Version GetVersion() override - { - return Version("Provides extban 'n', connection class bans", VF_VENDOR | VF_OPTCOMMON); - } }; MODULE_INIT(ModuleClassBan) diff --git a/src/modules/m_clearchan.cpp b/src/modules/m_clearchan.cpp index eb3d2dc89..b078915c7 100644 --- a/src/modules/m_clearchan.cpp +++ b/src/modules/m_clearchan.cpp @@ -144,11 +144,13 @@ class CommandClearChan : public Command class ModuleClearChan : public Module { + private: CommandClearChan cmd; public: ModuleClearChan() - : cmd(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the CLEARCHAN command that allows opers to masskick, masskill or mass G/Z-line users on a channel") + , cmd(this) { } @@ -210,11 +212,6 @@ class ModuleClearChan : public Module excepts.insert(curr); } } - - Version GetVersion() override - { - return Version("Provides the CLEARCHAN command that allows opers to masskick, masskill or mass G/Z-line users on a channel", VF_VENDOR|VF_OPTCOMMON); - } }; MODULE_INIT(ModuleClearChan) diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp index 406ab410b..f6f969f22 100644 --- a/src/modules/m_cloaking.cpp +++ b/src/modules/m_cloaking.cpp @@ -190,7 +190,8 @@ class ModuleCloaking : public Module dynamic_reference Hash; ModuleCloaking() - : cu(this) + : Module(VF_VENDOR | VF_COMMON, "Provides masking of user hostnames") + , cu(this) , ck(this) , Hash(this, "hash/md5") { @@ -390,9 +391,9 @@ class ModuleCloaking : public Module cu.active = false; } - Version GetVersion() override + void GetLinkData(std::string& data) override { - std::string testcloak = "broken"; + data = "broken"; if (Hash && !cloaks.empty()) { const CloakInfo& info = cloaks.front(); @@ -402,18 +403,17 @@ class ModuleCloaking : public Module // Use old cloaking verification to stay compatible with 2.0 // But verify domainparts and ignorecase when use 3.0-only features if (info.domainparts == 3 && !info.ignorecase) - testcloak = info.prefix + SegmentCloak(info, "*", 3, 8) + info.suffix; + data = info.prefix + SegmentCloak(info, "*", 3, 8) + info.suffix; else { irc::sockets::sockaddrs sa; - testcloak = GenCloak(info, sa, "", testcloak + ConvToStr(info.domainparts)) + (info.ignorecase ? "-ci" : ""); + data = GenCloak(info, sa, "", data + ConvToStr(info.domainparts)) + (info.ignorecase ? "-ci" : ""); } break; case MODE_OPAQUE: - testcloak = info.prefix + SegmentCloak(info, "*", 4, 8) + info.suffix + (info.ignorecase ? "-ci" : ""); + data = info.prefix + SegmentCloak(info, "*", 4, 8) + info.suffix + (info.ignorecase ? "-ci" : ""); } } - return Version("Provides masking of user hostnames", VF_COMMON|VF_VENDOR, testcloak); } void ReadConfig(ConfigStatus& status) override diff --git a/src/modules/m_clones.cpp b/src/modules/m_clones.cpp index 804b55323..20a7e9fc4 100644 --- a/src/modules/m_clones.cpp +++ b/src/modules/m_clones.cpp @@ -89,19 +89,15 @@ class CommandClones : public SplitCommand class ModuleClones : public Module { - public: + private: CommandClones cmd; public: ModuleClones() - : cmd(this) + : Module(VF_VENDOR, "Provides the CLONES command to retrieve information on clones") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the CLONES command to retrieve information on clones", VF_VENDOR); - } }; MODULE_INIT(ModuleClones) diff --git a/src/modules/m_codepage.cpp b/src/modules/m_codepage.cpp index 47a3cf28c..660b9103c 100644 --- a/src/modules/m_codepage.cpp +++ b/src/modules/m_codepage.cpp @@ -99,7 +99,8 @@ class ModuleCodepage public: ModuleCodepage() - : origcasemap(national_case_insensitive_map) + : Module(VF_VENDOR | VF_COMMON, "Provides support for custom 8-bit codepages") + , origcasemap(national_case_insensitive_map) , origcasemapname(ServerInstance->Config->CaseMapping) , origisnick(ServerInstance->IsNick) { @@ -191,7 +192,7 @@ class ModuleCodepage CheckRehash(newcasemap); } - Version GetVersion() override + void GetLinkData(std::string& data) override { std::stringstream linkdata; @@ -210,7 +211,7 @@ class ModuleCodepage if (casemap[i] != i) linkdata << static_cast(i) << casemap[i] << ','; - return Version("Provides support for custom 8-bit codepages", VF_COMMON | VF_VENDOR, linkdata.str()); + data = linkdata.str(); } }; MODULE_INIT(ModuleCodepage) diff --git a/src/modules/m_commonchans.cpp b/src/modules/m_commonchans.cpp index e87a9b86f..e8f9ae53b 100644 --- a/src/modules/m_commonchans.cpp +++ b/src/modules/m_commonchans.cpp @@ -25,8 +25,8 @@ #include "modules/ctctags.h" class ModuleCommonChans - : public CTCTags::EventListener - , public Module + : public Module + , public CTCTags::EventListener { private: SimpleUserModeHandler mode; @@ -49,16 +49,12 @@ class ModuleCommonChans public: ModuleCommonChans() - : CTCTags::EventListener(this) + : Module(VF_VENDOR, "Provides user mode +c, requires users to share a common channel with you to private message you") + , CTCTags::EventListener(this) , mode(this, "deaf_commonchan", 'c') { } - Version GetVersion() override - { - return Version("Provides user mode +c, requires users to share a common channel with you to private message you", VF_VENDOR); - } - ModResult OnUserPreMessage(User* user, const MessageTarget& target, MessageDetails& details) override { return HandleMessage(user, target); diff --git a/src/modules/m_conn_join.cpp b/src/modules/m_conn_join.cpp index 326cbdf89..3148bd5c6 100644 --- a/src/modules/m_conn_join.cpp +++ b/src/modules/m_conn_join.cpp @@ -66,13 +66,15 @@ class JoinTimer : public Timer class ModuleConnJoin : public Module { + private: SimpleExtItem ext; std::string defchans; unsigned int defdelay; public: ModuleConnJoin() - : ext(this, "join_timer", ExtensionItem::EXT_USER) + : Module(VF_VENDOR, "Forces users to join the specified channel(s) on connect") + , ext(this, "join_timer", ExtensionItem::EXT_USER) { } @@ -88,11 +90,6 @@ class ModuleConnJoin : public Module ServerInstance->Modules.SetPriority(this, I_OnPostConnect, PRIORITY_LAST); } - Version GetVersion() override - { - return Version("Forces users to join the specified channel(s) on connect", VF_VENDOR); - } - void OnPostConnect(User* user) override { LocalUser* localuser = IS_LOCAL(user); diff --git a/src/modules/m_conn_umodes.cpp b/src/modules/m_conn_umodes.cpp index 7c46ed78a..8bba75fcb 100644 --- a/src/modules/m_conn_umodes.cpp +++ b/src/modules/m_conn_umodes.cpp @@ -26,9 +26,9 @@ class ModuleModesOnConnect : public Module { public: - Version GetVersion() override + ModuleModesOnConnect() + : Module(VF_VENDOR, "Sets (and unsets) modes on users when they connect") { - return Version("Sets (and unsets) modes on users when they connect", VF_VENDOR); } void OnUserConnect(LocalUser* user) override diff --git a/src/modules/m_conn_waitpong.cpp b/src/modules/m_conn_waitpong.cpp index c7eca2c74..10f8ea1fa 100644 --- a/src/modules/m_conn_waitpong.cpp +++ b/src/modules/m_conn_waitpong.cpp @@ -33,7 +33,8 @@ class ModuleWaitPong : public Module public: ModuleWaitPong() - : ext(this, "waitpong_pingstr", ExtensionItem::EXT_USER) + : Module(VF_VENDOR, "Require pong prior to registration") + , ext(this, "waitpong_pingstr", ExtensionItem::EXT_USER) { } @@ -87,11 +88,6 @@ class ModuleWaitPong : public Module { return ext.get(user) ? MOD_RES_DENY : MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Require pong prior to registration", VF_VENDOR); - } }; MODULE_INIT(ModuleWaitPong) diff --git a/src/modules/m_connectban.cpp b/src/modules/m_connectban.cpp index 3dccfab75..a4114d39c 100644 --- a/src/modules/m_connectban.cpp +++ b/src/modules/m_connectban.cpp @@ -63,15 +63,11 @@ class ModuleConnectBan public: ModuleConnectBan() - : WebIRC::EventListener(this) + : Module(VF_VENDOR, "Throttles the connections of IP ranges who try to connect flood") + , WebIRC::EventListener(this) { } - Version GetVersion() override - { - return Version("Throttles the connections of IP ranges who try to connect flood", VF_VENDOR); - } - void ReadConfig(ConfigStatus& status) override { ConfigTag* tag = ServerInstance->Config->ConfValue("connectban"); diff --git a/src/modules/m_connflood.cpp b/src/modules/m_connflood.cpp index 66b25cbb0..7ab0e3034 100644 --- a/src/modules/m_connflood.cpp +++ b/src/modules/m_connflood.cpp @@ -27,6 +27,7 @@ class ModuleConnFlood : public Module { + private: unsigned int seconds; unsigned int timeout; unsigned int boot_wait; @@ -36,10 +37,10 @@ class ModuleConnFlood : public Module time_t first; std::string quitmsg; -public: - Version GetVersion() override + public: + ModuleConnFlood() + : Module(VF_VENDOR, "Connection throttle") { - return Version("Connection throttle", VF_VENDOR); } void ReadConfig(ConfigStatus& status) override diff --git a/src/modules/m_customprefix.cpp b/src/modules/m_customprefix.cpp index 5c0193fba..78098de95 100644 --- a/src/modules/m_customprefix.cpp +++ b/src/modules/m_customprefix.cpp @@ -44,8 +44,15 @@ class CustomPrefixMode : public PrefixMode class ModuleCustomPrefix : public Module { + private: std::vector modes; + public: + ModuleCustomPrefix() + : Module(VF_VENDOR, "Provides custom prefix channel modes") + { + } + void init() override { ConfigTagList tags = ServerInstance->Config->ConfTags("customprefix"); @@ -103,11 +110,6 @@ class ModuleCustomPrefix : public Module { stdalgo::delete_all(modes); } - - Version GetVersion() override - { - return Version("Provides custom prefix channel modes", VF_VENDOR); - } }; MODULE_INIT(ModuleCustomPrefix) diff --git a/src/modules/m_customtitle.cpp b/src/modules/m_customtitle.cpp index 4f963ea66..331024627 100644 --- a/src/modules/m_customtitle.cpp +++ b/src/modules/m_customtitle.cpp @@ -113,11 +113,13 @@ class CommandTitle : public Command class ModuleCustomTitle : public Module, public Whois::LineEventListener { + private: CommandTitle cmd; public: ModuleCustomTitle() - : Whois::LineEventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the TITLE command, custom titles for users") + , Whois::LineEventListener(this) , cmd(this) { } @@ -169,11 +171,6 @@ class ModuleCustomTitle : public Module, public Whois::LineEventListener /* Don't block anything */ return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides the TITLE command, custom titles for users", VF_OPTCOMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleCustomTitle) diff --git a/src/modules/m_cycle.cpp b/src/modules/m_cycle.cpp index 0c6d57d48..fffcbf1e6 100644 --- a/src/modules/m_cycle.cpp +++ b/src/modules/m_cycle.cpp @@ -83,18 +83,15 @@ class CommandCycle : public SplitCommand class ModuleCycle : public Module { + private: CommandCycle cmd; public: ModuleCycle() - : cmd(this) + : Module(VF_VENDOR, "Provides the CYCLE command, acts as a server-side HOP command to part and rejoin a channel") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the CYCLE command, acts as a server-side HOP command to part and rejoin a channel", VF_VENDOR); - } }; MODULE_INIT(ModuleCycle) diff --git a/src/modules/m_dccallow.cpp b/src/modules/m_dccallow.cpp index 043f7a101..851c6fe7f 100644 --- a/src/modules/m_dccallow.cpp +++ b/src/modules/m_dccallow.cpp @@ -371,6 +371,7 @@ class CommandDccallow : public Command class ModuleDCCAllow : public Module { + private: DCCAllowExt ext; CommandDccallow cmd; bool blockchat = false; @@ -378,7 +379,8 @@ class ModuleDCCAllow : public Module public: ModuleDCCAllow() - : ext(this) + : Module(VF_VENDOR | VF_COMMON, "Provides the DCCALLOW command") + , ext(this) , cmd(this, ext) { } @@ -603,11 +605,6 @@ class ModuleDCCAllow : public Module blockchat = tag->getBool("blockchat"); defaultaction = tag->getString("action"); } - - Version GetVersion() override - { - return Version("Provides the DCCALLOW command", VF_COMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleDCCAllow) diff --git a/src/modules/m_deaf.cpp b/src/modules/m_deaf.cpp index 1c2f2287e..832d57ed6 100644 --- a/src/modules/m_deaf.cpp +++ b/src/modules/m_deaf.cpp @@ -69,6 +69,7 @@ class PrivDeafMode : public ModeHandler class ModuleDeaf : public Module { + private: DeafMode deafmode; PrivDeafMode privdeafmode; std::string deaf_bypasschars; @@ -77,7 +78,8 @@ class ModuleDeaf : public Module public: ModuleDeaf() - : deafmode(this) + : Module(VF_VENDOR, "Provides user modes +d and +D to block channel and user messages/notices") + , deafmode(this) , privdeafmode(this) { } @@ -148,11 +150,6 @@ class ModuleDeaf : public Module return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides user modes +d and +D to block channel and user messages/notices", VF_VENDOR); - } }; MODULE_INIT(ModuleDeaf) diff --git a/src/modules/m_delayjoin.cpp b/src/modules/m_delayjoin.cpp index a32f412ab..ff5eaa159 100644 --- a/src/modules/m_delayjoin.cpp +++ b/src/modules/m_delayjoin.cpp @@ -89,7 +89,8 @@ class ModuleDelayJoin DelayJoinMode djm; ModuleDelayJoin() - : CTCTags::EventListener(this) + : Module(VF_VENDOR, "Provides channel mode +D, delay-join, users don't appear as joined to others until they speak") + , CTCTags::EventListener(this) , Names::EventListener(this) , unjoined(this, "delayjoin", ExtensionItem::EXT_MEMBERSHIP) , joinhook(this, unjoined) @@ -97,7 +98,6 @@ class ModuleDelayJoin { } - Version GetVersion() override; ModResult OnNamesListItem(LocalUser* issuer, Membership*, std::string& prefixes, std::string& nick) override; void OnUserJoin(Membership*, bool, bool, CUList&) override; void CleanUser(User* user); @@ -129,11 +129,6 @@ ModeAction DelayJoinMode::OnModeChange(User* source, User* dest, Channel* channe return MODEACTION_ALLOW; } -Version ModuleDelayJoin::GetVersion() -{ - return Version("Provides channel mode +D, delay-join, users don't appear as joined to others until they speak", VF_VENDOR); -} - ModResult ModuleDelayJoin::OnNamesListItem(LocalUser* issuer, Membership* memb, std::string& prefixes, std::string& nick) { /* don't prevent the user from seeing themself */ diff --git a/src/modules/m_delaymsg.cpp b/src/modules/m_delaymsg.cpp index faf382081..b970f9314 100644 --- a/src/modules/m_delaymsg.cpp +++ b/src/modules/m_delaymsg.cpp @@ -60,12 +60,12 @@ class ModuleDelayMsg public: ModuleDelayMsg() - : CTCTags::EventListener(this) + : Module(VF_VENDOR, "Provides channel mode +d , to deny messages to a channel until seconds have passed") + , CTCTags::EventListener(this) , djm(this) { } - Version GetVersion() override; void OnUserJoin(Membership* memb, bool sync, bool created, CUList&) override; ModResult OnUserPreMessage(User* user, const MessageTarget& target, MessageDetails& details) override; ModResult OnUserPreTagMessage(User* user, const MessageTarget& target, CTCTags::TagMessageDetails& details) override; @@ -93,11 +93,6 @@ void DelayMsgMode::OnUnset(User* source, Channel* chan) jointime.set(n->second, 0); } -Version ModuleDelayMsg::GetVersion() -{ - return Version("Provides channel mode +d , to deny messages to a channel until seconds have passed", VF_VENDOR); -} - void ModuleDelayMsg::OnUserJoin(Membership* memb, bool sync, bool created, CUList&) { if ((IS_LOCAL(memb->user)) && (memb->chan->IsModeSet(djm))) diff --git a/src/modules/m_denychans.cpp b/src/modules/m_denychans.cpp index 93cd1957b..8ad80df56 100644 --- a/src/modules/m_denychans.cpp +++ b/src/modules/m_denychans.cpp @@ -62,7 +62,8 @@ class ModuleDenyChannels : public Module public: ModuleDenyChannels() - : antiredirectmode(this, "antiredirect") + : Module(VF_VENDOR, "Implements config tags which allow blocking of joins to channels") + , antiredirectmode(this, "antiredirect") , redirectmode(this, "redirect") { } @@ -148,12 +149,6 @@ class ModuleDenyChannels : public Module goodchannels.swap(goodchans); } - Version GetVersion() override - { - return Version("Implements config tags which allow blocking of joins to channels", VF_VENDOR); - } - - ModResult OnUserPreJoin(LocalUser* user, Channel* chan, const std::string& cname, std::string& privs, const std::string& keygiven) override { for (BadChannels::const_iterator j = badchannels.begin(); j != badchannels.end(); ++j) diff --git a/src/modules/m_disable.cpp b/src/modules/m_disable.cpp index 36c4783bf..2509be17b 100644 --- a/src/modules/m_disable.cpp +++ b/src/modules/m_disable.cpp @@ -78,6 +78,11 @@ class ModuleDisable : public Module } public: + ModuleDisable() + : Module(VF_VENDOR, "Provides support for disabling commands and modes") + { + } + void ReadConfig(ConfigStatus& status) override { ConfigTag* tag = ServerInstance->Config->ConfValue("disabled"); @@ -181,11 +186,6 @@ class ModuleDisable : public Module what, mh->GetModeChar(), mh->name.c_str())); return MOD_RES_DENY; } - - Version GetVersion() override - { - return Version("Provides support for disabling commands and modes", VF_VENDOR); - } }; MODULE_INIT(ModuleDisable) diff --git a/src/modules/m_dnsbl.cpp b/src/modules/m_dnsbl.cpp index e48009395..fb87fe71f 100644 --- a/src/modules/m_dnsbl.cpp +++ b/src/modules/m_dnsbl.cpp @@ -268,7 +268,8 @@ class ModuleDNSBL : public Module, public Stats::EventListener } public: ModuleDNSBL() - : Stats::EventListener(this) + : Module(VF_VENDOR, "Provides handling of DNS blacklists") + , Stats::EventListener(this) , DNS(this, "DNS") , nameExt(this, "dnsbl_match", ExtensionItem::EXT_USER) , countExt(this, "dnsbl_pending", ExtensionItem::EXT_USER) @@ -280,13 +281,6 @@ class ModuleDNSBL : public Module, public Stats::EventListener ServerInstance->SNO.EnableSnomask('d', "DNSBL"); } - Version GetVersion() override - { - return Version("Provides handling of DNS blacklists", VF_VENDOR); - } - - /** Fill our conf vector with data - */ void ReadConfig(ConfigStatus& status) override { DNSBLConfList newentries; diff --git a/src/modules/m_exemptchanops.cpp b/src/modules/m_exemptchanops.cpp index 46204761f..83a23bbf9 100644 --- a/src/modules/m_exemptchanops.cpp +++ b/src/modules/m_exemptchanops.cpp @@ -153,18 +153,16 @@ class ExemptHandler : public CheckExemption::EventListener class ModuleExemptChanOps : public Module { + private: ExemptHandler eh; public: - ModuleExemptChanOps() : eh(this) + ModuleExemptChanOps() + : Module(VF_VENDOR, "Provides the ability to allow channel operators to be exempt from certain modes") + , eh(this) { } - Version GetVersion() override - { - return Version("Provides the ability to allow channel operators to be exempt from certain modes", VF_VENDOR); - } - void ReadConfig(ConfigStatus& status) override { eh.ec.DoRehash(); diff --git a/src/modules/m_filter.cpp b/src/modules/m_filter.cpp index f57cb83ff..afa2e0207 100644 --- a/src/modules/m_filter.cpp +++ b/src/modules/m_filter.cpp @@ -218,7 +218,7 @@ class ModuleFilter bool DeleteFilter(const std::string& freeform, std::string& reason); std::pair AddFilter(const std::string& freeform, FilterAction type, const std::string& reason, unsigned long duration, const std::string& flags, bool config = false); void ReadConfig(ConfigStatus& status) override; - Version GetVersion() override; + void GetLinkData(std::string& data) override; std::string EncodeFilter(FilterResult* filter); FilterResult DecodeFilter(const std::string &data); void OnSyncNetwork(ProtocolInterface::Server& server) override; @@ -346,7 +346,8 @@ bool ModuleFilter::AppliesToMe(User* user, FilterResult* filter, int iflags) } ModuleFilter::ModuleFilter() - : ServerProtocol::SyncEventListener(this) + : Module(VF_VENDOR | VF_COMMON, "Provides text (spam) filtering") + , ServerProtocol::SyncEventListener(this) , Stats::EventListener(this) , filtcommand(this) , RegexEngine(this, "regex") @@ -666,9 +667,10 @@ void ModuleFilter::ReadConfig(ConfigStatus& status) ReadFilters(); } -Version ModuleFilter::GetVersion() +void ModuleFilter::GetLinkData(std::string& data) { - return Version("Provides text (spam) filtering", VF_VENDOR | VF_COMMON, RegexEngine ? RegexEngine->name : ""); + if (RegexEngine) + data = RegexEngine->name; } std::string ModuleFilter::EncodeFilter(FilterResult* filter) diff --git a/src/modules/m_gecosban.cpp b/src/modules/m_gecosban.cpp index 1dd7ff1cf..c32c8f6eb 100644 --- a/src/modules/m_gecosban.cpp +++ b/src/modules/m_gecosban.cpp @@ -32,15 +32,11 @@ class ModuleGecosBan { public: ModuleGecosBan() - : ISupport::EventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides a way to ban users by their real name with the 'a' and 'r' extbans") + , ISupport::EventListener(this) { } - Version GetVersion() override - { - return Version("Provides a way to ban users by their real name with the 'a' and 'r' extbans", VF_OPTCOMMON|VF_VENDOR); - } - ModResult OnCheckBan(User *user, Channel *c, const std::string& mask) override { if ((mask.length() > 2) && (mask[1] == ':')) diff --git a/src/modules/m_geoban.cpp b/src/modules/m_geoban.cpp index 8fc6d41ab..9e8f94405 100644 --- a/src/modules/m_geoban.cpp +++ b/src/modules/m_geoban.cpp @@ -38,17 +38,13 @@ class ModuleGeoBan public: ModuleGeoBan() - : ISupport::EventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides a way to ban users by country") + , ISupport::EventListener(this) , Whois::EventListener(this) , geoapi(this) { } - Version GetVersion() override - { - return Version("Provides a way to ban users by country", VF_OPTCOMMON|VF_VENDOR); - } - void OnBuildISupport(ISupport::TokenMap& tokens) override { tokens["EXTBAN"].push_back('G'); diff --git a/src/modules/m_geoclass.cpp b/src/modules/m_geoclass.cpp index 23a4a62f4..87ef969da 100644 --- a/src/modules/m_geoclass.cpp +++ b/src/modules/m_geoclass.cpp @@ -36,16 +36,12 @@ class ModuleGeoClass public: ModuleGeoClass() - : Stats::EventListener(this) + : Module(VF_VENDOR, "Provides a way to assign users to connect classes by country") + , Stats::EventListener(this) , geoapi(this) { } - Version GetVersion() override - { - return Version("Provides a way to assign users to connect classes by country", VF_VENDOR); - } - ModResult OnSetConnectClass(LocalUser* user, ConnectClass* myclass) override { const std::string country = myclass->config->getString("country"); diff --git a/src/modules/m_globalload.cpp b/src/modules/m_globalload.cpp index 0bb1c8973..1bc5a8969 100644 --- a/src/modules/m_globalload.cpp +++ b/src/modules/m_globalload.cpp @@ -159,20 +159,19 @@ class CommandGreloadmodule : public Command class ModuleGlobalLoad : public Module { + private: CommandGloadmodule cmd1; CommandGunloadmodule cmd2; CommandGreloadmodule cmd3; public: ModuleGlobalLoad() - : cmd1(this), cmd2(this), cmd3(this) + : Module(VF_VENDOR | VF_COMMON, "Allows global loading of a module") + , cmd1(this) + , cmd2(this) + , cmd3(this) { } - - Version GetVersion() override - { - return Version("Allows global loading of a module", VF_COMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleGlobalLoad) diff --git a/src/modules/m_globops.cpp b/src/modules/m_globops.cpp index 85b2848cc..70d32200e 100644 --- a/src/modules/m_globops.cpp +++ b/src/modules/m_globops.cpp @@ -54,19 +54,21 @@ class CommandGlobops : public Command class ModuleGlobops : public Module { + private: CommandGlobops cmd; + public: - ModuleGlobops() : cmd(this) {} + ModuleGlobops() + : Module(VF_VENDOR, "Provides the GLOBOPS command and snomask 'g'") + , cmd(this) + { + } void init() override { ServerInstance->SNO.EnableSnomask('g',"GLOBOPS"); } - Version GetVersion() override - { - return Version("Provides the GLOBOPS command and snomask 'g'", VF_VENDOR); - } }; MODULE_INIT(ModuleGlobops) diff --git a/src/modules/m_haproxy.cpp b/src/modules/m_haproxy.cpp index 3177d3af6..a5f9d8832 100644 --- a/src/modules/m_haproxy.cpp +++ b/src/modules/m_haproxy.cpp @@ -427,14 +427,10 @@ class ModuleHAProxy : public Module public: ModuleHAProxy() - : hookprov(new HAProxyHookProvider(this)) + : Module(VF_VENDOR, "Provides support for the HAProxy PROXY protocol") + , hookprov(new HAProxyHookProvider(this)) { } - - Version GetVersion() override - { - return Version("Provides support for the HAProxy PROXY protocol", VF_VENDOR); - } }; MODULE_INIT(ModuleHAProxy) diff --git a/src/modules/m_helpop.cpp b/src/modules/m_helpop.cpp index 0a69c3674..258c10a71 100644 --- a/src/modules/m_helpop.cpp +++ b/src/modules/m_helpop.cpp @@ -103,7 +103,8 @@ class ModuleHelpop public: ModuleHelpop() - : Whois::EventListener(this) + : Module(VF_VENDOR, "Provides help to users via the HELPOP command") + , Whois::EventListener(this) , cmd(this) , ho(this, "helpop", 'h', true) { @@ -182,11 +183,6 @@ class ModuleHelpop if (whois.GetTarget()->IsModeSet(ho)) whois.SendLine(RPL_WHOISHELPOP, "is available for help."); } - - Version GetVersion() override - { - return Version("Provides help to users via the HELPOP command", VF_VENDOR); - } }; MODULE_INIT(ModuleHelpop) diff --git a/src/modules/m_hidechans.cpp b/src/modules/m_hidechans.cpp index 20266014f..70ece8ed5 100644 --- a/src/modules/m_hidechans.cpp +++ b/src/modules/m_hidechans.cpp @@ -36,20 +36,18 @@ class HideChans : public SimpleUserModeHandler class ModuleHideChans : public Module, public Whois::LineEventListener { + private: bool AffectsOpers; HideChans hm; + public: ModuleHideChans() - : Whois::LineEventListener(this) + : Module(VF_VENDOR, "Provides support for hiding channels with user mode +I") + , Whois::LineEventListener(this) , hm(this) { } - Version GetVersion() override - { - return Version("Provides support for hiding channels with user mode +I", VF_VENDOR); - } - void ReadConfig(ConfigStatus& status) override { AffectsOpers = ServerInstance->Config->ConfValue("hidechans")->getBool("affectsopers"); diff --git a/src/modules/m_hidelist.cpp b/src/modules/m_hidelist.cpp index ebdde7994..d58b01405 100644 --- a/src/modules/m_hidelist.cpp +++ b/src/modules/m_hidelist.cpp @@ -82,15 +82,15 @@ class ModuleHideList : public Module watchers.push_back(new ListWatcher(this, i->first, i->second)); } + ModuleHideList() + : Module(VF_VENDOR, "Provides support for hiding the list of listmodes") + { + } + ~ModuleHideList() { stdalgo::delete_all(watchers); } - - Version GetVersion() override - { - return Version("Provides support for hiding the list of listmodes", VF_VENDOR); - } }; MODULE_INIT(ModuleHideList) diff --git a/src/modules/m_hidemode.cpp b/src/modules/m_hidemode.cpp index 55814e5d7..913ebafd1 100644 --- a/src/modules/m_hidemode.cpp +++ b/src/modules/m_hidemode.cpp @@ -190,7 +190,8 @@ class ModuleHideMode : public Module public: ModuleHideMode() - : modehook(this) + : Module(VF_VENDOR, "Provides support for hiding mode changes") + , modehook(this) { } @@ -198,11 +199,6 @@ class ModuleHideMode : public Module { modehook.settings.Load(); } - - Version GetVersion() override - { - return Version("Provides support for hiding mode changes", VF_VENDOR); - } }; MODULE_INIT(ModuleHideMode) diff --git a/src/modules/m_hideoper.cpp b/src/modules/m_hideoper.cpp index 67c9c39d7..69b71353a 100644 --- a/src/modules/m_hideoper.cpp +++ b/src/modules/m_hideoper.cpp @@ -70,18 +70,14 @@ class ModuleHideOper public: ModuleHideOper() - : Stats::EventListener(this) + : Module(VF_VENDOR, "Provides support for hiding oper status with user mode +H") + , Stats::EventListener(this) , Who::EventListener(this) , Whois::LineEventListener(this) , hm(this) { } - Version GetVersion() override - { - return Version("Provides support for hiding oper status with user mode +H", VF_VENDOR); - } - void OnUserQuit(User* user, const std::string&, const std::string&) override { if (user->IsModeSet(hm)) diff --git a/src/modules/m_hostchange.cpp b/src/modules/m_hostchange.cpp index 1f7d59b20..73df4f9b3 100644 --- a/src/modules/m_hostchange.cpp +++ b/src/modules/m_hostchange.cpp @@ -124,6 +124,11 @@ private: } public: + ModuleHostChange() + : Module(VF_VENDOR, "Provides rule-based masking of user hostnames") + { + } + void ReadConfig(ConfigStatus& status) override { HostRules rules; @@ -185,11 +190,6 @@ private: hostrules.swap(rules); } - Version GetVersion() override - { - return Version("Provides rule-based masking of user hostnames", VF_VENDOR); - } - void OnUserConnect(LocalUser* user) override { for (HostRules::const_iterator iter = hostrules.begin(); iter != hostrules.end(); ++iter) diff --git a/src/modules/m_hostcycle.cpp b/src/modules/m_hostcycle.cpp index 7c8abbd9e..23108ef0e 100644 --- a/src/modules/m_hostcycle.cpp +++ b/src/modules/m_hostcycle.cpp @@ -95,7 +95,8 @@ class ModuleHostCycle : public Module public: ModuleHostCycle() - : chghostcap(this, "chghost") + : Module(VF_VENDOR, "Cycles users in all their channels when their host or ident changes") + , chghostcap(this, "chghost") , quitmsghost("Changing host") , quitmsgident("Changing ident") { @@ -110,11 +111,6 @@ class ModuleHostCycle : public Module { DoHostCycle(user, user->ident, newhost, quitmsghost); } - - Version GetVersion() override - { - return Version("Cycles users in all their channels when their host or ident changes", VF_VENDOR); - } }; MODULE_INIT(ModuleHostCycle) diff --git a/src/modules/m_httpd.cpp b/src/modules/m_httpd.cpp index 9c3e13a2c..0b10aee28 100644 --- a/src/modules/m_httpd.cpp +++ b/src/modules/m_httpd.cpp @@ -372,6 +372,7 @@ class HTTPdAPIImpl : public HTTPdAPIBase class ModuleHttpServer : public Module { + private: HTTPdAPIImpl APIImpl; unsigned int timeoutsec; Events::ModuleEventProvider acleventprov; @@ -379,7 +380,8 @@ class ModuleHttpServer : public Module public: ModuleHttpServer() - : APIImpl(this) + : Module(VF_VENDOR, "Provides HTTP serving facilities to modules") + , APIImpl(this) , acleventprov(this, "event/http-acl") , reqeventprov(this, "event/http-request") { @@ -431,11 +433,6 @@ class ModuleHttpServer : public Module } return Module::cull(); } - - Version GetVersion() override - { - return Version("Provides HTTP serving facilities to modules", VF_VENDOR); - } }; MODULE_INIT(ModuleHttpServer) diff --git a/src/modules/m_httpd_acl.cpp b/src/modules/m_httpd_acl.cpp index e0a947ea8..d3d8d1971 100644 --- a/src/modules/m_httpd_acl.cpp +++ b/src/modules/m_httpd_acl.cpp @@ -43,13 +43,15 @@ class HTTPACL class ModuleHTTPAccessList : public Module, public HTTPACLEventListener { + private: std::string stylesheet; std::vector acl_list; HTTPdAPI API; public: ModuleHTTPAccessList() - : HTTPACLEventListener(this) + : Module(VF_VENDOR, "Provides access control lists (passwording of resources, IP restrictions, etc) to m_httpd dependent modules") + , HTTPACLEventListener(this) , API(this) { } @@ -233,11 +235,6 @@ class ModuleHTTPAccessList : public Module, public HTTPACLEventListener return MOD_RES_PASSTHRU; return MOD_RES_DENY; } - - Version GetVersion() override - { - return Version("Provides access control lists (passwording of resources, IP restrictions, etc) to m_httpd dependent modules", VF_VENDOR); - } }; MODULE_INIT(ModuleHTTPAccessList) diff --git a/src/modules/m_httpd_config.cpp b/src/modules/m_httpd_config.cpp index 5db942b19..48551a81d 100644 --- a/src/modules/m_httpd_config.cpp +++ b/src/modules/m_httpd_config.cpp @@ -28,11 +28,13 @@ class ModuleHttpConfig : public Module, public HTTPRequestEventListener { + private: HTTPdAPI API; public: ModuleHttpConfig() - : HTTPRequestEventListener(this) + : Module(VF_VENDOR, "Allows for the server configuration to be viewed over HTTP via m_httpd") + , HTTPRequestEventListener(this) , API(this) { } @@ -72,11 +74,6 @@ class ModuleHttpConfig : public Module, public HTTPRequestEventListener API->SendResponse(response); return MOD_RES_DENY; } - - Version GetVersion() override - { - return Version("Allows for the server configuration to be viewed over HTTP via m_httpd", VF_VENDOR); - } }; MODULE_INIT(ModuleHttpConfig) diff --git a/src/modules/m_httpd_stats.cpp b/src/modules/m_httpd_stats.cpp index 93dcfdfe3..24efff664 100644 --- a/src/modules/m_httpd_stats.cpp +++ b/src/modules/m_httpd_stats.cpp @@ -172,8 +172,8 @@ namespace Stats for (ModuleManager::ModuleMap::const_iterator i = mods.begin(); i != mods.end(); ++i) { - Version v = i->second->GetVersion(); - data << "" << i->first << "" << Sanitize(v.description) << ""; + Module* mod = i->second; + data << "" << i->first << "" << Sanitize(mod->description) << ""; } return data << ""; } @@ -412,7 +412,8 @@ class ModuleHttpStats : public Module, public HTTPRequestEventListener public: ModuleHttpStats() - : HTTPRequestEventListener(this) + : Module(VF_VENDOR, "Provides statistics over HTTP via m_httpd") + , HTTPRequestEventListener(this) , API(this) , isupportevprov(this) { @@ -490,11 +491,6 @@ class ModuleHttpStats : public Module, public HTTPRequestEventListener { return HandleRequest(&req); } - - Version GetVersion() override - { - return Version("Provides statistics over HTTP via m_httpd", VF_VENDOR); - } }; MODULE_INIT(ModuleHttpStats) diff --git a/src/modules/m_ident.cpp b/src/modules/m_ident.cpp index 234d5652a..77af0f71c 100644 --- a/src/modules/m_ident.cpp +++ b/src/modules/m_ident.cpp @@ -299,16 +299,12 @@ class ModuleIdent : public Module public: ModuleIdent() - : socket(this, "ident_socket", ExtensionItem::EXT_USER) + : Module(VF_VENDOR, "Provides support for RFC1413 ident lookups") + , socket(this, "ident_socket", ExtensionItem::EXT_USER) , state(this, "ident_state", ExtensionItem::EXT_USER) { } - Version GetVersion() override - { - return Version("Provides support for RFC1413 ident lookups", VF_VENDOR); - } - void ReadConfig(ConfigStatus& status) override { ConfigTag* tag = ServerInstance->Config->ConfValue("ident"); diff --git a/src/modules/m_inviteexception.cpp b/src/modules/m_inviteexception.cpp index fe5e81a05..412a6d738 100644 --- a/src/modules/m_inviteexception.cpp +++ b/src/modules/m_inviteexception.cpp @@ -54,7 +54,8 @@ class ModuleInviteException public: ModuleInviteException() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides channel mode +I, invite exceptions") + , ISupport::EventListener(this) , ie(this) { } @@ -93,11 +94,6 @@ class ModuleInviteException ie.DoRehash(); invite_bypass_key = ServerInstance->Config->ConfValue("inviteexception")->getBool("bypasskey", true); } - - Version GetVersion() override - { - return Version("Provides channel mode +I, invite exceptions", VF_VENDOR); - } }; MODULE_INIT(ModuleInviteException) diff --git a/src/modules/m_ircv3.cpp b/src/modules/m_ircv3.cpp index 8405ecdba..231a5e266 100644 --- a/src/modules/m_ircv3.cpp +++ b/src/modules/m_ircv3.cpp @@ -115,14 +115,15 @@ class ModuleIRCv3 , public AccountEventListener , public Away::EventListener { + private: Cap::Capability cap_accountnotify; JoinHook joinhook; - ClientProtocol::EventProvider accountprotoev; public: ModuleIRCv3() - : AccountEventListener(this) + : Module(VF_VENDOR, "Provides support for extended-join, away-notify and account-notify CAP capabilities") + , AccountEventListener(this) , Away::EventListener(this) , cap_accountnotify(this, "account-notify") , joinhook(this) @@ -173,11 +174,6 @@ class ModuleIRCv3 ClientProtocol::Event awayevent(joinhook.awayprotoev, msg); IRCv3::WriteNeighborsWithCap(user, awayevent, joinhook.awaycap); } - - Version GetVersion() override - { - return Version("Provides support for extended-join, away-notify and account-notify CAP capabilities", VF_VENDOR); - } }; MODULE_INIT(ModuleIRCv3) diff --git a/src/modules/m_ircv3_accounttag.cpp b/src/modules/m_ircv3_accounttag.cpp index 65b99ca3a..1be2447f2 100644 --- a/src/modules/m_ircv3_accounttag.cpp +++ b/src/modules/m_ircv3_accounttag.cpp @@ -46,18 +46,15 @@ class AccountTag : public IRCv3::CapTag class ModuleIRCv3AccountTag : public Module { + private: AccountTag tag; public: ModuleIRCv3AccountTag() - : tag(this) + : Module(VF_VENDOR, "Provides the account-tag IRCv3 extension") + , tag(this) { } - - Version GetVersion() override - { - return Version("Provides the account-tag IRCv3 extension", VF_VENDOR); - } }; MODULE_INIT(ModuleIRCv3AccountTag) diff --git a/src/modules/m_ircv3_batch.cpp b/src/modules/m_ircv3_batch.cpp index f6a18ad27..eb1c17091 100644 --- a/src/modules/m_ircv3_batch.cpp +++ b/src/modules/m_ircv3_batch.cpp @@ -185,11 +185,13 @@ class IRCv3::Batch::ManagerImpl : public Manager class ModuleIRCv3Batch : public Module { + private: IRCv3::Batch::ManagerImpl manager; public: ModuleIRCv3Batch() - : manager(this) + : Module(VF_VENDOR, "Provides the batch IRCv3 extension") + , manager(this) { } @@ -209,11 +211,6 @@ class ModuleIRCv3Batch : public Module // Remove the user from all internal lists manager.RemoveFromAll(user); } - - Version GetVersion() override - { - return Version("Provides the batch IRCv3 extension", VF_VENDOR); - } }; MODULE_INIT(ModuleIRCv3Batch) diff --git a/src/modules/m_ircv3_capnotify.cpp b/src/modules/m_ircv3_capnotify.cpp index 68f363b6e..2a024fda0 100644 --- a/src/modules/m_ircv3_capnotify.cpp +++ b/src/modules/m_ircv3_capnotify.cpp @@ -125,7 +125,8 @@ class ModuleIRCv3CapNotify : public Module, public Cap::EventListener, public Re public: ModuleIRCv3CapNotify() - : Cap::EventListener(this) + : Module(VF_VENDOR, "Provides the cap-notify IRCv3 extension") + , Cap::EventListener(this) , ReloadModule::EventListener(this) , capnotify(this) , protoev(this, "CAP_NOTIFY") @@ -180,11 +181,6 @@ class ModuleIRCv3CapNotify : public Module, public Cap::EventListener, public Re reloadedmod.clear(); reloadedcaps.clear(); } - - Version GetVersion() override - { - return Version("Provides the cap-notify IRCv3 extension", VF_VENDOR); - } }; MODULE_INIT(ModuleIRCv3CapNotify) diff --git a/src/modules/m_ircv3_chghost.cpp b/src/modules/m_ircv3_chghost.cpp index a37a50b98..753671bf6 100644 --- a/src/modules/m_ircv3_chghost.cpp +++ b/src/modules/m_ircv3_chghost.cpp @@ -41,7 +41,8 @@ class ModuleIRCv3ChgHost : public Module public: ModuleIRCv3ChgHost() - : cap(this, "chghost") + : Module(VF_VENDOR, "Provides the chghost IRCv3 extension") + , cap(this, "chghost") , protoevprov(this, "CHGHOST") { } @@ -55,11 +56,6 @@ class ModuleIRCv3ChgHost : public Module { DoChgHost(user, user->ident, newhost); } - - Version GetVersion() override - { - return Version("Provides the chghost IRCv3 extension", VF_VENDOR); - } }; MODULE_INIT(ModuleIRCv3ChgHost) diff --git a/src/modules/m_ircv3_ctctags.cpp b/src/modules/m_ircv3_ctctags.cpp index e288d5210..ee5ee0e21 100644 --- a/src/modules/m_ircv3_ctctags.cpp +++ b/src/modules/m_ircv3_ctctags.cpp @@ -314,7 +314,8 @@ class ModuleIRCv3CTCTags public: ModuleIRCv3CTCTags() - : CTCTags::EventListener(this) + : Module(VF_VENDOR | VF_COMMON, "Provides the message-tags IRCv3 extension") + , CTCTags::EventListener(this) , cap(this, "message-tags") , cmd(this, cap) , c2ctags(this, cap) @@ -359,11 +360,6 @@ class ModuleIRCv3CTCTags return CopyClientTags(details.tags_in, details.tags_out); } - - Version GetVersion() override - { - return Version("Provides the message-tags IRCv3 extension", VF_VENDOR | VF_COMMON); - } }; MODULE_INIT(ModuleIRCv3CTCTags) diff --git a/src/modules/m_ircv3_echomessage.cpp b/src/modules/m_ircv3_echomessage.cpp index 489554ea8..a4b959091 100644 --- a/src/modules/m_ircv3_echomessage.cpp +++ b/src/modules/m_ircv3_echomessage.cpp @@ -33,7 +33,8 @@ class ModuleIRCv3EchoMessage public: ModuleIRCv3EchoMessage() - : CTCTags::EventListener(this) + : Module(VF_VENDOR, "Provides the echo-message IRCv3 extension") + , CTCTags::EventListener(this) , cap(this, "echo-message") , tagmsgprov(this, "TAGMSG") { @@ -126,11 +127,6 @@ class ModuleIRCv3EchoMessage if (details.echo_original) OnUserPostTagMessage(user, target, details); } - - Version GetVersion() override - { - return Version("Provides the echo-message IRCv3 extension", VF_VENDOR); - } }; MODULE_INIT(ModuleIRCv3EchoMessage) diff --git a/src/modules/m_ircv3_invitenotify.cpp b/src/modules/m_ircv3_invitenotify.cpp index f6599a43b..33a06fcc8 100644 --- a/src/modules/m_ircv3_invitenotify.cpp +++ b/src/modules/m_ircv3_invitenotify.cpp @@ -27,7 +27,8 @@ class ModuleIRCv3InviteNotify : public Module public: ModuleIRCv3InviteNotify() - : cap(this, "invite-notify") + : Module(VF_VENDOR, "Provides the invite-notify IRCv3 extension") + , cap(this, "invite-notify") { } @@ -61,11 +62,6 @@ class ModuleIRCv3InviteNotify : public Module // Prioritize after all modules to see all excepted users ServerInstance->Modules.SetPriority(this, I_OnUserInvite, PRIORITY_LAST); } - - Version GetVersion() override - { - return Version("Provides the invite-notify IRCv3 extension", VF_VENDOR); - } }; MODULE_INIT(ModuleIRCv3InviteNotify) diff --git a/src/modules/m_ircv3_labeledresponse.cpp b/src/modules/m_ircv3_labeledresponse.cpp index a56376ed2..5f1c80f2b 100644 --- a/src/modules/m_ircv3_labeledresponse.cpp +++ b/src/modules/m_ircv3_labeledresponse.cpp @@ -87,7 +87,8 @@ class ModuleIRCv3LabeledResponse : public Module public: ModuleIRCv3LabeledResponse() - : cap(this, "labeled-response") + : Module(VF_VENDOR, "Provides the labeled-response IRCv3 extension") + , cap(this, "labeled-response") , tag(this, cap) , batchmanager(this) , batch("labeled-response") @@ -228,11 +229,6 @@ class ModuleIRCv3LabeledResponse : public Module Module* alias = ServerInstance->Modules.Find("m_alias.so"); ServerInstance->Modules.SetPriority(this, I_OnPreCommand, PRIORITY_BEFORE, alias); } - - Version GetVersion() override - { - return Version("Provides the labeled-response IRCv3 extension", VF_VENDOR); - } }; MODULE_INIT(ModuleIRCv3LabeledResponse) diff --git a/src/modules/m_ircv3_msgid.cpp b/src/modules/m_ircv3_msgid.cpp index 0c51adee2..7a59b4f7c 100644 --- a/src/modules/m_ircv3_msgid.cpp +++ b/src/modules/m_ircv3_msgid.cpp @@ -94,7 +94,8 @@ class ModuleMsgId public: ModuleMsgId() - : CTCTags::EventListener(this) + : Module(VF_VENDOR, "Provides the msgid IRCv3 tag") + , CTCTags::EventListener(this) , tag(this) { } @@ -108,11 +109,6 @@ class ModuleMsgId { return CopyMessageId(details.tags_in, details.tags_out); } - - Version GetVersion() override - { - return Version("Provides the msgid IRCv3 tag", VF_VENDOR); - } }; MODULE_INIT(ModuleMsgId) diff --git a/src/modules/m_ircv3_servertime.cpp b/src/modules/m_ircv3_servertime.cpp index 210e97ee9..70b755350 100644 --- a/src/modules/m_ircv3_servertime.cpp +++ b/src/modules/m_ircv3_servertime.cpp @@ -75,18 +75,15 @@ class ServerTimeTag class ModuleIRCv3ServerTime : public Module { + private: ServerTimeTag tag; public: ModuleIRCv3ServerTime() - : tag(this) + : Module(VF_VENDOR, "Provides the server-time IRCv3 extension") + , tag(this) { } - - Version GetVersion() override - { - return Version("Provides the server-time IRCv3 extension", VF_VENDOR); - } }; MODULE_INIT(ModuleIRCv3ServerTime) diff --git a/src/modules/m_ircv3_sts.cpp b/src/modules/m_ircv3_sts.cpp index 0abc4b3be..73c34c09d 100644 --- a/src/modules/m_ircv3_sts.cpp +++ b/src/modules/m_ircv3_sts.cpp @@ -152,7 +152,8 @@ class ModuleIRCv3STS : public Module public: ModuleIRCv3STS() - : cap(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides IRCv3 Strict Transport Security policy advertisement") + , cap(this) { } @@ -178,11 +179,6 @@ class ModuleIRCv3STS : public Module if (!cap.IsRegistered()) ServerInstance->Modules.AddService(cap); } - - Version GetVersion() override - { - return Version("Provides IRCv3 Strict Transport Security policy advertisement", VF_OPTCOMMON|VF_VENDOR); - } }; MODULE_INIT(ModuleIRCv3STS) diff --git a/src/modules/m_joinflood.cpp b/src/modules/m_joinflood.cpp index ffc0c5147..288f473ef 100644 --- a/src/modules/m_joinflood.cpp +++ b/src/modules/m_joinflood.cpp @@ -138,7 +138,8 @@ class ModuleJoinFlood : public Module public: ModuleJoinFlood() - : jf(this) + : Module(VF_VENDOR, "Provides channel mode +j, join flood protection") + , jf(this) { } @@ -182,11 +183,6 @@ class ModuleJoinFlood : public Module } } } - - Version GetVersion() override - { - return Version("Provides channel mode +j, join flood protection", VF_VENDOR); - } }; MODULE_INIT(ModuleJoinFlood) diff --git a/src/modules/m_kicknorejoin.cpp b/src/modules/m_kicknorejoin.cpp index bc9d7b033..ca4685ee7 100644 --- a/src/modules/m_kicknorejoin.cpp +++ b/src/modules/m_kicknorejoin.cpp @@ -135,7 +135,8 @@ class ModuleKickNoRejoin : public Module public: ModuleKickNoRejoin() - : kr(this) + : Module(VF_VENDOR | VF_COMMON, "Provides channel mode +J, delays rejoins after kicks") + , kr(this) , invapi(this) { } @@ -166,9 +167,9 @@ public: } } - Version GetVersion() override + void GetLinkData(std::string& data) override { - return Version("Provides channel mode +J, delays rejoins after kicks", VF_VENDOR | VF_COMMON, kr.GetModuleSettings()); + data = kr.GetModuleSettings(); } }; diff --git a/src/modules/m_knock.cpp b/src/modules/m_knock.cpp index 3d3335d25..a6c0a8566 100644 --- a/src/modules/m_knock.cpp +++ b/src/modules/m_knock.cpp @@ -118,7 +118,8 @@ class ModuleKnock : public Module public: ModuleKnock() - : kn(this, "noknock", 'K') + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the KNOCK command and channel mode +K") + , kn(this, "noknock", 'K') , cmd(this, kn) { } @@ -142,11 +143,6 @@ class ModuleKnock : public Module cmd.sendnumeric = false; } } - - Version GetVersion() override - { - return Version("Provides the KNOCK command and channel mode +K", VF_OPTCOMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleKnock) diff --git a/src/modules/m_ldapauth.cpp b/src/modules/m_ldapauth.cpp index 26a50c145..49e96323f 100644 --- a/src/modules/m_ldapauth.cpp +++ b/src/modules/m_ldapauth.cpp @@ -311,7 +311,8 @@ class ModuleLDAPAuth : public Module public: ModuleLDAPAuth() - : LDAP(this, "LDAP") + : Module(VF_VENDOR, "Allow/deny connections based upon answers from an LDAP server") + , LDAP(this, "LDAP") , ldapAuthed(this, "ldapauth", ExtensionItem::EXT_USER) , ldapVhost(this, "ldapauth_vhost", ExtensionItem::EXT_USER) { @@ -442,11 +443,6 @@ public: { return ldapAuthed.get(user) ? MOD_RES_PASSTHRU : MOD_RES_DENY; } - - Version GetVersion() override - { - return Version("Allow/deny connections based upon answers from an LDAP server", VF_VENDOR); - } }; MODULE_INIT(ModuleLDAPAuth) diff --git a/src/modules/m_ldapoper.cpp b/src/modules/m_ldapoper.cpp index 94f389b2a..3460bb705 100644 --- a/src/modules/m_ldapoper.cpp +++ b/src/modules/m_ldapoper.cpp @@ -186,7 +186,8 @@ class ModuleLDAPOper : public Module public: ModuleLDAPOper() - : LDAP(this, "LDAP") + : Module(VF_VENDOR, "Adds the ability to authenticate opers via LDAP") + , LDAP(this, "LDAP") { me = this; } @@ -237,11 +238,6 @@ class ModuleLDAPOper : public Module return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Adds the ability to authenticate opers via LDAP", VF_VENDOR); - } }; MODULE_INIT(ModuleLDAPOper) diff --git a/src/modules/m_lockserv.cpp b/src/modules/m_lockserv.cpp index 37c6a594f..f374fb994 100644 --- a/src/modules/m_lockserv.cpp +++ b/src/modules/m_lockserv.cpp @@ -94,7 +94,10 @@ class ModuleLockserv : public Module CommandUnlockserv unlockcommand; public: - ModuleLockserv() : lockcommand(this, locked), unlockcommand(this, locked) + ModuleLockserv() + : Module(VF_VENDOR, "Provides the LOCKSERV and UNLOCKSERV commands to lock the server and block all incoming connections until unlocked again") + , lockcommand(this, locked) + , unlockcommand(this, locked) { } @@ -125,11 +128,6 @@ class ModuleLockserv : public Module { return !locked.empty() ? MOD_RES_DENY : MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides the LOCKSERV and UNLOCKSERV commands to lock the server and block all incoming connections until unlocked again", VF_VENDOR); - } }; MODULE_INIT(ModuleLockserv) diff --git a/src/modules/m_maphide.cpp b/src/modules/m_maphide.cpp index 9ef7c5894..bde1fd1d2 100644 --- a/src/modules/m_maphide.cpp +++ b/src/modules/m_maphide.cpp @@ -26,8 +26,15 @@ class ModuleMapHide : public Module { + private: std::string url; + public: + ModuleMapHide() + : Module(VF_VENDOR, "Replaces the output of the MAP and LINKS commands with an URL") + { + } + void ReadConfig(ConfigStatus& status) override { url = ServerInstance->Config->ConfValue("security")->getString("maphide"); @@ -43,11 +50,6 @@ class ModuleMapHide : public Module else return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Replaces the output of the MAP and LINKS commands with an URL", VF_VENDOR); - } }; MODULE_INIT(ModuleMapHide) diff --git a/src/modules/m_md5.cpp b/src/modules/m_md5.cpp index 52ddc0803..9032fbe15 100644 --- a/src/modules/m_md5.cpp +++ b/src/modules/m_md5.cpp @@ -250,15 +250,14 @@ class MD5Provider : public HashProvider class ModuleMD5 : public Module { + private: MD5Provider md5; - public: - ModuleMD5() : md5(this) - { - } - Version GetVersion() override + public: + ModuleMD5() + : Module(VF_VENDOR, "Implements MD5 hashing") + , md5(this) { - return Version("Implements MD5 hashing",VF_VENDOR); } }; diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp index a370eea1d..7c29ed01c 100644 --- a/src/modules/m_messageflood.cpp +++ b/src/modules/m_messageflood.cpp @@ -122,7 +122,8 @@ private: public: ModuleMsgFlood() - : CTCTags::EventListener(this) + : Module(VF_VENDOR, "Provides channel mode +f, message flood protection") + , CTCTags::EventListener(this) , exemptionprov(this) , mf(this) { @@ -190,11 +191,6 @@ private: // we want to be after all modules that might deny the message (e.g. m_muteban, m_noctcp, m_blockcolor, etc.) ServerInstance->Modules.SetPriority(this, I_OnUserPreMessage, PRIORITY_LAST); } - - Version GetVersion() override - { - return Version("Provides channel mode +f, message flood protection", VF_VENDOR); - } }; MODULE_INIT(ModuleMsgFlood) diff --git a/src/modules/m_mlock.cpp b/src/modules/m_mlock.cpp index 9d54790c7..d50b2d374 100644 --- a/src/modules/m_mlock.cpp +++ b/src/modules/m_mlock.cpp @@ -34,15 +34,11 @@ class ModuleMLock : public Module public: ModuleMLock() - : mlock(this, "mlock", ExtensionItem::EXT_CHANNEL, true) + : Module(VF_VENDOR, "Implements the ability to have server-side MLOCK enforcement") + , mlock(this, "mlock", ExtensionItem::EXT_CHANNEL, true) { } - Version GetVersion() override - { - return Version("Implements the ability to have server-side MLOCK enforcement", VF_VENDOR); - } - ModResult OnRawMode(User* source, Channel* channel, ModeHandler* mh, const std::string& parameter, bool adding) override { if (!channel) diff --git a/src/modules/m_modenotice.cpp b/src/modules/m_modenotice.cpp index 2ad3a175f..08bd141f9 100644 --- a/src/modules/m_modenotice.cpp +++ b/src/modules/m_modenotice.cpp @@ -58,18 +58,15 @@ next_user: ; class ModuleModeNotice : public Module { + private: CommandModeNotice cmd; public: ModuleModeNotice() - : cmd(this) + : Module(VF_VENDOR, "Provides the MODENOTICE command") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the MODENOTICE command", VF_VENDOR); - } }; MODULE_INIT(ModuleModeNotice) diff --git a/src/modules/m_monitor.cpp b/src/modules/m_monitor.cpp index 59e2d6b89..8d67aee4e 100644 --- a/src/modules/m_monitor.cpp +++ b/src/modules/m_monitor.cpp @@ -393,7 +393,8 @@ class ModuleMonitor public: ModuleMonitor() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides MONITOR support") + , ISupport::EventListener(this) , manager(this, "monitor") , cmd(this, manager) { @@ -432,11 +433,6 @@ class ModuleMonitor { tokens["MONITOR"] = ConvToStr(cmd.maxmonitor); } - - Version GetVersion() override - { - return Version("Provides MONITOR support", VF_VENDOR); - } }; MODULE_INIT(ModuleMonitor) diff --git a/src/modules/m_muteban.cpp b/src/modules/m_muteban.cpp index 6fd0c7c10..f61ef8296 100644 --- a/src/modules/m_muteban.cpp +++ b/src/modules/m_muteban.cpp @@ -37,7 +37,8 @@ class ModuleQuietBan public: ModuleQuietBan() - : CTCTags::EventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides extban 'm', mute bans") + , CTCTags::EventListener(this) , ISupport::EventListener(this) { } @@ -48,11 +49,6 @@ class ModuleQuietBan notifyuser = tag->getBool("notifyuser", true); } - Version GetVersion() override - { - return Version("Provides extban 'm', mute bans", VF_OPTCOMMON|VF_VENDOR); - } - ModResult HandleMessage(User* user, const MessageTarget& target, bool& echo_original) { if (!IS_LOCAL(user) || target.type != MessageTarget::TYPE_CHANNEL) diff --git a/src/modules/m_namedmodes.cpp b/src/modules/m_namedmodes.cpp index 40ef36473..709cd5b44 100644 --- a/src/modules/m_namedmodes.cpp +++ b/src/modules/m_namedmodes.cpp @@ -126,16 +126,16 @@ class DummyZ : public ModeHandler class ModuleNamedModes : public Module { + private: CommandProp cmd; DummyZ dummyZ; - public: - ModuleNamedModes() : cmd(this), dummyZ(this) - { - } - Version GetVersion() override + public: + ModuleNamedModes() + : Module(VF_VENDOR, "Provides the ability to manipulate modes via long names") + , cmd(this) + , dummyZ(this) { - return Version("Provides the ability to manipulate modes via long names", VF_VENDOR); } void Prioritize() override diff --git a/src/modules/m_namesx.cpp b/src/modules/m_namesx.cpp index e0efd57ee..3d54f7aaa 100644 --- a/src/modules/m_namesx.cpp +++ b/src/modules/m_namesx.cpp @@ -40,18 +40,14 @@ class ModuleNamesX public: ModuleNamesX() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides the NAMESX (CAP multi-prefix) capability") + , ISupport::EventListener(this) , Names::EventListener(this) , Who::EventListener(this) , cap(this, "multi-prefix") { } - Version GetVersion() override - { - return Version("Provides the NAMESX (CAP multi-prefix) capability", VF_VENDOR); - } - void OnBuildISupport(ISupport::TokenMap& tokens) override { // The legacy PROTOCTL system is a wrapper around the cap. diff --git a/src/modules/m_nationalchars.cpp b/src/modules/m_nationalchars.cpp index 145c7c3b2..d6d81e584 100644 --- a/src/modules/m_nationalchars.cpp +++ b/src/modules/m_nationalchars.cpp @@ -255,7 +255,8 @@ class ModuleNationalChars : public Module public: ModuleNationalChars() - : rememberer(ServerInstance->IsNick) + : Module(VF_VENDOR | VF_COMMON, "Provides an ability to have non-RFC1459 nicks & support for national CASEMAPPING") + , rememberer(ServerInstance->IsNick) , lowermap_rememberer(national_case_insensitive_map) , casemapping_rememberer(ServerInstance->Config->CaseMapping) { @@ -319,11 +320,6 @@ class ModuleNationalChars : public Module CheckRehash(); } - Version GetVersion() override - { - return Version("Provides an ability to have non-RFC1459 nicks & support for national CASEMAPPING", VF_VENDOR | VF_COMMON); - } - /*make an array to check against it 8bit characters a bit faster. Whether allowed or uppercase (for your needs).*/ void makereverse(unsigned char * from, unsigned char * to, unsigned int cnt) { diff --git a/src/modules/m_nickflood.cpp b/src/modules/m_nickflood.cpp index 5a2406500..ad5678e2a 100644 --- a/src/modules/m_nickflood.cpp +++ b/src/modules/m_nickflood.cpp @@ -124,12 +124,14 @@ class NickFlood : public ParamMode > class ModuleNickFlood : public Module { + private: CheckExemption::EventProvider exemptionprov; NickFlood nf; public: ModuleNickFlood() - : exemptionprov(this) + : Module(VF_VENDOR, "Provides channel mode +F, nick flood protection") + , exemptionprov(this) , nf(this) { } @@ -201,11 +203,6 @@ class ModuleNickFlood : public Module } } } - - Version GetVersion() override - { - return Version("Provides channel mode +F, nick flood protection", VF_VENDOR); - } }; MODULE_INIT(ModuleNickFlood) diff --git a/src/modules/m_nicklock.cpp b/src/modules/m_nicklock.cpp index 31f9249e0..571f6ae13 100644 --- a/src/modules/m_nicklock.cpp +++ b/src/modules/m_nicklock.cpp @@ -144,22 +144,20 @@ class CommandNickunlock : public Command class ModuleNickLock : public Module { + private: IntExtItem locked; CommandNicklock cmd1; CommandNickunlock cmd2; + public: ModuleNickLock() - : locked(this, "nick_locked", ExtensionItem::EXT_USER) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the NICKLOCK command, allows an oper to change a users nick and lock them to it until they quit") + , locked(this, "nick_locked", ExtensionItem::EXT_USER) , cmd1(this, locked) , cmd2(this, locked) { } - Version GetVersion() override - { - return Version("Provides the NICKLOCK command, allows an oper to change a users nick and lock them to it until they quit", VF_OPTCOMMON | VF_VENDOR); - } - ModResult OnUserPreNick(LocalUser* user, const std::string& newnick) override { if (locked.get(user)) diff --git a/src/modules/m_noctcp.cpp b/src/modules/m_noctcp.cpp index 0d8ecf8a1..adbb6e2c0 100644 --- a/src/modules/m_noctcp.cpp +++ b/src/modules/m_noctcp.cpp @@ -41,18 +41,14 @@ class ModuleNoCTCP public: ModuleNoCTCP() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides user mode +T and channel mode +C to block CTCPs") + , ISupport::EventListener(this) , exemptionprov(this) , nc(this, "noctcp", 'C') , ncu(this, "u_noctcp", 'T') { } - Version GetVersion() override - { - return Version("Provides user mode +T and channel mode +C to block CTCPs", VF_VENDOR); - } - ModResult OnUserPreMessage(User* user, const MessageTarget& target, MessageDetails& details) override { if (!IS_LOCAL(user)) diff --git a/src/modules/m_nokicks.cpp b/src/modules/m_nokicks.cpp index baa96c4ba..4adf68a23 100644 --- a/src/modules/m_nokicks.cpp +++ b/src/modules/m_nokicks.cpp @@ -37,7 +37,8 @@ class ModuleNoKicks public: ModuleNoKicks() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides channel mode +Q to prevent kicks on the channel") + , ISupport::EventListener(this) , nk(this, "nokick", 'Q') { } @@ -59,11 +60,6 @@ class ModuleNoKicks } return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides channel mode +Q to prevent kicks on the channel", VF_VENDOR); - } }; MODULE_INIT(ModuleNoKicks) diff --git a/src/modules/m_nonicks.cpp b/src/modules/m_nonicks.cpp index d0549a424..f0870e417 100644 --- a/src/modules/m_nonicks.cpp +++ b/src/modules/m_nonicks.cpp @@ -39,17 +39,13 @@ class ModuleNoNickChange public: ModuleNoNickChange() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides channel mode +N and extban 'N' which prevents nick changes on the channel") + , ISupport::EventListener(this) , exemptionprov(this) , nn(this, "nonick", 'N') { } - Version GetVersion() override - { - return Version("Provides channel mode +N and extban 'N' which prevents nick changes on the channel", VF_VENDOR); - } - void OnBuildISupport(ISupport::TokenMap& tokens) override { tokens["EXTBAN"].push_back('N'); diff --git a/src/modules/m_nonotice.cpp b/src/modules/m_nonotice.cpp index f9210006d..1d6080afc 100644 --- a/src/modules/m_nonotice.cpp +++ b/src/modules/m_nonotice.cpp @@ -39,7 +39,8 @@ class ModuleNoNotice public: ModuleNoNotice() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides channel mode +T to block notices to the channel") + , ISupport::EventListener(this) , exemptionprov(this) , nt(this, "nonotice", 'T') { @@ -74,11 +75,6 @@ class ModuleNoNotice } return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides channel mode +T to block notices to the channel", VF_VENDOR); - } }; MODULE_INIT(ModuleNoNotice) diff --git a/src/modules/m_nopartmsg.cpp b/src/modules/m_nopartmsg.cpp index 4e281a89f..f7c4bc6a4 100644 --- a/src/modules/m_nopartmsg.cpp +++ b/src/modules/m_nopartmsg.cpp @@ -32,15 +32,11 @@ class ModulePartMsgBan { public: ModulePartMsgBan() - : ISupport::EventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides extban 'p', part message bans") + , ISupport::EventListener(this) { } - Version GetVersion() override - { - return Version("Provides extban 'p', part message bans", VF_OPTCOMMON|VF_VENDOR); - } - void OnUserPart(Membership* memb, std::string &partmessage, CUList& excepts) override { if (!IS_LOCAL(memb->user)) diff --git a/src/modules/m_ojoin.cpp b/src/modules/m_ojoin.cpp index 299499886..2889f270e 100644 --- a/src/modules/m_ojoin.cpp +++ b/src/modules/m_ojoin.cpp @@ -105,13 +105,15 @@ class NetworkPrefix : public PrefixMode class ModuleOjoin : public Module { + private: NetworkPrefix np; CommandOjoin mycommand; public: ModuleOjoin() - : np(this, ServerInstance->Config->ConfValue("ojoin")->getString("prefix").c_str()[0]) + : Module(VF_VENDOR, "Provides the OJOIN command, allows an oper to join a channel and be immune to kicks") + , np(this, ServerInstance->Config->ConfValue("ojoin")->getString("prefix").c_str()[0]) , mycommand(this, np) { } @@ -154,11 +156,6 @@ class ModuleOjoin : public Module { ServerInstance->Modules.SetPriority(this, I_OnUserPreJoin, PRIORITY_FIRST); } - - Version GetVersion() override - { - return Version("Provides the OJOIN command, allows an oper to join a channel and be immune to kicks", VF_VENDOR); - } }; MODULE_INIT(ModuleOjoin) diff --git a/src/modules/m_operchans.cpp b/src/modules/m_operchans.cpp index d5878a799..044d82b38 100644 --- a/src/modules/m_operchans.cpp +++ b/src/modules/m_operchans.cpp @@ -43,7 +43,8 @@ class ModuleOperChans public: ModuleOperChans() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides support for oper-only channels via channel mode +O and extban 'O'") + , ISupport::EventListener(this) , oc(this, "operonly", 'O', true) , space(" ") , underscore("_") @@ -88,11 +89,6 @@ class ModuleOperChans { tokens["EXTBAN"].push_back('O'); } - - Version GetVersion() override - { - return Version("Provides support for oper-only channels via channel mode +O and extban 'O'", VF_VENDOR); - } }; MODULE_INIT(ModuleOperChans) diff --git a/src/modules/m_operjoin.cpp b/src/modules/m_operjoin.cpp index c53375e70..7f0360f87 100644 --- a/src/modules/m_operjoin.cpp +++ b/src/modules/m_operjoin.cpp @@ -28,10 +28,16 @@ class ModuleOperjoin : public Module { + private: std::vector operChans; bool override; public: + ModuleOperjoin() + : Module(VF_VENDOR, "Forces opers to join the specified channel(s) on oper-up") + { + } + void ReadConfig(ConfigStatus& status) override { ConfigTag* tag = ServerInstance->Config->ConfValue("operjoin"); @@ -44,11 +50,6 @@ class ModuleOperjoin : public Module operChans.push_back(channame); } - Version GetVersion() override - { - return Version("Forces opers to join the specified channel(s) on oper-up", VF_VENDOR); - } - void OnPostOper(User* user, const std::string &opertype, const std::string &opername) override { LocalUser* localuser = IS_LOCAL(user); diff --git a/src/modules/m_operlevels.cpp b/src/modules/m_operlevels.cpp index cfbb6f73b..5f96dfecc 100644 --- a/src/modules/m_operlevels.cpp +++ b/src/modules/m_operlevels.cpp @@ -30,9 +30,9 @@ class ModuleOperLevels : public Module { public: - Version GetVersion() override + ModuleOperLevels() + : Module(VF_VENDOR, "Gives each oper type a 'level', cannot kill opers 'above' your level") { - return Version("Gives each oper type a 'level', cannot kill opers 'above' your level", VF_VENDOR); } ModResult OnKill(User* source, User* dest, const std::string &reason) override diff --git a/src/modules/m_operlog.cpp b/src/modules/m_operlog.cpp index dd24ea9f1..34661a971 100644 --- a/src/modules/m_operlog.cpp +++ b/src/modules/m_operlog.cpp @@ -35,7 +35,8 @@ class ModuleOperLog public: ModuleOperLog() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides logging of all oper commands to the ircd log at the default loglevel") + , ISupport::EventListener(this) { } @@ -44,11 +45,6 @@ class ModuleOperLog ServerInstance->SNO.EnableSnomask('r', "OPERLOG"); } - Version GetVersion() override - { - return Version("Provides logging of all oper commands to the ircd log at the default loglevel", VF_VENDOR); - } - void ReadConfig(ConfigStatus& status) override { tosnomask = ServerInstance->Config->ConfValue("operlog")->getBool("tosnomask", false); diff --git a/src/modules/m_opermodes.cpp b/src/modules/m_opermodes.cpp index 108b5c5e2..5b42e5831 100644 --- a/src/modules/m_opermodes.cpp +++ b/src/modules/m_opermodes.cpp @@ -29,9 +29,9 @@ class ModuleModesOnOper : public Module { public: - Version GetVersion() override + ModuleModesOnOper() + : Module(VF_VENDOR, "Sets (and unsets) modes on opers when they oper up") { - return Version("Sets (and unsets) modes on opers when they oper up", VF_VENDOR); } void OnPostOper(User* user, const std::string &opertype, const std::string &opername) override diff --git a/src/modules/m_opermotd.cpp b/src/modules/m_opermotd.cpp index 781d4aa94..bb99343d6 100644 --- a/src/modules/m_opermotd.cpp +++ b/src/modules/m_opermotd.cpp @@ -86,20 +86,17 @@ class CommandOpermotd : public Command class ModuleOpermotd : public Module { + private: CommandOpermotd cmd; bool onoper; + public: - ModuleOpermotd() - : cmd(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Shows a message to opers after oper-up and adds the OPERMOTD command") + , cmd(this) { } - Version GetVersion() override - { - return Version("Shows a message to opers after oper-up and adds the OPERMOTD command", VF_VENDOR | VF_OPTCOMMON); - } - void OnOper(User* user, const std::string &opertype) override { if (onoper && IS_LOCAL(user)) diff --git a/src/modules/m_operprefix.cpp b/src/modules/m_operprefix.cpp index f56e4d663..1fac1143a 100644 --- a/src/modules/m_operprefix.cpp +++ b/src/modules/m_operprefix.cpp @@ -54,13 +54,16 @@ class HideOperWatcher : public ModeWatcher class ModuleOperPrefixMode : public Module { + private: OperPrefixMode opm; HideOperWatcher hideoperwatcher; UserModeReference hideopermode; public: ModuleOperPrefixMode() - : opm(this), hideoperwatcher(this) + : Module(VF_VENDOR, "Gives opers channel mode +y which provides a staff prefix") + , opm(this) + , hideoperwatcher(this) , hideopermode(this, "hideoper") { /* To give clients a chance to learn about the new prefix we don't give +y to opers @@ -104,11 +107,6 @@ class ModuleOperPrefixMode : public Module SetOperPrefix(user, true); } - Version GetVersion() override - { - return Version("Gives opers channel mode +y which provides a staff prefix", VF_VENDOR); - } - void Prioritize() override { // m_opermodes may set +H on the oper to hide him, we don't want to set the oper prefix in that case diff --git a/src/modules/m_override.cpp b/src/modules/m_override.cpp index 800b4c827..33f1fdb45 100644 --- a/src/modules/m_override.cpp +++ b/src/modules/m_override.cpp @@ -75,7 +75,8 @@ class ModuleOverride public: ModuleOverride() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides support for allowing opers to override certain things") + , ISupport::EventListener(this) , ou(this, "override", 'O') , topiclock(this, "topiclock") , inviteonly(this, "inviteonly") @@ -213,11 +214,6 @@ class ModuleOverride } return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides support for allowing opers to override certain things",VF_VENDOR); - } }; MODULE_INIT(ModuleOverride) diff --git a/src/modules/m_passforward.cpp b/src/modules/m_passforward.cpp index 35b10ba5a..1ed0e6e5a 100644 --- a/src/modules/m_passforward.cpp +++ b/src/modules/m_passforward.cpp @@ -31,9 +31,9 @@ class ModulePassForward : public Module std::string nickrequired, forwardmsg, forwardcmd; public: - Version GetVersion() override + ModulePassForward() + : Module(VF_VENDOR, "Sends server password to NickServ") { - return Version("Sends server password to NickServ", VF_VENDOR); } void ReadConfig(ConfigStatus& status) override diff --git a/src/modules/m_password_hash.cpp b/src/modules/m_password_hash.cpp index 37e86be68..cb8f225c8 100644 --- a/src/modules/m_password_hash.cpp +++ b/src/modules/m_password_hash.cpp @@ -84,7 +84,8 @@ class ModulePasswordHash : public Module public: ModulePasswordHash() - : cmd(this) + : Module(VF_VENDOR, "Provides the ability to hash passwords to other modules") + , cmd(this) { } @@ -131,11 +132,6 @@ class ModulePasswordHash : public Module // We don't handle this type, let other mods or the core decide return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides the ability to hash passwords to other modules", VF_VENDOR); - } }; MODULE_INIT(ModulePasswordHash) diff --git a/src/modules/m_pbkdf2.cpp b/src/modules/m_pbkdf2.cpp index 287cd02ff..0619282b9 100644 --- a/src/modules/m_pbkdf2.cpp +++ b/src/modules/m_pbkdf2.cpp @@ -204,6 +204,11 @@ class ModulePBKDF2 : public Module } public: + ModulePBKDF2() + : Module(VF_VENDOR, "Implements PBKDF2 hashing") + { + } + ~ModulePBKDF2() { stdalgo::delete_all(providers); @@ -245,11 +250,6 @@ class ModulePBKDF2 : public Module { GetConfig(); } - - Version GetVersion() override - { - return Version("Implements PBKDF2 hashing", VF_VENDOR); - } }; MODULE_INIT(ModulePBKDF2) diff --git a/src/modules/m_permchannels.cpp b/src/modules/m_permchannels.cpp index 252694952..075ec3bc8 100644 --- a/src/modules/m_permchannels.cpp +++ b/src/modules/m_permchannels.cpp @@ -175,7 +175,8 @@ class ModulePermanentChannels public: ModulePermanentChannels() - : Timer(0, true) + : Module(VF_VENDOR, "Provides channel mode +P to provide permanent channels") + , Timer(0, true) , p(this) { } @@ -315,11 +316,6 @@ public: } } - Version GetVersion() override - { - return Version("Provides channel mode +P to provide permanent channels", VF_VENDOR); - } - ModResult OnChannelPreDelete(Channel *c) override { if (c->IsModeSet(p)) diff --git a/src/modules/m_randquote.cpp b/src/modules/m_randquote.cpp index 2badebfcb..254a43656 100644 --- a/src/modules/m_randquote.cpp +++ b/src/modules/m_randquote.cpp @@ -32,6 +32,11 @@ class ModuleRandQuote : public Module std::vector quotes; public: + ModuleRandQuote() + : Module(VF_VENDOR, "Provides random quotes on connect") + { + } + void init() override { ConfigTag* conf = ServerInstance->Config->ConfValue("randquote"); @@ -49,11 +54,6 @@ class ModuleRandQuote : public Module user->WriteNotice(prefix + quotes[random] + suffix); } } - - Version GetVersion() override - { - return Version("Provides random quotes on connect", VF_VENDOR); - } }; MODULE_INIT(ModuleRandQuote) diff --git a/src/modules/m_redirect.cpp b/src/modules/m_redirect.cpp index 6e1c4f7d9..8b810430f 100644 --- a/src/modules/m_redirect.cpp +++ b/src/modules/m_redirect.cpp @@ -81,13 +81,15 @@ class Redirect : public ParamMode class ModuleRedirect : public Module { + private: Redirect re; SimpleUserModeHandler antiredirectmode; ChanModeReference limitmode; public: ModuleRedirect() - : re(this) + : Module(VF_VENDOR, "Provides channel mode +L (limit redirection) and user mode +L (no forced redirection)") + , re(this) , antiredirectmode(this, "antiredirect", 'L') , limitmode(this, "limit") { @@ -127,11 +129,6 @@ class ModuleRedirect : public Module } return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides channel mode +L (limit redirection) and user mode +L (no forced redirection)", VF_VENDOR); - } }; MODULE_INIT(ModuleRedirect) diff --git a/src/modules/m_regex_glob.cpp b/src/modules/m_regex_glob.cpp index e1efd0f47..6e41c8ad9 100644 --- a/src/modules/m_regex_glob.cpp +++ b/src/modules/m_regex_glob.cpp @@ -52,16 +52,14 @@ class GlobFactory : public RegexFactory class ModuleRegexGlob : public Module { + private: GlobFactory gf; -public: - ModuleRegexGlob() - : gf(this) - { - } - Version GetVersion() override + public: + ModuleRegexGlob() + : Module(VF_VENDOR, "Regex provider module using plain wildcard matching") + , gf(this) { - return Version("Regex provider module using plain wildcard matching", VF_VENDOR); } }; diff --git a/src/modules/m_regex_stdlib.cpp b/src/modules/m_regex_stdlib.cpp index 0e048d6f4..df32db362 100644 --- a/src/modules/m_regex_stdlib.cpp +++ b/src/modules/m_regex_stdlib.cpp @@ -59,15 +59,14 @@ class StdRegexFactory : public RegexFactory class ModuleRegexStd : public Module { -public: + private: StdRegexFactory ref; - ModuleRegexStd() : ref(this) - { - } - Version GetVersion() override + public: + ModuleRegexStd() + : Module(VF_VENDOR, "Regex Provider Module for std::regex") + , ref(this) { - return Version("Regex Provider Module for std::regex", VF_VENDOR); } void ReadConfig(ConfigStatus& status) override diff --git a/src/modules/m_remove.cpp b/src/modules/m_remove.cpp index 33d908cd2..632ef75fe 100644 --- a/src/modules/m_remove.cpp +++ b/src/modules/m_remove.cpp @@ -204,6 +204,7 @@ class ModuleRemove : public Module , public ISupport::EventListener { + private: ChanModeReference nokicksmode; CommandRemove cmd1; CommandFpart cmd2; @@ -211,7 +212,8 @@ class ModuleRemove public: ModuleRemove() - : ISupport::EventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the REMOVE command as an alternative to KICK, it makes users appear to have left the channel") + , ISupport::EventListener(this) , nokicksmode(this, "nokick") , cmd1(this, supportnokicks, nokicksmode) , cmd2(this, supportnokicks, nokicksmode) @@ -229,11 +231,6 @@ class ModuleRemove supportnokicks = tag->getBool("supportnokicks"); cmd1.protectedrank = cmd2.protectedrank = tag->getUInt("protectedrank", 50000); } - - Version GetVersion() override - { - return Version("Provides the REMOVE command as an alternative to KICK, it makes users appear to have left the channel", VF_OPTCOMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleRemove) diff --git a/src/modules/m_repeat.cpp b/src/modules/m_repeat.cpp index de3a8b3f3..76e04b769 100644 --- a/src/modules/m_repeat.cpp +++ b/src/modules/m_repeat.cpp @@ -357,7 +357,8 @@ class RepeatModule : public Module public: RepeatModule() - : exemptionprov(this) + : Module(VF_VENDOR | VF_COMMON, "Provides channel mode +E, blocking of similar messages") + , exemptionprov(this) , rm(this) { } @@ -411,9 +412,9 @@ class RepeatModule : public Module ServerInstance->Modules.SetPriority(this, I_OnUserPreMessage, PRIORITY_LAST); } - Version GetVersion() override + void GetLinkData(std::string& data) override { - return Version("Provides channel mode +E, blocking of similar messages", VF_COMMON|VF_VENDOR, rm.GetModuleSettings()); + data = rm.GetModuleSettings(); } }; diff --git a/src/modules/m_restrictchans.cpp b/src/modules/m_restrictchans.cpp index e00a9e84e..12d5bd239 100644 --- a/src/modules/m_restrictchans.cpp +++ b/src/modules/m_restrictchans.cpp @@ -30,6 +30,7 @@ typedef insp::flat_set AllowChans; class ModuleRestrictChans : public Module { + private: AllowChans allowchans; bool allowregistered = false; @@ -52,6 +53,11 @@ class ModuleRestrictChans : public Module } public: + ModuleRestrictChans() + : Module(VF_VENDOR, "Allows restricting who can create channels") + { + } + void ReadConfig(ConfigStatus& status) override { AllowChans newallows; @@ -82,11 +88,6 @@ class ModuleRestrictChans : public Module return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Allows restricting who can create channels", VF_VENDOR); - } }; MODULE_INIT(ModuleRestrictChans) diff --git a/src/modules/m_restrictmsg.cpp b/src/modules/m_restrictmsg.cpp index 13117e713..a7682da1e 100644 --- a/src/modules/m_restrictmsg.cpp +++ b/src/modules/m_restrictmsg.cpp @@ -55,7 +55,8 @@ class ModuleRestrictMsg public: ModuleRestrictMsg() - : CTCTags::EventListener(this) + : Module(VF_VENDOR, "Forbids users from messaging each other, but users may still message opers and opers may message other opers") + , CTCTags::EventListener(this) { } @@ -68,11 +69,6 @@ class ModuleRestrictMsg { return HandleMessage(user, target); } - - Version GetVersion() override - { - return Version("Forbids users from messaging each other, but users may still message opers and opers may message other opers", VF_VENDOR); - } }; MODULE_INIT(ModuleRestrictMsg) diff --git a/src/modules/m_rline.cpp b/src/modules/m_rline.cpp index f93dfe8c5..bb9711e95 100644 --- a/src/modules/m_rline.cpp +++ b/src/modules/m_rline.cpp @@ -220,8 +220,11 @@ class CommandRLine : public Command } }; -class ModuleRLine : public Module, public Stats::EventListener +class ModuleRLine + : public Module + , public Stats::EventListener { + private: dynamic_reference rxfactory; RLineFactory f; CommandRLine r; @@ -231,7 +234,8 @@ class ModuleRLine : public Module, public Stats::EventListener public: ModuleRLine() - : Stats::EventListener(this) + : Module(VF_VENDOR | VF_COMMON, "Provides support for banning users through regular expression patterns") + , Stats::EventListener(this) , rxfactory(this, "regex") , f(rxfactory) , r(this, f) @@ -249,9 +253,10 @@ class ModuleRLine : public Module, public Stats::EventListener ServerInstance->XLines->UnregisterFactory(&f); } - Version GetVersion() override + void GetLinkData(std::string& data) override { - return Version("Provides support for banning users through regular expression patterns", VF_COMMON | VF_VENDOR, rxfactory ? rxfactory->name : ""); + if (rxfactory) + data = rxfactory->name; } ModResult OnUserRegister(LocalUser* user) override diff --git a/src/modules/m_rmode.cpp b/src/modules/m_rmode.cpp index 8107b7053..2bb438d5a 100644 --- a/src/modules/m_rmode.cpp +++ b/src/modules/m_rmode.cpp @@ -99,14 +99,14 @@ class CommandRMode : public Command class ModuleRMode : public Module { + private: CommandRMode cmd; public: - ModuleRMode() : cmd(this) { } - - Version GetVersion() override + ModuleRMode() + : Module(VF_VENDOR, "Allows glob-based removal of list modes") + , cmd(this) { - return Version("Allows glob-based removal of list modes", VF_VENDOR); } }; diff --git a/src/modules/m_sajoin.cpp b/src/modules/m_sajoin.cpp index 2cbfaead2..62b8f42f6 100644 --- a/src/modules/m_sajoin.cpp +++ b/src/modules/m_sajoin.cpp @@ -116,17 +116,15 @@ class CommandSajoin : public Command class ModuleSajoin : public Module { + private: CommandSajoin cmd; + public: ModuleSajoin() - : cmd(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the SAJOIN command, allows opers to force-join users to channels") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the SAJOIN command, allows opers to force-join users to channels", VF_OPTCOMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleSajoin) diff --git a/src/modules/m_sakick.cpp b/src/modules/m_sakick.cpp index 262470fc8..9c5de517e 100644 --- a/src/modules/m_sakick.cpp +++ b/src/modules/m_sakick.cpp @@ -86,17 +86,15 @@ class CommandSakick : public Command class ModuleSakick : public Module { + private: CommandSakick cmd; + public: ModuleSakick() - : cmd(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the SAKICK command") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the SAKICK command", VF_OPTCOMMON|VF_VENDOR); - } }; MODULE_INIT(ModuleSakick) diff --git a/src/modules/m_samode.cpp b/src/modules/m_samode.cpp index 20c2a9671..6f6e87cf2 100644 --- a/src/modules/m_samode.cpp +++ b/src/modules/m_samode.cpp @@ -92,18 +92,16 @@ class CommandSamode : public Command class ModuleSaMode : public Module { + private: CommandSamode cmd; + public: ModuleSaMode() - : cmd(this) + : Module(VF_VENDOR, "Provides the SAMODE command, allows opers to change modes on channels and users") + , cmd(this) { } - Version GetVersion() override - { - return Version("Provides the SAMODE command, allows opers to change modes on channels and users", VF_VENDOR); - } - ModResult OnPreMode(User* source, User* dest, Channel* channel, Modes::ChangeList& modes) override { if (cmd.active) diff --git a/src/modules/m_sanick.cpp b/src/modules/m_sanick.cpp index 0c96b6df4..a1f883910 100644 --- a/src/modules/m_sanick.cpp +++ b/src/modules/m_sanick.cpp @@ -91,17 +91,15 @@ class CommandSanick : public Command class ModuleSanick : public Module { + private: CommandSanick cmd; + public: ModuleSanick() - : cmd(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the SANICK command, allows opers to change the nicknames of users") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the SANICK command, allows opers to change the nicknames of users", VF_OPTCOMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleSanick) diff --git a/src/modules/m_sapart.cpp b/src/modules/m_sapart.cpp index c96441d10..169d23a62 100644 --- a/src/modules/m_sapart.cpp +++ b/src/modules/m_sapart.cpp @@ -92,17 +92,15 @@ class CommandSapart : public Command class ModuleSapart : public Module { + private: CommandSapart cmd; + public: ModuleSapart() - : cmd(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the SAPART command, allows opers to force-part users from channels") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the SAPART command, allows opers to force-part users from channels", VF_OPTCOMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleSapart) diff --git a/src/modules/m_saquit.cpp b/src/modules/m_saquit.cpp index ccf578cfb..aea0e68ce 100644 --- a/src/modules/m_saquit.cpp +++ b/src/modules/m_saquit.cpp @@ -74,17 +74,15 @@ class CommandSaquit : public Command class ModuleSaquit : public Module { + private: CommandSaquit cmd; + public: ModuleSaquit() - : cmd(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the SAQUIT command, allows opers to force-quit users") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the SAQUIT command, allows opers to force-quit users", VF_OPTCOMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleSaquit) diff --git a/src/modules/m_sasl.cpp b/src/modules/m_sasl.cpp index a5b8f2cc9..c613cd5fd 100644 --- a/src/modules/m_sasl.cpp +++ b/src/modules/m_sasl.cpp @@ -47,6 +47,7 @@ static std::string sasl_target; class ServerTracker : public ServerProtocol::LinkEventListener { + private: bool online; void Update(const Server* server, bool linked) @@ -401,6 +402,7 @@ class CommandSASL : public Command class ModuleSASL : public Module { + private: SimpleExtItem authExt; ServerTracker servertracker; SASLCap cap; @@ -411,7 +413,8 @@ class ModuleSASL : public Module public: ModuleSASL() - : authExt(this, "sasl_auth", ExtensionItem::EXT_USER) + : Module(VF_VENDOR, "Provides support for IRC Authentication Layer (aka: SASL) via AUTHENTICATE") + , authExt(this, "sasl_auth", ExtensionItem::EXT_USER) , servertracker(this) , cap(this, servertracker) , auth(this, authExt, cap) @@ -447,11 +450,6 @@ class ModuleSASL : public Module if ((target == NULL) && (extname == "saslmechlist")) cap.SetMechlist(extdata); } - - Version GetVersion() override - { - return Version("Provides support for IRC Authentication Layer (aka: SASL) via AUTHENTICATE", VF_VENDOR); - } }; MODULE_INIT(ModuleSASL) diff --git a/src/modules/m_satopic.cpp b/src/modules/m_satopic.cpp index 39b2e8431..b03d5a585 100644 --- a/src/modules/m_satopic.cpp +++ b/src/modules/m_satopic.cpp @@ -68,17 +68,15 @@ class CommandSATopic : public Command class ModuleSATopic : public Module { + private: CommandSATopic cmd; + public: ModuleSATopic() - : cmd(this) + : Module(VF_VENDOR, "Provides the SATOPIC command") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the SATOPIC command", VF_VENDOR); - } }; MODULE_INIT(ModuleSATopic) diff --git a/src/modules/m_securelist.cpp b/src/modules/m_securelist.cpp index bc38eeff5..e3ba1056e 100644 --- a/src/modules/m_securelist.cpp +++ b/src/modules/m_securelist.cpp @@ -41,14 +41,11 @@ class ModuleSecureList public: ModuleSecureList() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Disallows the LIST command for recently connected clients to hinder spam bots") + , ISupport::EventListener(this) { } - Version GetVersion() override - { - return Version("Disallows the LIST command for recently connected clients to hinder spam bots", VF_VENDOR); - } void ReadConfig(ConfigStatus& status) override { diff --git a/src/modules/m_seenicks.cpp b/src/modules/m_seenicks.cpp index 38477e8a4..b44c349f8 100644 --- a/src/modules/m_seenicks.cpp +++ b/src/modules/m_seenicks.cpp @@ -26,16 +26,16 @@ class ModuleSeeNicks : public Module { public: + ModuleSeeNicks() + : Module(VF_VENDOR, "Provides snomasks 'n' and 'N' to see local and remote nickchanges") + { + } + void init() override { ServerInstance->SNO.EnableSnomask('n',"NICK"); } - Version GetVersion() override - { - return Version("Provides snomasks 'n' and 'N' to see local and remote nickchanges", VF_VENDOR); - } - void OnUserPostNick(User* user, const std::string &oldnick) override { ServerInstance->SNO.WriteToSnoMask(IS_LOCAL(user) ? 'n' : 'N',"User %s changed their nickname to %s", oldnick.c_str(), user->nick.c_str()); diff --git a/src/modules/m_serverban.cpp b/src/modules/m_serverban.cpp index aee8f43a6..6658eb282 100644 --- a/src/modules/m_serverban.cpp +++ b/src/modules/m_serverban.cpp @@ -32,15 +32,11 @@ class ModuleServerBan { public: ModuleServerBan() - : ISupport::EventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides extban 's' to ban users connected to a specified server") + , ISupport::EventListener(this) { } - Version GetVersion() override - { - return Version("Provides extban 's' to ban users connected to a specified server", VF_OPTCOMMON|VF_VENDOR); - } - ModResult OnCheckBan(User *user, Channel *c, const std::string& mask) override { if ((mask.length() > 2) && (mask[0] == 's') && (mask[1] == ':')) diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp index 2d2b9cc25..3ef151b30 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -161,7 +161,8 @@ class ModuleServicesAccount public: ModuleServicesAccount() - : CTCTags::EventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides support for ircu-style services accounts, including channel mode +R, etc") + , CTCTags::EventListener(this) , ISupport::EventListener(this) , Whois::EventListener(this) , calleridapi(this) @@ -322,11 +323,6 @@ class ModuleServicesAccount return MOD_RES_DENY; return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides support for ircu-style services accounts, including channel mode +R, etc", VF_OPTCOMMON|VF_VENDOR); - } }; MODULE_INIT(ModuleServicesAccount) diff --git a/src/modules/m_servprotect.cpp b/src/modules/m_servprotect.cpp index 2c216c0d6..5c66cb15d 100644 --- a/src/modules/m_servprotect.cpp +++ b/src/modules/m_servprotect.cpp @@ -55,22 +55,23 @@ class ServProtectMode : public ModeHandler } }; -class ModuleServProtectMode : public Module, public Whois::EventListener, public Whois::LineEventListener +class ModuleServProtectMode + : public Module + , public Whois::EventListener + , public Whois::LineEventListener { + private: ServProtectMode bm; + public: ModuleServProtectMode() - : Whois::EventListener(this) + : Module(VF_VENDOR, "Provides user mode +k to protect services from kicks, kills, and mode changes") + , Whois::EventListener(this) , Whois::LineEventListener(this) , bm(this) { } - Version GetVersion() override - { - return Version("Provides user mode +k to protect services from kicks, kills, and mode changes", VF_VENDOR); - } - void OnWhois(Whois::Context& whois) override { if (whois.GetTarget()->IsModeSet(bm)) diff --git a/src/modules/m_sethost.cpp b/src/modules/m_sethost.cpp index a96c3b9fe..aa7918db0 100644 --- a/src/modules/m_sethost.cpp +++ b/src/modules/m_sethost.cpp @@ -70,11 +70,13 @@ class CommandSethost : public Command class ModuleSetHost : public Module { + private: CommandSethost cmd; public: ModuleSetHost() - : cmd(this) + : Module(VF_VENDOR, "Provides the SETHOST command") + , cmd(this) { } @@ -87,11 +89,6 @@ class ModuleSetHost : public Module for (std::string::const_iterator n = hmap.begin(); n != hmap.end(); n++) cmd.hostmap.set(static_cast(*n)); } - - Version GetVersion() override - { - return Version("Provides the SETHOST command", VF_VENDOR); - } }; MODULE_INIT(ModuleSetHost) diff --git a/src/modules/m_setident.cpp b/src/modules/m_setident.cpp index 3f8ecc3da..77b8f265e 100644 --- a/src/modules/m_setident.cpp +++ b/src/modules/m_setident.cpp @@ -61,17 +61,15 @@ class CommandSetident : public Command class ModuleSetIdent : public Module { + private: CommandSetident cmd; public: - ModuleSetIdent() : cmd(this) + ModuleSetIdent() + : Module(VF_VENDOR, "Provides the SETIDENT command") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the SETIDENT command", VF_VENDOR); - } }; MODULE_INIT(ModuleSetIdent) diff --git a/src/modules/m_setidle.cpp b/src/modules/m_setidle.cpp index d8f5f57f3..db75b82b3 100644 --- a/src/modules/m_setidle.cpp +++ b/src/modules/m_setidle.cpp @@ -67,17 +67,15 @@ class CommandSetidle : public SplitCommand class ModuleSetIdle : public Module { + private: CommandSetidle cmd; + public: ModuleSetIdle() - : cmd(this) + : Module(VF_VENDOR, "Provides the SETIDLE command, allows opers to set their idle time") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the SETIDLE command, allows opers to set their idle time", VF_VENDOR); - } }; MODULE_INIT(ModuleSetIdle) diff --git a/src/modules/m_setname.cpp b/src/modules/m_setname.cpp index 9b1108432..97d7cf877 100644 --- a/src/modules/m_setname.cpp +++ b/src/modules/m_setname.cpp @@ -76,7 +76,8 @@ class ModuleSetName : public Module public: ModuleSetName() - : cmd(this) + : Module(VF_VENDOR, "Provides the SETNAME command") + , cmd(this) , setnameevprov(this, "SETNAME") { } @@ -103,11 +104,6 @@ class ModuleSetName : public Module ClientProtocol::Event protoev(setnameevprov, msg); IRCv3::WriteNeighborsWithCap(user, protoev, cmd.cap, true); } - - Version GetVersion() override - { - return Version("Provides the SETNAME command", VF_VENDOR); - } }; MODULE_INIT(ModuleSetName) diff --git a/src/modules/m_sha1.cpp b/src/modules/m_sha1.cpp index 0036f1e81..6a4924ec1 100644 --- a/src/modules/m_sha1.cpp +++ b/src/modules/m_sha1.cpp @@ -182,19 +182,16 @@ class SHA1HashProvider : public HashProvider class ModuleSHA1 : public Module { + private: SHA1HashProvider sha1; public: ModuleSHA1() - : sha1(this) + : Module(VF_VENDOR, "Implements SHA-1 hashing") + , sha1(this) { big_endian = (htonl(1337) == 1337); } - - Version GetVersion() override - { - return Version("Implements SHA-1 hashing", VF_VENDOR); - } }; MODULE_INIT(ModuleSHA1) diff --git a/src/modules/m_sha256.cpp b/src/modules/m_sha256.cpp index 64098500b..a07529cb7 100644 --- a/src/modules/m_sha256.cpp +++ b/src/modules/m_sha256.cpp @@ -56,15 +56,14 @@ class HashSHA256 : public HashProvider class ModuleSHA256 : public Module { + private: HashSHA256 sha; - public: - ModuleSHA256() : sha(this) - { - } - Version GetVersion() override + public: + ModuleSHA256() + : Module(VF_VENDOR, "Implements SHA-256 hashing") + , sha(this) { - return Version("Implements SHA-256 hashing", VF_VENDOR); } }; diff --git a/src/modules/m_showfile.cpp b/src/modules/m_showfile.cpp index 43782d2e2..185a1b794 100644 --- a/src/modules/m_showfile.cpp +++ b/src/modules/m_showfile.cpp @@ -100,6 +100,7 @@ class CommandShowFile : public Command class ModuleShowFile : public Module { + private: std::vector cmds; void ReadTag(ConfigTag* tag, std::vector& newcmds) @@ -140,6 +141,11 @@ class ModuleShowFile : public Module } public: + ModuleShowFile() + : Module(VF_VENDOR, "Provides support for showing text files to users") + { + } + void ReadConfig(ConfigStatus& status) override { std::vector newcmds; @@ -171,11 +177,6 @@ class ModuleShowFile : public Module { stdalgo::delete_all(cmds); } - - Version GetVersion() override - { - return Version("Provides support for showing text files to users", VF_VENDOR); - } }; MODULE_INIT(ModuleShowFile) diff --git a/src/modules/m_showwhois.cpp b/src/modules/m_showwhois.cpp index 1a4f015b1..c546fd61c 100644 --- a/src/modules/m_showwhois.cpp +++ b/src/modules/m_showwhois.cpp @@ -74,6 +74,7 @@ class WhoisNoticeCmd : public Command class ModuleShowwhois : public Module, public Whois::EventListener { + private: bool ShowWhoisFromOpers; SeeWhois sw; WhoisNoticeCmd cmd; @@ -81,7 +82,8 @@ class ModuleShowwhois : public Module, public Whois::EventListener public: ModuleShowwhois() - : Whois::EventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides user mode +W for opers to see when a user uses WHOIS on them") + , Whois::EventListener(this) , sw(this) , cmd(this) { @@ -95,11 +97,6 @@ class ModuleShowwhois : public Module, public Whois::EventListener ShowWhoisFromOpers = tag->getBool("showfromopers", true); } - Version GetVersion() override - { - return Version("Provides user mode +W for opers to see when a user uses WHOIS on them", VF_OPTCOMMON|VF_VENDOR); - } - void OnWhois(Whois::Context& whois) override { User* const source = whois.GetSource(); diff --git a/src/modules/m_shun.cpp b/src/modules/m_shun.cpp index 3176b915f..0bc8c22f4 100644 --- a/src/modules/m_shun.cpp +++ b/src/modules/m_shun.cpp @@ -152,6 +152,7 @@ class CommandShun : public Command class ModuleShun : public Module, public Stats::EventListener { + private: CommandShun cmd; ShunFactory f; insp::flat_set ShunEnabledCommands; @@ -159,7 +160,8 @@ class ModuleShun : public Module, public Stats::EventListener public: ModuleShun() - : Stats::EventListener(this) + : Module(VF_VENDOR | VF_COMMON, "Provides the SHUN command, which stops a user from executing all except configured commands") + , Stats::EventListener(this) , cmd(this) { } @@ -235,11 +237,6 @@ class ModuleShun : public Module, public Stats::EventListener /* if we're here, allow the command. */ return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides the SHUN command, which stops a user from executing all except configured commands", VF_VENDOR|VF_COMMON); - } }; MODULE_INIT(ModuleShun) diff --git a/src/modules/m_silence.cpp b/src/modules/m_silence.cpp index 5c097b6a3..d18df486b 100644 --- a/src/modules/m_silence.cpp +++ b/src/modules/m_silence.cpp @@ -437,7 +437,8 @@ class ModuleSilence public: ModuleSilence() - : CTCTags::EventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides support for blocking users with the SILENCE command") + , CTCTags::EventListener(this) , ISupport::EventListener(this) , cmd(this) { @@ -517,11 +518,6 @@ class ModuleSilence return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Provides support for blocking users with the SILENCE command", VF_OPTCOMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleSilence) diff --git a/src/modules/m_spanningtree/capab.cpp b/src/modules/m_spanningtree/capab.cpp index b42712074..61efa0c48 100644 --- a/src/modules/m_spanningtree/capab.cpp +++ b/src/modules/m_spanningtree/capab.cpp @@ -40,17 +40,18 @@ std::string TreeSocket::MyModules(int filter) for (ModuleManager::ModuleMap::const_iterator i = modlist.begin(); i != modlist.end(); ++i) { Module* const mod = i->second; - Version v = mod->GetVersion(); - if ((!(v.Flags & filter))) + if ((!(mod->flags & filter))) continue; if (i != modlist.begin()) capabilities.push_back(' '); - capabilities.append(i->first); - if (!v.link_data.empty()) + + std::string link_data; + mod->GetLinkData(link_data); + if (!link_data.empty()) { capabilities.push_back('='); - capabilities.append(v.link_data); + capabilities.append(link_data); } } diff --git a/src/modules/m_spanningtree/main.cpp b/src/modules/m_spanningtree/main.cpp index 10c380c54..c4d559612 100644 --- a/src/modules/m_spanningtree/main.cpp +++ b/src/modules/m_spanningtree/main.cpp @@ -40,7 +40,8 @@ #include "translate.h" ModuleSpanningTree::ModuleSpanningTree() - : Away::EventListener(this) + : Module(VF_VENDOR, "Allows servers to be linked") + , Away::EventListener(this) , Stats::EventListener(this) , CTCTags::EventListener(this) , rconnect(this) @@ -665,12 +666,15 @@ void ModuleSpanningTree::OnLoadModule(Module* mod) std::string data; data.push_back('+'); data.append(mod->ModuleSourceFile); - Version v = mod->GetVersion(); - if (!v.link_data.empty()) + + std::string link_data; + mod->GetLinkData(link_data); + if (!link_data.empty()) { data.push_back('='); - data.append(v.link_data); + data.append(link_data); } + ServerInstance->PI->SendMetaData("modules", data); } @@ -816,11 +820,6 @@ ModuleSpanningTree::~ModuleSpanningTree() delete Utils; } -Version ModuleSpanningTree::GetVersion() -{ - return Version("Allows servers to be linked", VF_VENDOR); -} - /* It is IMPORTANT that m_spanningtree is the last module in the chain * so that any activity it sees is FINAL, e.g. we arent going to send out * a NICK message before m_cloaking has finished putting the +x on the user, diff --git a/src/modules/m_spanningtree/main.h b/src/modules/m_spanningtree/main.h index 40f2724f5..e845007e6 100644 --- a/src/modules/m_spanningtree/main.h +++ b/src/modules/m_spanningtree/main.h @@ -224,6 +224,5 @@ class ModuleSpanningTree void OnShutdown(const std::string& reason) override; CullResult cull() override; ~ModuleSpanningTree(); - Version GetVersion() override; void Prioritize() override; }; diff --git a/src/modules/m_spanningtree/postcommand.cpp b/src/modules/m_spanningtree/postcommand.cpp index 62ef7e484..70965e936 100644 --- a/src/modules/m_spanningtree/postcommand.cpp +++ b/src/modules/m_spanningtree/postcommand.cpp @@ -74,9 +74,7 @@ void SpanningTreeUtilities::RouteCommand(TreeServer* origin, CommandBase* thiscm else { Module* srcmodule = thiscmd->creator; - Version ver = srcmodule->GetVersion(); - - if (!(ver.Flags & (VF_COMMON | VF_CORE)) && srcmodule != Creator) + if (!(srcmodule->flags & (VF_COMMON | VF_CORE)) && srcmodule != Creator) { ServerInstance->Logs.Log(MODNAME, LOG_DEFAULT, "Routed command %s from non-VF_COMMON module %s", command.c_str(), srcmodule->ModuleSourceFile.c_str()); diff --git a/src/modules/m_sqlauth.cpp b/src/modules/m_sqlauth.cpp index b923ed6ea..8e3096bd5 100644 --- a/src/modules/m_sqlauth.cpp +++ b/src/modules/m_sqlauth.cpp @@ -135,7 +135,8 @@ class ModuleSQLAuth : public Module public: ModuleSQLAuth() - : pendingExt(this, "sqlauth-wait", ExtensionItem::EXT_USER) + : Module(VF_VENDOR, "Allow/deny connections based upon an arbitrary SQL table") + , pendingExt(this, "sqlauth-wait", ExtensionItem::EXT_USER) , SQL(this, "SQL") , sslapi(this) { @@ -216,11 +217,6 @@ class ModuleSQLAuth : public Module } return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Allow/deny connections based upon an arbitrary SQL table", VF_VENDOR); - } }; MODULE_INIT(ModuleSQLAuth) diff --git a/src/modules/m_sqloper.cpp b/src/modules/m_sqloper.cpp index 71264f26f..09092e5a8 100644 --- a/src/modules/m_sqloper.cpp +++ b/src/modules/m_sqloper.cpp @@ -163,6 +163,7 @@ class OperQuery : public SQL::Query class ModuleSQLOper : public Module { + private: // Whether OperQuery is running bool active = false; std::string query; @@ -172,7 +173,8 @@ class ModuleSQLOper : public Module public: ModuleSQLOper() - : SQL(this, "SQL") + : Module(VF_VENDOR, "Allows storage of oper credentials in an SQL table") + , SQL(this, "SQL") { } @@ -245,11 +247,6 @@ public: */ ServerInstance->Modules.SetPriority(this, I_OnPreCommand, PRIORITY_FIRST); } - - Version GetVersion() override - { - return Version("Allows storage of oper credentials in an SQL table", VF_VENDOR); - } }; MODULE_INIT(ModuleSQLOper) diff --git a/src/modules/m_sslinfo.cpp b/src/modules/m_sslinfo.cpp index 853871aae..d841379ec 100644 --- a/src/modules/m_sslinfo.cpp +++ b/src/modules/m_sslinfo.cpp @@ -206,18 +206,14 @@ class ModuleSSLInfo public: ModuleSSLInfo() - : WebIRC::EventListener(this) + : Module(VF_VENDOR, "Provides user SSL information and certificate utilities") + , WebIRC::EventListener(this) , Whois::EventListener(this) , Who::EventListener(this) , cmd(this) { } - Version GetVersion() override - { - return Version("Provides user SSL information and certificate utilities", VF_VENDOR); - } - void OnWhois(Whois::Context& whois) override { ssl_cert* cert = cmd.sslapi.GetCertificate(whois.GetTarget()); diff --git a/src/modules/m_sslmodes.cpp b/src/modules/m_sslmodes.cpp index e9d34600f..ce8a89daf 100644 --- a/src/modules/m_sslmodes.cpp +++ b/src/modules/m_sslmodes.cpp @@ -154,7 +154,8 @@ class ModuleSSLModes public: ModuleSSLModes() - : CTCTags::EventListener(this) + : Module(VF_VENDOR, "Provides user and channel mode +z to allow for SSL-only channels, queries and notices") + , CTCTags::EventListener(this) , ISupport::EventListener(this) , api(this) , sslm(this, api) @@ -241,11 +242,6 @@ class ModuleSSLModes { tokens["EXTBAN"].push_back('z'); } - - Version GetVersion() override - { - return Version("Provides user and channel mode +z to allow for SSL-only channels, queries and notices", VF_VENDOR); - } }; MODULE_INIT(ModuleSSLModes) diff --git a/src/modules/m_starttls.cpp b/src/modules/m_starttls.cpp index 6712e179f..8cc4814f0 100644 --- a/src/modules/m_starttls.cpp +++ b/src/modules/m_starttls.cpp @@ -82,13 +82,15 @@ class CommandStartTLS : public SplitCommand class ModuleStartTLS : public Module { + private: CommandStartTLS starttls; Cap::Capability tls; dynamic_reference_nocheck ssl; public: ModuleStartTLS() - : starttls(this, ssl) + : Module(VF_VENDOR, "Provides the STARTTLS command") + , starttls(this, ssl) , tls(this, "tls") , ssl(this, "ssl") { @@ -104,11 +106,6 @@ class ModuleStartTLS : public Module else ssl.SetProvider("ssl/" + newprovider); } - - Version GetVersion() override - { - return Version("Provides the STARTTLS command", VF_VENDOR); - } }; MODULE_INIT(ModuleStartTLS) diff --git a/src/modules/m_stripcolor.cpp b/src/modules/m_stripcolor.cpp index af0694b38..429d224bd 100644 --- a/src/modules/m_stripcolor.cpp +++ b/src/modules/m_stripcolor.cpp @@ -41,7 +41,8 @@ class ModuleStripColor public: ModuleStripColor() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides channel mode +S, strip ansi color") + , ISupport::EventListener(this) , exemptionprov(this) , csc(this, "stripcolor", 'S') , usc(this, "u_stripcolor", 'S') @@ -106,12 +107,6 @@ class ModuleStripColor InspIRCd::StripColor(partmessage); } } - - Version GetVersion() override - { - return Version("Provides channel mode +S, strip ansi color", VF_VENDOR); - } - }; MODULE_INIT(ModuleStripColor) diff --git a/src/modules/m_svshold.cpp b/src/modules/m_svshold.cpp index 864f33b63..31cc6ff27 100644 --- a/src/modules/m_svshold.cpp +++ b/src/modules/m_svshold.cpp @@ -176,13 +176,15 @@ class CommandSvshold : public Command class ModuleSVSHold : public Module, public Stats::EventListener { + private: CommandSvshold cmd; SVSHoldFactory s; public: ModuleSVSHold() - : Stats::EventListener(this) + : Module(VF_VENDOR | VF_COMMON, "Implements SVSHOLD, like Q-lines, but can only be added/removed by Services") + , Stats::EventListener(this) , cmd(this) { } @@ -225,11 +227,6 @@ class ModuleSVSHold : public Module, public Stats::EventListener ServerInstance->XLines->DelAll("SVSHOLD"); ServerInstance->XLines->UnregisterFactory(&s); } - - Version GetVersion() override - { - return Version("Implements SVSHOLD, like Q-lines, but can only be added/removed by Services", VF_COMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleSVSHold) diff --git a/src/modules/m_swhois.cpp b/src/modules/m_swhois.cpp index 2f9bd3a04..58a70b6c5 100644 --- a/src/modules/m_swhois.cpp +++ b/src/modules/m_swhois.cpp @@ -92,13 +92,17 @@ class CommandSwhois : public Command }; -class ModuleSWhois : public Module, public Whois::LineEventListener +class ModuleSWhois + : public Module + , public Whois::LineEventListener { + private: CommandSwhois cmd; public: ModuleSWhois() - : Whois::LineEventListener(this) + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the SWHOIS command which allows setting of arbitrary WHOIS lines") + , Whois::LineEventListener(this) , cmd(this) { } @@ -156,11 +160,6 @@ class ModuleSWhois : public Module, public Whois::LineEventListener if (dest && (extname == "swhois")) cmd.operblock.unset(dest); } - - Version GetVersion() override - { - return Version("Provides the SWHOIS command which allows setting of arbitrary WHOIS lines", VF_OPTCOMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleSWhois) diff --git a/src/modules/m_timedbans.cpp b/src/modules/m_timedbans.cpp index cd8a1ec60..9f83cd967 100644 --- a/src/modules/m_timedbans.cpp +++ b/src/modules/m_timedbans.cpp @@ -193,12 +193,14 @@ class ChannelMatcher class ModuleTimedBans : public Module { + private: CommandTban cmd; BanWatcher banwatcher; public: ModuleTimedBans() - : cmd(this) + : Module(VF_VENDOR | VF_COMMON, "Provides the TBAN command, timed channel bans") + , cmd(this) , banwatcher(this) { } @@ -241,11 +243,6 @@ class ModuleTimedBans : public Module // Remove all timed bans affecting the channel from internal bookkeeping TimedBanList.erase(std::remove_if(TimedBanList.begin(), TimedBanList.end(), ChannelMatcher(chan)), TimedBanList.end()); } - - Version GetVersion() override - { - return Version("Provides the TBAN command, timed channel bans", VF_COMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleTimedBans) diff --git a/src/modules/m_tline.cpp b/src/modules/m_tline.cpp index 75103f202..9097978d9 100644 --- a/src/modules/m_tline.cpp +++ b/src/modules/m_tline.cpp @@ -75,17 +75,15 @@ class CommandTline : public Command class ModuleTLine : public Module { + private: CommandTline cmd; + public: ModuleTLine() - : cmd(this) + : Module(VF_VENDOR, "Provides the TLINE command, used to test how many users a mask matches against") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the TLINE command, used to test how many users a mask matches against", VF_VENDOR); - } }; MODULE_INIT(ModuleTLine) diff --git a/src/modules/m_topiclock.cpp b/src/modules/m_topiclock.cpp index ea5b96dd4..ab50f9f8f 100644 --- a/src/modules/m_topiclock.cpp +++ b/src/modules/m_topiclock.cpp @@ -128,12 +128,15 @@ class FlagExtItem : public ExtensionItem class ModuleTopicLock : public Module { + private: CommandSVSTOPIC cmd; FlagExtItem topiclock; public: ModuleTopicLock() - : cmd(this), topiclock("topiclock", this) + : Module(VF_VENDOR | VF_COMMON, "Implements server-side topic locks and the server-to-server command SVSTOPIC") + , cmd(this) + , topiclock("topiclock", this) { } @@ -148,11 +151,6 @@ class ModuleTopicLock : public Module return MOD_RES_PASSTHRU; } - - Version GetVersion() override - { - return Version("Implements server-side topic locks and the server-to-server command SVSTOPIC", VF_COMMON | VF_VENDOR); - } }; MODULE_INIT(ModuleTopicLock) diff --git a/src/modules/m_uhnames.cpp b/src/modules/m_uhnames.cpp index da684981f..6a36cb6ab 100644 --- a/src/modules/m_uhnames.cpp +++ b/src/modules/m_uhnames.cpp @@ -38,17 +38,13 @@ class ModuleUHNames public: ModuleUHNames() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides the UHNAMES (CAP userhost-in-names) capability") + , ISupport::EventListener(this) , Names::EventListener(this) , cap(this, "userhost-in-names") { } - Version GetVersion() override - { - return Version("Provides the UHNAMES (CAP userhost-in-names) capability", VF_VENDOR); - } - void OnBuildISupport(ISupport::TokenMap& tokens) override { // The legacy PROTOCTL system is a wrapper around the cap. diff --git a/src/modules/m_uninvite.cpp b/src/modules/m_uninvite.cpp index cb42f003a..05c97a451 100644 --- a/src/modules/m_uninvite.cpp +++ b/src/modules/m_uninvite.cpp @@ -120,18 +120,15 @@ class CommandUninvite : public Command class ModuleUninvite : public Module { + private: CommandUninvite cmd; public: - - ModuleUninvite() : cmd(this) + ModuleUninvite() + : Module(VF_VENDOR | VF_OPTCOMMON, "Provides the UNINVITE command which lets users un-invite other users from channels") + , cmd(this) { } - - Version GetVersion() override - { - return Version("Provides the UNINVITE command which lets users un-invite other users from channels", VF_VENDOR | VF_OPTCOMMON); - } }; MODULE_INIT(ModuleUninvite) diff --git a/src/modules/m_userip.cpp b/src/modules/m_userip.cpp index 27f311cc2..7bc9f4feb 100644 --- a/src/modules/m_userip.cpp +++ b/src/modules/m_userip.cpp @@ -91,7 +91,8 @@ class ModuleUserIP public: ModuleUserIP() - : ISupport::EventListener(this) + : Module(VF_VENDOR, "Provides the USERIP command") + , ISupport::EventListener(this) , cmd(this) { } @@ -100,11 +101,6 @@ class ModuleUserIP { tokens["USERIP"]; } - - Version GetVersion() override - { - return Version("Provides the USERIP command", VF_VENDOR); - } }; MODULE_INIT(ModuleUserIP) diff --git a/src/modules/m_vhost.cpp b/src/modules/m_vhost.cpp index ae858ab68..0326a930a 100644 --- a/src/modules/m_vhost.cpp +++ b/src/modules/m_vhost.cpp @@ -85,11 +85,13 @@ class CommandVhost : public Command class ModuleVHost : public Module { + private: CommandVhost cmd; public: ModuleVHost() - : cmd(this) + : Module(VF_VENDOR, "Provides masking of user hostnames via the VHOST command") + , cmd(this) { } @@ -125,11 +127,6 @@ class ModuleVHost : public Module cmd.vhosts.swap(newhosts); } - - Version GetVersion() override - { - return Version("Provides masking of user hostnames via the VHOST command", VF_VENDOR); - } }; MODULE_INIT(ModuleVHost) diff --git a/src/modules/m_watch.cpp b/src/modules/m_watch.cpp index af3f9a2c5..7916b7f7d 100644 --- a/src/modules/m_watch.cpp +++ b/src/modules/m_watch.cpp @@ -219,7 +219,8 @@ class ModuleWatch public: ModuleWatch() - : Away::EventListener(this) + : Module(VF_VENDOR, "Provides WATCH support") + , Away::EventListener(this) , ISupport::EventListener(this) , manager(this, "watch") , cmd(this, manager) @@ -269,11 +270,6 @@ class ModuleWatch { tokens["WATCH"] = ConvToStr(cmd.maxwatch); } - - Version GetVersion() override - { - return Version("Provides WATCH support", VF_VENDOR); - } }; MODULE_INIT(ModuleWatch) diff --git a/src/modules/m_websocket.cpp b/src/modules/m_websocket.cpp index 817a5861d..ae7095cd8 100644 --- a/src/modules/m_websocket.cpp +++ b/src/modules/m_websocket.cpp @@ -495,12 +495,14 @@ void WebSocketHookProvider::OnAccept(StreamSocket* sock, irc::sockets::sockaddrs class ModuleWebSocket : public Module { + private: dynamic_reference_nocheck hash; reference hookprov; public: ModuleWebSocket() - : hash(this, "hash/sha1") + : Module(VF_VENDOR, "Provides RFC 6455 WebSocket support") + , hash(this, "hash/sha1") , hookprov(new WebSocketHookProvider(this)) { sha1 = &hash; @@ -545,11 +547,6 @@ class ModuleWebSocket : public Module if ((user) && (user->eh.GetModHook(this))) ServerInstance->Users.QuitUser(user, "WebSocket module unloading"); } - - Version GetVersion() override - { - return Version("Provides RFC 6455 WebSocket support", VF_VENDOR); - } }; MODULE_INIT(ModuleWebSocket) diff --git a/src/modules/m_xline_db.cpp b/src/modules/m_xline_db.cpp index efa35270a..e03884f3f 100644 --- a/src/modules/m_xline_db.cpp +++ b/src/modules/m_xline_db.cpp @@ -40,7 +40,8 @@ class ModuleXLineDB public: ModuleXLineDB() - : Timer(0, true) + : Module(VF_VENDOR, "Provides the ability to store X-lines in a database file") + , Timer(0, true) { } @@ -233,11 +234,6 @@ class ModuleXLineDB stream.close(); return true; } - - Version GetVersion() override - { - return Version("Provides the ability to store X-lines in a database file", VF_VENDOR); - } }; MODULE_INIT(ModuleXLineDB)