From: Timo Sirainen Date: Thu, 12 Jan 2023 14:17:41 +0000 (+0200) Subject: lib-storage: Add mail_storage_service_user_init_ssl_client_settings() X-Git-Tag: 2.4.0~2302 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=25493d9ef93593d9b40d1aba35892df52bc90ac0;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Add mail_storage_service_user_init_ssl_client_settings() --- diff --git a/src/lib-storage/mail-storage-service.c b/src/lib-storage/mail-storage-service.c index b8c3519576..3f7b893a73 100644 --- a/src/lib-storage/mail-storage-service.c +++ b/src/lib-storage/mail-storage-service.c @@ -1741,6 +1741,24 @@ mail_storage_service_user_get_ssl_settings(struct mail_storage_service_user *use return user->ssl_set; } +int mail_storage_service_user_init_ssl_client_settings( + struct mail_storage_service_user *user, pool_t pool, + struct ssl_iostream_settings *ssl_set_r, const char **error_r) +{ + struct setting_parser_context *set_parser; + const struct master_service_ssl_settings *ssl_set; + + set_parser = mail_storage_service_user_get_settings_parser(user); + if (master_service_settings_parser_get(user->event, + set_parser, &master_service_ssl_setting_parser_info, + 0, &ssl_set, error_r) < 0) + return -1; + master_service_ssl_client_settings_to_iostream_set(ssl_set, pool, + ssl_set_r); + master_service_settings_free(ssl_set); + return 0; +} + struct mail_storage_service_ctx * mail_storage_service_user_get_service_ctx(struct mail_storage_service_user *user) { diff --git a/src/lib-storage/mail-storage-service.h b/src/lib-storage/mail-storage-service.h index 6ec111efaf..2e997713ad 100644 --- a/src/lib-storage/mail-storage-service.h +++ b/src/lib-storage/mail-storage-service.h @@ -4,6 +4,7 @@ #include "net.h" struct master_service; +struct ssl_iostream_settings; struct mail_user; struct setting_parser_context; struct setting_parser_info; @@ -159,6 +160,9 @@ struct setting_parser_context * mail_storage_service_user_get_settings_parser(struct mail_storage_service_user *user); const struct master_service_ssl_settings * mail_storage_service_user_get_ssl_settings(struct mail_storage_service_user *user); +int mail_storage_service_user_init_ssl_client_settings( + struct mail_storage_service_user *user, pool_t pool, + struct ssl_iostream_settings *ssl_set_r, const char **error_r); struct mail_storage_service_ctx * mail_storage_service_user_get_service_ctx(struct mail_storage_service_user *user); pool_t mail_storage_service_user_get_pool(struct mail_storage_service_user *user);