]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-event: Add event_unset_log_message_callback()
authorMarkus Valentin <markus.valentin@open-xchange.com>
Mon, 5 Dec 2022 10:50:30 +0000 (11:50 +0100)
committerMarkus Valentin <markus.valentin@open-xchange.com>
Wed, 7 Dec 2022 19:57:24 +0000 (20:57 +0100)
src/lib/lib-event.c
src/lib/lib-event.h

index 0a00749670e48f4c91c9cee4d3923bc4393ae913..3744bf03c854abf0ef8b55cfd9ebb69204c150e9 100644 (file)
@@ -693,6 +693,18 @@ void event_disable_callbacks(struct event *event)
        event->disable_callbacks = TRUE;
 }
 
+#undef event_unset_log_message_callback
+void event_unset_log_message_callback(struct event *event,
+                                     event_log_message_callback_t *callback,
+                                     void *context)
+{
+       i_assert(event->log_message_callback == callback);
+       i_assert(event->log_message_callback_context == context);
+
+       event->log_message_callback = NULL;
+       event->log_message_callback_context = NULL;
+}
+
 struct event *
 event_set_name(struct event *event, const char *name)
 {
index 6add738bd73d2fe81cfc53237e86a9981dc99ea2..1cee5af1737c076fe982f069002577221f216c6f 100644 (file)
@@ -277,6 +277,14 @@ event_set_log_message_callback(struct event *event,
                        const char *(*)(typeof(context), enum log_type, \
                                        const char *)))
 
+/* Unsets the event message amendment callback. */
+void event_unset_log_message_callback(struct event *event,
+                                     event_log_message_callback_t *callback,
+                                     void *context);
+#define event_unset_log_message_callback(event, callback, context) \
+       event_unset_log_message_callback(event, \
+               (event_log_message_callback_t*)callback, context)
+
 /* Disable calling all callbacks for the event and its children. This
    effectively allows the event to be used only for logging, but nothing else
    (no stats or other filters). */