]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slapcommon.c
Plug mutex/rwlock leaks (destroy them)
[openldap] / servers / slapd / slapcommon.c
index 3a39c7de738e9f2110bd1c5ec23a6951e0b36bac..6fd9341beb44aa0c2b2c655c2ad04ac447cc980c 100644 (file)
@@ -192,6 +192,42 @@ parse_slapopt( int tool, int *mode )
 #endif /* LOG_LOCAL4 */
 #endif /* LDAP_DEBUG && LDAP_SYSLOG */
 
+       } else if ( strncasecmp( optarg, "schema-check", len ) == 0 ) {
+               switch ( tool ) {
+               case SLAPADD:
+                       if ( strcasecmp( p, "yes" ) == 0 ) {
+                               *mode &= ~SLAP_TOOL_NO_SCHEMA_CHECK;
+                       } else if ( strcasecmp( p, "no" ) == 0 ) {
+                               *mode |= SLAP_TOOL_NO_SCHEMA_CHECK;
+                       } else {
+                               Debug( LDAP_DEBUG_ANY, "unable to parse schema-check=\"%s\".\n", p, 0, 0 );
+                               return -1;
+                       }
+                       break;
+
+               default:
+                       Debug( LDAP_DEBUG_ANY, "schema-check meaningless for tool.\n", 0, 0, 0 );
+                       break;
+               }
+
+       } else if ( strncasecmp( optarg, "value-check", len ) == 0 ) {
+               switch ( tool ) {
+               case SLAPADD:
+                       if ( strcasecmp( p, "yes" ) == 0 ) {
+                               *mode |= SLAP_TOOL_VALUE_CHECK;
+                       } else if ( strcasecmp( p, "no" ) == 0 ) {
+                               *mode &= ~SLAP_TOOL_VALUE_CHECK;
+                       } else {
+                               Debug( LDAP_DEBUG_ANY, "unable to parse value-check=\"%s\".\n", p, 0, 0 );
+                               return -1;
+                       }
+                       break;
+
+               default:
+                       Debug( LDAP_DEBUG_ANY, "value-check meaningless for tool.\n", 0, 0, 0 );
+                       break;
+               }
+
        } else {
                return -1;
        }
@@ -456,7 +492,6 @@ slap_tool_init(
                case 's':
                        switch ( tool ) {
                        case SLAPADD:
-                       case SLAPMODIFY:
                                /* no schema check */
                                mode |= SLAP_TOOL_NO_SCHEMA_CHECK;
                                break;