X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Ftools%2Fldbmcat.c;h=f7e62c7d315b85000fad7a5f7ddf63fde67a1631;hb=3c20cffccda737f39c04affcb2093565d3c4b116;hp=658bf98906edc775295b08349c76001c73c3b8bd;hpb=b0aa92b3a04ee8890566e29cef56459496231274;p=openldap diff --git a/servers/slapd/tools/ldbmcat.c b/servers/slapd/tools/ldbmcat.c index 658bf98906..f7e62c7d31 100644 --- a/servers/slapd/tools/ldbmcat.c +++ b/servers/slapd/tools/ldbmcat.c @@ -12,43 +12,43 @@ static void usage( char *name ) { - fprintf( stderr, "usage: %s [-n] \n", name ); - exit( 1 ); + fprintf( stderr, "usage: %s [-n] \n", name ); + exit( 1 ); } int main( int argc, char **argv ) { - Datum key, last, data; - LDBM dbp; - int rc, type; - long id; - char *file, *s; - int printid = 1; + Datum key, last, data; + LDBM dbp; + int rc, type; + long id; + char *file, *s; + int printid = 1; #ifdef HAVE_BERKELEY_DB2 - DBC *cursorp; - - memset( &key, 0, sizeof( key )); - memset( &last, 0, sizeof( last )); - memset( &data, 0, sizeof( data )); + DBC *cursorp; #endif - if ( argc < 2 || argc > 3 || ( argc == 3 && strcmp( argv[1], "-n" ) - != 0 )) { - usage( argv[0] ); - } - if ( argc == 3 && strcmp( argv[1], "-n" ) == 0 ) { - printid = 0; - file = argv[2]; - } else { - file = argv[1]; - } - - if ( (dbp = ldbm_open( file, LDBM_READER, 0, 0 )) == NULL ) { - perror( file ); - exit ( 1 ); - } + ldbm_datum_init( key ); + ldbm_datum_init( last ); + ldbm_datum_init( data ); + + if ( argc < 2 || argc > 3 || ( argc == 3 && strcmp( argv[1], "-n" ) + != 0 )) { + usage( argv[0] ); + } + if ( argc == 3 && strcmp( argv[1], "-n" ) == 0 ) { + printid = 0; + file = argv[2]; + } else { + file = argv[1]; + } + + if ( (dbp = ldbm_open( file, LDBM_READER, 0, 0 )) == NULL ) { + perror( file ); + exit ( 1 ); + } last.dptr = NULL; @@ -59,25 +59,33 @@ main( int argc, char **argv ) for ( key = ldbm_firstkey( dbp ); key.dptr != NULL; key = ldbm_nextkey( dbp, last ) ) #endif - { + { if ( last.dptr != NULL ) ldbm_datum_free( dbp, last ); data = ldbm_fetch( dbp, key ); - s = data.dptr; - if ( !printid && isdigit( *s )) { - if (( s = strchr( s, '\n' )) != NULL ) { - ++s; - } - } - if ( s != NULL ) { - puts( s ); - } - ldbm_datum_free( dbp, data ); + + if (( s = data.dptr ) != NULL ) { + + if ( !printid && isdigit( *s )) { + if (( s = strchr( s, '\n' )) != NULL ) { + ++s; + } + } + if ( s != NULL ) { + puts( s ); + } + + if ( data.dptr != NULL ) { + ldbm_datum_free( dbp, data ); + } + + } + last = key; } if ( last.dptr != NULL ) ldbm_datum_free( dbp, last ); - ldbm_close( dbp ); + ldbm_close( dbp ); - exit( 0 ); + exit( 0 ); }