From: sergey.kitov Date: Wed, 20 Sep 2023 15:07:26 +0000 (+0300) Subject: submission-login: change submission_backend_capabilities to BOOLLIST. X-Git-Tag: 2.4.1~849 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9680d53378e2c625ba17dd1cd256ebc33114be0c;p=thirdparty%2Fdovecot%2Fcore.git submission-login: change submission_backend_capabilities to BOOLLIST. --- diff --git a/src/submission-login/client.c b/src/submission-login/client.c index 5f221aa938..1765187479 100644 --- a/src/submission-login/client.c +++ b/src/submission-login/client.c @@ -2,6 +2,7 @@ #include "login-common.h" #include "base64.h" +#include "array.h" #include "buffer.h" #include "ioloop.h" #include "istream.h" @@ -19,6 +20,7 @@ #include "auth-client.h" #include "submission-proxy.h" #include "submission-login-settings.h" +#include "settings-parser.h" /* Disconnect client when it sends too many bad commands */ #define CLIENT_MAX_BAD_COMMANDS 10 @@ -33,13 +35,13 @@ client_parse_backend_capabilities(struct submission_client *subm_client ) const struct submission_login_settings *set = subm_client->set; const char *const *str; - if (set->submission_backend_capabilities[0] == '\0') { + if (array_is_empty(&set->submission_backend_capabilities)) { subm_client->backend_capabilities = SMTP_CAPABILITY_8BITMIME; return; } subm_client->backend_capabilities = SMTP_CAPABILITY_NONE; - str = t_strsplit_spaces(set->submission_backend_capabilities, " ,"); + str = settings_boollist_get(&set->submission_backend_capabilities); for (; *str != NULL; str++) { if (strcmp(*str, "none") == 0) continue; diff --git a/src/submission-login/submission-login-settings.c b/src/submission-login/submission-login-settings.c index 60236b70f7..8dddb31779 100644 --- a/src/submission-login/submission-login-settings.c +++ b/src/submission-login/submission-login-settings.c @@ -59,7 +59,7 @@ static const struct setting_define submission_login_setting_defines[] = { DEF(SIZE, submission_max_mail_size), DEF(BOOLLIST, submission_client_workarounds), - DEF(STR, submission_backend_capabilities), + DEF(BOOLLIST, submission_backend_capabilities), SETTING_DEFINE_LIST_END }; @@ -69,7 +69,7 @@ static const struct submission_login_settings submission_login_default_settings .submission_max_mail_size = 0, .submission_client_workarounds = ARRAY_INIT, - .submission_backend_capabilities = "", + .submission_backend_capabilities = ARRAY_INIT, }; const struct setting_parser_info submission_login_setting_parser_info = { diff --git a/src/submission-login/submission-login-settings.h b/src/submission-login/submission-login-settings.h index a54ccee907..86e1fdd6fa 100644 --- a/src/submission-login/submission-login-settings.h +++ b/src/submission-login/submission-login-settings.h @@ -15,7 +15,7 @@ struct submission_login_settings { /* submission: */ uoff_t submission_max_mail_size; ARRAY_TYPE(const_string) submission_client_workarounds; - const char *submission_backend_capabilities; + ARRAY_TYPE(const_string) submission_backend_capabilities; enum submission_login_client_workarounds parsed_workarounds; };