]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
submission-login: change submission_backend_capabilities to BOOLLIST.
authorsergey.kitov <sergey.kitov@open-xchange.com>
Wed, 20 Sep 2023 15:07:26 +0000 (18:07 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:13 +0000 (12:34 +0200)
src/submission-login/client.c
src/submission-login/submission-login-settings.c
src/submission-login/submission-login-settings.h

index 5f221aa938137b0f99cee21aba09d22ec44a4824..17651874794b9438a158d9d5282c601999f94332 100644 (file)
@@ -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;
index 60236b70f7e2c74f96a7e6bde9ffb2838b9020b2..8dddb317798abde341ba8c186289d529cc37b86b 100644 (file)
@@ -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 = {
index a54ccee90701fae56b4cb7e7756a892c5d2fdf75..86e1fdd6fa5f41c774020963e7e11fdeabfea0e9 100644 (file)
@@ -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;
 };