From 5d13816520114b731cea72d778d75abd1dbc9c46 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Sat, 5 Dec 1998 03:40:42 +0000 Subject: [PATCH] Apply ldif2index atol bug fix from rel eng 1.1 --- servers/slapd/tools/ldif2id2children.c | 8 +++++++- servers/slapd/tools/ldif2id2entry.c | 19 ++++++++++++++++++- servers/slapd/tools/ldif2index.c | 8 +++++++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/servers/slapd/tools/ldif2id2children.c b/servers/slapd/tools/ldif2id2children.c index 0bb8e5ec6d..170567beff 100644 --- a/servers/slapd/tools/ldif2id2children.c +++ b/servers/slapd/tools/ldif2id2children.c @@ -1,7 +1,9 @@ #include #include +#include #include #include + #include "../slap.h" #include "../back-ldbm/back-ldbm.h" @@ -170,7 +172,11 @@ main( int argc, char **argv ) } if ( line[0] == '\n' || stop && buf && *buf ) { if ( *buf != '\n' ) { - id++; + if (isdigit(*buf)) { + id = atol(buf); + } else { + id++; + } s = buf; elineno = 0; while ( (linep = str_getline( &s )) != NULL ) { diff --git a/servers/slapd/tools/ldif2id2entry.c b/servers/slapd/tools/ldif2id2entry.c index ec2bf27279..ebb8ab6b94 100644 --- a/servers/slapd/tools/ldif2id2entry.c +++ b/servers/slapd/tools/ldif2id2entry.c @@ -1,7 +1,9 @@ #include +#include #include #include #include + #include "../slap.h" #include "../back-ldbm/back-ldbm.h" @@ -150,8 +152,18 @@ main( int argc, char **argv ) len = strlen( line ); if ( buf == NULL || *buf == '\0' ) { +<<<<<<< ldif2id2entry.c sprintf( idbuf, "%d\n", id + 1 ); idlen = strlen( idbuf ); +======= + if (!isdigit(line[0])) { + sprintf( idbuf, "%d\n", id + 1 ); + idlen = strlen( idbuf ); + } else { + id = atol(line) - 1; + idlen = 0; + } +>>>>>>> 1.4.2.3 } else { idlen = 0; } @@ -172,11 +184,16 @@ main( int argc, char **argv ) } if ( line[0] == '\n' || stop && buf && *buf ) { if ( *buf != '\n' ) { + int len; + id++; key.dptr = (char *) &id; key.dsize = sizeof(ID); data.dptr = buf; - data.dsize = strlen( buf ) + 1; + len = strlen(buf); + if (buf[len - 1] == '\n') + buf[--len] = '\0'; + data.dsize = len + 1; if ( ldbm_store( db->dbc_db, key, data, LDBM_INSERT ) != 0 ) { perror( "id2entry ldbm_store" ); diff --git a/servers/slapd/tools/ldif2index.c b/servers/slapd/tools/ldif2index.c index dd03f3dc78..245e2834cf 100644 --- a/servers/slapd/tools/ldif2index.c +++ b/servers/slapd/tools/ldif2index.c @@ -1,7 +1,9 @@ #include #include +#include #include #include + #include "../slap.h" #include "ldapconfig.h" @@ -151,7 +153,11 @@ main( int argc, char **argv ) } if ( line[0] == '\n' || stop && buf && *buf ) { if ( *buf != '\n' ) { - id++; + if (isdigit(*buf)) { + id = atol(buf); + } else { + id++; + } s = buf; elineno = 0; while ( (linep = str_getline( &s )) != NULL ) { -- 2.47.2