diff options
| author | 2021-01-30 14:04:19 +0000 | |
|---|---|---|
| committer | 2021-01-30 14:04:19 +0000 | |
| commit | 74661a8112c9522a29f7ed7e04c42d7438517690 (patch) | |
| tree | cef1ceb3e51b9ab1b46d28a9f725c8ad1147dd70 /src/configreader.cpp | |
| parent | Rename <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.cpp | 9 |
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) |
