set->mail_attachment_dir);
storage->attachment_dir = p_strdup(_storage->pool, dir);
- if (mailbox_list_init_fs(ns->list, name, args,
+ if (mailbox_list_init_fs(ns->list, _storage->event, name, args,
storage->attachment_dir,
&storage->attachment_fs, &error) < 0) {
*error_r = t_strdup_printf("mail_attachment_fs: %s",
array_delete(&list->error_stack, count-1, 1);
}
-int mailbox_list_init_fs(struct mailbox_list *list, const char *driver,
+int mailbox_list_init_fs(struct mailbox_list *list, struct event *event_parent,
+ const char *driver,
const char *args, const char *root_dir,
struct fs **fs_r, const char **error_r)
{
i_zero(&ssl_set);
i_zero(&fs_set);
mail_user_init_fs_settings(list->ns->user, &fs_set, &ssl_set);
+ /* fs_set.event_parent points to user->event by default */
+ if (event_parent != NULL)
+ fs_set.event_parent = event_parent;
fs_set.root_path = root_dir;
fs_set.temp_file_prefix = mailbox_list_get_global_temp_prefix(list);
void mailbox_list_last_error_push(struct mailbox_list *list);
void mailbox_list_last_error_pop(struct mailbox_list *list);
-/* Create a fs based on the settings in the given mailbox_list. */
-int mailbox_list_init_fs(struct mailbox_list *list, const char *driver,
+/* Create a fs based on the settings in the given mailbox_list. If event_parent
+ is NULL, use user->event as the parent. */
+int mailbox_list_init_fs(struct mailbox_list *list, struct event *event_parent,
+ const char *driver,
const char *args, const char *root_dir,
struct fs **fs_r, const char **error_r);
/* Return mailbox_list that was used to create the fs via