From 8aaf66714e51b319f6400635ed623eb8957a203d Mon Sep 17 00:00:00 2001 From: Joel Rosdahl Date: Thu, 7 Jul 2022 12:31:58 +0200 Subject: [PATCH] refactor: Simplify Redis URL parameter parsing --- src/storage/secondary/RedisStorage.cpp | 29 +++++++------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/src/storage/secondary/RedisStorage.cpp b/src/storage/secondary/RedisStorage.cpp index 976386a7f..4c98634e3 100644 --- a/src/storage/secondary/RedisStorage.cpp +++ b/src/storage/secondary/RedisStorage.cpp @@ -106,20 +106,6 @@ split_user_info(const std::string& user_info) } } -std::map -split_parameters(const Url::Query& query) -{ - std::map m; - if (!query.empty()) { - auto it = query.begin(); - auto end = query.end(); - do { - m[it->key()] = it->val(); - } while (++it != end); - } - return m; -} - RedisStorageBackend::RedisStorageBackend(const Params& params) : m_prefix("ccache"), // TODO: attribute m_context(nullptr, redisFree) @@ -289,15 +275,14 @@ RedisStorageBackend::select_database(const Url& url) { std::optional db; if (url.scheme() == "redis+unix") { - const auto parameters_map = split_parameters(url.query()); - auto search = parameters_map.find("db"); - if (search != parameters_map.end()) { - db = search->second; - } - } else { - if (!url.path().empty()) { - db = url.path().substr(1); + for (const auto& param : url.query()) { + if (param.key() == "db") { + db = param.val(); + break; + } } + } else if (!url.path().empty()) { + db = url.path().substr(1); } const uint32_t db_number = !db ? 0 -- 2.47.3