]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/tools/centipede.c
Added connection initialisation and destruction notification. Now backends can regist...
[openldap] / servers / slapd / tools / centipede.c
index 5cc275f8b1e3e499de5b10708791e468a1cdf62a..f3b36d72f3697e63890e1cf5e7265b7d22698e39 100644 (file)
@@ -3,7 +3,7 @@
 #include "portable.h"
 
 #include <stdio.h>
-#include <stdlib.h>
+#include <ac/stdlib.h>
 
 #include <ac/ctype.h>
 #include <ac/string.h>
@@ -383,8 +383,8 @@ start_ldap_search(
                fflush( stdout );
        }
 
-       if ( (ld = ldap_open( ldaphost, 0 )) == NULL ) {
-               perror( "ldap_open" );
+       if ( (ld = ldap_init( ldaphost, 0 )) == NULL ) {
+               perror( "ldap_init" );
                return( NULL );
        }
 
@@ -473,6 +473,8 @@ generate_new_centroids(
        char            **val;
        char            last;
 
+       ldbm_datum_init( data );
+
        if ( verbose ) {
                printf( "Generating new centroids for..." );
                fflush( stdout );
@@ -495,11 +497,12 @@ generate_new_centroids(
 
                        /* for each value */
                        for ( j = 0; val[j] != NULL; j++ ) {
+
+                               ldbm_datum_init( key );
+
                                /* normalize the value */
                                for ( s = val[j]; *s; s++ ) {
-                                       if ( isascii( *s ) ) {
-                                               *s = TOLOWER( *s );
-                                       }
+                                       *s = TOLOWER( (unsigned char) *s );
                                        last = *s;
                                }
                                if ( isascii( last ) && isdigit( last ) ) {
@@ -514,8 +517,10 @@ generate_new_centroids(
 
                                /* generate a word-based centroid */
                                } else {
-                                       for ( w = strtok( val[j], WORD_BREAKS ); w != NULL;
-                                         w = strtok( NULL, WORD_BREAKS ) ) {
+                                       char *lasts;
+                                       for ( w = ldap_pvt_strtok( val[j], WORD_BREAKS, &lasts );
+                                         w != NULL;
+                                         w = ldap_pvt_strtok( NULL, WORD_BREAKS, &lasts ) ) {
                                                key.dptr = w;
                                                key.dsize = strlen( key.dptr ) + 1;
                                                (void) ldbm_store( ldbm[i], key, data, LDBM_INSERT );
@@ -570,6 +575,14 @@ diff_centroids(
                fflush( stdout );
        }
 
+       ldbm_datum_init( okey );
+       ldbm_datum_init( nkey );
+       ldbm_datum_init( olast );
+       ldbm_datum_init( nlast );
+       ldbm_datum_init( lastkey );
+       ldbm_datum_init( key );
+       ldbm_datum_init( data );
+
        if ( (mods = (LDAPMod **) malloc( sizeof(LDAPMod *) * 4 )) == NULL ||
             (mods[0] = (LDAPMod *) malloc( sizeof(LDAPMod) )) == NULL ||
             (mods[1] = (LDAPMod *) malloc( sizeof(LDAPMod) )) == NULL ||
@@ -832,6 +845,9 @@ full_centroid(
                fflush( stdout );
        }
 
+       ldbm_datum_init( key );
+       ldbm_datum_init( lastkey );
+
        if ( (mods = (LDAPMod **) malloc( sizeof(LDAPMod *) * 3 )) == NULL ||
             (mods[0] = (LDAPMod *) malloc( sizeof(LDAPMod) )) == NULL ||
             (mods[1] = (LDAPMod *) malloc( sizeof(LDAPMod) )) == NULL ||
@@ -960,8 +976,8 @@ bind_to_destination_ldap(
        free( ldapbase );
        ldapbase = strdup( buf );
 
-       if ( (ld = ldap_open( ldaphost, 0 )) == NULL ) {
-               perror( "ldap_open" );
+       if ( (ld = ldap_init( ldaphost, 0 )) == NULL ) {
+               perror( "ldap_init" );
                return( NULL );
        }
 
@@ -1029,8 +1045,6 @@ charray_add_dup(
        char    *s
 )
 {
-       int n;
        if ( *a == NULL ) {
                *a = (char **) malloc( (BUFSIZ + 1) * sizeof(char *) );
                *cur = 0;