From 2a5d79cb9cab0c754e094c8f20f066c423b2cee9 Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Thu, 19 Jan 2006 08:42:22 +0000 Subject: [PATCH] import fix to ITS#4351 --- CHANGES | 1 + servers/slapd/slapcommon.c | 53 ++++++++++++++++++++++++++------------ 2 files changed, 38 insertions(+), 16 deletions(-) diff --git a/CHANGES b/CHANGES index 4a02c5c0c7..f2cd5f97a2 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,7 @@ OpenLDAP 2.3 Change Log OpenLDAP 2.3.19 Engineering + Fixed slaptools when --disable-debug (ITS#4351) OpenLDAP 2.3.18 Release Fixed slapd syncrepl variable used before set bug (ITS#4331) diff --git a/servers/slapd/slapcommon.c b/servers/slapd/slapcommon.c index 953fe3555f..dbe0ed2a3a 100644 --- a/servers/slapd/slapcommon.c +++ b/servers/slapd/slapcommon.c @@ -262,32 +262,53 @@ slap_tool_init( continuemode++; break; - case 'd': /* turn on debugging */ - { -#ifdef LDAP_DEBUG - int level; + case 'd': { /* turn on debugging */ + int level = 0; +#ifdef LDAP_DEBUG if ( optarg != NULL && optarg[ 0 ] != '-' && !isdigit( optarg[ 0 ] ) ) { - if ( str2loglevel( optarg, &level ) ) { + int i, goterr = 0; + char **levels; + + levels = ldap_str2charray( optarg, "," ); + + for ( i = 0; levels[ i ] != NULL; i++ ) { + level = 0; + + if ( str2loglevel( levels[ i ], &level ) ) { + fprintf( stderr, + "unrecognized log level " + "\"%s\"\n", levels[ i ] ); + goterr = 1; + /* but keep parsing... */ + + } else { + if ( level != 0 ) { + slap_debug |= level; + + } else { + /* allow to reset log level */ + slap_debug = 0; + } + } + } + + } else { + if ( lutil_atoix( &level, optarg, 0 ) != 0 ) { fprintf( stderr, "unrecognized log level " "\"%s\"\n", optarg ); exit( EXIT_FAILURE ); } - } else if ( lutil_atoix( &level, optarg, 0 ) != 0 ) { - fprintf( stderr, - "unrecognized log level " - "\"%s\"\n", optarg ); - exit( EXIT_FAILURE ); - } + if ( level != 0 ) { + slap_debug |= level; - if ( level ) { - ldap_debug |= level; - } else { - /* allow to reset log level */ - ldap_debug = 0; + } else { + /* allow to reset log level */ + slap_debug = 0; + } } #else if ( lutil_atoi( &level, optarg ) != 0 || level != 0 ) -- 2.39.5