]> git.sur5r.net Git - openldap/commitdiff
Very crude LDIF changes:
authorKurt Zeilenga <kurt@openldap.org>
Thu, 29 Jul 1999 21:25:39 +0000 (21:25 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Thu, 29 Jul 1999 21:25:39 +0000 (21:25 +0000)
add MODRDN newSuperior support
add '#' support to ldapmodify (but not slurpd and ldbm tools)

19 files changed:
clients/tools/ldapmodify.c
servers/slapd/add.c
servers/slapd/delete.c
servers/slapd/modify.c
servers/slapd/modrdn.c
servers/slapd/proto-slap.h
servers/slapd/repl.c
servers/slapd/slap.h
servers/slurpd/fm.c
servers/slurpd/ldap_op.c
servers/slurpd/slurp.h
tests/scripts/defines.sh
tests/scripts/test002-populate
tests/scripts/test003-search
tests/scripts/test004-modify
tests/scripts/test005-modrdn
tests/scripts/test006-acls
tests/scripts/test007-replication
tests/scripts/test009-referral

index 36edc0d29f67a8de1c7263609b1b1e98963fa6a4..851b41fd752756b6e68079f12ec13ead8075b16a 100644 (file)
@@ -48,12 +48,15 @@ static LDAP *ld;
 #define T_MODIFYCTSTR          "modify"
 #define T_DELETECTSTR          "delete"
 #define T_MODRDNCTSTR          "modrdn"
+#define T_MODDNCTSTR           "moddn"
+#define T_RENAMECTSTR          "rename"
 #define T_MODOPADDSTR          "add"
 #define T_MODOPREPLACESTR      "replace"
 #define T_MODOPDELETESTR       "delete"
 #define T_MODSEPSTR            "-"
 #define T_NEWRDNSTR            "newrdn"
 #define T_DELETEOLDRDNSTR      "deleteoldrdn"
+#define T_NEWSUPSTR            "newsuperior"
 
 
 static void usage LDAP_P(( const char *prog ));
@@ -293,9 +296,10 @@ main( int argc, char **argv )
         * has a colon that appears to the left of any equal signs, OR
         * if the first line consists entirely of digits (an entry id)
         */
-       use_ldif = ( p = strchr( rbuf, ':' )) != NULL &&
-               ( q = strchr( rbuf, '\n' )) != NULL && p < q &&
-               (( q = strchr( rbuf, '=' )) == NULL || p < q );
+       use_ldif = ( *rbuf == '#' ) ||
+               (( p = strchr( rbuf, ':' )) != NULL &&
+               (  q = strchr( rbuf, '\n' )) != NULL && p < q &&
+               (( q = strchr( rbuf, '=' )) == NULL || p < q ));
 
        start = rbuf;
 
@@ -335,9 +339,9 @@ main( int argc, char **argv )
 static int
 process_ldif_rec( char *rbuf )
 {
-    char       *line, *dn, *type, *value, *newrdn, *p;
+    char       *line, *dn, *type, *value, *newrdn, *newsup, *p;
     int                rc, linenum, vlen, modop, replicaport;
-    int                expect_modop, expect_sep, expect_ct, expect_newrdn;
+    int                expect_modop, expect_sep, expect_ct, expect_newrdn, expect_newsup;
     int                expect_deleteoldrdn, deleteoldrdn;
     int                saw_replica, use_record, new_entry, delete_entry, got_all;
     LDAPMod    **pmods;
@@ -345,12 +349,13 @@ process_ldif_rec( char *rbuf )
     new_entry = new;
 
     rc = got_all = saw_replica = delete_entry = expect_modop = 0;
-    expect_deleteoldrdn = expect_newrdn = expect_sep = expect_ct = 0;
+    expect_deleteoldrdn = expect_newrdn = expect_newsup = 0;
+       expect_sep = expect_ct = 0;
     linenum = 0;
     deleteoldrdn = 1;
     use_record = force;
     pmods = NULL;
-    dn = newrdn = NULL;
+    dn = newrdn = newsup = NULL;
 
     while ( rc == 0 && ( line = ldif_getline( &rbuf )) != NULL ) {
        ++linenum;
@@ -405,7 +410,10 @@ process_ldif_rec( char *rbuf )
                        expect_modop = 1;
                } else if ( strcasecmp( value, T_ADDCTSTR ) == 0 ) {
                        new_entry = 1;
-               } else if ( strcasecmp( value, T_MODRDNCTSTR ) == 0 ) {
+               } else if ( strcasecmp( value, T_MODRDNCTSTR ) == 0
+                       || strcasecmp( value, T_MODDNCTSTR ) == 0
+                       || strcasecmp( value, T_RENAMECTSTR ) == 0)
+               {
                    expect_newrdn = 1;
                } else if ( strcasecmp( value, T_DELETECTSTR ) == 0 ) {
                    got_all = delete_entry = 1;
@@ -458,12 +466,26 @@ process_ldif_rec( char *rbuf )
        } else if ( expect_deleteoldrdn ) {
            if ( strcasecmp( type, T_DELETEOLDRDNSTR ) == 0 ) {
                deleteoldrdn = ( *value == '0' ) ? 0 : 1;
+               expect_deleteoldrdn = 0;
+               expect_newsup = 1;
                got_all = 1;
            } else {
                fprintf( stderr, "%s: expecting \"%s:\" but saw \"%s:\" (line %d of entry %s)\n",
                        prog, T_DELETEOLDRDNSTR, type, linenum, dn );
                rc = LDAP_PARAM_ERROR;
            }
+       } else if ( expect_newsup ) {
+           if ( strcasecmp( type, T_NEWSUPSTR ) == 0 ) {
+               if (( newsup = strdup( value )) == NULL ) {
+                   perror( "strdup" );
+                   exit( 1 );
+               }
+               expect_newsup = 0;
+           } else {
+               fprintf( stderr, "%s: expecting \"%s:\" but saw \"%s:\" (line %d of entry %s)\n",
+                       prog, T_NEWSUPSTR, type, linenum, dn );
+               rc = LDAP_PARAM_ERROR;
+           }
        } else if ( got_all ) {
            fprintf( stderr,
                    "%s: extra lines at end (line %d of entry %s)\n",
@@ -474,6 +496,10 @@ process_ldif_rec( char *rbuf )
        }
     }
 
+       if( linenum == 0 ) {
+               return 0;
+       }
+
     if ( rc == 0 ) {
        if ( delete_entry ) {
            rc = dodelete( dn );
@@ -856,25 +882,35 @@ fromfile( char *path, struct berval *bv )
 static char *
 read_one_record( FILE *fp )
 {
-    int         len;
     char        *buf, line[ LDAPMOD_MAXLINE ];
     int                lcur, lmax;
 
     lcur = lmax = 0;
     buf = NULL;
 
-    while (( fgets( line, sizeof(line), fp ) != NULL ) &&
-            (( len = strlen( line )) > 1 )) {
-        if ( lcur + len + 1 > lmax ) {
-            lmax = LDAPMOD_MAXLINE
-                   * (( lcur + len + 1 ) / LDAPMOD_MAXLINE + 1 );
-           if (( buf = (char *)realloc( buf, lmax )) == NULL ) {
-               perror( "realloc" );
-               exit( 1 );
-           }
-        }
-        strcpy( buf + lcur, line );
-        lcur += len;
+    while ( fgets( line, sizeof(line), fp ) != NULL ) {
+       int len = strlen( line );
+
+               if( len < 2 ) {
+                       if( buf == NULL ) {
+                               continue;
+                       } else {
+                               break;
+                       }
+               }
+
+               if ( lcur + len + 1 > lmax ) {
+                       lmax = LDAPMOD_MAXLINE
+                               * (( lcur + len + 1 ) / LDAPMOD_MAXLINE + 1 );
+
+                       if (( buf = (char *)realloc( buf, lmax )) == NULL ) {
+                               perror( "realloc" );
+                               exit( 1 );
+                       }
+               }
+
+               strcpy( buf + lcur, line );
+               lcur += len;
     }
 
     return( buf );
index ca7529e0b30c2ccf990f551a87faec4581296382..196a3189d5fd7b90d85bb7d14f347d0605e45481 100644 (file)
@@ -169,7 +169,7 @@ do_add( Connection *conn, Operation *op )
                        }
 
                        if ( (*be->be_add)( be, conn, op, e ) == 0 ) {
-                               replog( be, LDAP_REQ_ADD, e->e_dn, e, 0 );
+                               replog( be, op, e->e_dn, e );
                                be_entry_release_w( be, e );
                        }
 
index 64cbefa67557439f96a1a6ef79eb39ec1bd28570..1b32dd9a0d0669436dfc4fae4931065a8be83c90 100644 (file)
@@ -96,7 +96,7 @@ do_delete(
                        strcmp( be->be_update_ndn, op->o_ndn ) == 0 )
                {
                        if ( (*be->be_delete)( be, conn, op, ndn ) == 0 ) {
-                               replog( be, LDAP_REQ_DELETE, ndn, NULL, 0 );
+                               replog( be, op, ndn, NULL );
                        }
                } else {
                        send_ldap_result( conn, op, rc = LDAP_REFERRAL, NULL, NULL,
index 2929735796551c1a65dd88b57338f36c2b87eb4e..7f4a34b0deb66b87fa385195c0cb469a013c986a 100644 (file)
@@ -204,7 +204,7 @@ do_modify(
                        }
 
                        if ( (*be->be_modify)( be, conn, op, ndn, modlist ) == 0 ) {
-                               replog( be, LDAP_REQ_MODIFY, ndn, modlist, 0 );
+                               replog( be, op, ndn, modlist );
                        }
 
                /* send a referral */
index 10349d001d0896cd8220e5240df8ef273c04a02f..abbe7f98421b17872f4a617bc22e472dc6b56b29 100644 (file)
@@ -227,10 +227,13 @@ do_modrdn(
                        strcmp( be->be_update_ndn, op->o_ndn ) == 0 )
                {
                        if ( (*be->be_modrdn)( be, conn, op, ndn, newrdn,
-                           deloldrdn, newSuperior ) == 0 ) {
-                               /* XXX: MAY NEED TO ADD newSuperior HERE */
-                               replog( be, LDAP_REQ_MODRDN, ndn, newrdn,
-                                   deloldrdn );
+                           deloldrdn, newSuperior ) == 0 )
+                       {
+                               struct replog_moddn moddn;
+                           moddn.newrdn = newrdn;
+                               moddn.deloldrdn = deloldrdn;
+                               moddn.newsup = newSuperior;
+                               replog( be, op, ndn, &moddn );
                        }
                } else {
                        send_ldap_result( conn, op, rc = LDAP_REFERRAL, NULL, NULL,
index ab489d0d376e81c7ea10485da652d87863c46b13..473927dcaf2cb6cd212c3c37eaebbdfcbcfcb6b3 100644 (file)
@@ -277,7 +277,7 @@ char * phonetic LDAP_P(( char *s ));
  * repl.c
  */
 
-void replog LDAP_P(( Backend *be, int optype, char *dn, void *change, int flag ));
+void replog LDAP_P(( Backend *be, Operation *op, char *dn, void *change ));
 
 /*
  * result.c
index 0c3f04a7cf5a8072aae3ef5ce1e44a2ec0febbff..1b59f2be86b05c3bdc1755b14f35d904294cfabd 100644 (file)
 void
 replog(
     Backend    *be,
-    int                optype,
+    Operation *op,
     char       *dn,
-    void       *change,
-    int                flag
+    void       *change
 )
 {
        LDAPModList     *ml;
        Entry   *e;
-       char    *newrdn, *tmp;
+       struct replog_moddn *moddn;
+       char *tmp;
        FILE    *fp, *lfp;
        int     len, i;
 
@@ -48,7 +48,7 @@ replog(
        fprintf( fp, "time: %ld\n", (long) slap_get_time() );
        fprintf( fp, "dn: %s\n", dn );
 
-       switch ( optype ) {
+       switch ( op->o_tag ) {
        case LDAP_REQ_MODIFY:
                fprintf( fp, "changetype: modify\n" );
                ml = change;
@@ -109,10 +109,13 @@ replog(
                break;
 
        case LDAP_REQ_MODRDN:
-               newrdn = change;
+               moddn = change;
                fprintf( fp, "changetype: modrdn\n" );
-               fprintf( fp, "newrdn: %s\n", newrdn );
-               fprintf( fp, "deleteoldrdn: %d\n", flag ? 1 : 0 );
+               fprintf( fp, "newrdn: %s\n", moddn->newrdn );
+               fprintf( fp, "deleteoldrdn: %d\n", moddn->deloldrdn ? 1 : 0 );
+               if( moddn->newsup != NULL ) {
+                       fprintf( fp, "newsuperior: %s\n", moddn->newsup );
+               }
        }
        fprintf( fp, "\n" );
 
index be69eb46e7183e139280abd4c659613dd5900647..57dbbd9eb2b1610b5198df495cafd7e1fbc63806 100644 (file)
@@ -95,6 +95,12 @@ extern int slap_debug;
 struct slap_op;
 struct slap_conn;
 
+struct replog_moddn {
+       char *newrdn;
+       int     deloldrdn;
+       char *newsup;
+};
+
 /*
  * represents an attribute value assertion (i.e., attr=value)
  */
index d8d1dddb3d0090faa6c726c7e7ce7df090664ba6..752556e1861087575731e71878acfc125f79ceaa 100644 (file)
@@ -229,12 +229,13 @@ get_record(
 
     while (( fgets( line, sizeof(line), fp ) != NULL ) &&
            (( len = strlen( line )) > 1 )) {
-       while ( lcur + len + 1 > lmax ) {
-           lmax += BUFSIZ;
-           buf = (char *) ch_realloc( buf, lmax );
-       }
-       strcpy( buf + lcur, line );
-       lcur += len;
+
+               while ( lcur + len + 1 > lmax ) {
+                   lmax += BUFSIZ;
+                   buf = (char *) ch_realloc( buf, lmax );
+               }
+               strcpy( buf + lcur, line );
+               lcur += len;
     }
     return( buf );
 }
index 404f321ef4f7966db123ea7b648cf889385c5536..8dfc7e157baa18d1f3cc02183778f1e6296ebd4d 100644 (file)
@@ -350,9 +350,12 @@ op_ldap_delete(
 /*
  * Perform an ldap modrdn operation.
  */
-#define        GOT_NEWRDN              1
-#define        GOT_DRDNFLAGSTR         2
-#define        GOT_ALLNEWRDNFLAGS      ( GOT_NEWRDN | GOT_DRDNFLAGSTR )
+#define        GOT_NEWRDN              0x1
+#define        GOT_DELOLDRDN   0x2
+#define GOT_NEWSUP             0x4
+
+#define GOT_MODDN_REQ  (GOT_NEWRDN|GOT_DELOLDRDN)
+#define        GOT_ALL_MODDN(f)        (((f) & GOT_MODDN_REQ) == GOT_MODDN_REQ)
 static int
 op_ldap_modrdn(
     Ri         *ri,
@@ -367,6 +370,7 @@ op_ldap_modrdn(
     int                state = 0;
     int                drdnflag = -1;
     char       *newrdn;
+       char    *newsup = NULL;
 
     if ( re->re_mods == NULL ) {
        *errmsg = "No arguments given";
@@ -380,10 +384,27 @@ op_ldap_modrdn(
      */
     for ( mi = re->re_mods, i = 0; mi[ i ].mi_type != NULL; i++ ) {
        if ( !strcmp( mi[ i ].mi_type, T_NEWRDNSTR )) {
+               if( state & GOT_NEWRDN ) {
+               Debug( LDAP_DEBUG_ANY,
+                       "Error: op_ldap_modrdn: multiple newrdn arg \"%s\"\n",
+                       mi[ i ].mi_val, 0, 0 );
+               *errmsg = "Multiple newrdn argument";
+               return -1;
+               }
+
            newrdn = mi[ i ].mi_val;
            state |= GOT_NEWRDN;
-       } else if ( !strcmp( mi[ i ].mi_type, T_DRDNFLAGSTR )) {
-           state |= GOT_DRDNFLAGSTR;
+
+       } else if ( !strcmp( mi[ i ].mi_type, T_DELOLDRDNSTR )) {
+               if( state & GOT_DELOLDRDN ) {
+               Debug( LDAP_DEBUG_ANY,
+                       "Error: op_ldap_modrdn: multiple deleteoldrdn arg \"%s\"\n",
+                       mi[ i ].mi_val, 0, 0 );
+               *errmsg = "Multiple newrdn argument";
+               return -1;
+               }
+
+           state |= GOT_DELOLDRDN;
            if ( !strcmp( mi[ i ].mi_val, "0" )) {
                drdnflag = 0;
            } else if ( !strcmp( mi[ i ].mi_val, "1" )) {
@@ -395,6 +416,19 @@ op_ldap_modrdn(
                *errmsg = "Incorrect argument to deleteoldrdn";
                return -1;
            }
+
+       } else if ( !strcmp( mi[ i ].mi_type, T_NEWSUPSTR )) {
+               if( state & GOT_NEWSUP ) {
+               Debug( LDAP_DEBUG_ANY,
+                       "Error: op_ldap_modrdn: multiple newsuperior arg \"%s\"\n",
+                       mi[ i ].mi_val, 0, 0 );
+               *errmsg = "Multiple newrdn argument";
+               return -1;
+               }
+
+               newrdn = mi[ i ].mi_val;
+           state |= GOT_NEWSUP;
+
        } else {
            Debug( LDAP_DEBUG_ANY, "Error: op_ldap_modrdn: bad type \"%s\"\n",
                    mi[ i ].mi_type, 0, 0 );
@@ -406,7 +440,7 @@ op_ldap_modrdn(
     /*
      * Punt if we don't have all the args.
      */
-    if ( state != GOT_ALLNEWRDNFLAGS ) {
+    if ( GOT_ALL_MODDN(state) ) {
        Debug( LDAP_DEBUG_ANY, "Error: op_ldap_modrdn: missing arguments\n",
                0, 0, 0 );
        *errmsg = "Missing argument: requires \"newrdn\" and \"deleteoldrdn\"";
@@ -429,7 +463,7 @@ op_ldap_modrdn(
 #endif /* LDAP_DEBUG */
 
     /* Do the modrdn */
-    rc = ldap_modrdn2_s( ri->ri_ldp, re->re_dn, mi->mi_val, drdnflag );
+    rc = ldap_rename2_s( ri->ri_ldp, re->re_dn, mi->mi_val, drdnflag, newsup );
 
        ldap_get_option( ri->ri_ldp, LDAP_OPT_ERROR_NUMBER, &lderr);
     return( lderr );
index 839f525828a455913519a200712a90540273edce..5dcce03befc8b784d61daffb2437a716378d8172 100644 (file)
@@ -89,6 +89,8 @@
 #define        T_DELETECTSTR           "delete"
 #define        T_DELETECT              6
 #define        T_MODRDNCTSTR           "modrdn"
+#define        T_MODDNCTSTR            "moddn"
+#define        T_RENAMECTSTR           "rename"
 #define        T_MODRDNCT              7
 
 #define        T_MODOPADDSTR           "add"
 #define        T_MODSEP                11
 
 #define        T_NEWRDNSTR             "newrdn"
-#define        T_DRDNFLAGSTR           "deleteoldrdn"
+#define        T_DELOLDRDNSTR  "deleteoldrdn"
+#define T_NEWSUPSTR            "newsuperior"
 
 #define        T_ERR                   -1
 
index 4f5256e0d23cf19198bbf0d95d41404044b2a32f..58e0842396e2843ca673473e746531c68fb0b829 100755 (executable)
@@ -59,7 +59,7 @@ SEARCHFLT=$DBDIR/ldapsearch.flt
 LDIFFLT=$DBDIR/ldif.flt
 MASTEROUT=$DBDIR/master.out
 SLAVEOUT=$DBDIR/slave.out
-TESTOUT=$DBDIR/ldapsearch.out
+TESTOUT=$DBDIR/test.out
 SEARCHOUTMASTER=$DATADIR/search.out.master
 MODIFYOUTMASTER=$DATADIR/modify.out.master
 ADDDELOUTMASTER=$DATADIR/adddel.out.master
index d12e14accf74afdb13d2f02d3cc757fbbb1fa036..7d2d49df6cb90f6b6b943e0f4d2d68bfb93c8528 100755 (executable)
@@ -33,7 +33,7 @@ done
 
 echo "Using ldapadd to populate the database..."
 $LDAPADD -D "$MANAGERDN" -h localhost -p $PORT -w $PASSWD < \
-       $LDIFORDERED > /dev/null 2>&1
+       $LDIFORDERED > $TESTOUT 2>&1
 RC=$?
 if test $RC != 0 ; then
        echo "ldapadd failed!"
index 7c1942879d06c74606611611f2702a8818c5cfcc..0642b057cf6fca2fa2fd85eeef660c965cb5f659 100755 (executable)
@@ -85,7 +85,6 @@ fi
 
 kill -HUP $PID
 
-TESTOUT=$SEARCHOUT
 LDIF=$SEARCHOUTMASTER
 
 echo "Filtering ldapsearch results..."
index b21483a3febd59e1eccebbfb01aba5f726215414..f5f7cea5b44d42c120ba044a7dbaa1c3a347e076 100755 (executable)
@@ -45,12 +45,14 @@ if test $RC != 0 ; then
        exit $RC
 fi
 
-cat /dev/null > $TESTOUT
-
 echo "Testing modify, add, and delete..."
 $LDAPMODIFY -v -D "$MANAGERDN" -h localhost -p $PORT -w $PASSWD > \
-       /dev/null 2>&1 << EOMODS
+       $TESTOUT 2>&1 << EOMODS
+
+# LEADING COMMENT AND WHITE SPACE
+
 dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
+# EMBEDDED COMMENT
 changetype: modify
 add: drink
 drink: Orange Juice
@@ -102,6 +104,7 @@ homephone: +1 313 555 8844
 
 dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US
 changetype: delete
+# TRAILING COMMENT AND WHITE SPACE
 
 EOMODS
 
@@ -138,5 +141,4 @@ fi
 
 echo ">>>>> Test succeeded"
 
-
 exit 0
index 5dc9f3cdfe124afa819d22593d31cc0aeacc36df..946ad553d901d11ec32afdb6ff6c9109c25107ef 100755 (executable)
@@ -46,14 +46,11 @@ if test $RC != 0 ; then
        exit $RC
 fi
 
-cat /dev/null > $TESTOUT
-
-
 # -r used to do remove of old rdn
 
 echo "Testing modrdn(deleteoldrdn=0)..."
 $LDAPMODRDN -v -D "$MANAGERDN" -h localhost -p $PORT -w $PASSWD > \
-       /dev/null 2>&1 'cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US' 'cn=James A Jones III'
+       $TESTOUT 2>&1 'cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US' 'cn=James A Jones III'
 
 RC=$?
 if test $RC != 0 ; then
@@ -63,8 +60,8 @@ if test $RC != 0 ; then
 fi
 
 echo "Testing modrdn(deleteoldrdn=1)..."
-$LDAPMODRDN -v -D "$MANAGERDN" -r -h localhost -p $PORT -w $PASSWD > \
-       /dev/null 2>&1 'cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US' 'cn=James A Jones II'
+$LDAPMODRDN -v -D "$MANAGERDN" -r -h localhost -p $PORT -w $PASSWD >> \
+       $TESTOUT 2>&1 'cn=James A Jones 2, ou=Information Technology Division, ou=People, o=University of Michigan, c=US' 'cn=James A Jones II'
 
 RC=$?
 if test $RC != 0 ; then
index 05323fc619fce9620e4a6c0f780351c38605e8af..bdcf890aacec6bb55c9db8102d43294e8e3fd2d4 100755 (executable)
@@ -65,7 +65,7 @@ $LDAPSEARCH -L -b "$JAJDN" -h localhost -p $PORT \
 # we add our own DN.
 # bjensen
 $LDAPMODIFY -D "$JAJDN" -h localhost -p $PORT -w jaj > \
-       /dev/null 2>&1 << EOMODS1
+       $TESTOUT 2>&1 << EOMODS1
 dn: cn=ITD Staff, ou=Groups, o=University of Michigan, c=US
 changetype: modify
 add: member
@@ -73,13 +73,13 @@ member: cn=Barbara Jensen, ou=Information Technology Division, ou=People, o=Univ
 
 EOMODS1
 
-$LDAPMODIFY -D "$JAJDN" -h localhost -p $PORT -w jaj > \
-       /dev/null 2>&1 << EOMODS2
+$LDAPMODIFY -D "$JAJDN" -h localhost -p $PORT -w jaj >> \
+       $TESTOUT 2>&1 << EOMODS2
+
 dn: cn=ITD Staff, ou=Groups, o=University of Michigan, c=US
 changetype: modify
 add: member
 member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
-
 EOMODS2
 
 #
@@ -87,21 +87,21 @@ EOMODS2
 # 1) bound as "James A Jones 1" - should fail
 # 2) bound as "Barbara Jensen" - should succeed
 #
-$LDAPMODIFY -D "$JAJDN" -h localhost -p $PORT -w jaj > \
-       /dev/null 2>&1 << EOMODS3
+$LDAPMODIFY -D "$JAJDN" -h localhost -p $PORT -w jaj >> \
+       $TESTOUT 2>&1 << EOMODS3
+
 dn: cn=ITD Staff, ou=Groups, o=University of Michigan, c=US
 changetype: modify
 delete: member
 
 EOMODS3
 
-$LDAPMODIFY -D "$BJORNSDN" -h localhost -p $PORT -w bjorn > \
-       /dev/null 2>&1 << EOMODS4
+$LDAPMODIFY -D "$BJORNSDN" -h localhost -p $PORT -w bjorn >> \
+       $TESTOUT 2>&1 << EOMODS4
 dn: cn=ITD Staff, ou=Groups, o=University of Michigan, c=US
 changetype: modify
 add: telephonenumber
 telephonenumber: +1 810 555 1212
-
 EOMODS4
 
 echo "Using ldapsearch to retrieve all the entries..."
index 9e400f8f93d4183bc4c0a049c94a8dc2dc22761f..9521a7ba131e60374f61ea9829f7c25d54c4eac5 100755 (executable)
@@ -87,7 +87,7 @@ echo "Using ldapmodify to modify slave directory..."
 #
 
 $LDAPMODIFY -v -D "$MANAGERDN" -h localhost -p $SLAVEPORT -w $PASSWD > \
-       /dev/null 2>&1 << EOMODS
+       $TESTOUT 2>&1 << EOMODS
 dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Michigan, c=US
 changetype: modify
 add: drink
index 05bdd222d654185f4744db03f96a3aee138ae00a..829271c9f60a664abf7e3607f7deff03fcb2084f 100755 (executable)
@@ -105,7 +105,6 @@ fi
 
 kill -HUP $PID $SLAVEPID
 
-TESTOUT=$SEARCHOUT
 LDIF=$SEARCHOUTMASTER
 
 echo "Filtering ldapsearch results..."