]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/tools/ldif2id2entry.c
Import minor trace output cleanup
[openldap] / servers / slapd / tools / ldif2id2entry.c
index e84ed64802673a30c627f9e0be6bbdeee476d0a2..96ed84ffe3c34e1e4cf8ba25db158c9c748cb06f 100644 (file)
@@ -1,7 +1,9 @@
 #include "portable.h"
 
 #include <stdio.h>
+#include <stdlib.h>
 
+#include <ac/ctype.h>
 #include <ac/string.h>
 #include <ac/socket.h>
 #include <ac/unistd.h>
 
 #define MAXARGS                100
 
-int            ldap_debug;
-int            ldap_syslog;
-int            ldap_syslog_level;
-int            global_schemacheck;
-long           num_entries_sent;
-long           num_bytes_sent;
-int            active_threads;
-char           *default_referral;
-struct objclass        *global_oc;
-time_t         currenttime;
-pthread_t      listener_tid;
-pthread_mutex_t        num_sent_mutex;
-pthread_mutex_t        entry2str_mutex;
-pthread_mutex_t        active_threads_mutex;
-pthread_mutex_t        new_conn_mutex;
-pthread_mutex_t        currenttime_mutex;
-pthread_mutex_t        replog_mutex;
-pthread_mutex_t        ops_mutex;
-pthread_mutex_t        regex_mutex;
-
 static char    *tailorfile;
 static char    *inputfile;
  
@@ -54,7 +36,8 @@ main( int argc, char **argv )
        int             dbnum;
        ID              id;
        struct dbcache  *db;
-       Backend         *be;
+       Backend         *be = NULL;
+       struct ldbminfo *li;
        struct berval   bv;
        struct berval   *vals[2];
        Avlnode         *avltypes = NULL;
@@ -122,6 +105,10 @@ main( int argc, char **argv )
        }
        be = &backends[dbnum];
 
+       /* disable write sync'ing */
+       li = (struct ldbminfo *) be->be_private;
+       li->li_dbcachewsync = 0;
+
        if ( (db = ldbm_cache_open( be, "id2entry", LDBM_SUFFIX, LDBM_NEWDB ))
            == NULL ) {
                perror( "id2entry file" );
@@ -139,13 +126,21 @@ main( int argc, char **argv )
                int             vlen;
                Datum           key, data;
 
+               ldbm_datum_init( key );
+               ldbm_datum_init( data );
+
                if ( fgets( line, sizeof(line), stdin ) != NULL ) {
                        int     len, idlen;
 
                        len = strlen( line );
                        if ( buf == NULL || *buf == '\0' ) {
-                               sprintf( idbuf, "%lu\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;
+                               }
                        } else {
                                idlen = 0;
                        }
@@ -166,11 +161,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 ) {
                                        fputs("id2entry ldbm_store failed\n",