From: sergey.kitov Date: Wed, 25 Oct 2023 13:49:36 +0000 (+0300) Subject: doveadm: Change doveadm_allowed_commands to BOOLLIST. X-Git-Tag: 2.4.1~842 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a2a3e1c1e8b4aa41903e38cbf9d9bacb16c0756f;p=thirdparty%2Fdovecot%2Fcore.git doveadm: Change doveadm_allowed_commands to BOOLLIST. --- diff --git a/src/doveadm/client-connection.c b/src/doveadm/client-connection.c index 4825eebba1..831b409d85 100644 --- a/src/doveadm/client-connection.c +++ b/src/doveadm/client-connection.c @@ -1,6 +1,7 @@ /* Copyright (c) 2010-2018 Dovecot authors, see the included COPYING file */ #include "lib.h" +#include "array.h" #include "process-title.h" #include "settings.h" #include "master-service.h" @@ -13,12 +14,12 @@ bool doveadm_client_is_allowed_command(const struct doveadm_settings *set, { bool ret = FALSE; - if (*set->doveadm_allowed_commands == '\0') + if (array_is_empty(&set->doveadm_allowed_commands)) return TRUE; T_BEGIN { const char *const *cmds = - t_strsplit(set->doveadm_allowed_commands, ","); + settings_boollist_get(&set->doveadm_allowed_commands); for (; *cmds != NULL; cmds++) { if (strcmp(*cmds, cmd_name) == 0) { ret = TRUE; diff --git a/src/doveadm/doveadm-settings.c b/src/doveadm/doveadm-settings.c index 8ee4ebb6c1..9056975031 100644 --- a/src/doveadm/doveadm-settings.c +++ b/src/doveadm/doveadm-settings.c @@ -68,7 +68,7 @@ static const struct setting_define doveadm_setting_defines[] = { DEF(ENUM, doveadm_ssl), DEF(STR, doveadm_username), DEF(STR, doveadm_password), - DEF(STR, doveadm_allowed_commands), + DEF(BOOLLIST, doveadm_allowed_commands), DEF(STR, dsync_alt_char), DEF(STR_NOVARS, dsync_remote_cmd), DEF(STR, doveadm_api_key), @@ -98,7 +98,7 @@ const struct doveadm_settings doveadm_default_settings = { .doveadm_ssl = "no:ssl:starttls", .doveadm_username = "doveadm", .doveadm_password = "", - .doveadm_allowed_commands = "", + .doveadm_allowed_commands = ARRAY_INIT, .dsync_alt_char = "_", .dsync_remote_cmd = "ssh -l%{login} %{host} doveadm dsync-server -u%u -U", .dsync_features = "", diff --git a/src/doveadm/doveadm-settings.h b/src/doveadm/doveadm-settings.h index bb7c773843..1f67fe6f09 100644 --- a/src/doveadm/doveadm-settings.h +++ b/src/doveadm/doveadm-settings.h @@ -29,7 +29,7 @@ struct doveadm_settings { const char *doveadm_ssl; const char *doveadm_username; const char *doveadm_password; - const char *doveadm_allowed_commands; + ARRAY_TYPE(const_string) doveadm_allowed_commands; const char *dsync_alt_char; const char *dsync_remote_cmd; const char *doveadm_api_key;