X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Ftools%2Fldbmtest.c;h=1897c0245b83721dc97f7148e26e8ccee9de4cae;hb=403f4479bc9f9a864122d4aeecf7284408918302;hp=0e7cf5e64c539f03227fb8c3bbe47c4b8f9114cf;hpb=21c70857f1029309d6bc5a5b6a93d7537494b742;p=openldap diff --git a/servers/slapd/tools/ldbmtest.c b/servers/slapd/tools/ldbmtest.c index 0e7cf5e64c..1897c0245b 100644 --- a/servers/slapd/tools/ldbmtest.c +++ b/servers/slapd/tools/ldbmtest.c @@ -1,3 +1,8 @@ +/* $OpenLDAP$ */ +/* + * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ #include "portable.h" #include @@ -27,17 +32,16 @@ #include #endif -#include "ldapconfig.h" #include "../slap.h" #include "../back-ldbm/back-ldbm.h" -static struct dbcache *openchoice(char c, int mode, int verbose, char **fname); +static DBCache *openchoice(char c, int mode, int verbose, char **fname); static void print_entry(FILE *fp, char c, Datum *key, char *klabel, Datum *data, char *dlabel); -static void free_and_close(struct dbcache *dbc, Datum key, Datum data); +static void free_and_close(DBCache *dbc, Datum key, Datum data); static void edit_entry(char c, Datum *data); static void get_keydata(FILE *fp, char c, Datum *key, Datum *data); -static struct dbcache *dbc; +static DBCache *dbc; static LDBM dbp; static Backend *be = NULL; @@ -47,15 +51,18 @@ main( int argc, char **argv ) char buf[256]; Datum savekey, key, data, last; char *fname; - ID id; + ID id, cursor; ID_BLOCK *idl; Backend *tbe; int i; char *tailorfile; -#ifdef HAVE_BERKELEY_DB2 - DBC *cursorp; -#endif + LDBMCursor *cursorp; + + fprintf(stderr, + "ldbmtest not updated to support new index formats!\n" ); + exit( EXIT_FAILURE ); + ldbm_datum_init( savekey ); ldbm_datum_init( key ); @@ -77,8 +84,7 @@ main( int argc, char **argv ) fprintf( stderr, "usage: %s [-d level] [-f slapdconfigfile]\n", argv[0] ); - exit( -1 ); - break; + exit( EXIT_FAILURE ); } } @@ -88,7 +94,7 @@ main( int argc, char **argv ) slap_init(SLAP_TOOL_MODE, "ldbmtest"); read_config( tailorfile ); - slap_startup(-1); + slap_startup( NULL ); while ( 1 ) { printf( "dbtest: " ); @@ -111,7 +117,7 @@ main( int argc, char **argv ) } break; - case 'l': /* lookup somethig in an index */ + case 'l': /* lookup something in an index */ if ( (dbc = openchoice( buf[1], LDBM_READER, 1, NULL )) == NULL ) { continue; @@ -150,15 +156,9 @@ main( int argc, char **argv ) } savekey.dptr = NULL; -#ifdef HAVE_BERKELEY_DB2 for ( key = ldbm_firstkey( dbc->dbc_db, &cursorp ); key.dptr != NULL; key = ldbm_nextkey( dbc->dbc_db, key, cursorp ) ) -#else - for ( key = ldbm_firstkey( dbc->dbc_db ); - key.dptr != NULL; - key = ldbm_nextkey( dbc->dbc_db, key ) ) -#endif { if ( savekey.dptr != NULL ) ldbm_datum_free( dbc->dbc_db, savekey ); @@ -196,7 +196,7 @@ main( int argc, char **argv ) if ( ldbm_errno( dbc->dbc_db ) == 0 ) { perror( "ldbm_delete" ); } else { - fprintf( stderr, "db_errno %d", + fprintf( stderr, "db_errno=%d", ldbm_errno( dbc->dbc_db ) ); } } @@ -205,6 +205,7 @@ main( int argc, char **argv ) free_and_close( dbc, key, data ); break; +#ifndef HAVE_WINSOCK case 'e': /* edit an entry */ if ( (dbc = openchoice( buf[1], LDBM_WRITER, 1, NULL )) == NULL ) { @@ -218,7 +219,7 @@ main( int argc, char **argv ) if ( ldbm_errno( dbc->dbc_db ) == 0 ) { perror( "ldbm_fetch" ); } else { - fprintf( stderr, "db_errno %d\n", + fprintf( stderr, "db_errno=%d\n", ldbm_errno( dbc->dbc_db ) ); } free_and_close( dbc, key, data ); @@ -236,13 +237,14 @@ main( int argc, char **argv ) if ( ldbm_errno( dbc->dbc_db ) == 0 ) { perror( "ldbm_store" ); } else { - fprintf( stderr, "db_errno %d\n", + fprintf( stderr, "db_errno=%d\n", ldbm_errno( dbc->dbc_db ) ); } } free_and_close( dbc, key, data ); break; +#endif case 'a': /* add an entry */ if ( (dbc = openchoice( buf[1], LDBM_WRITER, 1, NULL )) @@ -257,7 +259,7 @@ main( int argc, char **argv ) if ( ldbm_errno( dbc->dbc_db ) == 0 ) { perror( "ldbm_store" ); } else { - fprintf( stderr, "db_errno %d\n", + fprintf( stderr, "db_errno=%d\n", ldbm_errno( dbc->dbc_db ) ); } } @@ -274,8 +276,8 @@ main( int argc, char **argv ) get_keydata( stdin, buf[1], &key, &data ); idl = (ID_BLOCK *) data.dptr; - for ( id = idl_firstid( idl ); id != NOID; - id = idl_nextid( idl, id ) ) { + for ( id = idl_firstid( idl, &cursor ); id != NOID; + id = idl_nextid( idl, &cursor ) ) { if ( idl_insert_key( be, dbc, key, id ) != 0 ) { fprintf( stderr, @@ -292,7 +294,7 @@ main( int argc, char **argv ) printf( "suffix: " ); fflush( stdout ); if ( fgets( buf, sizeof(buf), stdin ) == NULL ) { - exit( 0 ); + exit( EXIT_SUCCESS ); } else { buf[strlen( buf ) - 1] = '\0'; } @@ -322,14 +324,9 @@ main( int argc, char **argv ) last.dptr = NULL; -#ifdef HAVE_BERKELEY_DB2 for ( key = ldbm_firstkey( dbp, &cursorp ); key.dptr != NULL; key = ldbm_nextkey( dbp, last, cursorp ) ) -#else - for ( key = ldbm_firstkey( dbp ); key.dptr != NULL; - key = ldbm_nextkey( dbp, last ) ) -#endif { if ( last.dptr != NULL ) { ldbm_datum_free( dbp, last ); @@ -355,7 +352,6 @@ main( int argc, char **argv ) printf( " b => change default backend\n" ); printf( " B => print default backend\n" ); printf( "where is a char selecting the index:\n" ); - printf( " c => id2children\n" ); printf( " d => dn2id\n" ); printf( " e => id2entry\n" ); printf( " f => arbitrary file\n" ); @@ -364,14 +360,14 @@ main( int argc, char **argv ) } } - slap_shutdown(-1); + slap_shutdown( NULL ); slap_destroy(); - return( 0 ); + return( EXIT_SUCCESS ); } static void -free_and_close( struct dbcache *dbc, Datum key, Datum data ) +free_and_close( DBCache *dbc, Datum key, Datum data ) { ldbm_cache_really_close( be, dbc ); if ( key.dptr != NULL ) @@ -499,6 +495,7 @@ get_entry( FILE *fp, Datum *data ) data->dsize = psize + 1; } +#ifndef HAVE_WINSOCK static void edit_entry( char c, Datum *data ) { @@ -535,11 +532,11 @@ edit_entry( char c, Datum *data ) char *editor; if ( (editor = getenv( "EDITOR" )) == NULL ) { - editor = DEFAULT_EDITOR; + editor = LDAP_EDITOR; } execl( editor, editor, tmpname, NULL ); perror( "execl" ); - exit( 1 ); + exit( EXIT_FAILURE ); } fclose( fp ); @@ -565,22 +562,23 @@ edit_entry( char c, Datum *data ) fclose( fp ); unlink( tmpname ); } +#endif -static struct dbcache * +static DBCache * openfile( char *name, int namesiz, int mode, int verbose, char c ) { - struct dbcache *dbc; + DBCache *dbc; if ( name == NULL || *name == '\0' ) { if ( c == 'f' ) { printf( " file: " ); if ( fgets( name, namesiz, stdin ) == NULL ) - exit( 0 ); + exit( EXIT_SUCCESS ); name[strlen( name ) - 1] = '\0'; } else { printf( " attr: " ); if ( fgets( name, namesiz, stdin ) == NULL ) - exit( 0 ); + exit( EXIT_SUCCESS ); name[strlen( name ) - 1] = '\0'; } } @@ -595,15 +593,12 @@ openfile( char *name, int namesiz, int mode, int verbose, char c ) return( dbc ); } -static struct dbcache * +static DBCache * openchoice( char c, int mode, int verbose, char **fname ) { static char name[MAXPATHLEN]; switch ( c ) { - case 'c': /* id2children */ - sprintf( name, "id2children" ); - break; case 'd': /* dn2id */ sprintf( name, "dn2id" ); break; @@ -619,7 +614,7 @@ openchoice( char c, int mode, int verbose, char **fname ) } break; default: - printf( "specify one of [fdeci] to select file\n" ); + printf( "specify one of [fdei] to select file\n" ); return( NULL ); break; } @@ -652,7 +647,7 @@ print_entry( if ( ldbm_errno( dbp ) == 0 ) perror( msg ); else - fprintf( stderr, "%s: db_errno %d\n", msg, + fprintf( stderr, "%s: db_errno=%d\n", msg, ldbm_errno( dbp ) ); return; } @@ -682,7 +677,6 @@ print_entry( } break; - case 'c': case 'i': /* index - key is string, data is dnid[] */ if ( key != NULL ) fprintf( fp, "%s%s (len %d)\n", klabel, key->dptr, @@ -699,8 +693,7 @@ print_entry( fprintf( fp, "\t%ld\n", ID_BLOCK_ID(idl, i) ); } } else if ( ID_BLOCK_ALLIDS( idl ) ) { - fprintf( fp, "\tALLIDS (1..%ld)\n", - ID_BLOCK_NIDS(idl) - 1 ); + fprintf( fp, "\tALLIDS\n" ); } else { for ( i = 0; i < ID_BLOCK_NIDS(idl); i++ ) { fprintf( fp, "\t%ld\n", ID_BLOCK_ID(idl,i) ); @@ -719,7 +712,7 @@ print_entry( break; default: - fprintf( stderr, "specify [deci] to select a file\n" ); + fprintf( stderr, "specify [dei] to select a file\n" ); break; } } @@ -740,7 +733,7 @@ get_keydata( FILE *fp, char c, Datum *key, Datum *data ) if ( tty ) printf( " dn: " ); if ( fgets( kbuf, sizeof(kbuf), fp ) == NULL ) { - exit( 0 ); + exit( EXIT_SUCCESS ); } kbuf[strlen( kbuf ) - 1] = '\0'; key->dptr = strdup( kbuf ); @@ -751,7 +744,7 @@ get_keydata( FILE *fp, char c, Datum *key, Datum *data ) if ( tty ) printf( " dnid: " ); if ( fgets( dbuf, sizeof(dbuf), fp ) == NULL ) { - exit( 0 ); + exit( EXIT_SUCCESS ); } n = atol( dbuf ); data->dptr = (char *) malloc( sizeof(n) ); @@ -765,7 +758,7 @@ get_keydata( FILE *fp, char c, Datum *key, Datum *data ) if ( tty ) printf( " dnid: " ); if ( fgets( kbuf, sizeof(kbuf), fp ) == NULL ) { - exit( 0 ); + exit( EXIT_SUCCESS ); } n = atol( kbuf ); key->dptr = (char *) malloc( sizeof(n) ); @@ -778,13 +771,12 @@ get_keydata( FILE *fp, char c, Datum *key, Datum *data ) } break; - case 'c': /* id2children - key is string dnid, data is dnid[] */ case 'i': /* index - key is string, data is dnid[] */ if ( key != NULL ) { if ( tty ) printf( " key: " ); if ( fgets( kbuf, sizeof(kbuf), fp ) == NULL ) { - exit( 0 ); + exit( EXIT_SUCCESS ); } kbuf[strlen( kbuf ) - 1] = '\0'; key->dptr = strdup( kbuf ); @@ -797,7 +789,7 @@ get_keydata( FILE *fp, char c, Datum *key, Datum *data ) break; default: - fprintf(stderr, "specify [deci] to select file type\n"); + fprintf(stderr, "specify [dei] to select file type\n"); break; } }