Author: obnox Date: 2007-09-30 08:32:10 +0000 (Sun, 30 Sep 2007) New Revision: 25436
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25436 Log: Add the option to print the debug class (DBGC_CLASS) in the debug header. Control this by a new boolean smb.conf option "debug class" which is by default set to "no" to keep the default debug header unchanged. Michael Note: You need to make clean for this patch. Modified: branches/SAMBA_3_2_0/source/include/debug.h branches/SAMBA_3_2_0/source/lib/debug.c branches/SAMBA_3_2_0/source/param/loadparm.c Changeset: Modified: branches/SAMBA_3_2_0/source/include/debug.h =================================================================== --- branches/SAMBA_3_2_0/source/include/debug.h 2007-09-30 08:26:53 UTC (rev 25435) +++ branches/SAMBA_3_2_0/source/include/debug.h 2007-09-30 08:32:10 UTC (rev 25436) @@ -40,7 +40,7 @@ int Debug1( const char *, ... ) PRINTF_ATTRIBUTE(1,2); /* PRINTFLIKE1 */ BOOL dbgtext( const char *, ... ) PRINTF_ATTRIBUTE(1,2); -BOOL dbghdr( int level, const char *file, const char *func, int line ); +BOOL dbghdr( int level, int cls, const char *file, const char *func, int line ); #if defined(sgi) && (_COMPILER_VERSION >= 730) #pragma mips_frequency_hint NEVER Debug1 @@ -167,7 +167,7 @@ ((DEBUGLEVEL_CLASS[ DBGC_CLASS ] >= (level))|| \ (!DEBUGLEVEL_CLASS_ISSET[ DBGC_CLASS ] && \ DEBUGLEVEL_CLASS[ DBGC_ALL ] >= (level)) ) \ - && dbghdr( level, __FILE__, FUNCTION_MACRO, (__LINE__) ) ) + && dbghdr( level, DBGC_CLASS, __FILE__, FUNCTION_MACRO, (__LINE__) ) ) #define DEBUGLVLC( dbgc_class, level ) \ @@ -175,7 +175,7 @@ ((DEBUGLEVEL_CLASS[ dbgc_class ] >= (level))|| \ (!DEBUGLEVEL_CLASS_ISSET[ dbgc_class ] && \ DEBUGLEVEL_CLASS[ DBGC_ALL ] >= (level)) ) \ - && dbghdr( level, __FILE__, FUNCTION_MACRO, (__LINE__) ) ) + && dbghdr( level, DBGC_CLASS, __FILE__, FUNCTION_MACRO, (__LINE__) ) ) #define DEBUG( level, body ) \ @@ -183,7 +183,7 @@ ((DEBUGLEVEL_CLASS[ DBGC_CLASS ] >= (level))|| \ (!DEBUGLEVEL_CLASS_ISSET[ DBGC_CLASS ] && \ DEBUGLEVEL_CLASS[ DBGC_ALL ] >= (level)) ) \ - && (dbghdr( level, __FILE__, FUNCTION_MACRO, (__LINE__) )) \ + && (dbghdr( level, DBGC_CLASS, __FILE__, FUNCTION_MACRO, (__LINE__) )) \ && (dbgtext body) ) #define DEBUGC( dbgc_class, level, body ) \ @@ -191,7 +191,7 @@ ((DEBUGLEVEL_CLASS[ dbgc_class ] >= (level))|| \ (!DEBUGLEVEL_CLASS_ISSET[ dbgc_class ] && \ DEBUGLEVEL_CLASS[ DBGC_ALL ] >= (level)) ) \ - && (dbghdr( level, __FILE__, FUNCTION_MACRO, (__LINE__) )) \ + && (dbghdr( level, DBGC_CLASS, __FILE__, FUNCTION_MACRO, (__LINE__) )) \ && (dbgtext body) ) #define DEBUGADD( level, body ) \ Modified: branches/SAMBA_3_2_0/source/lib/debug.c =================================================================== --- branches/SAMBA_3_2_0/source/lib/debug.c 2007-09-30 08:26:53 UTC (rev 25435) +++ branches/SAMBA_3_2_0/source/lib/debug.c 2007-09-30 08:32:10 UTC (rev 25436) @@ -913,6 +913,7 @@ Input: level - Debug level of the message (not the system-wide debug level. ) + cls - Debuglevel class of the calling module. file - Pointer to a string containing the name of the file from which this function was called, or an empty string if the __FILE__ macro is not implemented. @@ -930,7 +931,7 @@ ****************************************************************************/ -BOOL dbghdr( int level, const char *file, const char *func, int line ) +BOOL dbghdr(int level, int cls, const char *file, const char *func, int line) { /* Ensure we don't lose any real errno value. */ int old_errno = errno; @@ -976,6 +977,14 @@ (unsigned int)geteuid(), (unsigned int)getegid(), (unsigned int)getuid(), (unsigned int)getgid()); } + + if (lp_debug_class() && (cls != DBGC_ALL)) { + size_t hs_len = strlen(header_str); + slprintf(header_str + hs_len, + sizeof(header_str) -1 - hs_len, + ", class=%s", + default_classname_table[cls]); + } /* Print it all out at once to prevent split syslog output. */ if( lp_debug_prefix_timestamp() ) { Modified: branches/SAMBA_3_2_0/source/param/loadparm.c =================================================================== --- branches/SAMBA_3_2_0/source/param/loadparm.c 2007-09-30 08:26:53 UTC (rev 25435) +++ branches/SAMBA_3_2_0/source/param/loadparm.c 2007-09-30 08:32:10 UTC (rev 25436) @@ -306,6 +306,7 @@ BOOL bDebugHiresTimestamp; BOOL bDebugPid; BOOL bDebugUid; + BOOL bDebugClass; BOOL bEnableCoreFiles; BOOL bHostMSDfs; BOOL bUseMmap; @@ -983,6 +984,7 @@ {"debug hires timestamp", P_BOOL, P_GLOBAL, &Globals.bDebugHiresTimestamp, NULL, NULL, FLAG_ADVANCED}, {"debug pid", P_BOOL, P_GLOBAL, &Globals.bDebugPid, NULL, NULL, FLAG_ADVANCED}, {"debug uid", P_BOOL, P_GLOBAL, &Globals.bDebugUid, NULL, NULL, FLAG_ADVANCED}, + {"debug class", P_BOOL, P_GLOBAL, &Globals.bDebugClass, NULL, NULL, FLAG_ADVANCED}, {"enable core files", P_BOOL, P_GLOBAL, &Globals.bEnableCoreFiles, NULL, NULL, FLAG_ADVANCED}, {N_("Protocol Options"), P_SEP, P_SEPARATOR}, @@ -1550,6 +1552,7 @@ Globals.bDebugHiresTimestamp = False; Globals.bDebugPid = False; Globals.bDebugUid = False; + Globals.bDebugClass = False; Globals.bEnableCoreFiles = True; Globals.max_ttl = 60 * 60 * 24 * 3; /* 3 days default. */ Globals.max_wins_ttl = 60 * 60 * 24 * 6; /* 6 days default. */ @@ -1961,6 +1964,7 @@ FN_GLOBAL_BOOL(lp_debug_hires_timestamp, &Globals.bDebugHiresTimestamp) FN_GLOBAL_BOOL(lp_debug_pid, &Globals.bDebugPid) FN_GLOBAL_BOOL(lp_debug_uid, &Globals.bDebugUid) +FN_GLOBAL_BOOL(lp_debug_class, &Globals.bDebugClass) FN_GLOBAL_BOOL(lp_enable_core_files, &Globals.bEnableCoreFiles) FN_GLOBAL_BOOL(lp_browse_list, &Globals.bBrowseList) FN_GLOBAL_BOOL(lp_nis_home_map, &Globals.bNISHomeMap)