if (( rfp = fopen( rejfile, "a" )) == NULL ) {
if (( rfp = ldaptool_open_file( rejfile, "a" )) == NULL ) {
main( int argc, char **argv ){    char	*rbuf, *saved_rbuf, *start, *p, *q;    FILE	*rfp = NULL;    int		rc, use_ldif, deref, optind;    LDAPControl	*ldctrl;#ifdef notdef#ifdef HPUX11#ifndef __LP64__	_main( argc, argv);#endif /* __LP64_ */#endif /* HPUX11 */#endif    valsfromfiles = display_binary_values = 0;    optind = ldaptool_process_args( argc, argv, "aAbcFe:B:q", 0,	    options_callback );    if ( optind == -1 ) {	usage();    }    if ( !newval && strcmp( ldaptool_progname, "ldapadd" ) == 0 ) {	newval = 1;    }    if ( ldaptool_fp == NULL ) {	ldaptool_fp = stdin;    }    if ( argc - optind != 0 ) {	usage();    }    ld = ldaptool_ldap_init( 0 );    if ( !ldaptool_not ) {	deref = LDAP_DEREF_NEVER;	/* this seems prudent */	ldap_set_option( ld, LDAP_OPT_DEREF, &deref );    }    ldaptool_bind( ld );    if (( ldctrl = ldaptool_create_manage_dsait_control()) != NULL ) {	ldaptool_add_control_to_array( ldctrl, ldaptool_request_ctrls);    }     if ((ldctrl = ldaptool_create_proxyauth_control(ld)) !=NULL) {	ldaptool_add_control_to_array( ldctrl, ldaptool_request_ctrls);    }    rc = 0;    /* turn on bulk import?*/    if (bulkimport_suffix) {	struct berval	bv, *retdata;	char		*retoid;	bv.bv_val = bulkimport_suffix;	bv.bv_len = strlen(bulkimport_suffix);	if ((rc = ldap_extended_operation_s(ld,	    BULKIMPORT_START_OID, &bv, NULL,	    NULL, &retoid, &retdata)) != 0) {		fprintf(stderr, "Error: unable to service "		    "extended operation request\n\t'%s' for "		    "bulk import\n\t(error:%d:'%s')\n",		    BULKIMPORT_START_OID, rc, ldap_err2string(rc));		return (rc);	}	if (retoid)		ldap_memfree(retoid);	if (retdata)		ber_bvfree(retdata);    }    while (( rc == 0 || contoper ) &&		( rbuf = read_one_record( ldaptool_fp )) != NULL ) {	/*	 * we assume record is ldif/slapd.replog if the first line	 * has a colon that appears to the left of any equal signs, OR	 * if the first line consists entirely of digits (an entry id)	 */	use_ldif = ( p = strchr( rbuf, ':' )) != NULL &&		( q = strchr( rbuf, '\n' )) != NULL && p < q &&		(( q = strchr( rbuf, '=' )) == NULL || p < q );	start = rbuf;	saved_rbuf = strdup( rbuf );	if ( !use_ldif && ( q = strchr( rbuf, '\n' )) != NULL ) {	    for ( p = rbuf; p < q; ++p ) {		if ( !isdigit( *p )) {		    break;		}	    }	    if ( p >= q ) {		use_ldif = 1;		start = q + 1;	    }	}	if ( use_ldif ) {	    rc = process_ldif_rec( start );	} else {	    rc = process_ldapmod_rec( start );	}	if ( rc != LDAP_SUCCESS && rejfile != NULL ) {	    /* Write this record to the reject file */	    int newfile = 0;	    struct stat stbuf;	    if ( stat( rejfile, &stbuf ) < 0 ) {		if ( errno == ENOENT ) {		    newfile = 1;		}	    }	    if (( rfp = fopen( rejfile, "a" )) == NULL ) {		fprintf( stderr, "Cannot open error file \"%s\" - "			"erroneous entries will not be saved\n", rejfile );		rejfile = NULL;	    } else {		if ( newfile == 0 ) {		    fputs( "\n", rfp );		}		fprintf( rfp, "# Error: %s\n", ldap_err2string( rc ));		fputs( saved_rbuf, rfp );		fclose( rfp );		rfp = NULL;	    }	}	free( rbuf );	free( saved_rbuf );    }    ldaptool_reset_control_array( ldaptool_request_ctrls );    /* turn off bulk import?*/    if (bulkimport_suffix) {	struct berval	bv, *retdata;	char		*retoid;	bv.bv_val = "";	bv.bv_len = 0;	if ((rc = ldap_extended_operation_s(ld,	    BULKIMPORT_STOP_OID, &bv, NULL,	    NULL, &retoid, &retdata)) != 0) {		fprintf(stderr, "Error: unable to service "		    "extended operation request\n\t '%s' for "		    "bulk import\n\t(rc:%d:'%s')\n",		    BULKIMPORT_STOP_OID, rc, ldap_err2string(rc));		return (rc);	}	if (retoid)		ldap_memfree(retoid);	if (retdata)		ber_bvfree(retdata);    }    ldaptool_cleanup( ld );    return( rc );}