From d23f5054efcee21d8679c6091b4d6f35500cab3e Mon Sep 17 00:00:00 2001 From: Markus Valentin Date: Mon, 5 Dec 2022 11:50:30 +0100 Subject: [PATCH] lib-event: Add event_unset_log_message_callback() --- src/lib/lib-event.c | 12 ++++++++++++ src/lib/lib-event.h | 8 ++++++++ 2 files changed, 20 insertions(+) diff --git a/src/lib/lib-event.c b/src/lib/lib-event.c index 0a00749670..3744bf03c8 100644 --- a/src/lib/lib-event.c +++ b/src/lib/lib-event.c @@ -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) { diff --git a/src/lib/lib-event.h b/src/lib/lib-event.h index 6add738bd7..1cee5af173 100644 --- a/src/lib/lib-event.h +++ b/src/lib/lib-event.h @@ -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). */ -- 2.47.3