summaryrefslogtreecommitdiff
path: root/src/Permission.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@musicpd.org>2018-07-18 11:03:19 +0200
committerMax Kellermann <max@musicpd.org>2018-07-18 11:03:19 +0200
commit9ff2606bb867c98cd1681433ac5e4d21b9ae541a (patch)
tree60fdf3d17ffbaf51fde7900edf00430d3ec26b72 /src/Permission.cxx
parentfd80683ade480d6417d66d0fc882b598738002f8 (diff)
config/Data: use std::forward_list to manage params and blocks
Diffstat (limited to 'src/Permission.cxx')
-rw-r--r--src/Permission.cxx33
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 &param : 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)