From 9680d53378e2c625ba17dd1cd256ebc33114be0c Mon Sep 17 00:00:00 2001 From: "sergey.kitov" Date: Wed, 20 Sep 2023 18:07:26 +0300 Subject: [PATCH] submission-login: change submission_backend_capabilities to BOOLLIST. --- src/submission-login/client.c | 6 ++++-- src/submission-login/submission-login-settings.c | 4 ++-- src/submission-login/submission-login-settings.h | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) 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; }; -- 2.47.3