]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: Add event_set_forced_never_debug()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 13 Nov 2024 11:22:10 +0000 (13:22 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 17 Jan 2025 08:40:01 +0000 (10:40 +0200)
src/lib/event-log.c
src/lib/event-log.h
src/lib/lib-event-private.h
src/lib/lib-event.c

index af0b0576a52a97d898f14a37782fca5c00e33069..9bb99a1b57b2228a206ddc7873839fc8da364c49 100644 (file)
@@ -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();
index d084c4fef4f924211e3a13937504b14a3bb7a346..53fbf1f367ff0149d373413f283f3bc3f41dce74 100644 (file)
@@ -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. */
index 542c2da96024562ffde7f2ede60eccb7f96c99dd..77336e03ac083281e1d367e2f15409f493a10425 100644 (file)
@@ -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;
index 2785df803870a61a64d854e7016feca1d149f7b0..bd544670b3f315128a54d860c99a51e7fcd76d23 100644 (file)
@@ -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;
 }