lib/util: convert DBG_STARTUP_NOTICE() to use debug_set_forced_log_priority(DBGLVL_NO...
authorStefan Metzmacher <metze@samba.org>
Wed, 22 Nov 2023 16:18:29 +0000 (17:18 +0100)
committerJule Anger <janger@samba.org>
Tue, 19 Dec 2023 09:43:09 +0000 (09:43 +0000)
Using -1 as log level is not compatible without our infrastructure.

As all backends are initialized with .log_level = -1, which means
they don't log the message, but now they all try to handle the
startup message even if they are not configured.

E.g. is means that systemd's journalctl get the message twice
now, first via the syslog and also the systemd backend.

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

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Björn Jacke <bjacke@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
(cherry picked from commit cd8dcff9e9cbfffab8c502c8701c00b0c8e3512b)

lib/util/debug.h

index b62f2d19bcc27de51d0738d01d5c17a3146a26a1..d4bd8246b97f34b0e48fd5d081944eb41d41a8ab 100644 (file)
@@ -269,14 +269,18 @@ void debuglevel_set_class(size_t idx, int level);
 /*
  * Debug levels matching RFC 3164
  */
-#define DBGLVL_STARTUP_NOTICE   -1     /* startup notice */
 #define DBGLVL_ERR      0      /* error conditions */
 #define DBGLVL_WARNING  1      /* warning conditions */
 #define DBGLVL_NOTICE   3      /* normal, but significant, condition */
 #define DBGLVL_INFO     5      /* informational message */
 #define DBGLVL_DEBUG   10      /* debug-level message */
 
-#define DBG_STARTUP_NOTICE(...)        DBG_PREFIX(DBGLVL_STARTUP_NOTICE,       (__VA_ARGS__))
+#define DBG_STARTUP_NOTICE(...) do { \
+       debug_set_forced_log_priority(DBGLVL_NOTICE); \
+       D_ERR(__VA_ARGS__); \
+       debug_set_forced_log_priority(-1); \
+} while(0)
+
 #define DBG_ERR(...)           DBG_PREFIX(DBGLVL_ERR,          (__VA_ARGS__))
 #define DBG_WARNING(...)       DBG_PREFIX(DBGLVL_WARNING,      (__VA_ARGS__))
 #define DBG_NOTICE(...)                DBG_PREFIX(DBGLVL_NOTICE,       (__VA_ARGS__))