]> git.sur5r.net Git - openldap/commitdiff
Update '-c' error handling, so error in any operation returns error from main.
authorHallvard Furuseth <hallvard@openldap.org>
Mon, 9 Dec 2002 11:02:28 +0000 (11:02 +0000)
committerHallvard Furuseth <hallvard@openldap.org>
Mon, 9 Dec 2002 11:02:28 +0000 (11:02 +0000)
clients/tools/ldapdelete.c
clients/tools/ldapmodrdn.c

index 5095d9d424dba30b6949b0973d0483415d2eb027..b46e38791e1b78338f82b6f862f6090807be3dac 100644 (file)
@@ -99,7 +99,8 @@ main( int argc, char **argv )
 {
        char            buf[ 4096 ];
        FILE            *fp;
-       int             i, rc, authmethod, referrals, want_bindpw, version, debug, manageDSAit, noop, crit;
+       int             i, rc, retval, authmethod, referrals, want_bindpw;
+       int             version, debug, manageDSAit, noop, crit;
        char    *pw_file;
        char    *control, *cvalue;
        char    *authzid = NULL;
@@ -770,14 +771,17 @@ main( int argc, char **argv )
                }
        }
 
-       rc = 0;
+       retval = rc = 0;
 
     if ( fp == NULL ) {
                for ( ; optind < argc; ++optind ) {
                        rc = dodelete( ld, argv[ optind ] );
 
                        /* Stop on error and no -c option */
-                       if( rc != 0 && contoper == 0) break;
+                       if( rc != 0 ) {
+                               retval = rc;
+                               if( contoper == 0 ) break;
+                       }
                }
        } else {
                while ((rc == 0 || contoper) && fgets(buf, sizeof(buf), fp) != NULL) {
@@ -785,13 +789,15 @@ main( int argc, char **argv )
 
                        if ( *buf != '\0' ) {
                                rc = dodelete( ld, buf );
+                               if ( rc != 0 )
+                                       retval = rc;
                        }
                }
        }
 
     ldap_unbind( ld );
 
-       return( rc );
+    return( retval );
 }
 
 
index 6f09348f73908f30bf8173fd2f41e8381453652a..eeedfee48aef98f9b08cf4377bf1c38d150730a4 100644 (file)
@@ -112,7 +112,8 @@ main(int argc, char **argv)
 {
     char               *infile, *entrydn = NULL, *rdn = NULL, buf[ 4096 ];
     FILE               *fp;
-       int             rc, i, remove, havedn, authmethod, version, want_bindpw, debug, manageDSAit, noop, crit;
+       int             rc, retval, i, remove, havedn, authmethod, version;
+       int             want_bindpw, debug, manageDSAit, noop, crit;
        int             referrals;
     char       *newSuperior=NULL;
        char    *pw_file = NULL;
@@ -805,9 +806,9 @@ main(int argc, char **argv)
                }
        }
 
-    rc = 0;
+    retval = rc = 0;
     if (havedn)
-       rc = domodrdn( ld, entrydn, rdn, newSuperior, remove );
+       retval = domodrdn( ld, entrydn, rdn, newSuperior, remove );
     else while ((rc == 0 || contoper) && fgets(buf, sizeof(buf), fp) != NULL) {
        if ( *buf != '\0' ) {   /* blank lines optional, skip */
            buf[ strlen( buf ) - 1 ] = '\0';    /* remove nl */
@@ -818,6 +819,8 @@ main(int argc, char **argv)
                     return( EXIT_FAILURE );
                }
                rc = domodrdn(ld, entrydn, rdn, newSuperior, remove );
+               if ( rc != 0 )
+                       retval = rc;
                havedn = 0;
            } else if ( !havedn ) {     /* don't have DN yet */
                if (( entrydn = strdup( buf )) == NULL ) {
@@ -831,8 +834,7 @@ main(int argc, char **argv)
 
     ldap_unbind( ld );
 
-       /* UNREACHABLE */
-       return( rc );
+    return( retval );
 }
 
 static int domodrdn(