Also changed mailbox_list_init_fs() to use it internally.
#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"
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;
+}
struct module;
struct mail_user;
+struct fs_settings;
+struct ssl_iostream_settings;
struct mail_user_vfuncs {
void (*deinit)(struct mail_user *user);
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
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);
}