dovecot-2.2: lib-storage: Added mail_user_init_fs_settings()

dovecot at dovecot.org dovecot at dovecot.org
Sat Jan 17 00:32:38 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/a6e51d9098bc
changeset: 18162:a6e51d9098bc
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Jan 17 02:31:24 2015 +0200
description:
lib-storage: Added mail_user_init_fs_settings()
Also changed mailbox_list_init_fs() to use it internally.

diffstat:

 src/lib-storage/mail-user.c    |  20 ++++++++++++++++++++
 src/lib-storage/mail-user.h    |   7 +++++++
 src/lib-storage/mailbox-list.c |  12 ++----------
 3 files changed, 29 insertions(+), 10 deletions(-)

diffs (80 lines):

diff -r ec0518476003 -r a6e51d9098bc src/lib-storage/mail-user.c
--- a/src/lib-storage/mail-user.c	Sat Jan 17 01:19:42 2015 +0200
+++ b/src/lib-storage/mail-user.c	Sat Jan 17 02:31:24 2015 +0200
@@ -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 @@
 	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 -r ec0518476003 -r a6e51d9098bc src/lib-storage/mail-user.h
--- a/src/lib-storage/mail-user.h	Sat Jan 17 01:19:42 2015 +0200
+++ b/src/lib-storage/mail-user.h	Sat Jan 17 02:31:24 2015 +0200
@@ -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 @@
 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 -r ec0518476003 -r a6e51d9098bc src/lib-storage/mailbox-list.c
--- a/src/lib-storage/mailbox-list.c	Sat Jan 17 01:19:42 2015 +0200
+++ b/src/lib-storage/mailbox-list.c	Sat Jan 17 02:31:24 2015 +0200
@@ -1830,18 +1830,10 @@
 	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;
+	mail_user_init_fs_settings(list->ns->user, &fs_set, &ssl_set);
+	fs_set.root_path = root_dir;
 	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;
-	fs_set.root_path = root_dir;
-	fs_set.debug = list->ns->user->mail_debug;
 
 	return fs_init(driver, args, &fs_set, fs_r, error_r);
 }


More information about the dovecot-cvs mailing list