]> git.sur5r.net Git - openldap/commitdiff
Patch: 'ldapmodify -c' should return error on failure (ITS#2133)
authorKurt Zeilenga <kurt@openldap.org>
Sat, 12 Oct 2002 04:35:42 +0000 (04:35 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Sat, 12 Oct 2002 04:35:42 +0000 (04:35 +0000)
Written by Hallvard B. Furuseth and placed into the public domain.
This software is not subject to any license of the University of Oslo.

'ldapmodify -c' returned the error status from the _last_ LDIF entry,
so a bad entry followed by a good entry returns success.
This patch makes it return the status of the last _failed_ entry,
or 0 if all entries succeeded.

clients/tools/ldapmodify.c

index 6eea5872ce85ccc3754999b130e405072cd47ca8..6f2efb878299b552a632b09f39ea5f0ac709c4e2 100644 (file)
@@ -154,7 +154,8 @@ main( int argc, char **argv )
     char               *infile, *rejfile, *rbuf, *start, *rejbuf = NULL;
     FILE               *fp, *rejfp;
        char            *matched_msg = NULL, *error_msg = NULL;
-       int             rc, i, authmethod, version, want_bindpw, debug, manageDSAit, noop, referrals;
+       int             rc, retval, i, authmethod, version, want_bindpw;
+       int             debug, manageDSAit, noop, referrals;
        int count, len;
        char    *pw_file = NULL;
        char    *control, *cvalue;
@@ -832,6 +833,7 @@ main( int argc, char **argv )
        }
 
        count = 0;
+       retval = 0;
     while (( rc == 0 || contoper ) &&
                ( rbuf = read_one_record( fp )) != NULL ) {
        count++;
@@ -849,6 +851,8 @@ main( int argc, char **argv )
 
     rc = process_ldif_rec( start, count );
 
+       if ( rc )
+               retval = rc;
        if ( rc && rejfp ) {
                fprintf(rejfp, "# Error: %s (%d)", ldap_err2string(rc), rc);
 
@@ -876,7 +880,7 @@ main( int argc, char **argv )
            fclose( rejfp );
     }
 
-       return( rc );
+    return( retval );
 }