# HG changeset patch # User Sebastien Decugis # Date 1368603708 -28800 # Node ID 51ce5a30df2d6ae5062458f0ab781f3c4dbab2d2 # Parent 54f04575792c0c75b9d831b519e90c64fff25ca1 Fix the dbg_func and dbg_file parameters diff -r 54f04575792c -r 51ce5a30df2d freeDiameterd/main.c --- a/freeDiameterd/main.c Wed May 15 12:30:49 2013 +0800 +++ b/freeDiameterd/main.c Wed May 15 15:41:48 2013 +0800 @@ -151,10 +151,13 @@ " default location (" DEFAULT_CONF_PATH "/" FD_DEFAULT_CONF_FILENAME ").\n"); printf( "\nDebug:\n" " These options are mostly useful for developers\n" - " -l, --dbglocale Set the locale for error messages\n" - " -d, --debug Increase verbosity of debug messages if default logger is used\n" - " -q, --quiet Decrease verbosity if default logger is used\n" - " --dbg_gnutls Enable GNU TLS debug at level \n"); + " -l, --dbglocale Set the locale for error messages\n" + " -d, --debug Increase verbosity of debug messages if default logger is used\n" + " -q, --quiet Decrease verbosity if default logger is used\n" + " -f, --dbg_func Enable all traces within the function \n" + " -F, --dbg_file Enable all traces within the file (basename match)\n" + " --dbg_gnutls Enable GNU TLS debug at level \n" + ); } /* Parse the command-line */ diff -r 54f04575792c -r 51ce5a30df2d include/freeDiameter/libfdproto.h --- a/include/freeDiameter/libfdproto.h Wed May 15 12:30:49 2013 +0800 +++ b/include/freeDiameter/libfdproto.h Wed May 15 15:41:48 2013 +0800 @@ -456,12 +456,16 @@ CALL = 9 } MARK_DEPRECATED; -static __inline__ int TRACE_BOOL( enum old_levels level ) MARK_DEPRECATED -{ - return (level <= fd_g_debug_lvl) - || (fd_debug_one_function && !strcmp(fd_debug_one_function, __PRETTY_FUNCTION__)) - || (fd_debug_one_file && !strcmp(fd_debug_one_file, __STRIPPED_FILE__) ); +static __inline__ int old_TRACE_BOOL( enum old_levels level, const char * file, const char * func ) MARK_DEPRECATED +{ + if ((fd_debug_one_function && !strcmp(fd_debug_one_function, func)) + || (fd_debug_one_file && !strcmp(fd_debug_one_file, file) )) + return 2; /* Level override */ + if (level <= fd_g_debug_lvl) + return 1; /* Normal level */ + return 0; /* No trace */ } +#define TRACE_BOOL(level) old_TRACE_BOOL((level), __STRIPPED_FILE__, __PRETTY_FUNCTION__) #ifndef SWIG static __inline__ void fd_log_deprecated( int level, const char *format, ... ) MARK_DEPRECATED @@ -487,9 +491,11 @@ /* old macro for traces. To be replaced by appropriate LOG_* macros. */ # define TRACE_DEBUG(oldlevel, format,args... ) { \ - if (TRACE_BOOL(oldlevel)) { \ + int __l__; \ + if ((__l__ = TRACE_BOOL(oldlevel))) { \ if (oldlevel <= NONE) { LOG_E(format,##args); } \ else if (oldlevel <= INFO) { LOG_N(format,##args); } \ + else if (__l__ == 2) { LOG_N(format,##args); } \ else if (oldlevel <= FULL) { LOG_D(format,##args); } \ else { LOG_A(format,##args); } \ } }