]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
lib:util: Disable logging to syslog for startup messages
authorAndreas Schneider <asn@samba.org>
Tue, 10 Jun 2025 11:46:13 +0000 (13:46 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Wed, 18 Jun 2025 12:10:03 +0000 (12:10 +0000)
D_ERR also is sent to syslog!

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15869

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Wed Jun 18 12:10:03 UTC 2025 on atb-devel-224

lib/util/debug.c
lib/util/debug.h

index 86f13f181cf00f059eee4f9ecb205bab0e4e7062..f79b8811a4b591a267555d60a3783cce705f0b0c 100644 (file)
@@ -95,6 +95,7 @@ static struct {
        bool reopening_logs;
        bool schedule_reopen_logs;
        int forced_log_priority;
+       bool disable_syslog;
 
        struct debug_settings settings;
        debug_callback_fn callback;
@@ -302,6 +303,10 @@ static void debug_syslog_log(int msg_level, const char *msg, size_t msg_len)
 {
        int priority;
 
+       if (state.disable_syslog) {
+               return;
+       }
+
        priority = debug_level_to_priority(msg_level);
 
        /*
@@ -1124,6 +1129,16 @@ void debug_set_forced_log_priority(int forced_log_priority)
        state.forced_log_priority = forced_log_priority;
 }
 
+void debug_disable_syslog(void)
+{
+       state.disable_syslog = true;
+}
+
+void debug_enable_syslog(void)
+{
+       state.disable_syslog = false;
+}
+
 /**
  * Ensure debug logs are initialised.
  *
index f188105c9f45c826a4709b0ca50dd35f036e2213..2a56c7d48fe15ff34e1986318604888bb5757801 100644 (file)
@@ -276,9 +276,16 @@ void debuglevel_set_class(size_t idx, int level);
 #define DBGLVL_INFO     5      /* informational message */
 #define DBGLVL_DEBUG   10      /* debug-level message */
 
+/*
+ * Logging to syslog will be disabled as messages on debug level 0 are always
+ * reported to syslog too. We don't want to clutter the syslog with startup
+ * messages from rpc on demand daemons.
+ */
 #define DBG_STARTUP_NOTICE(...) do { \
        debug_set_forced_log_priority(DBGLVL_NOTICE); \
+       debug_disable_syslog(); \
        D_ERR(__VA_ARGS__); \
+       debug_enable_syslog(); \
        debug_set_forced_log_priority(-1); \
 } while(0)
 
@@ -362,6 +369,8 @@ void debug_set_settings(struct debug_settings *settings,
                        int syslog_level, bool syslog_only);
 void debug_set_hostname(const char *name);
 void debug_set_forced_log_priority(int forced_log_priority);
+void debug_disable_syslog(void);
+void debug_enable_syslog(void);
 bool reopen_logs_internal( void );
 void force_check_log_size( void );
 bool need_to_check_log_size( void );