aboutsummaryrefslogtreecommitdiffstats
path: root/src/configreader.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2021-01-30 14:04:19 +0000
committerGravatar Sadie Powell2021-01-30 14:04:19 +0000
commit74661a8112c9522a29f7ed7e04c42d7438517690 (patch)
treecef1ceb3e51b9ab1b46d28a9f725c8ad1147dd70 /src/configreader.cpp
parentRename <deaf:privdeafuline> to <deaf:privdeafservice>. (diff)
Allow ServerConfig::Conf{Value,Tags} to have a fallback default.
Diffstat (limited to 'src/configreader.cpp')
-rw-r--r--src/configreader.cpp9
1 files changed, 5 insertions, 4 deletions
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<ConfigTag> ServerConfig::ConfValue(const std::string& tag)
+std::shared_ptr<ConfigTag> ServerConfig::ConfValue(const std::string& tag, std::shared_ptr<ConfigTag> 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<ConfigTag> 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<TagList> 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)