]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Add imapc_storage_client_unregister_untagged function
authorMarkus Valentin <markus.valentin@open-xchange.com>
Thu, 20 May 2021 21:18:30 +0000 (23:18 +0200)
committerMarkus Valentin <markus.valentin@open-xchange.com>
Tue, 25 May 2021 16:56:39 +0000 (18:56 +0200)
src/lib-storage/index/imapc/imapc-storage.c
src/lib-storage/index/imapc/imapc-storage.h

index a79c35f458809003042d1a1609824716aed93508..0cc85ccb944f75fc2f1f095a598a33c3ed84cb80 100644 (file)
@@ -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)
index 0f4a12b4303c0dede7d8c2553e57ad5b3a4e4998..62ddc4138127237311309682b762010c174a7342 100644 (file)
@@ -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);