]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slapadd.c
use asynchronous StartTLS
[openldap] / servers / slapd / slapadd.c
index 788100e615605c8b0d9a4f94986762ede874844a..8648e2e2bad9f52a508fec333d107f504d15d61c 100644 (file)
@@ -62,7 +62,7 @@ slapadd( int argc, char **argv )
        ID      ctxcsn_id, id;
        int ret;
        struct berval bvtext;
-       int i;
+       int i, checkvals;
        struct berval mc;
        slap_tool_init( progname, SLAPADD, argc, argv );
 
@@ -80,6 +80,8 @@ slapadd( int argc, char **argv )
                }
        }
 
+       checkvals = (slapMode & SLAP_TOOL_QUICK) ? 0 : 1;
+
        lmax = 0;
        lineno = 0;
 
@@ -95,7 +97,7 @@ slapadd( int argc, char **argv )
        }
 
        while( ldif_read_record( ldiffp, &lineno, &buf, &lmax ) ) {
-               Entry *e = str2entry( buf );
+               Entry *e = str2entry2( buf, checkvals );
 
                /*
                 * Initialize text buffer
@@ -323,7 +325,7 @@ done:;
        bvtext.bv_val = textbuf;
        bvtext.bv_val[0] = '\0';
 
-       if ( update_ctxcsn && !dryrun && maxcsn.bv_len ) {
+       if ( rc == EXIT_SUCCESS && update_ctxcsn && !dryrun && maxcsn.bv_len ) {
                ctxcsn_id = be->be_dn2id_get( be, be->be_nsuffix );
                if ( ctxcsn_id == NOID ) {
                        fprintf( stderr, "%s: context entry is missing\n", progname );