From 59958cd245266016255b047397360018929347f1 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 4 Aug 2021 09:22:30 +0200 Subject: [PATCH] util: Avoid an extern variable by using sss_chain_id_get() Signed-off-by: Andreas Schneider --- src/util/debug.c | 19 ++++++++++++++++--- src/util/debug.h | 6 ++++++ src/util/sss_chain_id.c | 41 +++++++++-------------------------------- src/util/sss_chain_id.h | 6 ------ 4 files changed, 31 insertions(+), 41 deletions(-) diff --git a/src/util/debug.c b/src/util/debug.c index 61f67b63902..805f3b62350 100644 --- a/src/util/debug.c +++ b/src/util/debug.c @@ -35,6 +35,7 @@ #endif #include "util/util.h" +#include "util/sss_chain_id.h" /* from debug_backtrace.h */ void sss_debug_backtrace_init(void); @@ -50,7 +51,7 @@ int debug_microseconds = SSSDBG_MICROSECONDS_UNRESOLVED; enum sss_logger_t sss_logger = STDERR_LOGGER; const char *debug_log_file = "sssd"; FILE *_sss_debug_file; -uint64_t debug_chain_id; +static uint64_t debug_chain_id; const char *sss_logger_str[] = { [STDERR_LOGGER] = "stderr", @@ -324,8 +325,8 @@ void sss_vdebug_fn(const char *file, sss_debug_backtrace_printf(level, "[%s] [%s] (%#.4x): ", debug_prg_name, function, level); - if (debug_chain_id > 0) { - sss_debug_backtrace_printf(level, "[RID#%lu] ", debug_chain_id); + if (sss_chain_id_get() > 0) { + sss_debug_backtrace_printf(level, "[RID#%lu] ", sss_chain_id_get()); } sss_debug_backtrace_vprintf(level, format, ap); @@ -489,3 +490,15 @@ void _sss_talloc_log_fn(const char *message) { DEBUG(SSSDBG_FATAL_FAILURE, "%s\n", message); } + +uint64_t sss_chain_id_set(uint64_t id) +{ + uint64_t old_id = debug_chain_id; + debug_chain_id = id; + return old_id; +} + +uint64_t sss_chain_id_get(void) +{ + return debug_chain_id; +} diff --git a/src/util/debug.h b/src/util/debug.h index 9d3499dbdfe..378ce37e399 100644 --- a/src/util/debug.h +++ b/src/util/debug.h @@ -181,6 +181,12 @@ void sss_debug_fn(const char *file, int level, const char *format, ...) SSS_ATTRIBUTE_PRINTF(5, 6); +/* Explicitly set new chain id. The old id is returned. */ +uint64_t sss_chain_id_set(uint64_t id); + +/* Get the current chain id. */ +uint64_t sss_chain_id_get(void); + #define APPEND_LINE_FEED 0x1 /* can be used as a sss_vdebug_fn() flag */ /* Checks whether level is set in generic debug_level. diff --git a/src/util/sss_chain_id.c b/src/util/sss_chain_id.c index f892e2eb78f..472ff947639 100644 --- a/src/util/sss_chain_id.c +++ b/src/util/sss_chain_id.c @@ -23,7 +23,6 @@ #include #ifdef BUILD_CHAIN_ID -extern uint64_t debug_chain_id; static void sss_chain_id_trace_fde(struct tevent_fd *fde, enum tevent_event_trace_point point, @@ -32,11 +31,11 @@ static void sss_chain_id_trace_fde(struct tevent_fd *fde, switch (point) { case TEVENT_EVENT_TRACE_ATTACH: /* Assign the current chain id when the event is created. */ - tevent_fd_set_tag(fde, debug_chain_id); + tevent_fd_set_tag(fde, sss_chain_id_get()); break; case TEVENT_EVENT_TRACE_BEFORE_HANDLER: /* Set the chain id when a handler is being called. */ - debug_chain_id = tevent_fd_get_tag(fde); + sss_chain_id_set(tevent_fd_get_tag(fde)); break; default: /* Do nothing. */ @@ -51,11 +50,11 @@ static void sss_chain_id_trace_signal(struct tevent_signal *se, switch (point) { case TEVENT_EVENT_TRACE_ATTACH: /* Assign the current chain id when the event is created. */ - tevent_signal_set_tag(se, debug_chain_id); + tevent_signal_set_tag(se, sss_chain_id_get()); break; case TEVENT_EVENT_TRACE_BEFORE_HANDLER: /* Set the chain id when a handler is being called. */ - debug_chain_id = tevent_signal_get_tag(se); + sss_chain_id_set(tevent_signal_get_tag(se)); break; default: /* Do nothing. */ @@ -70,11 +69,11 @@ static void sss_chain_id_trace_timer(struct tevent_timer *timer, switch (point) { case TEVENT_EVENT_TRACE_ATTACH: /* Assign the current chain id when the event is created. */ - tevent_timer_set_tag(timer, debug_chain_id); + tevent_timer_set_tag(timer, sss_chain_id_get()); break; case TEVENT_EVENT_TRACE_BEFORE_HANDLER: /* Set the chain id when a handler is being called. */ - debug_chain_id = tevent_timer_get_tag(timer); + sss_chain_id_set(tevent_timer_get_tag(timer)); break; default: /* Do nothing. */ @@ -89,11 +88,11 @@ static void sss_chain_id_trace_immediate(struct tevent_immediate *im, switch (point) { case TEVENT_EVENT_TRACE_ATTACH: /* Assign the current chain id when the event is created. */ - tevent_immediate_set_tag(im, debug_chain_id); + tevent_immediate_set_tag(im, sss_chain_id_get()); break; case TEVENT_EVENT_TRACE_BEFORE_HANDLER: /* Set the chain id when a handler is being called. */ - debug_chain_id = tevent_immediate_get_tag(im); + sss_chain_id_set(tevent_immediate_get_tag(im)); break; default: /* Do nothing. */ @@ -111,7 +110,7 @@ static void sss_chain_id_trace_loop(enum tevent_trace_point point, * after the event handler was finished, we need to restore chain * id to 0 (out of request). */ - debug_chain_id = 0; + sss_chain_id_set(0); break; default: /* Do nothing. */ @@ -128,18 +127,6 @@ void sss_chain_id_setup(struct tevent_context *ev) tevent_set_trace_immediate_callback(ev, sss_chain_id_trace_immediate, NULL); } -uint64_t sss_chain_id_set(uint64_t id) -{ - uint64_t old_id = debug_chain_id; - debug_chain_id = id; - return old_id; -} - -uint64_t sss_chain_id_get(void) -{ - return debug_chain_id; -} - #else /* BUILD_CHAIN_ID not defined */ void sss_chain_id_setup(struct tevent_context *ev) @@ -147,14 +134,4 @@ void sss_chain_id_setup(struct tevent_context *ev) return; } -uint64_t sss_chain_id_set(uint64_t id) -{ - return 0; -} - -uint64_t sss_chain_id_get(void) -{ - return 0; -} - #endif /* BUILD_CHAIN_ID */ diff --git a/src/util/sss_chain_id.h b/src/util/sss_chain_id.h index b29fad0cb11..675ba938992 100644 --- a/src/util/sss_chain_id.h +++ b/src/util/sss_chain_id.h @@ -26,10 +26,4 @@ /* Setup chain id tracking on tevent context. */ void sss_chain_id_setup(struct tevent_context *ev); -/* Explicitly set new chain id. The old id is returned. */ -uint64_t sss_chain_id_set(uint64_t id); - -/* Get the current chain id. */ -uint64_t sss_chain_id_get(void); - #endif /* _SSS_CHAIN_ID_ */