From: Timo Sirainen Date: Wed, 13 Nov 2024 11:22:10 +0000 (+0200) Subject: lib: Add event_set_forced_never_debug() X-Git-Tag: 2.4.0~227 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ad3da221c7f775f5b3793a480a1df90df601b4c0;p=thirdparty%2Fdovecot%2Fcore.git lib: Add event_set_forced_never_debug() --- diff --git a/src/lib/event-log.c b/src/lib/event-log.c index af0b0576a5..9bb99a1b57 100644 --- a/src/lib/event-log.c +++ b/src/lib/event-log.c @@ -274,6 +274,8 @@ bool event_want_log_level(struct event *event, enum log_type level, { struct failure_context ctx = { .type = LOG_TYPE_DEBUG }; + if (event->forced_never_debug && level == LOG_TYPE_DEBUG) + return FALSE; if (level >= event->min_log_level) { /* Always log when level is at least this high */ return TRUE; @@ -422,6 +424,12 @@ struct event *event_unset_forced_debug(struct event *event) return event; } +struct event *event_set_forced_never_debug(struct event *event, bool force) +{ + event->forced_never_debug = force; + return event; +} + void event_set_global_debug_log_filter(struct event_filter *filter) { event_unset_global_debug_log_filter(); diff --git a/src/lib/event-log.h b/src/lib/event-log.h index d084c4fef4..53fbf1f367 100644 --- a/src/lib/event-log.h +++ b/src/lib/event-log.h @@ -110,6 +110,9 @@ void event_logv(struct event *event, const struct event_log_params *params, struct event *event_set_forced_debug(struct event *event, bool force); /* Set the forced-debug to FALSE */ struct event *event_unset_forced_debug(struct event *event); +/* Set/unset "never log debug output" flag, even if it matches the global + debug log filter. */ +struct event *event_set_forced_never_debug(struct event *event, bool force); /* Set the global filter to logging debug events. */ void event_set_global_debug_log_filter(struct event_filter *filter); /* Return the current global debug log event filter. */ diff --git a/src/lib/lib-event-private.h b/src/lib/lib-event-private.h index 542c2da960..77336e03ac 100644 --- a/src/lib/lib-event-private.h +++ b/src/lib/lib-event-private.h @@ -44,6 +44,7 @@ struct event { bool log_prefix_replace:1; bool passthrough:1; bool forced_debug:1; + bool forced_never_debug:1; bool always_log_source:1; bool sending_debug_log:1; bool disable_callbacks:1; diff --git a/src/lib/lib-event.c b/src/lib/lib-event.c index 2785df8038..bd544670b3 100644 --- a/src/lib/lib-event.c +++ b/src/lib/lib-event.c @@ -107,6 +107,7 @@ static void event_copy_parent_defaults(struct event *event, event->passthrough = parent->passthrough; event->min_log_level = parent->min_log_level; event->forced_debug = parent->forced_debug; + event->forced_never_debug = parent->forced_never_debug; event->disable_callbacks = parent->disable_callbacks; }