diff --git a/lib/util/debug.c b/lib/util/debug.c index 23c78ae19c9..d2fbab12414 100644 --- a/lib/util/debug.c +++ b/lib/util/debug.c @@ -1479,6 +1479,17 @@ void dbgflush( void ) bufr_print(); } +bool dbgsetclass(int level, int cls) +{ + /* Set current_msg_level. */ + current_msg_level = level; + + /* Set current message class */ + current_msg_class = cls; + + return true; +} + /*************************************************************************** Print a Debug Header. @@ -1523,11 +1534,7 @@ bool dbghdrclass(int level, int cls, const char *location, const char *func) return( true ); } - /* Set current_msg_level. */ - current_msg_level = level; - - /* Set current message class */ - current_msg_class = cls; + dbgsetclass(level, cls); /* Don't print a header if we're logging to stdout. */ if ( state.logtype != DEBUG_FILE ) { diff --git a/lib/util/debug.h b/lib/util/debug.h index 5c56d4fd675..67dbf3357e3 100644 --- a/lib/util/debug.h +++ b/lib/util/debug.h @@ -45,6 +45,7 @@ bool dbgtext_va(const char *, va_list ap) PRINTF_ATTRIBUTE(1,0); bool dbgtext( const char *, ... ) PRINTF_ATTRIBUTE(1,2); bool dbghdrclass( int level, int cls, const char *location, const char *func); +bool dbgsetclass(int level, int cls); /* * Define all new debug classes here. A class is represented by an entry in @@ -205,12 +206,14 @@ void debuglevel_set_class(size_t idx, int level); #define DEBUGADD( level, body ) \ (void)( ((level) <= MAX_DEBUG_LEVEL) && \ - unlikely(debuglevel_get_class(DBGC_CLASS) >= (level)) \ + unlikely(debuglevel_get_class(DBGC_CLASS) >= (level)) \ + && (dbgsetclass(level, DBGC_CLASS)) \ && (dbgtext body) ) #define DEBUGADDC( dbgc_class, level, body ) \ (void)( ((level) <= MAX_DEBUG_LEVEL) && \ - unlikely((debuglevel_get_class(dbgc_class) >= (level))) \ + unlikely((debuglevel_get_class(dbgc_class) >= (level))) \ + && (dbgsetclass(level, dbgc_class)) \ && (dbgtext body) ) /* Print a separator to the debug log. */