From: Markus Valentin Date: Thu, 20 May 2021 21:18:30 +0000 (+0200) Subject: imapc: Add imapc_storage_client_unregister_untagged function X-Git-Tag: 2.3.16~94 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=07e2f39e5cb3fa262589bd70820f99491cc9259f;p=thirdparty%2Fdovecot%2Fcore.git imapc: Add imapc_storage_client_unregister_untagged function --- diff --git a/src/lib-storage/index/imapc/imapc-storage.c b/src/lib-storage/index/imapc/imapc-storage.c index a79c35f458..0cc85ccb94 100644 --- a/src/lib-storage/index/imapc/imapc-storage.c +++ b/src/lib-storage/index/imapc/imapc-storage.c @@ -474,6 +474,22 @@ void imapc_storage_client_register_untagged(struct imapc_storage_client *client, cb->callback = callback; } +void imapc_storage_client_unregister_untagged(struct imapc_storage_client *client, + const char *name) +{ + struct imapc_storage_event_callback *cb; + unsigned int idx; + array_foreach_modifiable(&client->untagged_callbacks, cb) { + if (strcmp(cb->name, name) == 0) { + idx = array_foreach_idx(&client->untagged_callbacks, cb); + i_free(cb->name); + array_delete(&client->untagged_callbacks, idx, 1); + return; + } + } + i_unreached(); +} + static void imapc_storage_get_list_settings(const struct mail_namespace *ns ATTR_UNUSED, struct mailbox_list_settings *set) diff --git a/src/lib-storage/index/imapc/imapc-storage.h b/src/lib-storage/index/imapc/imapc-storage.h index 0f4a12b430..62ddc41381 100644 --- a/src/lib-storage/index/imapc/imapc-storage.h +++ b/src/lib-storage/index/imapc/imapc-storage.h @@ -207,6 +207,8 @@ const char *imapc_mailbox_get_remote_name(struct imapc_mailbox *mbox); void imapc_storage_client_register_untagged(struct imapc_storage_client *client, const char *name, imapc_storage_callback_t *callback); +void imapc_storage_client_unregister_untagged(struct imapc_storage_client *client, + const char *name); void imapc_mailbox_register_untagged(struct imapc_mailbox *mbox, const char *name, imapc_mailbox_callback_t *callback);