]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
Import Julio ldif2ldbm fixes from devel.
authorKurt Zeilenga <kurt@openldap.org>
Sat, 31 Jul 1999 04:02:52 +0000 (04:02 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Sat, 31 Jul 1999 04:02:52 +0000 (04:02 +0000)
servers/slapd/tools/ldif2id2children.c
servers/slapd/tools/ldif2id2entry.c

index 1dab807cd10943bc1d5ff0f04b590c77b54841c2..9a31b33b74dfaee2da05944812786079314d8409 100644 (file)
@@ -239,7 +239,11 @@ main( int argc, char **argv )
                }
                if ( line[0] == '\n' || stop && buf && *buf ) {
                        if ( * buf != '\n' ) {
-                               id++;
+                               if (isdigit((unsigned char) *buf)) {
+                                       id = atol(buf);
+                               } else {
+                                       id++;
+                               }
                                s = buf;
                                while ( (linep = str_getline( &s )) != NULL ) {
                                        if ( str_parse_line( linep, &type, &val,
index 1ab1a2d6811e8f9d3f70a2d5c46c603b02afa421..4ef6a8e636c445fbbe59922db0d033c553f188fa 100644 (file)
@@ -34,7 +34,7 @@ main( int argc, char **argv )
        char            line[BUFSIZ], idbuf[BUFSIZ];
        int             lmax, lcur;
        int             dbnum;
-       ID              id;
+       ID              id, maxid;
        struct dbcache  *db;
        Backend         *be = NULL;
        struct ldbminfo *li;
@@ -116,6 +116,7 @@ main( int argc, char **argv )
        }
 
        id = 0;
+       maxid = 0;
        stop = 0;
        buf = NULL;
        lcur = lmax = 0;
@@ -164,6 +165,7 @@ main( int argc, char **argv )
                                int len;
 
                                id++;
+                               if( id > maxid ) maxid = id;
                                key.dptr = (char *) &id;
                                key.dsize = sizeof(ID);
                                data.dptr = buf;
@@ -185,14 +187,14 @@ main( int argc, char **argv )
        }
        (*be->be_close)( be );
 
-       id++;
+       maxid++;
        sprintf( line, "%s/NEXTID",
            ((struct ldbminfo *) be->be_private)->li_directory );
        if ( (fp = fopen( line, "w" )) == NULL ) {
                perror( line );
-               fprintf( stderr, "Could not write next id %ld\n", id );
+               fprintf( stderr, "Could not write next id %ld\n", maxid );
        } else {
-               fprintf( fp, "%ld\n", id );
+               fprintf( fp, "%ld\n", maxid );
                fclose( fp );
        }