diff options
| author | 2020-10-31 23:21:15 +0000 | |
|---|---|---|
| committer | 2020-10-31 23:21:15 +0000 | |
| commit | 1b181b42b82213c884e8aac3a620252102992439 (patch) | |
| tree | e1eefa83c074695016e94cb97bb34a24909ebb3d /src | |
| parent | Add stdalgo::iterator_range and switch config tag reading to use it. (diff) | |
Convert ConfigTag from reference<> to std::shared_ptr<>.
Diffstat (limited to 'src')
95 files changed, 138 insertions, 141 deletions
diff --git a/src/configparser.cpp b/src/configparser.cpp index e045d7e67..9fef22f15 100644 --- a/src/configparser.cpp +++ b/src/configparser.cpp @@ -108,7 +108,7 @@ struct Parser FILE* const file; FilePosition current; FilePosition last_tag; - reference<ConfigTag> tag; + std::shared_ptr<ConfigTag> tag; int ungot; std::string mandatory_tag; @@ -382,7 +382,7 @@ struct Parser } }; -void ParseStack::DoInclude(ConfigTag* tag, int flags) +void ParseStack::DoInclude(std::shared_ptr<ConfigTag> tag, int flags) { if (flags & FLAG_NO_INC) throw CoreException("Invalid <include> tag in file included with noinclude=\"yes\""); @@ -690,9 +690,9 @@ std::string ConfigTag::getTagLocation() const return src_name + ":" + ConvToStr(src_line); } -ConfigTag* ConfigTag::create(const std::string& Tag, const std::string& file, int line, ConfigItems*& Items) +std::shared_ptr<ConfigTag> ConfigTag::create(const std::string& Tag, const std::string& file, int line, ConfigItems*& Items) { - ConfigTag* rv = new ConfigTag(Tag, file, line); + std::shared_ptr<ConfigTag> rv(new ConfigTag(Tag, file, line)); Items = &rv->items; return rv; } diff --git a/src/configreader.cpp b/src/configreader.cpp index c70cafe25..d0b3e44c6 100644 --- a/src/configreader.cpp +++ b/src/configreader.cpp @@ -37,7 +37,7 @@ #include "configparser.h" #include <iostream> -ServerLimits::ServerLimits(ConfigTag* tag) +ServerLimits::ServerLimits(std::shared_ptr<ConfigTag> tag) : MaxLine(tag->getUInt("maxline", 512, 512)) , NickMax(tag->getUInt("maxnick", 30, 1, MaxLine)) , ChanMax(tag->getUInt("maxchan", 64, 1, MaxLine)) @@ -52,7 +52,7 @@ ServerLimits::ServerLimits(ConfigTag* tag) { } -ServerConfig::ServerPaths::ServerPaths(ConfigTag* tag) +ServerConfig::ServerPaths::ServerPaths(std::shared_ptr<ConfigTag> tag) : Config(tag->getString("configdir", INSPIRCD_CONFIG_PATH, 1)) , Data(tag->getString("datadir", INSPIRCD_DATA_PATH, 1)) , Log(tag->getString("logdir", INSPIRCD_LOG_PATH, 1)) @@ -60,7 +60,7 @@ ServerConfig::ServerPaths::ServerPaths(ConfigTag* tag) { } -static ConfigTag* CreateEmptyTag() +static std::shared_ptr<ConfigTag> CreateEmptyTag() { ConfigItems* items; return ConfigTag::create("empty", "<auto>", 0, items); @@ -74,11 +74,6 @@ ServerConfig::ServerConfig() { } -ServerConfig::~ServerConfig() -{ - delete EmptyTag; -} - static void ReadXLine(ServerConfig* conf, const std::string& tag, const std::string& key, XLineFactory* make) { insp::flat_set<std::string> configlines; @@ -103,7 +98,7 @@ static void ReadXLine(ServerConfig* conf, const std::string& tag, const std::str ServerInstance->XLines->ExpireRemovedConfigLines(make->GetType(), configlines); } -typedef std::map<std::string, ConfigTag*> LocalIndex; +typedef std::map<std::string, std::shared_ptr<ConfigTag>> LocalIndex; void ServerConfig::CrossCheckOperClassType() { LocalIndex operclass; @@ -188,7 +183,7 @@ void ServerConfig::CrossCheckConnectBlocks(ServerConfig* current) { // No connect blocks found; make a trivial default block ConfigItems* items; - ConfigTag* tag = ConfigTag::create("connect", "<auto>", 0, items); + std::shared_ptr<ConfigTag> tag = ConfigTag::create("connect", "<auto>", 0, items); (*items)["allow"] = "*"; config_data.insert(std::make_pair("connect", tag)); blk_count = 1; @@ -348,9 +343,9 @@ static std::string GetServerName() void ServerConfig::Fill() { - ConfigTag* options = ConfValue("options"); - ConfigTag* security = ConfValue("security"); - ConfigTag* server = ConfValue("server"); + std::shared_ptr<ConfigTag> options = ConfValue("options"); + std::shared_ptr<ConfigTag> security = ConfValue("security"); + std::shared_ptr<ConfigTag> server = ConfValue("server"); if (sid.empty()) { ServerName = server->getString("name", GetServerName(), InspIRCd::IsHost); @@ -628,13 +623,13 @@ void ServerConfig::ApplyModules(User* user) } } -ConfigTag* ServerConfig::ConfValue(const std::string &tag) +std::shared_ptr<ConfigTag> ServerConfig::ConfValue(const std::string &tag) { std::pair<ConfigIter, ConfigIter> found = config_data.equal_range(tag); if (found.first == found.second) return EmptyTag; - ConfigTag* rv = found.first->second; + std::shared_ptr<ConfigTag> rv = found.first->second; found.first++; if (found.first != found.second) ServerInstance->Logs.Log("CONFIG", LOG_DEFAULT, "Multiple <" + tag + "> tags found; only first will be used " diff --git a/src/coremods/core_channel/core_channel.cpp b/src/coremods/core_channel/core_channel.cpp index 59da95a49..4fef8d83d 100644 --- a/src/coremods/core_channel/core_channel.cpp +++ b/src/coremods/core_channel/core_channel.cpp @@ -159,7 +159,7 @@ class CoreModChannel void ReadConfig(ConfigStatus& status) override { - ConfigTag* optionstag = ServerInstance->Config->ConfValue("options"); + auto optionstag = ServerInstance->Config->ConfValue("options"); std::string current; irc::spacesepstream defaultstream(optionstag->getString("exemptchanops")); @@ -177,7 +177,7 @@ class CoreModChannel exempts[restriction] = prefix; } - ConfigTag* securitytag = ServerInstance->Config->ConfValue("security"); + auto securitytag = ServerInstance->Config->ConfValue("security"); Invite::AnnounceState newannouncestate = securitytag->getEnum("announceinvites", Invite::ANNOUNCE_DYNAMIC, { { "all", Invite::ANNOUNCE_ALL }, { "dynamic", Invite::ANNOUNCE_DYNAMIC }, diff --git a/src/coremods/core_dns.cpp b/src/coremods/core_dns.cpp index bbaffdfee..fd3ae2620 100644 --- a/src/coremods/core_dns.cpp +++ b/src/coremods/core_dns.cpp @@ -835,7 +835,7 @@ class ModuleDNS : public Module const std::string oldip = SourceIP; const unsigned int oldport = SourcePort; - ConfigTag* tag = ServerInstance->Config->ConfValue("dns"); + auto tag = ServerInstance->Config->ConfValue("dns"); DNSServer = tag->getString("server"); SourceIP = tag->getString("sourceip"); SourcePort = tag->getUInt("sourceport", 0, 0, UINT16_MAX); diff --git a/src/coremods/core_info/cmd_motd.cpp b/src/coremods/core_info/cmd_motd.cpp index 4ba7963da..e22bedfd4 100644 --- a/src/coremods/core_info/cmd_motd.cpp +++ b/src/coremods/core_info/cmd_motd.cpp @@ -44,7 +44,7 @@ CmdResult CommandMotd::Handle(User* user, const Params& parameters) return CmdResult::SUCCESS; } - ConfigTag* tag = ServerInstance->Config->EmptyTag; + auto tag = ServerInstance->Config->EmptyTag; LocalUser* localuser = IS_LOCAL(user); if (localuser) tag = localuser->GetClass()->config; diff --git a/src/coremods/core_info/core_info.cpp b/src/coremods/core_info/core_info.cpp index 11ce2f799..284f55f55 100644 --- a/src/coremods/core_info/core_info.cpp +++ b/src/coremods/core_info/core_info.cpp @@ -111,7 +111,7 @@ class CoreModInfo : public Module ConfigFileCache newmotds; for (ServerConfig::ClassVector::const_iterator iter = ServerInstance->Config->Classes.begin(); iter != ServerInstance->Config->Classes.end(); ++iter) { - ConfigTag* tag = (*iter)->config; + std::shared_ptr<ConfigTag> tag = (*iter)->config; // Don't process the file if it has already been processed. const std::string motd = tag->getString("motd", "motd"); if (newmotds.find(motd) != newmotds.end()) @@ -129,7 +129,7 @@ class CoreModInfo : public Module cmdmotd.motds.swap(newmotds); - ConfigTag* tag = ServerInstance->Config->ConfValue("admin"); + auto tag = ServerInstance->Config->ConfValue("admin"); cmdadmin.AdminName = tag->getString("name"); cmdadmin.AdminEmail = tag->getString("email", "null@example.com"); cmdadmin.AdminNick = tag->getString("nick", "admin"); diff --git a/src/coremods/core_list.cpp b/src/coremods/core_list.cpp index 503cfe024..6428656c7 100644 --- a/src/coremods/core_list.cpp +++ b/src/coremods/core_list.cpp @@ -221,7 +221,7 @@ class CoreModList void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("options"); + auto tag = ServerInstance->Config->ConfValue("options"); cmd.showmodes = tag->getBool("modesinlist"); } diff --git a/src/coremods/core_oper/cmd_oper.cpp b/src/coremods/core_oper/cmd_oper.cpp index dc88d094b..2aca10642 100644 --- a/src/coremods/core_oper/cmd_oper.cpp +++ b/src/coremods/core_oper/cmd_oper.cpp @@ -47,7 +47,7 @@ CmdResult CommandOper::HandleLocal(LocalUser* user, const Params& parameters) if (i != ServerInstance->Config->oper_blocks.end()) { std::shared_ptr<OperInfo> ifo = i->second; - ConfigTag* tag = ifo->oper_block; + std::shared_ptr<ConfigTag> tag = ifo->oper_block; match_login = true; match_pass = ServerInstance->PassCompare(user, tag->getString("password"), parameters[1], tag->getString("hash")); match_hosts = InspIRCd::MatchMask(tag->getString("host"), userHost, userIP); diff --git a/src/coremods/core_oper/core_oper.cpp b/src/coremods/core_oper/core_oper.cpp index ad0309500..c88c8ca55 100644 --- a/src/coremods/core_oper/core_oper.cpp +++ b/src/coremods/core_oper/core_oper.cpp @@ -48,7 +48,7 @@ class CoreModOper : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* security = ServerInstance->Config->ConfValue("security"); + auto security = ServerInstance->Config->ConfValue("security"); cmdkill.hidenick = security->getString("hidekills"); cmdkill.hideuline = security->getBool("hideulinekills"); } diff --git a/src/coremods/core_stats.cpp b/src/coremods/core_stats.cpp index 0b25bf78a..68bfe9f7b 100644 --- a/src/coremods/core_stats.cpp +++ b/src/coremods/core_stats.cpp @@ -1,4 +1,4 @@ -/* + /* * InspIRCd -- Internet Relay Chat Daemon * * Copyright (C) 2018 Puck Meerburg <puck@puckipedia.com> @@ -329,7 +329,7 @@ void CommandStats::DoStats(Stats::Context& stats) { for (auto& [_, ifo] : ServerInstance->Config->oper_blocks) { - ConfigTag* tag = ifo->oper_block; + std::shared_ptr<ConfigTag> tag = ifo->oper_block; stats.AddRow(243, 'O', tag->getString("host"), '*', tag->getString("name"), tag->getString("type"), '0'); } } @@ -417,7 +417,7 @@ class CoreModStats : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* security = ServerInstance->Config->ConfValue("security"); + auto security = ServerInstance->Config->ConfValue("security"); cmd.userstats = security->getString("userstats"); } diff --git a/src/coremods/core_user/core_user.cpp b/src/coremods/core_user/core_user.cpp index 019e1c96e..9d81fadf4 100644 --- a/src/coremods/core_user/core_user.cpp +++ b/src/coremods/core_user/core_user.cpp @@ -142,7 +142,7 @@ void MessageWrapper::Wrap(const std::string& message, std::string& out) void MessageWrapper::ReadConfig(const char* prefixname, const char* suffixname, const char* fixedname) { - ConfigTag* tag = ServerInstance->Config->ConfValue("options"); + auto tag = ServerInstance->Config->ConfValue("options"); prefix = tag->getString(fixedname); fixed = (!prefix.empty()); if (!fixed) diff --git a/src/coremods/core_whois.cpp b/src/coremods/core_whois.cpp index a217df1bb..adcdaae25 100644 --- a/src/coremods/core_whois.cpp +++ b/src/coremods/core_whois.cpp @@ -364,14 +364,14 @@ class CoreModWhois : public Module void ReadConfig(ConfigStatus&) override { - ConfigTag* options = ServerInstance->Config->ConfValue("options"); + auto options = ServerInstance->Config->ConfValue("options"); cmd.splitwhois = options->getEnum("splitwhois", SPLITWHOIS_NONE, { { "no", SPLITWHOIS_NONE }, { "split", SPLITWHOIS_SPLIT }, { "splitmsg", SPLITWHOIS_SPLITMSG }, }); - ConfigTag* security = ServerInstance->Config->ConfValue("security"); + auto security = ServerInstance->Config->ConfValue("security"); cmd.genericoper = security->getBool("genericoper"); } }; diff --git a/src/coremods/core_whowas.cpp b/src/coremods/core_whowas.cpp index 0331e4db6..b0722a4bc 100644 --- a/src/coremods/core_whowas.cpp +++ b/src/coremods/core_whowas.cpp @@ -435,7 +435,7 @@ class ModuleWhoWas : public Module, public Stats::EventListener void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("whowas"); + auto tag = ServerInstance->Config->ConfValue("whowas"); unsigned int NewGroupSize = tag->getUInt("groupsize", 10, 0, 10000); unsigned int NewMaxGroups = tag->getUInt("maxgroups", 10240, 0, 1000000); unsigned int NewMaxKeep = tag->getDuration("maxkeep", 3600, 3600); diff --git a/src/coremods/core_xline/core_xline.cpp b/src/coremods/core_xline/core_xline.cpp index 69c198357..0a683eee7 100644 --- a/src/coremods/core_xline/core_xline.cpp +++ b/src/coremods/core_xline/core_xline.cpp @@ -27,7 +27,7 @@ bool InsaneBan::MatchesEveryone(const std::string& mask, MatcherBase& test, User* user, const char* bantype, const char* confkey) { - ConfigTag* insane = ServerInstance->Config->ConfValue("insane"); + auto insane = ServerInstance->Config->ConfValue("insane"); if (insane->getBool(confkey)) return false; diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 3e825848c..24eac6e9e 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -155,7 +155,7 @@ namespace void DropRoot() { #ifndef _WIN32 - ConfigTag* security = ServerInstance->Config->ConfValue("security"); + auto security = ServerInstance->Config->ConfValue("security"); const std::string SetGroup = security->getString("runasgroup"); if (!SetGroup.empty()) diff --git a/src/listensocket.cpp b/src/listensocket.cpp index 9cbc2d50e..e91683d2d 100644 --- a/src/listensocket.cpp +++ b/src/listensocket.cpp @@ -34,7 +34,7 @@ #include <netinet/tcp.h> #endif -ListenSocket::ListenSocket(ConfigTag* tag, const irc::sockets::sockaddrs& bind_to) +ListenSocket::ListenSocket(std::shared_ptr<ConfigTag> tag, const irc::sockets::sockaddrs& bind_to) : bind_tag(tag) , bind_sa(bind_to) { diff --git a/src/modules/extra/m_argon2.cpp b/src/modules/extra/m_argon2.cpp index 8e1a0a0d6..a08e34604 100644 --- a/src/modules/extra/m_argon2.cpp +++ b/src/modules/extra/m_argon2.cpp @@ -68,7 +68,7 @@ class ProviderConfig ProviderConfig(const std::string& tagname, ProviderConfig* def) { - ConfigTag* tag = ServerInstance->Config->ConfValue(tagname); + auto tag = ServerInstance->Config->ConfValue(tagname); uint32_t def_iterations = def ? def->iterations : 3; this->iterations = tag->getUInt("iterations", def_iterations, 1); diff --git a/src/modules/extra/m_geo_maxmind.cpp b/src/modules/extra/m_geo_maxmind.cpp index 006ec656d..b178d2c86 100644 --- a/src/modules/extra/m_geo_maxmind.cpp +++ b/src/modules/extra/m_geo_maxmind.cpp @@ -157,7 +157,7 @@ class ModuleGeoMaxMind : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("maxmind"); + auto tag = ServerInstance->Config->ConfValue("maxmind"); const std::string file = ServerInstance->Config->Paths.PrependConfig(tag->getString("file", "GeoLite2-Country.mmdb", 1)); // Try to read the new database. diff --git a/src/modules/extra/m_ldap.cpp b/src/modules/extra/m_ldap.cpp index 0f3ac68d6..d7d5cbfb3 100644 --- a/src/modules/extra/m_ldap.cpp +++ b/src/modules/extra/m_ldap.cpp @@ -189,7 +189,7 @@ class LDAPCompare : public LDAPRequest class LDAPService : public LDAPProvider, public SocketThread { LDAP* con = nullptr; - reference<ConfigTag> config; + std::shared_ptr<ConfigTag> config; time_t last_connect = 0; int searchscope; time_t timeout; @@ -278,7 +278,7 @@ class LDAPService : public LDAPProvider, public SocketThread query_queue queries, results; std::mutex process_mutex; /* held when processing requests not in either queue */ - LDAPService(Module* c, ConfigTag* tag) + LDAPService(Module* c, std::shared_ptr<ConfigTag> tag) : LDAPProvider(c, "LDAP/" + tag->getString("id")) , config(tag) { diff --git a/src/modules/extra/m_mysql.cpp b/src/modules/extra/m_mysql.cpp index 40d3f107a..385cda188 100644 --- a/src/modules/extra/m_mysql.cpp +++ b/src/modules/extra/m_mysql.cpp @@ -295,12 +295,12 @@ class SQLConnection : public SQL::Provider } public: - reference<ConfigTag> config; + std::shared_ptr<ConfigTag> config; MYSQL* connection = nullptr; std::mutex lock; // This constructor creates an SQLConnection object with the given credentials, but does not connect yet. - SQLConnection(Module* p, ConfigTag* tag) + SQLConnection(Module* p, std::shared_ptr<ConfigTag> tag) : SQL::Provider(p, tag->getString("id")) , config(tag) { diff --git a/src/modules/extra/m_pgsql.cpp b/src/modules/extra/m_pgsql.cpp index cb5c492bf..d1d8d1403 100644 --- a/src/modules/extra/m_pgsql.cpp +++ b/src/modules/extra/m_pgsql.cpp @@ -185,13 +185,13 @@ class PgSQLresult : public SQL::Result class SQLConn : public SQL::Provider, public EventHandler { public: - reference<ConfigTag> conf; /* The <database> entry */ + std::shared_ptr<ConfigTag> conf; /* The <database> entry */ std::deque<QueueItem> queue; PGconn* sql = nullptr; /* PgSQL database connection handle */ SQLstatus status = CWRITE; /* PgSQL database connection status */ QueueItem qinprog; /* If there is currently a query in progress */ - SQLConn(Module* Creator, ConfigTag* tag) + SQLConn(Module* Creator, std::shared_ptr<ConfigTag> tag) : SQL::Provider(Creator, tag->getString("id")) , conf(tag) , qinprog(NULL, "") diff --git a/src/modules/extra/m_sqlite3.cpp b/src/modules/extra/m_sqlite3.cpp index bf11f25e3..cc8f0ef39 100644 --- a/src/modules/extra/m_sqlite3.cpp +++ b/src/modules/extra/m_sqlite3.cpp @@ -96,10 +96,10 @@ class SQLite3Result : public SQL::Result class SQLConn : public SQL::Provider { sqlite3* conn; - reference<ConfigTag> config; + std::shared_ptr<ConfigTag> config; public: - SQLConn(Module* Parent, ConfigTag* tag) + SQLConn(Module* Parent, std::shared_ptr<ConfigTag> tag) : SQL::Provider(Parent, tag->getString("id")) , config(tag) { diff --git a/src/modules/extra/m_ssl_gnutls.cpp b/src/modules/extra/m_ssl_gnutls.cpp index da40e6e34..4c0a746bb 100644 --- a/src/modules/extra/m_ssl_gnutls.cpp +++ b/src/modules/extra/m_ssl_gnutls.cpp @@ -501,7 +501,7 @@ namespace GnuTLS return ret; } - static std::string GetPrioStr(const std::string& profilename, ConfigTag* tag) + static std::string GetPrioStr(const std::string& profilename, std::shared_ptr<ConfigTag> tag) { // Use default priority string if this tag does not specify one std::string priostr = GnuTLS::Priority::GetDefault(); @@ -545,7 +545,7 @@ namespace GnuTLS unsigned int outrecsize; bool requestclientcert; - Config(const std::string& profilename, ConfigTag* tag) + Config(const std::string& profilename, std::shared_ptr<ConfigTag> tag) : name(profilename) , certstr(ReadFile(tag->getString("certfile", "cert.pem", 1))) , keystr(ReadFile(tag->getString("keyfile", "key.pem", 1))) diff --git a/src/modules/extra/m_ssl_mbedtls.cpp b/src/modules/extra/m_ssl_mbedtls.cpp index 67246ce76..916e6fef7 100644 --- a/src/modules/extra/m_ssl_mbedtls.cpp +++ b/src/modules/extra/m_ssl_mbedtls.cpp @@ -405,7 +405,7 @@ namespace mbedTLS const unsigned int outrecsize; const bool requestclientcert; - Config(const std::string& profilename, ConfigTag* tag, CTRDRBG& ctr_drbg) + Config(const std::string& profilename, std::shared_ptr<ConfigTag> tag, CTRDRBG& ctr_drbg) : name(profilename) , ctrdrbg(ctr_drbg) , certstr(ReadFile(tag->getString("certfile", "cert.pem", 1))) diff --git a/src/modules/extra/m_ssl_openssl.cpp b/src/modules/extra/m_ssl_openssl.cpp index 401dfaeb1..5cfc0fb76 100644 --- a/src/modules/extra/m_ssl_openssl.cpp +++ b/src/modules/extra/m_ssl_openssl.cpp @@ -305,7 +305,7 @@ namespace OpenSSL * @param tag Config tag defining this profile * @param context Context object to manipulate */ - void SetContextOptions(const std::string& ctxname, ConfigTag* tag, Context& context) + void SetContextOptions(const std::string& ctxname, std::shared_ptr<ConfigTag> tag, Context& context) { long setoptions = tag->getInt(ctxname + "setoptions", 0); long clearoptions = tag->getInt(ctxname + "clearoptions", 0); @@ -341,7 +341,7 @@ namespace OpenSSL } public: - Profile(const std::string& profilename, ConfigTag* tag) + Profile(const std::string& profilename, std::shared_ptr<ConfigTag> tag) : name(profilename) , dh(ServerInstance->Config->Paths.PrependConfig(tag->getString("dhfile", "dhparams.pem", 1))) , ctx(SSL_CTX_new(SSLv23_server_method())) @@ -865,7 +865,7 @@ class OpenSSLIOHookProvider : public IOHookProvider OpenSSL::Profile profile; public: - OpenSSLIOHookProvider(Module* mod, const std::string& profilename, ConfigTag* tag) + OpenSSLIOHookProvider(Module* mod, const std::string& profilename, std::shared_ptr<ConfigTag> tag) : IOHookProvider(mod, "ssl/" + profilename, IOHookProvider::IOH_SSL) , profile(profilename, tag) { diff --git a/src/modules/m_alias.cpp b/src/modules/m_alias.cpp index 769b1ffcb..58328af88 100644 --- a/src/modules/m_alias.cpp +++ b/src/modules/m_alias.cpp @@ -106,7 +106,7 @@ class ModuleAlias : public Module newAliases.insert(std::make_pair(a.AliasedCommand, a)); } - ConfigTag* fantasy = ServerInstance->Config->ConfValue("fantasy"); + auto fantasy = ServerInstance->Config->ConfValue("fantasy"); AllowBots = fantasy->getBool("allowbots", false); fprefix = fantasy->getString("prefix", "!", 1, ServerInstance->Config->Limits.MaxLine); Aliases.swap(newAliases); diff --git a/src/modules/m_anticaps.cpp b/src/modules/m_anticaps.cpp index ab6a7653f..ef961c69d 100644 --- a/src/modules/m_anticaps.cpp +++ b/src/modules/m_anticaps.cpp @@ -188,7 +188,7 @@ class ModuleAntiCaps : public Module void ReadConfig(ConfigStatus&) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("anticaps"); + auto tag = ServerInstance->Config->ConfValue("anticaps"); uppercase.reset(); const std::string upper = tag->getString("uppercase", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 1); diff --git a/src/modules/m_auditorium.cpp b/src/modules/m_auditorium.cpp index bdc28866d..7b8ea300d 100644 --- a/src/modules/m_auditorium.cpp +++ b/src/modules/m_auditorium.cpp @@ -85,7 +85,7 @@ class ModuleAuditorium void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("auditorium"); + auto tag = ServerInstance->Config->ConfValue("auditorium"); OpsVisible = tag->getBool("opvisible"); OpsCanSee = tag->getBool("opcansee"); OperCanSee = tag->getBool("opercansee", true); diff --git a/src/modules/m_bcrypt.cpp b/src/modules/m_bcrypt.cpp index 2050b94ae..a47ce8f36 100644 --- a/src/modules/m_bcrypt.cpp +++ b/src/modules/m_bcrypt.cpp @@ -86,7 +86,7 @@ class ModuleBCrypt : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* conf = ServerInstance->Config->ConfValue("bcrypt"); + auto conf = ServerInstance->Config->ConfValue("bcrypt"); bcrypt.rounds = conf->getUInt("rounds", 10, 1); } }; diff --git a/src/modules/m_blockamsg.cpp b/src/modules/m_blockamsg.cpp index d85624b17..0f1c883d8 100644 --- a/src/modules/m_blockamsg.cpp +++ b/src/modules/m_blockamsg.cpp @@ -61,7 +61,7 @@ class ModuleBlockAmsg : public Module } void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("blockamsg"); + auto tag = ServerInstance->Config->ConfValue("blockamsg"); action = tag->getEnum("action", IBLOCK_KILLOPERS, { { "kill", IBLOCK_KILL }, { "killopers", IBLOCK_KILLOPERS }, diff --git a/src/modules/m_callerid.cpp b/src/modules/m_callerid.cpp index 14b017f0b..615832185 100644 --- a/src/modules/m_callerid.cpp +++ b/src/modules/m_callerid.cpp @@ -456,7 +456,7 @@ public: void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("callerid"); + auto tag = ServerInstance->Config->ConfValue("callerid"); cmd.maxaccepts = tag->getUInt("maxaccepts", 30); tracknick = tag->getBool("tracknick"); notify_cooldown = tag->getDuration("cooldown", 60); diff --git a/src/modules/m_chanfilter.cpp b/src/modules/m_chanfilter.cpp index af940fa77..fc97a0ad1 100644 --- a/src/modules/m_chanfilter.cpp +++ b/src/modules/m_chanfilter.cpp @@ -94,7 +94,7 @@ class ModuleChanFilter : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("chanfilter"); + auto tag = ServerInstance->Config->ConfValue("chanfilter"); hidemask = tag->getBool("hidemask"); cf.maxlen = tag->getUInt("maxlen", 35, 10, ModeParser::MODE_PARAM_MAX); notifyuser = tag->getBool("notifyuser", true); diff --git a/src/modules/m_chanhistory.cpp b/src/modules/m_chanhistory.cpp index bff2d924c..88f810c86 100644 --- a/src/modules/m_chanhistory.cpp +++ b/src/modules/m_chanhistory.cpp @@ -196,7 +196,7 @@ class ModuleChanHistory void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("chanhistory"); + auto tag = ServerInstance->Config->ConfValue("chanhistory"); m.maxlines = tag->getUInt("maxlines", 50, 1); prefixmsg = tag->getBool("prefixmsg", tag->getBool("notice", true)); dobots = tag->getBool("bots", true); diff --git a/src/modules/m_channames.cpp b/src/modules/m_channames.cpp index 91dcc0203..af0d0d9df 100644 --- a/src/modules/m_channames.cpp +++ b/src/modules/m_channames.cpp @@ -105,7 +105,7 @@ class ModuleChannelNames : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("channames"); + auto tag = ServerInstance->Config->ConfValue("channames"); std::string denyToken = tag->getString("denyrange"); std::string allowToken = tag->getString("allowrange"); diff --git a/src/modules/m_chghost.cpp b/src/modules/m_chghost.cpp index d7333cad0..87f988e75 100644 --- a/src/modules/m_chghost.cpp +++ b/src/modules/m_chghost.cpp @@ -100,7 +100,7 @@ class ModuleChgHost : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("hostname"); + auto tag = ServerInstance->Config->ConfValue("hostname"); const std::string hmap = tag->getString("charmap", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-_/0123456789", 1); cmd.hostmap.reset(); diff --git a/src/modules/m_conn_join.cpp b/src/modules/m_conn_join.cpp index 9fb42107f..b12576ff7 100644 --- a/src/modules/m_conn_join.cpp +++ b/src/modules/m_conn_join.cpp @@ -80,7 +80,7 @@ class ModuleConnJoin : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("autojoin"); + auto tag = ServerInstance->Config->ConfValue("autojoin"); defchans = tag->getString("channel"); defdelay = tag->getDuration("delay", 0, 0, 60*15); } diff --git a/src/modules/m_conn_waitpong.cpp b/src/modules/m_conn_waitpong.cpp index 609b24ac9..ffbe09217 100644 --- a/src/modules/m_conn_waitpong.cpp +++ b/src/modules/m_conn_waitpong.cpp @@ -40,7 +40,7 @@ class ModuleWaitPong : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("waitpong"); + auto tag = ServerInstance->Config->ConfValue("waitpong"); sendsnotice = tag->getBool("sendsnotice", false); killonbadreply = tag->getBool("killonbadreply", true); } diff --git a/src/modules/m_connectban.cpp b/src/modules/m_connectban.cpp index 30dc0d709..f79eb0e06 100644 --- a/src/modules/m_connectban.cpp +++ b/src/modules/m_connectban.cpp @@ -70,7 +70,7 @@ class ModuleConnectBan void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("connectban"); + auto tag = ServerInstance->Config->ConfValue("connectban"); ipv4_cidr = tag->getUInt("ipv4cidr", 32, 1, 32); ipv6_cidr = tag->getUInt("ipv6cidr", 128, 1, 128); diff --git a/src/modules/m_connflood.cpp b/src/modules/m_connflood.cpp index 1ae91eb8a..ba40150f7 100644 --- a/src/modules/m_connflood.cpp +++ b/src/modules/m_connflood.cpp @@ -46,7 +46,7 @@ class ModuleConnFlood : public Module void ReadConfig(ConfigStatus& status) override { /* read configuration variables */ - ConfigTag* tag = ServerInstance->Config->ConfValue("connflood"); + auto tag = ServerInstance->Config->ConfValue("connflood"); /* throttle configuration */ seconds = tag->getDuration("period", 30); maxconns = tag->getUInt("maxconns", 3); diff --git a/src/modules/m_customprefix.cpp b/src/modules/m_customprefix.cpp index 70cf68f77..958330dfb 100644 --- a/src/modules/m_customprefix.cpp +++ b/src/modules/m_customprefix.cpp @@ -25,9 +25,9 @@ class CustomPrefixMode : public PrefixMode { public: - reference<ConfigTag> tag; + std::shared_ptr<ConfigTag> tag; - CustomPrefixMode(Module* parent, const std::string& Name, char Letter, char Prefix, ConfigTag* Tag) + CustomPrefixMode(Module* parent, const std::string& Name, char Letter, char Prefix, std::shared_ptr<ConfigTag> Tag) : PrefixMode(parent, Name, Letter, 0, Prefix) , tag(Tag) { diff --git a/src/modules/m_dccallow.cpp b/src/modules/m_dccallow.cpp index 88a599fe8..02a096e25 100644 --- a/src/modules/m_dccallow.cpp +++ b/src/modules/m_dccallow.cpp @@ -599,7 +599,7 @@ class ModuleDCCAllow : public Module } bfl.swap(newbfl); - ConfigTag* tag = ServerInstance->Config->ConfValue("dccallow"); + auto tag = ServerInstance->Config->ConfValue("dccallow"); cmd.ext.maxentries = tag->getUInt("maxentries", 20); cmd.defaultlength = tag->getDuration("length", 0); blockchat = tag->getBool("blockchat"); diff --git a/src/modules/m_deaf.cpp b/src/modules/m_deaf.cpp index 580b96d43..0a4884c3a 100644 --- a/src/modules/m_deaf.cpp +++ b/src/modules/m_deaf.cpp @@ -86,7 +86,7 @@ class ModuleDeaf : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("deaf"); + auto tag = ServerInstance->Config->ConfValue("deaf"); deaf_bypasschars = tag->getString("bypasschars"); deaf_bypasschars_uline = tag->getString("bypasscharsuline"); privdeafuline = tag->getBool("privdeafuline", true); diff --git a/src/modules/m_delaymsg.cpp b/src/modules/m_delaymsg.cpp index eb0a7633e..b49f82beb 100644 --- a/src/modules/m_delaymsg.cpp +++ b/src/modules/m_delaymsg.cpp @@ -151,7 +151,7 @@ ModResult ModuleDelayMsg::HandleMessage(User* user, const MessageTarget& target, void ModuleDelayMsg::ReadConfig(ConfigStatus& status) { - ConfigTag* tag = ServerInstance->Config->ConfValue("delaymsg"); + auto tag = ServerInstance->Config->ConfValue("delaymsg"); allownotice = tag->getBool("allownotice", true); } diff --git a/src/modules/m_disable.cpp b/src/modules/m_disable.cpp index 7237fb350..5b28d7987 100644 --- a/src/modules/m_disable.cpp +++ b/src/modules/m_disable.cpp @@ -41,7 +41,7 @@ class ModuleDisable : public Module bool notifyopers; ModeStatus usermodes; - void ReadModes(ConfigTag* tag, const std::string& field, ModeType type, ModeStatus& status) + void ReadModes(std::shared_ptr<ConfigTag> tag, const std::string& field, ModeType type, ModeStatus& status) { const std::string modes = tag->getString(field); for (std::string::const_iterator iter = modes.begin(); iter != modes.end(); ++iter) @@ -85,7 +85,7 @@ class ModuleDisable : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("disabled"); + auto tag = ServerInstance->Config->ConfValue("disabled"); // Parse the disabled commands. CommandList newcommands; diff --git a/src/modules/m_filter.cpp b/src/modules/m_filter.cpp index 620eb13e7..277f9a262 100644 --- a/src/modules/m_filter.cpp +++ b/src/modules/m_filter.cpp @@ -627,7 +627,7 @@ void ModuleFilter::ReadConfig(ConfigStatus& status) } } - ConfigTag* tag = ServerInstance->Config->ConfValue("filteropts"); + auto tag = ServerInstance->Config->ConfValue("filteropts"); std::string newrxengine = tag->getString("engine"); notifyuser = tag->getBool("notifyuser", true); warnonselfmsg = tag->getBool("warnonselfmsg"); diff --git a/src/modules/m_helpop.cpp b/src/modules/m_helpop.cpp index 37901c612..e575820f6 100644 --- a/src/modules/m_helpop.cpp +++ b/src/modules/m_helpop.cpp @@ -172,7 +172,7 @@ class ModuleHelpop newhelp.insert(std::make_pair("index", HelpTopic(indexmsg, "List of help topics"))); cmd.help.swap(newhelp); - ConfigTag* tag = ServerInstance->Config->ConfValue("helpmsg"); + auto tag = ServerInstance->Config->ConfValue("helpmsg"); cmd.nohelp = tag->getString("nohelp", "There is no help for the topic you searched for. Please try again.", 1); } diff --git a/src/modules/m_hostchange.cpp b/src/modules/m_hostchange.cpp index 89e9783db..ea719c78a 100644 --- a/src/modules/m_hostchange.cpp +++ b/src/modules/m_hostchange.cpp @@ -178,7 +178,7 @@ private: } } - ConfigTag* tag = ServerInstance->Config->ConfValue("hostname"); + auto tag = ServerInstance->Config->ConfValue("hostname"); const std::string hmap = tag->getString("charmap", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-_/0123456789", 1); hostmap.reset(); diff --git a/src/modules/m_httpd.cpp b/src/modules/m_httpd.cpp index 7c7a0a5b7..2ca76af2a 100644 --- a/src/modules/m_httpd.cpp +++ b/src/modules/m_httpd.cpp @@ -397,7 +397,7 @@ class ModuleHttpServer : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("httpd"); + auto tag = ServerInstance->Config->ConfValue("httpd"); timeoutsec = tag->getDuration("timeout", 10, 1); } diff --git a/src/modules/m_httpd_config.cpp b/src/modules/m_httpd_config.cpp index db350c7b2..b9cd256b8 100644 --- a/src/modules/m_httpd_config.cpp +++ b/src/modules/m_httpd_config.cpp @@ -47,11 +47,9 @@ class ModuleHttpConfig : public Module, public HTTPRequestEventListener ServerInstance->Logs.Log(MODNAME, LOG_DEBUG, "Handling request for the HTTP /config route"); std::stringstream buffer; - ConfigDataHash& config = ServerInstance->Config->config_data; - for (ConfigDataHash::const_iterator citer = config.begin(); citer != config.end(); ++citer) + for (auto& [_, tag] : ServerInstance->Config->config_data) { // Show the location of the tag in a comment. - ConfigTag* tag = citer->second; buffer << "# " << tag->getTagLocation() << std::endl << '<' << tag->tag << ' '; diff --git a/src/modules/m_httpd_stats.cpp b/src/modules/m_httpd_stats.cpp index 6fcf333ce..2d38d96e1 100644 --- a/src/modules/m_httpd_stats.cpp +++ b/src/modules/m_httpd_stats.cpp @@ -422,7 +422,7 @@ class ModuleHttpStats : public Module, public HTTPRequestEventListener void ReadConfig(ConfigStatus& status) override { - ConfigTag* conf = ServerInstance->Config->ConfValue("httpstats"); + auto conf = ServerInstance->Config->ConfValue("httpstats"); // Parameterized queries may cause a performance issue // Due to the sheer volume of data diff --git a/src/modules/m_ident.cpp b/src/modules/m_ident.cpp index d0c7392e0..b53d970a8 100644 --- a/src/modules/m_ident.cpp +++ b/src/modules/m_ident.cpp @@ -307,7 +307,7 @@ class ModuleIdent : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("ident"); + auto tag = ServerInstance->Config->ConfValue("ident"); timeout = tag->getDuration("timeout", 5, 1, 60); prefixunqueried = tag->getBool("prefixunqueried"); } @@ -330,7 +330,7 @@ class ModuleIdent : public Module if (user->registered == REG_ALL) return; - ConfigTag* tag = user->MyClass->config; + std::shared_ptr<ConfigTag> tag = user->MyClass->config; if (!tag->getBool("useident", true)) { state.set(user, IDENT_SKIPPED); diff --git a/src/modules/m_ircv3.cpp b/src/modules/m_ircv3.cpp index 4d6f97a7a..22e747964 100644 --- a/src/modules/m_ircv3.cpp +++ b/src/modules/m_ircv3.cpp @@ -133,7 +133,7 @@ class ModuleIRCv3 void ReadConfig(ConfigStatus& status) override { - ConfigTag* conf = ServerInstance->Config->ConfValue("ircv3"); + auto conf = ServerInstance->Config->ConfValue("ircv3"); cap_accountnotify.SetActive(conf->getBool("accountnotify", true)); joinhook.awaycap.SetActive(conf->getBool("awaynotify", true)); joinhook.extendedjoincap.SetActive(conf->getBool("extendedjoin", true)); diff --git a/src/modules/m_ircv3_sts.cpp b/src/modules/m_ircv3_sts.cpp index 5eec16944..1c8a88e8d 100644 --- a/src/modules/m_ircv3_sts.cpp +++ b/src/modules/m_ircv3_sts.cpp @@ -161,7 +161,7 @@ class ModuleIRCv3STS : public Module void ReadConfig(ConfigStatus& status) override { // TODO: Multiple SNI profiles - ConfigTag* tag = ServerInstance->Config->ConfValue("sts"); + auto tag = ServerInstance->Config->ConfValue("sts"); if (tag == ServerInstance->Config->EmptyTag) throw ModuleException("You must define a STS policy!"); diff --git a/src/modules/m_joinflood.cpp b/src/modules/m_joinflood.cpp index 26fcb1462..e049d4b42 100644 --- a/src/modules/m_joinflood.cpp +++ b/src/modules/m_joinflood.cpp @@ -154,7 +154,7 @@ class ModuleJoinFlood void ReadConfig(ConfigStatus&) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("joinflood"); + auto tag = ServerInstance->Config->ConfValue("joinflood"); duration = tag->getDuration("duration", 60, 10, 600); bootwait = tag->getDuration("bootwait", 30); splitwait = tag->getDuration("splitwait", 30); diff --git a/src/modules/m_knock.cpp b/src/modules/m_knock.cpp index c23188fce..1aae0b81b 100644 --- a/src/modules/m_knock.cpp +++ b/src/modules/m_knock.cpp @@ -139,7 +139,7 @@ class ModuleKnock : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("knock"); + auto tag = ServerInstance->Config->ConfValue("knock"); cmd.notify = tag->getEnum("notify", KN_SEND_NOTICE, { { "both", KN_SEND_BOTH }, { "notice", KN_SEND_NOTICE }, diff --git a/src/modules/m_ldapauth.cpp b/src/modules/m_ldapauth.cpp index 55a6b4c8f..2a5e40b7b 100644 --- a/src/modules/m_ldapauth.cpp +++ b/src/modules/m_ldapauth.cpp @@ -324,7 +324,7 @@ public: void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("ldapauth"); + auto tag = ServerInstance->Config->ConfValue("ldapauth"); whitelistedcidrs.clear(); requiredattributes.clear(); diff --git a/src/modules/m_ldapoper.cpp b/src/modules/m_ldapoper.cpp index 3e3195d8e..d703b73eb 100644 --- a/src/modules/m_ldapoper.cpp +++ b/src/modules/m_ldapoper.cpp @@ -199,7 +199,7 @@ class ModuleLDAPOper : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("ldapoper"); + auto tag = ServerInstance->Config->ConfValue("ldapoper"); LDAP.SetProvider("LDAP/" + tag->getString("dbid")); base = tag->getString("baserdn"); @@ -217,7 +217,7 @@ class ModuleLDAPOper : public Module if (it == ServerInstance->Config->oper_blocks.end()) return MOD_RES_PASSTHRU; - ConfigTag* tag = it->second->oper_block; + std::shared_ptr<ConfigTag> tag = it->second->oper_block; if (!tag) return MOD_RES_PASSTHRU; diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp index 45d0c0dcd..199ead1a5 100644 --- a/src/modules/m_messageflood.cpp +++ b/src/modules/m_messageflood.cpp @@ -131,7 +131,7 @@ private: void ReadConfig(ConfigStatus&) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("messageflood"); + auto tag = ServerInstance->Config->ConfValue("messageflood"); notice = tag->getFloat("notice", 1.0); privmsg = tag->getFloat("privmsg", 1.0); tagmsg = tag->getFloat("tagmsg", 0.2); diff --git a/src/modules/m_monitor.cpp b/src/modules/m_monitor.cpp index 520b3c3b5..13d8a6d1b 100644 --- a/src/modules/m_monitor.cpp +++ b/src/modules/m_monitor.cpp @@ -402,7 +402,7 @@ class ModuleMonitor void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("monitor"); + auto tag = ServerInstance->Config->ConfValue("monitor"); cmd.maxmonitor = tag->getUInt("maxentries", 30, 1); } diff --git a/src/modules/m_muteban.cpp b/src/modules/m_muteban.cpp index 1a543974e..22ac70565 100644 --- a/src/modules/m_muteban.cpp +++ b/src/modules/m_muteban.cpp @@ -44,7 +44,7 @@ class ModuleQuietBan void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("muteban"); + auto tag = ServerInstance->Config->ConfValue("muteban"); notifyuser = tag->getBool("notifyuser", true); } diff --git a/src/modules/m_nationalchars.cpp b/src/modules/m_nationalchars.cpp index dc0ceb830..736023891 100644 --- a/src/modules/m_nationalchars.cpp +++ b/src/modules/m_nationalchars.cpp @@ -273,7 +273,7 @@ class ModuleNationalChars : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("nationalchars"); + auto tag = ServerInstance->Config->ConfValue("nationalchars"); charset = tag->getString("file"); std::string casemapping = tag->getString("casemapping", FileSystem::GetFileName(charset), 1); if (casemapping.find(' ') != std::string::npos) diff --git a/src/modules/m_nickflood.cpp b/src/modules/m_nickflood.cpp index 57ef92717..c1d4202bb 100644 --- a/src/modules/m_nickflood.cpp +++ b/src/modules/m_nickflood.cpp @@ -138,7 +138,7 @@ class ModuleNickFlood : public Module void ReadConfig(ConfigStatus&) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("nickflood"); + auto tag = ServerInstance->Config->ConfValue("nickflood"); duration = tag->getDuration("duration", 60, 10, 600); } diff --git a/src/modules/m_ojoin.cpp b/src/modules/m_ojoin.cpp index 7e9d76bca..b31d0f12e 100644 --- a/src/modules/m_ojoin.cpp +++ b/src/modules/m_ojoin.cpp @@ -135,7 +135,7 @@ class ModuleOjoin : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* Conf = ServerInstance->Config->ConfValue("ojoin"); + auto Conf = ServerInstance->Config->ConfValue("ojoin"); mycommand.notice = Conf->getBool("notice", true); mycommand.op = Conf->getBool("op", true); } diff --git a/src/modules/m_operjoin.cpp b/src/modules/m_operjoin.cpp index ff776c9f2..3919c5f0b 100644 --- a/src/modules/m_operjoin.cpp +++ b/src/modules/m_operjoin.cpp @@ -40,7 +40,7 @@ class ModuleOperjoin : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("operjoin"); + auto tag = ServerInstance->Config->ConfValue("operjoin"); override = tag->getBool("override", false); irc::commasepstream ss(tag->getString("channel")); diff --git a/src/modules/m_opermotd.cpp b/src/modules/m_opermotd.cpp index 85053588a..efb92fc78 100644 --- a/src/modules/m_opermotd.cpp +++ b/src/modules/m_opermotd.cpp @@ -106,7 +106,7 @@ class ModuleOpermotd : public Module void ReadConfig(ConfigStatus& status) override { cmd.opermotd.clear(); - ConfigTag* conf = ServerInstance->Config->ConfValue("opermotd"); + auto conf = ServerInstance->Config->ConfValue("opermotd"); onoper = conf->getBool("onoper", true); try diff --git a/src/modules/m_override.cpp b/src/modules/m_override.cpp index a8a89545e..7419e0f7c 100644 --- a/src/modules/m_override.cpp +++ b/src/modules/m_override.cpp @@ -94,7 +94,7 @@ class ModuleOverride void ReadConfig(ConfigStatus& status) override { // re-read our config options - ConfigTag* tag = ServerInstance->Config->ConfValue("override"); + auto tag = ServerInstance->Config->ConfValue("override"); NoisyOverride = tag->getBool("noisy"); RequireKey = tag->getBool("requirekey"); } diff --git a/src/modules/m_passforward.cpp b/src/modules/m_passforward.cpp index 57f63ed30..daf2a5ee7 100644 --- a/src/modules/m_passforward.cpp +++ b/src/modules/m_passforward.cpp @@ -38,7 +38,7 @@ class ModulePassForward : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("passforward"); + auto tag = ServerInstance->Config->ConfValue("passforward"); nickrequired = tag->getString("nick", "NickServ"); forwardmsg = tag->getString("forwardmsg", "NOTICE $nick :*** Forwarding PASS to $nickrequired"); forwardcmd = tag->getString("cmd", "SQUERY $nickrequired :IDENTIFY $pass", 1); diff --git a/src/modules/m_pbkdf2.cpp b/src/modules/m_pbkdf2.cpp index 9aaf68c96..6656735f0 100644 --- a/src/modules/m_pbkdf2.cpp +++ b/src/modules/m_pbkdf2.cpp @@ -179,7 +179,7 @@ class ModulePBKDF2 : public Module void GetConfig() { // First set the common values - ConfigTag* tag = ServerInstance->Config->ConfValue("pbkdf2"); + auto tag = ServerInstance->Config->ConfValue("pbkdf2"); ProviderConfig newglobal; newglobal.iterations = tag->getUInt("iterations", 12288, 1); newglobal.dkey_length = tag->getUInt("length", 32, 1, 1024); diff --git a/src/modules/m_permchannels.cpp b/src/modules/m_permchannels.cpp index 383b2ad07..4dcb362f5 100644 --- a/src/modules/m_permchannels.cpp +++ b/src/modules/m_permchannels.cpp @@ -183,7 +183,7 @@ public: void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("permchanneldb"); + auto tag = ServerInstance->Config->ConfValue("permchanneldb"); permchannelsconf = tag->getString("filename"); save_listmodes = tag->getBool("listmodes"); SetInterval(tag->getDuration("saveperiod", 5)); diff --git a/src/modules/m_randquote.cpp b/src/modules/m_randquote.cpp index 743a67227..e95793dbd 100644 --- a/src/modules/m_randquote.cpp +++ b/src/modules/m_randquote.cpp @@ -39,7 +39,7 @@ class ModuleRandQuote : public Module void init() override { - ConfigTag* conf = ServerInstance->Config->ConfValue("randquote"); + auto conf = ServerInstance->Config->ConfValue("randquote"); prefix = conf->getString("prefix"); suffix = conf->getString("suffix"); FileReader reader(conf->getString("file", "quotes", 1)); diff --git a/src/modules/m_regex_stdlib.cpp b/src/modules/m_regex_stdlib.cpp index db59fe6a1..e59f18f46 100644 --- a/src/modules/m_regex_stdlib.cpp +++ b/src/modules/m_regex_stdlib.cpp @@ -87,7 +87,7 @@ class ModuleRegexStdLib : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("stdregex"); + auto tag = ServerInstance->Config->ConfValue("stdregex"); regex.regextype = tag->getEnum("type", std::regex::ECMAScript, { { "awk", std::regex::awk }, diff --git a/src/modules/m_remove.cpp b/src/modules/m_remove.cpp index b1ce048b6..23bd7bf3e 100644 --- a/src/modules/m_remove.cpp +++ b/src/modules/m_remove.cpp @@ -227,7 +227,7 @@ class ModuleRemove void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("remove"); + auto tag = ServerInstance->Config->ConfValue("remove"); supportnokicks = tag->getBool("supportnokicks"); cmd1.protectedrank = cmd2.protectedrank = tag->getUInt("protectedrank", 50000); } diff --git a/src/modules/m_repeat.cpp b/src/modules/m_repeat.cpp index 3218888a9..3bb1e9bff 100644 --- a/src/modules/m_repeat.cpp +++ b/src/modules/m_repeat.cpp @@ -236,7 +236,7 @@ class RepeatMode : public ParamMode<RepeatMode, SimpleExtItem<ChannelSettings> > void ReadConfig() { - ConfigTag* conf = ServerInstance->Config->ConfValue("repeat"); + auto conf = ServerInstance->Config->ConfValue("repeat"); ms.MaxLines = conf->getUInt("maxlines", 20); ms.MaxBacklog = conf->getUInt("maxbacklog", 20); ms.MaxSecs = conf->getDuration("maxtime", 0); diff --git a/src/modules/m_restrictchans.cpp b/src/modules/m_restrictchans.cpp index f08e806dd..4ed4049c5 100644 --- a/src/modules/m_restrictchans.cpp +++ b/src/modules/m_restrictchans.cpp @@ -72,7 +72,7 @@ class ModuleRestrictChans : public Module allowchans.swap(newallows); // Global config - ConfigTag* tag = ServerInstance->Config->ConfValue("restrictchans"); + auto tag = ServerInstance->Config->ConfValue("restrictchans"); allowregistered = tag->getBool("allowregistered", false); } diff --git a/src/modules/m_rline.cpp b/src/modules/m_rline.cpp index 4b282aa2d..e040e9430 100644 --- a/src/modules/m_rline.cpp +++ b/src/modules/m_rline.cpp @@ -269,7 +269,7 @@ class ModuleRLine void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("rline"); + auto tag = ServerInstance->Config->ConfValue("rline"); MatchOnNickChange = tag->getBool("matchonnickchange"); ZlineOnMatch = tag->getBool("zlineonmatch"); diff --git a/src/modules/m_sasl.cpp b/src/modules/m_sasl.cpp index b174cb4f5..560ad4273 100644 --- a/src/modules/m_sasl.cpp +++ b/src/modules/m_sasl.cpp @@ -434,7 +434,7 @@ class ModuleSASL : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("sasl"); + auto tag = ServerInstance->Config->ConfValue("sasl"); const std::string target = tag->getString("target"); if (target.empty()) diff --git a/src/modules/m_securelist.cpp b/src/modules/m_securelist.cpp index 8e74314f9..a0dd8e884 100644 --- a/src/modules/m_securelist.cpp +++ b/src/modules/m_securelist.cpp @@ -59,7 +59,7 @@ class ModuleSecureList newallows.push_back(host); } - ConfigTag* tag = ServerInstance->Config->ConfValue("securelist"); + auto tag = ServerInstance->Config->ConfValue("securelist"); exemptregistered = tag->getBool("exemptregistered"); showmsg = tag->getBool("showmsg", true); WaitTime = tag->getDuration("waittime", 60, 1); diff --git a/src/modules/m_sethost.cpp b/src/modules/m_sethost.cpp index ef7a8c315..9d51830d4 100644 --- a/src/modules/m_sethost.cpp +++ b/src/modules/m_sethost.cpp @@ -82,7 +82,7 @@ class ModuleSetHost : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("hostname"); + auto tag = ServerInstance->Config->ConfValue("hostname"); const std::string hmap = tag->getString("charmap", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-_/0123456789", 1); cmd.hostmap.reset(); diff --git a/src/modules/m_setname.cpp b/src/modules/m_setname.cpp index e9e75bbdc..97aebaf9b 100644 --- a/src/modules/m_setname.cpp +++ b/src/modules/m_setname.cpp @@ -81,7 +81,7 @@ class ModuleSetName : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("setname"); + auto tag = ServerInstance->Config->ConfValue("setname"); // Whether the module should only be usable by server operators. bool operonly = tag->getBool("operonly"); diff --git a/src/modules/m_showfile.cpp b/src/modules/m_showfile.cpp index 624d6c249..7f2c062ab 100644 --- a/src/modules/m_showfile.cpp +++ b/src/modules/m_showfile.cpp @@ -78,7 +78,7 @@ class CommandShowFile : public Command return CmdResult::SUCCESS; } - void UpdateSettings(ConfigTag* tag, const std::vector<std::string>& filecontents) + void UpdateSettings(std::shared_ptr<ConfigTag> tag, const std::vector<std::string>& filecontents) { introtext = tag->getString("introtext", "Showing " + name); endtext = tag->getString("endtext", "End of " + name); @@ -103,7 +103,7 @@ class ModuleShowFile : public Module private: std::vector<CommandShowFile*> cmds; - void ReadTag(ConfigTag* tag, std::vector<CommandShowFile*>& newcmds) + void ReadTag(std::shared_ptr<ConfigTag> tag, std::vector<CommandShowFile*>& newcmds) { std::string cmdname = tag->getString("name"); if (cmdname.empty()) diff --git a/src/modules/m_showwhois.cpp b/src/modules/m_showwhois.cpp index 26182df47..f48f78954 100644 --- a/src/modules/m_showwhois.cpp +++ b/src/modules/m_showwhois.cpp @@ -91,7 +91,7 @@ class ModuleShowwhois : public Module, public Whois::EventListener void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("showwhois"); + auto tag = ServerInstance->Config->ConfValue("showwhois"); sw.SetOperOnly(tag->getBool("opersonly", true)); ShowWhoisFromOpers = tag->getBool("showfromopers", true); diff --git a/src/modules/m_shun.cpp b/src/modules/m_shun.cpp index dce7cf6ea..9e5dcbc35 100644 --- a/src/modules/m_shun.cpp +++ b/src/modules/m_shun.cpp @@ -205,7 +205,7 @@ class ModuleShun : public Module, public Stats::EventListener void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("shun"); + auto tag = ServerInstance->Config->ConfValue("shun"); cleanedcommands.clear(); irc::spacesepstream cleanedcmds(tag->getString("cleanedcommands", "AWAY PART QUIT")); diff --git a/src/modules/m_silence.cpp b/src/modules/m_silence.cpp index cd3c6385c..8505b998b 100644 --- a/src/modules/m_silence.cpp +++ b/src/modules/m_silence.cpp @@ -446,7 +446,7 @@ class ModuleSilence void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("silence"); + auto tag = ServerInstance->Config->ConfValue("silence"); exemptuline = tag->getBool("exemptuline", true); cmd.ext.maxsilence = tag->getUInt("maxentries", 32, 1); } diff --git a/src/modules/m_spanningtree/link.h b/src/modules/m_spanningtree/link.h index 094aa1dea..87fd2560f 100644 --- a/src/modules/m_spanningtree/link.h +++ b/src/modules/m_spanningtree/link.h @@ -29,7 +29,7 @@ class Link { public: - reference<ConfigTag> tag; + std::shared_ptr<ConfigTag> tag; std::string Name; std::string IPAddr; unsigned int Port; @@ -42,17 +42,23 @@ class Link unsigned int Timeout; std::string Bind; bool Hidden; - Link(ConfigTag* Tag) : tag(Tag) {} + Link(std::shared_ptr<ConfigTag> Tag) + : tag(Tag) + { + } }; class Autoconnect { public: - reference<ConfigTag> tag; + std::shared_ptr<ConfigTag> tag; std::vector<std::string> servers; unsigned long Period; time_t NextConnectTime; /** Negative == inactive */ int position; - Autoconnect(ConfigTag* Tag) : tag(Tag) {} + Autoconnect(std::shared_ptr<ConfigTag> Tag) + : tag(Tag) + { + } }; diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp index 8c3786aff..7c33d7a07 100644 --- a/src/modules/m_spanningtree/utils.cpp +++ b/src/modules/m_spanningtree/utils.cpp @@ -238,8 +238,8 @@ void SpanningTreeUtilities::RefreshIPCache() void SpanningTreeUtilities::ReadConfiguration() { - ConfigTag* security = ServerInstance->Config->ConfValue("security"); - ConfigTag* options = ServerInstance->Config->ConfValue("options"); + auto security = ServerInstance->Config->ConfValue("security"); + auto options = ServerInstance->Config->ConfValue("options"); FlatLinks = security->getBool("flatlinks"); HideULines = security->getBool("hideulines"); HideSplits = security->getBool("hidesplits"); diff --git a/src/modules/m_sqlauth.cpp b/src/modules/m_sqlauth.cpp index 6acb10760..20e4a6a45 100644 --- a/src/modules/m_sqlauth.cpp +++ b/src/modules/m_sqlauth.cpp @@ -144,7 +144,7 @@ class ModuleSQLAuth : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* conf = ServerInstance->Config->ConfValue("sqlauth"); + auto conf = ServerInstance->Config->ConfValue("sqlauth"); std::string dbid = conf->getString("dbid"); if (dbid.empty()) SQL.SetProvider("SQL"); @@ -167,7 +167,7 @@ class ModuleSQLAuth : public Module ModResult OnUserRegister(LocalUser* user) override { // Note this is their initial (unresolved) connect block - ConfigTag* tag = user->MyClass->config; + std::shared_ptr<ConfigTag> tag = user->MyClass->config; if (!tag->getBool("usesqlauth", true)) return MOD_RES_PASSTHRU; diff --git a/src/modules/m_sqloper.cpp b/src/modules/m_sqloper.cpp index fe37f1fb2..11c995dab 100644 --- a/src/modules/m_sqloper.cpp +++ b/src/modules/m_sqloper.cpp @@ -71,7 +71,7 @@ class OperQuery : public SQL::Query // Create the oper tag as if we were the conf file. ConfigItems* items; - reference<ConfigTag> tag = ConfigTag::create("oper", MODNAME, 0, items); + auto tag = ConfigTag::create("oper", MODNAME, 0, items); /** Iterate through each column in the SQLOpers table. An infinite number of fields can be specified. * Column 'x' with cell value 'y' will be the same as x=y in an OPER block in opers.conf. @@ -183,7 +183,7 @@ public: // Clear list of our blocks, as ConfigReader just wiped them anyway my_blocks.clear(); - ConfigTag* tag = ServerInstance->Config->ConfValue("sqloper"); + auto tag = ServerInstance->Config->ConfValue("sqloper"); std::string dbid = tag->getString("dbid"); if (dbid.empty()) diff --git a/src/modules/m_starttls.cpp b/src/modules/m_starttls.cpp index f47ddb0f5..9141f9f18 100644 --- a/src/modules/m_starttls.cpp +++ b/src/modules/m_starttls.cpp @@ -99,7 +99,7 @@ class ModuleStartTLS : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* conf = ServerInstance->Config->ConfValue("starttls"); + auto conf = ServerInstance->Config->ConfValue("starttls"); std::string newprovider = conf->getString("provider"); if (newprovider.empty()) diff --git a/src/modules/m_svshold.cpp b/src/modules/m_svshold.cpp index 51402927b..867c7ee67 100644 --- a/src/modules/m_svshold.cpp +++ b/src/modules/m_svshold.cpp @@ -197,7 +197,7 @@ class ModuleSVSHold : public Module, public Stats::EventListener void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("svshold"); + auto tag = ServerInstance->Config->ConfValue("svshold"); silent = tag->getBool("silent", true); } diff --git a/src/modules/m_timedbans.cpp b/src/modules/m_timedbans.cpp index cc8304a95..0c6cc3d5d 100644 --- a/src/modules/m_timedbans.cpp +++ b/src/modules/m_timedbans.cpp @@ -215,7 +215,7 @@ class ModuleTimedBans : public Module void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("timedbans"); + auto tag = ServerInstance->Config->ConfValue("timedbans"); cmd.sendnotice = tag->getBool("sendnotice", true); } diff --git a/src/modules/m_watch.cpp b/src/modules/m_watch.cpp index de193535b..15d1cadf7 100644 --- a/src/modules/m_watch.cpp +++ b/src/modules/m_watch.cpp @@ -229,7 +229,7 @@ class ModuleWatch void ReadConfig(ConfigStatus& status) override { - ConfigTag* tag = ServerInstance->Config->ConfValue("watch"); + auto tag = ServerInstance->Config->ConfValue("watch"); cmd.maxwatch = tag->getUInt("maxwatch", 30, 1); } diff --git a/src/modules/m_websocket.cpp b/src/modules/m_websocket.cpp index 8fd59fb1c..57887393c 100644 --- a/src/modules/m_websocket.cpp +++ b/src/modules/m_websocket.cpp @@ -525,7 +525,7 @@ class ModuleWebSocket : public Module config.allowedorigins.push_back(allow); } - ConfigTag* tag = ServerInstance->Config->ConfValue("websocket"); + auto tag = ServerInstance->Config->ConfValue("websocket"); config.sendastext = tag->getBool("sendastext", true); irc::spacesepstream proxyranges(tag->getString("proxyranges")); diff --git a/src/modules/m_xline_db.cpp b/src/modules/m_xline_db.cpp index eb222a371..ec8cc4982 100644 --- a/src/modules/m_xline_db.cpp +++ b/src/modules/m_xline_db.cpp @@ -53,7 +53,7 @@ class ModuleXLineDB * Imagine a scenario where the new file already exists. Merging the current XLines with the existing database is likely a bad idea * ...and so is discarding all current in-memory XLines for the ones in the database. */ - ConfigTag* Conf = ServerInstance->Config->ConfValue("xlinedb"); + auto Conf = ServerInstance->Config->ConfValue("xlinedb"); xlinedbpath = ServerInstance->Config->Paths.PrependData(Conf->getString("filename", "xline.db", 1)); SetInterval(Conf->getDuration("saveperiod", 5)); diff --git a/src/socket.cpp b/src/socket.cpp index f5f1cc820..d98955f12 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -29,7 +29,7 @@ #include "inspircd.h" -bool InspIRCd::BindPort(ConfigTag* tag, const irc::sockets::sockaddrs& sa, std::vector<ListenSocket*>& old_ports) +bool InspIRCd::BindPort(std::shared_ptr<ConfigTag> tag, const irc::sockets::sockaddrs& sa, std::vector<ListenSocket*>& old_ports) { for (std::vector<ListenSocket*>::iterator n = old_ports.begin(); n != old_ports.end(); ++n) { diff --git a/src/users.cpp b/src/users.cpp index 5063da124..b57e51644 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -428,10 +428,8 @@ void OperInfo::init() AllowedSnomasks.reset(); AllowedUserModes['o' - 'A'] = true; // Call me paranoid if you want. - for(std::vector<reference<ConfigTag> >::iterator iter = class_blocks.begin(); iter != class_blocks.end(); ++iter) + for (auto& tag : class_blocks) { - ConfigTag* tag = *iter; - AllowedOperCommands.AddList(tag->getString("commands")); AllowedPrivs.AddList(tag->getString("privs")); @@ -1226,7 +1224,7 @@ const std::string& FakeUser::GetFullRealHost() return server->GetName(); } -ConnectClass::ConnectClass(ConfigTag* tag, char t, const std::string& mask) +ConnectClass::ConnectClass(std::shared_ptr<ConfigTag> tag, char t, const std::string& mask) : config(tag) , type(t) , name("unnamed") @@ -1234,7 +1232,7 @@ ConnectClass::ConnectClass(ConfigTag* tag, char t, const std::string& mask) { } -ConnectClass::ConnectClass(ConfigTag* tag, char t, const std::string& mask, const ConnectClass& parent) +ConnectClass::ConnectClass(std::shared_ptr<ConfigTag> tag, char t, const std::string& mask, const ConnectClass& parent) { Update(&parent); name = "unnamed"; |
