]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage, global: Add root parameter to mail_storage_service_user_get_set()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Sat, 26 Feb 2022 22:36:11 +0000 (23:36 +0100)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 30 Nov 2022 12:39:58 +0000 (14:39 +0200)
src/doveadm/doveadm-dsync.c
src/imap-urlauth/imap-urlauth-worker.c
src/imap/main.c
src/lda/main.c
src/lib-storage/mail-storage-service.c
src/lib-storage/mail-storage-service.h
src/lmtp/lmtp-local.c
src/pop3/main.c
src/submission/main.c

index acc6b597a8cb13d2de8651550c3bdbdd8c544096..f029406800b5dfeb5dbca7d8ff8a6ae63bf19471 100644 (file)
@@ -1079,7 +1079,8 @@ static int cmd_dsync_prerun(struct doveadm_mail_cmd_context *_ctx,
        const struct master_service_ssl_settings *ssl_set;
        const char *username = "";
 
-       user_set = mail_storage_service_user_get_set(service_user)[0];
+       user_set = mail_storage_service_user_get_set(service_user,
+                       &mail_user_setting_parser_info);
        ssl_set = mail_storage_service_user_get_ssl_settings(service_user);
 
        ctx->fd_in = -1;
index 096a3a854e6dc9fd791f5bc726f4be45d308db66..701cefd78aa96ffc97ce0379d25f74a4c51eb395 100644 (file)
@@ -588,7 +588,8 @@ client_handle_user_command(struct client *client, const char *cmd,
        /* drop privileges */
        restrict_access_allow_coredumps(TRUE);
 
-       set = mail_storage_service_user_get_set(user)[1];
+       set = mail_storage_service_user_get_set(user,
+                       &imap_urlauth_worker_setting_parser_info);
        if (mail_user_var_expand(mail_user, &imap_urlauth_worker_setting_parser_info,
                                 set, &error) <= 0) {
                client_send_line(client, "NO");
index 14473e461967134186de0160836cdeeee4807780..da50d7db0d3e317ac04fc9965403240df0df3a9f 100644 (file)
@@ -278,8 +278,10 @@ int client_create_from_input(const struct mail_storage_service_input *input,
 
        restrict_access_allow_coredumps(TRUE);
 
-       smtp_set = mail_storage_service_user_get_set(user)[1];
-       imap_set = mail_storage_service_user_get_set(user)[2];
+       smtp_set = mail_storage_service_user_get_set(user,
+                       &smtp_submit_setting_parser_info);
+       imap_set = mail_storage_service_user_get_set(user,
+                       &imap_setting_parser_info);
        if (imap_set->verbose_proctitle)
                verbose_proctitle = TRUE;
 
index 6b17fa42b94be304bb7a90a6716349ea476ebc1e..e76d7fc28464b353e664b0a0fdf178f5fa06a0cc 100644 (file)
@@ -293,8 +293,10 @@ lda_deliver(struct mail_deliver_input *dinput,
        const char *errstr;
        int ret;
 
-       smtp_set = mail_storage_service_user_get_set(service_user)[1];
-       lda_set = mail_storage_service_user_get_set(service_user)[2];
+       smtp_set = mail_storage_service_user_get_set(service_user,
+                       &smtp_submit_setting_parser_info);
+       lda_set = mail_storage_service_user_get_set(service_user,
+                       &lda_setting_parser_info);
        ret = mail_user_var_expand(dinput->rcpt_user, &lda_setting_parser_info,
                                   lda_set, &errstr);
        if (ret > 0) {
index 84a7963aaf48fa14b009c31d853ea9925d2c815e..c0bdf0e897b23f503de11a799f700deb300e9f34 100644 (file)
@@ -1756,10 +1756,10 @@ struct mail_storage_service_ctx *mail_storage_service_get_global(void)
        return storage_service_global;
 }
 
-void **mail_storage_service_user_get_set(struct mail_storage_service_user *user)
+void *mail_storage_service_user_get_set(struct mail_storage_service_user *user,
+                                       const struct setting_parser_info *root)
 {
-       return master_service_settings_parser_get_others(master_service,
-                                                        user->set_parser);
+       return settings_parser_get_root_set(user->set_parser, root);
 }
 
 const struct mail_storage_settings *
index 713a58f1270b4f6589fd55193003f6948828d627..95e5b44be14f6fcbd9f36e46837332da5c1d8ca5 100644 (file)
@@ -151,9 +151,10 @@ void mail_storage_service_io_activate_user(struct mail_storage_service_user *use
    log prefix. */
 void mail_storage_service_io_deactivate_user(struct mail_storage_service_user *user);
 
-/* Return the settings pointed to by set_root parameter in _init().
-   The settings contain all the changes done by userdb lookups. */
-void **mail_storage_service_user_get_set(struct mail_storage_service_user *user);
+/* Return settings struct for the given root. The settings contain all the
+   changes done by userdb lookups. */
+void *mail_storage_service_user_get_set(struct mail_storage_service_user *user,
+                                       const struct setting_parser_info *root);
 const struct mail_storage_settings *
 mail_storage_service_user_get_mail_set(struct mail_storage_service_user *user);
 const struct mail_storage_service_input *
index 1c4eb47b516ed950547c047f028e3fa82a6e62aa..d2d0c8bc8857fe8391bf567af25960c4448ef9bc 100644 (file)
@@ -122,7 +122,8 @@ lmtp_local_rcpt_reply_overquota(struct lmtp_local_recipient *llrcpt,
 {
        struct smtp_server_recipient *rcpt = llrcpt->rcpt->rcpt;
        struct lda_settings *lda_set =
-               mail_storage_service_user_get_set(llrcpt->service_user)[2];
+               mail_storage_service_user_get_set(llrcpt->service_user,
+                       &lda_setting_parser_info);
 
        if (lda_set->quota_full_tempfail)
                smtp_server_recipient_reply(rcpt, 452, "4.2.2", "%s", error);
@@ -423,7 +424,6 @@ lmtp_local_deliver(struct lmtp_local *local,
        struct lda_settings *lda_set;
        struct mail_namespace *ns;
        struct setting_parser_context *set_parser;
-       void **sets;
        const char *line, *error, *username;
        int ret;
 
@@ -468,9 +468,10 @@ lmtp_local_deliver(struct lmtp_local *local,
        }
        local->rcpt_user = rcpt_user;
 
-       sets = mail_storage_service_user_get_set(service_user);
-       smtp_set = sets[1];
-       lda_set = sets[2];
+       smtp_set = mail_storage_service_user_get_set(service_user,
+                       &smtp_submit_setting_parser_info);
+       lda_set = mail_storage_service_user_get_set(service_user,
+                       &lda_setting_parser_info);
        ret = mail_user_var_expand(rcpt_user, &smtp_submit_setting_parser_info,
                                   smtp_set, &error);
        if (ret > 0) {
index c665a10ff1045af7f8c4d64ead7abcaad1354606..8592fd3ed878d044b6273e09fb6cbde3e1aa7839 100644 (file)
@@ -148,7 +148,8 @@ client_create_from_input(const struct mail_storage_service_input *input,
        }
        restrict_access_allow_coredumps(TRUE);
 
-       set = mail_storage_service_user_get_set(user)[1];
+       set = mail_storage_service_user_get_set(user,
+                       &pop3_setting_parser_info);
        if (set->verbose_proctitle)
                verbose_proctitle = TRUE;
 
index 8fa41f06ed0860ae4b24cb2ba0f85a74c68f10c9..54f4b6f5d1f78c376901b12f32d1daaf84fea6be 100644 (file)
@@ -192,7 +192,8 @@ client_create_from_input(const struct mail_storage_service_input *input,
 
        restrict_access_allow_coredumps(TRUE);
 
-       set = mail_storage_service_user_get_set(user)[1];
+       set = mail_storage_service_user_get_set(user,
+                       &submission_setting_parser_info);
        if (set->verbose_proctitle)
                verbose_proctitle = TRUE;