diff options
author | Max Kellermann <max@musicpd.org> | 2018-07-18 11:03:19 +0200 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2018-07-18 11:03:19 +0200 |
commit | 9ff2606bb867c98cd1681433ac5e4d21b9ae541a (patch) | |
tree | 60fdf3d17ffbaf51fde7900edf00430d3ec26b72 /src/Permission.cxx | |
parent | fd80683ade480d6417d66d0fc882b598738002f8 (diff) |
config/Data: use std::forward_list to manage params and blocks
Diffstat (limited to 'src/Permission.cxx')
-rw-r--r-- | src/Permission.cxx | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/src/Permission.cxx b/src/Permission.cxx index 0a195d854..bb67a9585 100644 --- a/src/Permission.cxx +++ b/src/Permission.cxx @@ -91,37 +91,32 @@ void initPermissions(const ConfigData &config) { unsigned permission; - const ConfigParam *param; permission_default = PERMISSION_READ | PERMISSION_ADD | PERMISSION_CONTROL | PERMISSION_ADMIN; - param = config.GetParam(ConfigOption::PASSWORD); - - if (param) { + for (const auto ¶m : config.GetParamList(ConfigOption::PASSWORD)) { permission_default = 0; - do { - const char *separator = - strchr(param->value.c_str(), - PERMISSION_PASSWORD_CHAR); + const char *separator = strchr(param.value.c_str(), + PERMISSION_PASSWORD_CHAR); - if (separator == NULL) - throw FormatRuntimeError("\"%c\" not found in password string " - "\"%s\", line %i", - PERMISSION_PASSWORD_CHAR, - param->value.c_str(), - param->line); + if (separator == NULL) + throw FormatRuntimeError("\"%c\" not found in password string " + "\"%s\", line %i", + PERMISSION_PASSWORD_CHAR, + param.value.c_str(), + param.line); - std::string password(param->value.c_str(), separator); + std::string password(param.value.c_str(), separator); - permission = parsePermissions(separator + 1); + permission = parsePermissions(separator + 1); - permission_passwords.insert(std::make_pair(std::move(password), - permission)); - } while ((param = param->next) != nullptr); + permission_passwords.insert(std::make_pair(std::move(password), + permission)); } + const ConfigParam *param; param = config.GetParam(ConfigOption::DEFAULT_PERMS); if (param) |