summaryrefslogtreecommitdiffstats
path: root/source/lib/debug.c
diff options
context:
space:
mode:
authorHerb Lewis <herb@samba.org>2002-02-19 19:56:04 +0000
committerHerb Lewis <herb@samba.org>2002-02-19 19:56:04 +0000
commite5d29514364f5b1772791d30ceb6c8c17d2c1232 (patch)
tree984c0c51c6e497f549f6bfc29ac6f8d63801a467 /source/lib/debug.c
parent16806d749fb0b0a39eb871e764ff439c8944f150 (diff)
downloadsamba-e5d29514364f5b1772791d30ceb6c8c17d2c1232.tar.gz
samba-e5d29514364f5b1772791d30ceb6c8c17d2c1232.tar.xz
samba-e5d29514364f5b1772791d30ceb6c8c17d2c1232.zip
this is a hack to get testparm to print the correct value for log level
Diffstat (limited to 'source/lib/debug.c')
-rw-r--r--source/lib/debug.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/source/lib/debug.c b/source/lib/debug.c
index 6c61d45d224..3731b3656fa 100644
--- a/source/lib/debug.c
+++ b/source/lib/debug.c
@@ -86,7 +86,7 @@ BOOL append_log = False;
int DEBUGLEVEL_CLASS[DBGC_LAST];
int DEBUGLEVEL = DEBUGLEVEL_CLASS;
BOOL AllowDebugChange = True;
-
+int parsed_debuglevel_class[DBGC_LAST];
/* -------------------------------------------------------------------------- **
* Internal variables.
@@ -214,12 +214,6 @@ BOOL debug_parse_levels(char *params_str)
char *params[DBGC_LAST];
int debuglevel_class[DBGC_LAST];
- if (AllowDebugChange == False) {
- DEBUG(1,("INFO: Debug class %s level = %d\n",
- classname_table[DBGC_ALL],
- DEBUGLEVEL_CLASS[DBGC_ALL]));
- return True;
- }
ZERO_ARRAY(params);
ZERO_ARRAY(debuglevel_class);
@@ -232,8 +226,19 @@ BOOL debug_parse_levels(char *params_str)
else
return False;
+ if (AllowDebugChange == False) {
+ int old_debuglevel_class[DBGC_LAST];
+
+ /* save current debug level */
+ memcpy(old_debuglevel_class, DEBUGLEVEL_CLASS, sizeof(DEBUGLEVEL_CLASS));
+ if (debug_parse_params(params, debuglevel_class))
+ debug_message(0, getpid(), (void*)debuglevel_class, sizeof(debuglevel_class));
+ memcpy(parsed_debuglevel_class, DEBUGLEVEL_CLASS, sizeof(DEBUGLEVEL_CLASS));
+ memcpy(DEBUGLEVEL_CLASS, old_debuglevel_class, sizeof(old_debuglevel_class));
+ return True;
+ }
if (debug_parse_params(params, debuglevel_class)) {
- debug_message(0, getpid(), (void*)debuglevel_class, sizeof(debuglevel_class));
+ debug_message(DEBUGLEVEL, getpid(), (void*)debuglevel_class, sizeof(debuglevel_class));
return True;
} else
return False;
@@ -242,14 +247,14 @@ BOOL debug_parse_levels(char *params_str)
/****************************************************************************
receive a "set debug level" message
****************************************************************************/
-void debug_message(int msg_type, pid_t src, void *buf, size_t len)
+void debug_message(int msg_level, pid_t src, void *buf, size_t len)
{
int i;
/* Set the new DEBUGLEVEL_CLASS array from the pased array */
memcpy(DEBUGLEVEL_CLASS, buf, sizeof(DEBUGLEVEL_CLASS));
- DEBUG(1,("INFO: Debug class %s level = %d (pid %u from pid %u)\n",
+ DEBUG(msg_level,("INFO: Debug class %s level = %d (pid %u from pid %u)\n",
classname_table[DBGC_ALL],
DEBUGLEVEL_CLASS[DBGC_ALL], (unsigned int)getpid(), (unsigned int)src));