]> git.sur5r.net Git - openldap/commitdiff
import fix to ITS#4351
authorPierangelo Masarati <ando@openldap.org>
Thu, 19 Jan 2006 08:42:22 +0000 (08:42 +0000)
committerPierangelo Masarati <ando@openldap.org>
Thu, 19 Jan 2006 08:42:22 +0000 (08:42 +0000)
CHANGES
servers/slapd/slapcommon.c

diff --git a/CHANGES b/CHANGES
index 4a02c5c0c7ac6c600327df977cc80e8c8d240325..f2cd5f97a267cdc9223f0978dece2ca7bd2da409 100644 (file)
--- 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)
index 953fe3555f03567092922512e33e8bf2629f574e..dbe0ed2a3a8d89a1e68f75cab2f99552df61333e 100644 (file)
@@ -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 )