]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slapcommon.c
make back-meta conform with man page
[openldap] / servers / slapd / slapcommon.c
index 96aad01bce318573c71de824d6ef75b59e71d49c..9f99363dc8aa0d39a4f98717d1a1ea83504106dd 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2005 The OpenLDAP Foundation.
+ * Copyright 1998-2006 The OpenLDAP Foundation.
  * Portions Copyright 1998-2003 Kurt D. Zeilenga.
  * Portions Copyright 2003 IBM Corporation.
  * All rights reserved.
@@ -63,7 +63,7 @@ usage( int tool, const char *progname )
 
        case SLAPADD:
                options = " [-c]\n\t[-g] [-n databasenumber | -b suffix]\n"
-                       "\t[-l ldiffile] [-q] [-u] [-w]\n";
+                       "\t[-l ldiffile] [-q] [-u] [-s] [-w]\n";
                break;
 
        case SLAPAUTH:
@@ -211,7 +211,7 @@ slap_tool_init(
 
        switch( tool ) {
        case SLAPADD:
-               options = "b:cd:f:F:gl:n:qtuvw";
+               options = "b:cd:f:F:gl:n:qstuvw";
                break;
 
        case SLAPCAT:
@@ -344,7 +344,10 @@ slap_tool_init(
                        break;
 
                case 's':       /* dump subtree */
-                       subtree = strdup( optarg );
+                       if ( tool == SLAPADD )
+                               mode |= SLAP_TOOL_NO_SCHEMA_CHECK;
+                       else if ( tool == SLAPCAT )
+                               subtree = strdup( optarg );
                        break;
 
                case 't':       /* turn on truncate */
@@ -624,22 +627,24 @@ startup:;
        }
 
        /* slapdn doesn't specify a backend to startup */
-       if ( !dryrun && tool != SLAPDN && slap_startup( be ) ) {
+       if ( !dryrun && tool != SLAPDN ) {
                need_shutdown = 1;
 
-               switch ( tool ) {
-               case SLAPTEST:
-                       fprintf( stderr, "slap_startup failed "
-                                       "(test would succeed using "
-                                       "the -u switch)\n" );
-                       break;
+               if ( slap_startup( be ) ) {
+                       switch ( tool ) {
+                       case SLAPTEST:
+                               fprintf( stderr, "slap_startup failed "
+                                               "(test would succeed using "
+                                               "the -u switch)\n" );
+                               break;
+
+                       default:
+                               fprintf( stderr, "slap_startup failed\n" );
+                               break;
+                       }
 
-               default:
-                       fprintf( stderr, "slap_startup failed\n" );
-                       break;
+                       exit( EXIT_FAILURE );
                }
-               
-               exit( EXIT_FAILURE );
        }
 }