]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: mail_user_init_ssl_client_settings() - Use master_service_ssl_settings
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 29 Jul 2021 15:02:57 +0000 (18:02 +0300)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 10 Aug 2021 09:35:01 +0000 (11:35 +0200)
This will allow dropping the duplicate SSL settings handling.

src/lib-storage/mail-storage-service.c
src/lib-storage/mail-user.c

index 3ddf438381615055eb4f3409ad75e60f657833a3..0b29cd5e91a4c6316d9827c105393f023dac5b20 100644 (file)
@@ -1344,8 +1344,7 @@ mail_storage_service_lookup_real(struct mail_storage_service_ctx *ctx,
        sets = master_service_settings_parser_get_others(master_service,
                                                         user->set_parser);
        user->user_set = sets[0];
-       user->ssl_set = master_service_ssl_settings_get_from_parser(
-               master_service, user->set_parser);
+       user->ssl_set = master_service_ssl_settings_get_from_parser(user->set_parser);
        user->gid_source = "mail_gid setting";
        user->uid_source = "mail_uid setting";
        /* Create an event that will be used as the default event for logging.
index 8d22edec2407eb018335eb0a323cfb7ffbf6da1d..2e36b0274434f7f143ca47e61dddbc9a9c686f2e 100644 (file)
@@ -18,6 +18,7 @@
 #include "fs-api.h"
 #include "auth-master.h"
 #include "master-service.h"
+#include "master-service-ssl-settings.h"
 #include "dict.h"
 #include "mail-storage-settings.h"
 #include "mail-storage-private.h"
@@ -692,10 +693,18 @@ struct mail_user *mail_user_dup(struct mail_user *user)
 void mail_user_init_ssl_client_settings(struct mail_user *user,
        struct ssl_iostream_settings *ssl_set_r)
 {
-       const struct mail_storage_settings *mail_set =
-               mail_user_set_get_storage_set(user);
+       if (user->_service_user == NULL) {
+               /* Internal test user that should never actually need any
+                  SSL settings. */
+               i_zero(ssl_set_r);
+               return;
+       }
+
+       const struct master_service_ssl_settings *ssl_set =
+               mail_storage_service_user_get_ssl_settings(user->_service_user);
 
-       mail_storage_settings_init_ssl_client_settings(mail_set, ssl_set_r);
+       master_service_ssl_client_settings_to_iostream_set(ssl_set,
+               pool_datastack_create(), ssl_set_r);
 }
 
 void mail_user_init_fs_settings(struct mail_user *user,