From: Aki Tuomi Date: Thu, 29 Feb 2024 13:27:23 +0000 (+0100) Subject: lib-storage: Fix base event for imapc storage creation X-Git-Tag: 2.4.1~831 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0dc37b92eafe46fef811a0955463ac15642f46e7;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Fix base event for imapc storage creation --- diff --git a/src/lib-storage/index/imapc/imapc-list.c b/src/lib-storage/index/imapc/imapc-list.c index 474a32fd0b..0cee72e36b 100644 --- a/src/lib-storage/index/imapc/imapc-list.c +++ b/src/lib-storage/index/imapc/imapc-list.c @@ -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; diff --git a/src/lib-storage/index/imapc/imapc-storage.c b/src/lib-storage/index/imapc/imapc-storage.c index 5c1d6a3eeb..b8dc957cad 100644 --- a/src/lib-storage/index/imapc/imapc-storage.c +++ b/src/lib-storage/index/imapc/imapc-storage.c @@ -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; diff --git a/src/lib-storage/index/imapc/imapc-storage.h b/src/lib-storage/index/imapc/imapc-storage.h index e0b1ddfdea..27a5e5ff3f 100644 --- a/src/lib-storage/index/imapc/imapc-storage.h +++ b/src/lib-storage/index/imapc/imapc-storage.h @@ -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);