]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: mailbox_list_init_fs() - Add event_parent
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 4 Feb 2021 00:15:22 +0000 (02:15 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Tue, 23 Mar 2021 07:40:58 +0000 (07:40 +0000)
src/lib-storage/index/dbox-common/dbox-storage.c
src/lib-storage/mailbox-list.c
src/lib-storage/mailbox-list.h

index a54f0a4282b178efa33a8bedb68e3ddec8c7af3b..a79f899322d96ef6d13d4de1df0f5141585f635a 100644 (file)
@@ -125,7 +125,7 @@ int dbox_storage_create(struct mail_storage *_storage,
                                            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",
index 512b89302071e65a17dcfa7f5af93c86674b3193..46671930f4c3e807508734d9a6c27f9162737ad2 100644 (file)
@@ -2041,7 +2041,8 @@ void mailbox_list_last_error_pop(struct mailbox_list *list)
        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)
 {
@@ -2053,6 +2054,9 @@ int mailbox_list_init_fs(struct mailbox_list *list, const char *driver,
        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);
 
index f0118927fb0efd60563abe2b857d71bfa71a15c5..a329896312cf3e4c0cc5a18abbac35add244c816 100644 (file)
@@ -321,8 +321,10 @@ mailbox_list_get_last_internal_error(struct mailbox_list *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