From: Timo Sirainen Date: Sat, 17 Jan 2015 00:31:24 +0000 (+0200) Subject: lib-storage: Added mail_user_init_fs_settings() X-Git-Tag: 2.2.16.rc1~144 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1701b354e81ff1dfd0b6c7bb4412b8d9c2b9f986;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Added mail_user_init_fs_settings() Also changed mailbox_list_init_fs() to use it internally. --- diff --git a/src/lib-storage/mail-user.c b/src/lib-storage/mail-user.c index 55dc2f5b26..57428652f6 100644 --- a/src/lib-storage/mail-user.c +++ b/src/lib-storage/mail-user.c @@ -11,6 +11,8 @@ #include "strescape.h" #include "var-expand.h" #include "settings-parser.h" +#include "iostream-ssl.h" +#include "fs-api.h" #include "auth-master.h" #include "master-service.h" #include "mountpoint-list.h" @@ -536,3 +538,21 @@ struct mail_user *mail_user_dup(struct mail_user *user) user2->session_id = p_strdup(user2->pool, user->session_id); return user2; } + +void mail_user_init_fs_settings(struct mail_user *user, + struct fs_settings *fs_set, + struct ssl_iostream_settings *ssl_set) +{ + const struct mail_storage_settings *mail_set = + mail_user_set_get_storage_set(user); + + fs_set->username = user->username; + fs_set->session_id = user->session_id; + fs_set->base_dir = user->set->base_dir; + fs_set->temp_dir = user->set->mail_temp_dir; + fs_set->debug = user->mail_debug; + + fs_set->ssl_client_set = ssl_set; + ssl_set->ca_dir = mail_set->ssl_client_ca_dir; + ssl_set->ca_file = mail_set->ssl_client_ca_file; +} diff --git a/src/lib-storage/mail-user.h b/src/lib-storage/mail-user.h index 6b3b2b4191..5aae88d734 100644 --- a/src/lib-storage/mail-user.h +++ b/src/lib-storage/mail-user.h @@ -6,6 +6,8 @@ struct module; struct mail_user; +struct fs_settings; +struct ssl_iostream_settings; struct mail_user_vfuncs { void (*deinit)(struct mail_user *user); @@ -159,4 +161,9 @@ bool mail_user_is_path_mounted(struct mail_user *user, const char *path, struct mail_storage * mail_user_get_storage_class(struct mail_user *user, const char *name); +/* Initialize fs_settings from mail_user settings. */ +void mail_user_init_fs_settings(struct mail_user *user, + struct fs_settings *fs_set, + struct ssl_iostream_settings *ssl_set); + #endif diff --git a/src/lib-storage/mailbox-list.c b/src/lib-storage/mailbox-list.c index ce3b3aaf5b..9ed2621610 100644 --- a/src/lib-storage/mailbox-list.c +++ b/src/lib-storage/mailbox-list.c @@ -1830,18 +1830,10 @@ int mailbox_list_init_fs(struct mailbox_list *list, const char *driver, struct ssl_iostream_settings ssl_set; memset(&ssl_set, 0, sizeof(ssl_set)); - ssl_set.ca_dir = list->mail_set->ssl_client_ca_dir; - ssl_set.ca_file = list->mail_set->ssl_client_ca_file; - memset(&fs_set, 0, sizeof(fs_set)); - fs_set.username = list->ns->user->username; - fs_set.session_id = list->ns->user->session_id; - fs_set.temp_file_prefix = mailbox_list_get_global_temp_prefix(list); - fs_set.base_dir = list->ns->user->set->base_dir; - fs_set.temp_dir = list->ns->user->set->mail_temp_dir; - fs_set.ssl_client_set = &ssl_set; + mail_user_init_fs_settings(list->ns->user, &fs_set, &ssl_set); fs_set.root_path = root_dir; - fs_set.debug = list->ns->user->mail_debug; + fs_set.temp_file_prefix = mailbox_list_get_global_temp_prefix(list); return fs_init(driver, args, &fs_set, fs_r, error_r); }