]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Fix base event for imapc storage creation
authorAki Tuomi <aki.tuomi@open-xchange.com>
Thu, 29 Feb 2024 13:27:23 +0000 (14:27 +0100)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 17 Jan 2025 08:39:59 +0000 (10:39 +0200)
src/lib-storage/index/imapc/imapc-list.c
src/lib-storage/index/imapc/imapc-storage.c
src/lib-storage/index/imapc/imapc-storage.h

index 474a32fd0b4e66caab22d7374e41982af1136f18..0cee72e36bb846fdf4f2ed72c28203aeee3c28c4 100644 (file)
@@ -97,7 +97,7 @@ static int imapc_list_init(struct mailbox_list *_list, const char **error_r)
 {
        struct imapc_mailbox_list *list = (struct imapc_mailbox_list *)_list;
 
-       if (imapc_storage_client_create(_list->ns,
+       if (imapc_storage_client_create(_list,
                                        &list->client, error_r) < 0)
                return -1;
        list->client->_list = list;
index 5c1d6a3eeb7f03210c7a7bc81c1255848a7fa584..b8dc957cad071c6e9c5fdc9efb44e47266a8e97d 100644 (file)
@@ -307,16 +307,17 @@ static void imapc_storage_client_login(struct imapc_storage_client *client,
        }
 }
 
-int imapc_storage_client_create(struct mail_namespace *ns,
+int imapc_storage_client_create(struct mailbox_list *list,
                                struct imapc_storage_client **client_r,
                                const char **error_r)
 {
+       struct mail_namespace *ns = list->ns;
        const struct imapc_settings *imapc_set;
        struct imapc_storage_client *client;
        struct imapc_client_settings set;
        string_t *str;
 
-       if (settings_get(ns->user->event, &imapc_setting_parser_info, 0,
+       if (settings_get(list->event, &imapc_setting_parser_info, 0,
                         &imapc_set, error_r) < 0)
                return -1;
 
@@ -388,9 +389,7 @@ int imapc_storage_client_create(struct mail_namespace *ns,
        client->refcount = 1;
        client->set = imapc_set;
        i_array_init(&client->untagged_callbacks, 16);
-       /* FIXME: storage->event would be better, but we first get here when
-          creating mailbox_list, and storage doesn't even exist yet. */
-       client->client = imapc_client_init(&set, ns->user->event);
+       client->client = imapc_client_init(&set, list->event);
        imapc_client_register_untagged(client->client,
                                       imapc_storage_client_untagged_cb, client);
 
@@ -438,7 +437,7 @@ imapc_storage_create(struct mail_storage *_storage,
                storage->client = imapc_list->client;
                storage->client->refcount++;
        } else {
-               if (imapc_storage_client_create(ns, &storage->client, error_r) < 0)
+               if (imapc_storage_client_create(ns->list, &storage->client, error_r) < 0)
                        return -1;
        }
        storage->client->_storage = storage;
index e0b1ddfdea0bf8558ce7fc28958295c27b467015..27a5e5ff3fdfe4055cd7ce7ffd3f4a831fbd41df 100644 (file)
@@ -204,7 +204,7 @@ struct imapc_simple_context {
 #define IMAPC_STORAGE(s)       container_of(s, struct imapc_storage, storage)
 #define IMAPC_MAILBOX(s)       container_of(s, struct imapc_mailbox, box)
 
-int imapc_storage_client_create(struct mail_namespace *ns,
+int imapc_storage_client_create(struct mailbox_list *list,
                                struct imapc_storage_client **client_r,
                                const char **error_r);
 void imapc_storage_client_unref(struct imapc_storage_client **client);