Use it for dbox's attachment_fs.
-I$(top_srcdir)/src/lib-test \
-I$(top_srcdir)/src/lib-auth \
-I$(top_srcdir)/src/lib-dict \
+ -I$(top_srcdir)/src/lib-ssl-iostream \
+ -I$(top_srcdir)/src/lib-fs \
-I$(top_srcdir)/src/lib-master \
-I$(top_srcdir)/src/lib-settings \
-I$(top_srcdir)/src/lib-charset \
{
struct dbox_storage *storage = (struct dbox_storage *)_storage;
const struct mail_storage_settings *set = _storage->set;
- struct fs_settings fs_set;
const char *error;
- memset(&fs_set, 0, sizeof(fs_set));
- fs_set.temp_file_prefix = mailbox_list_get_global_temp_prefix(ns->list);
-
if (*set->mail_attachment_fs != '\0') {
const char *name, *args, *dir;
dir = mail_user_home_expand(_storage->user,
set->mail_attachment_dir);
storage->attachment_dir = p_strdup(_storage->pool, dir);
- fs_set.root_path = storage->attachment_dir;
- if (fs_init(name, args, &fs_set, &storage->attachment_fs,
- &error) < 0) {
+
+ if (mailbox_list_init_fs(ns->list, name, args,
+ storage->attachment_dir,
+ &storage->attachment_fs, &error) < 0) {
*error_r = t_strdup_printf("mail_attachment_fs: %s",
error);
return -1;
struct stat;
struct dirent;
+struct fs;
struct imap_match_glob;
struct mailbox_tree_context;
struct mailbox_list_notify;
void mailbox_list_set_internal_error(struct mailbox_list *list);
bool mailbox_list_set_error_from_errno(struct mailbox_list *list);
+int mailbox_list_init_fs(struct mailbox_list *list, const char *driver,
+ const char *args, const char *root_dir,
+ struct fs **fs_r, const char **error_r);
+
#endif
#include "time-util.h"
#include "unichar.h"
#include "settings-parser.h"
+#include "iostream-ssl.h"
+#include "fs-api.h"
#include "imap-utf7.h"
#include "mailbox-log.h"
#include "mailbox-tree.h"
mailbox_list_set_error(list, error, error_string);
return TRUE;
}
+
+int mailbox_list_init_fs(struct mailbox_list *list, const char *driver,
+ const char *args, const char *root_dir,
+ struct fs **fs_r, const char **error_r)
+{
+ struct fs_settings fs_set;
+ 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.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);
+}