]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/tools/edb2ldif.c
Split out schema initialization of builtin syntax/matching rule
[openldap] / servers / slapd / tools / edb2ldif.c
index 5e2b3d9a3057711423fc4edc1da1e4f756610ed6..0ef3fb8edcab60c4532487aea4a42ab9577b33da 100644 (file)
@@ -1,3 +1,4 @@
+/* $OpenLDAP$ */
 /*
  * Copyright (c) 1995 Regents of the University of Michigan.
  * All rights reserved.
 #include "portable.h"
 
 #include <stdio.h>
-#include <stdlib.h>
+
+#include <ac/stdlib.h>
 
 #include <ac/ctype.h>
+#include <ac/errno.h>
 #include <ac/dirent.h>
 #include <ac/string.h>
+#include <ac/unistd.h>
 
-#include <sys/types.h>
 #include <sys/stat.h>
 
 #include <quipu/config.h>
@@ -57,6 +60,7 @@ struct edbmap {
 static int edb2ldif( FILE *outfp, char *edbfile, char *basedn, int recurse );
 static int convert_entry( FILE *fp, char *edbname, FILE *outfp,
        char *basedn, char *loc_addvals, int loc_addlen, char *linebuf );
+static int add_rdn_values (Attr_Sequence entryas, RDN rdn);
 static int read_edbmap( char *mapfile, struct edbmap **edbmapp );
 static char *file2rdn( struct edbmap *edbmap, char *filename );
 static void free_edbmap( struct edbmap *edbmap );
@@ -81,15 +85,12 @@ int         ldap_syslog = 0;
 int            ldap_syslog_level = 0;
 
 
-main( argc, argv )
-    int                argc;
-    char       **argv;
+int
+main( int argc, char **argv )
 {
     char       *usage = "usage: %s [-d] [-o] [-r] [-v] [-b basedn] [-a addvalsfile] [-f fileattrdir] [-i ignoreattr...] [edbfile...]\n";
     char       edbfile[ MAXNAMLEN ], *basedn;
     int                c, rc, errflg, ignore_count, recurse;
-    extern int  optind;
-    extern char        *optarg;
     extern char        dsa_mode;
 #ifdef HAVE_FILE_ATTR_DIR
     extern char        *file_attr_directory;
@@ -109,7 +110,7 @@ main( argc, argv )
     always_addvals = NULL;
     basedn = NULL;
 
-    while (( c = getopt( argc, argv, "dorva:b:f:h:i:" )) != -1 ) {
+    while (( c = getopt( argc, argv, "dorva:b:f:h:i:" )) != EOF ) {
        switch( c ) {
        case 'd':
 #ifdef LDAP_DEBUG
@@ -137,7 +138,7 @@ main( argc, argv )
            } else if (( always_addvals = read_file( optarg, &always_addlen ))
                    == NULL ) {
                print_err( optarg );
-               exit( 1 );
+               exit( EXIT_FAILURE );
            }
            break;
 
@@ -161,7 +162,7 @@ main( argc, argv )
            }
            if ( file_attr_directory == NULL ) {
                print_err( "malloc" );
-               exit( 1 );
+               exit( EXIT_FAILURE );
            }
 #else /* HAVE_FILE_ATTR_DIR */
            fprintf( stderr, "Ignoring -f:  this option requires a newer version of ISODE.\n" );
@@ -181,7 +182,7 @@ main( argc, argv )
            }
            if ( ignore_attr == NULL ) {
                print_err( "malloc/realloc" );
-               exit( 1 );
+               exit( EXIT_FAILURE );
            }
            ignore_attr[ ignore_count ] = optarg;
            ignore_attr[ ++ignore_count ] = NULL;
@@ -194,7 +195,7 @@ main( argc, argv )
 
     if ( errflg ) {
        fprintf( stderr, usage, progname );
-       exit( 1 );
+       exit( EXIT_FAILURE );
     }
 
     if ( basedn == NULL ) {
@@ -213,7 +214,7 @@ main( argc, argv )
     if ( init_syntaxes() < 0 ) {
        fprintf( stderr, "%s: init_syntaxes failed -- check your oid tables \n",
            progname );
-       exit( 1 );
+       exit( EXIT_FAILURE );
     }
 
 
@@ -242,16 +243,12 @@ main( argc, argv )
     fprintf( stderr, "edb2ldif: exit( %d )\n", ( rc < 0 ) ? 1 : 0 );
 #endif
 
-    exit( ( rc < 0 ) ? 1 : 0 );
+    exit( ( rc < 0 ) ? EXIT_FAILURE : EXIT_SUCCESS );
 }
 
 
 static int
-edb2ldif( outfp, edbfile, basedn, recurse )
-    FILE       *outfp;
-    char       *edbfile;
-    char       *basedn;
-    int                recurse;
+edb2ldif( FILE *outfp, char *edbfile, char *basedn, int recurse )
 {
     FILE       *fp;
     char       *addvals, *p, *rdn, line[ MAX_LINE_SIZE + 1 ];
@@ -474,14 +471,15 @@ edb2ldif( outfp, edbfile, basedn, recurse )
  * return > 0 if entry converted, 0 if end of file, < 0 if error occurs
  */
 static int
-convert_entry( fp, edbname, outfp, basedn, loc_addvals, loc_addlen, linebuf )
-    FILE       *fp;
-    char       *edbname;
-    FILE       *outfp;
-    char       *basedn;
-    char       *loc_addvals;
-    int                loc_addlen;
-    char       *linebuf;
+convert_entry(
+    FILE       *fp,
+    char       *edbname,
+    FILE       *outfp,
+    char       *basedn,
+    char       *loc_addvals,
+    int                loc_addlen,
+    char       *linebuf
+)
 {
     Attr_Sequence      as, tmpas;
     AV_Sequence                av;
@@ -695,10 +693,8 @@ convert_entry( fp, edbname, outfp, basedn, loc_addvals, loc_addlen, linebuf )
 }
 
 
-int
-add_rdn_values( entryas, rdn )
-    Attr_Sequence      entryas;
-    RDN                        rdn;
+static int
+add_rdn_values( Attr_Sequence entryas, RDN rdn )
 {
 /*
  * this routine is based on code from the real_unravel_attribute() routine
@@ -734,9 +730,7 @@ add_rdn_values( entryas, rdn )
 
 /* read the EDB.map file and return a linked list of translations */
 static int
-read_edbmap( mapfile, edbmapp )
-    char               *mapfile;
-    struct edbmap      **edbmapp;
+read_edbmap( char *mapfile, struct edbmap **edbmapp )
 {
     FILE               *fp;
     char               *p, *filename, *rdn, line[ MAX_LINE_SIZE + 1 ];
@@ -768,7 +762,7 @@ read_edbmap( mapfile, edbmapp )
        }
 
        *filename++ = '\0';
-       while ( isspace( *filename )) { /* strip leading whitespace */
+       while ( isspace((unsigned char) *filename) ) { /* strip leading whitespace */
            ++filename;
        }
 
@@ -777,12 +771,12 @@ read_edbmap( mapfile, edbmapp )
        }
 
        p = filename + strlen( filename ) - 1;
-       while ( isspace( *p )) {        /* strip trailing whitespace */
+       while ( isspace((unsigned char) *p) ) { /* strip trailing whitespace */
            *p-- = '\0';
        }
 
        rdn = line;
-       while ( isspace( *rdn )) {      /* strip leading whitespace */
+       while ( isspace((unsigned char) *rdn)) { /* strip leading whitespace */
            ++rdn;
        }
 
@@ -791,7 +785,7 @@ read_edbmap( mapfile, edbmapp )
        }
 
        p = rdn + strlen( rdn ) - 1;
-       while ( isspace( *p )) {        /* strip trailing whitespace */
+       while ( isspace((unsigned char) *p)) { /* strip trailing whitespace */
            *p-- = '\0';
        }
 
@@ -819,9 +813,7 @@ read_edbmap( mapfile, edbmapp )
 
 
 static char *
-file2rdn( edbmap, filename )
-    struct edbmap      *edbmap;
-    char               *filename;
+file2rdn( struct edbmap *edbmap, char *filename )
 {
 #ifdef LDAP_DEBUG
     if ( debugflg ) {
@@ -842,8 +834,7 @@ file2rdn( edbmap, filename )
 
 /* free the edbmap list */
 static void
-free_edbmap( edbmap )
-    struct edbmap      *edbmap;
+free_edbmap( struct edbmap *edbmap )
 {
     struct edbmap      *tmp;
 
@@ -864,13 +855,8 @@ free_edbmap( edbmap )
 
 
 static void
-print_err( msg )
-    char       *msg;
+print_err( char *msg )
 {
-    extern int sys_nerr;
-    extern char        *sys_errlist[];
-    extern int errno;
-
 #ifdef LDAP_DEBUG
     if ( debugflg ) {
        fprintf( stderr, "print_err( \"%s\" )\n", msg );
@@ -878,7 +864,7 @@ print_err( msg )
 #endif
 
     if ( errno > sys_nerr ) {
-       fprintf( stderr, "%s: %s: error %d\n", progname, msg, errno );
+       fprintf( stderr, "%s: %s: errno=%d\n", progname, msg, errno );
     } else {
        fprintf( stderr, "%s: %s: %s\n", progname, msg, sys_errlist[ errno ] );
     }