/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2011 The OpenLDAP Foundation.
+ * Copyright 1998-2012 The OpenLDAP Foundation.
* Portions Copyright 1998-2003 Kurt D. Zeilenga.
* Portions Copyright 1998-2001 Net Boolean Incorporated.
* Portions Copyright 2001-2003 IBM Corporation.
#include <stdio.h>
#include <ac/stdlib.h>
-
#include <ac/ctype.h>
#include <ac/string.h>
#include <ac/unistd.h>
#include <ac/errno.h>
+#include <ac/time.h>
+
#include <sys/stat.h>
#include <ac/signal.h>
!= LDAP_OPT_SUCCESS )
{
fprintf( stderr, _("Could not set LDAP_OPT_DEREF %d\n"), deref );
- exit( EXIT_FAILURE );
+ tool_exit( ld, EXIT_FAILURE );
}
}
if ( !fp && infile ) {
if (( fp = fopen( infile, "r" )) == NULL ) {
perror( infile );
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
}
save_nctrls = nctrls;
#ifdef LDAP_CONTROL_DONTUSECOPY
if ( dontUseCopy ) {
if ( ctrl_add() ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
c[i].ldctl_oid = LDAP_CONTROL_DONTUSECOPY;
if ( domainScope ) {
if ( ctrl_add() ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
c[i].ldctl_oid = LDAP_CONTROL_X_DOMAIN_SCOPE;
if ( subentries ) {
if ( ctrl_add() ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
if (( seber = ber_alloc_t(LBER_USE_DER)) == NULL ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
err = ber_printf( seber, "b", abs(subentries) == 1 ? 0 : 1 );
if ( err == -1 ) {
ber_free( seber, 1 );
fprintf( stderr, _("Subentries control encoding error!\n") );
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
if ( ber_flatten2( seber, &c[i].ldctl_value, 0 ) == -1 ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
c[i].ldctl_oid = LDAP_CONTROL_SUBENTRIES;
if ( ldapsync ) {
if ( ctrl_add() ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
if (( syncber = ber_alloc_t(LBER_USE_DER)) == NULL ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
if ( sync_cookie.bv_len == 0 ) {
if ( err == -1 ) {
ber_free( syncber, 1 );
fprintf( stderr, _("ldap sync control encoding error!\n") );
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
if ( ber_flatten( syncber, &syncbvalp ) == -1 ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
c[i].ldctl_oid = LDAP_CONTROL_SYNC;
if ( valuesReturnFilter ) {
if ( ctrl_add() ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
if (( vrber = ber_alloc_t(LBER_USE_DER)) == NULL ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
if ( ( err = ldap_put_vrFilter( vrber, vrFilter ) ) == -1 ) {
ber_free( vrber, 1 );
fprintf( stderr, _("Bad ValuesReturnFilter: %s\n"), vrFilter );
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
if ( ber_flatten2( vrber, &c[i].ldctl_value, 0 ) == -1 ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
c[i].ldctl_oid = LDAP_CONTROL_VALUESRETURNFILTER;
if ( pagedResults ) {
if ( ctrl_add() ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
if ( ldap_create_page_control_value( ld,
pageSize, &pr_cookie, &c[i].ldctl_value ) )
{
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
if ( pr_cookie.bv_val != NULL ) {
if ( sss ) {
if ( ctrl_add() ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
if ( ldap_create_sort_control_value( ld,
sss_keys, &c[i].ldctl_value ) )
{
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
c[i].ldctl_oid = LDAP_CONTROL_SORTREQUEST;
if ( vlv ) {
if ( ctrl_add() ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
if ( ldap_create_vlv_control_value( ld,
&vlvInfo, &c[i].ldctl_value ) )
{
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
c[i].ldctl_oid = LDAP_CONTROL_VLVREQUEST;
assert( ds != NULL );
if ( ldap_create_deref_control_value( ld, ds, &derefval ) != LDAP_SUCCESS ) {
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
for ( i = 0; ds[ i ].derefAttr != NULL; i++ ) {
}
if ( ctrl_add() ) {
- exit( EXIT_FAILURE );
+ tool_exit( ld, EXIT_FAILURE );
}
c[ i ].ldctl_iscritical = derefcrit > 1;
if ( num != 1 ) {
fprintf( stderr,
_("Invalid value for PagedResultsControl, %s.\n"), buf);
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
}
pageSize = (ber_int_t)tmpSize;
if ( buf[0] ) {
i = parse_vlv( strdup( buf ));
if ( i )
- return EXIT_FAILURE;
+ tool_exit( ld, EXIT_FAILURE );
} else {
vlvInfo.ldvlv_attrvalue = NULL;
vlvInfo.ldvlv_count = vlvCount;
goto getNextPage;
}
- tool_unbind( ld );
- tool_destroy();
if ( base != NULL ) {
ber_memfree( base );
}
c = NULL;
}
- return( rc );
+ tool_exit( ld, rc );
}
if( rc != LDAP_SUCCESS ) {
fprintf(stderr, _("print_entry: %d\n"), rc );
tool_perror( "ldap_get_entry_controls", rc, NULL, NULL, NULL, NULL );
- exit( EXIT_FAILURE );
+ tool_exit( ld, EXIT_FAILURE );
}
if( ctrls ) {
if( rc != LDAP_SUCCESS ) {
tool_perror( "ldap_parse_reference", rc, NULL, NULL, NULL, NULL );
- exit( EXIT_FAILURE );
+ tool_exit( ld, EXIT_FAILURE );
}
if( refs ) {
if( rc != LDAP_SUCCESS ) {
tool_perror( "ldap_parse_extended_result", rc, NULL, NULL, NULL, NULL );
- exit( EXIT_FAILURE );
+ tool_exit( ld, EXIT_FAILURE );
}
if ( ldif < 2 ) {
if( rc != LDAP_SUCCESS ) {
tool_perror( "ldap_parse_intermediate", rc, NULL, NULL, NULL, NULL );
- exit( EXIT_FAILURE );
+ tool_exit( ld, EXIT_FAILURE );
}
if ( ldif < 2 ) {
if( rc != LDAP_SUCCESS ) {
tool_perror( "ldap_parse_result", rc, NULL, NULL, NULL, NULL );
- exit( EXIT_FAILURE );
+ tool_exit( ld, EXIT_FAILURE );
}