From 74661a8112c9522a29f7ed7e04c42d7438517690 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Sat, 30 Jan 2021 14:04:19 +0000 Subject: Allow ServerConfig::Conf{Value,Tags} to have a fallback default. --- src/configreader.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/configreader.cpp') diff --git a/src/configreader.cpp b/src/configreader.cpp index fa04a232b..a72257609 100644 --- a/src/configreader.cpp +++ b/src/configreader.cpp @@ -615,11 +615,11 @@ void ServerConfig::ApplyModules(User* user) } } -std::shared_ptr ServerConfig::ConfValue(const std::string& tag) +std::shared_ptr ServerConfig::ConfValue(const std::string& tag, std::shared_ptr def) { auto tags = stdalgo::equal_range(config_data, tag); if (tags.empty()) - return EmptyTag; + return def ? def : EmptyTag; if (tags.count() > 1) { @@ -629,9 +629,10 @@ std::shared_ptr ServerConfig::ConfValue(const std::string& tag) return tags.begin()->second; } -ServerConfig::TagList ServerConfig::ConfTags(const std::string& tag) +ServerConfig::TagList ServerConfig::ConfTags(const std::string& tag, std::optional def) { - return stdalgo::equal_range(config_data, tag); + auto range = stdalgo::equal_range(config_data, tag); + return range.empty() && def ? *def : range; } std::string ServerConfig::Escape(const std::string& str) -- cgit v1.3.1-10-gc9f91