X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Foptions.c;h=7d099089cb714f32dd12feef2bea816d2c38daff;hb=c1a257a83f3d8b9565238b5f9b8cad39a6194f63;hp=041897494dc6c9fa1ae8140e4883b34a69962b0e;hpb=57ed8f645810a858b33c294afad72fd2add674d4;p=openldap diff --git a/libraries/libldap/options.c b/libraries/libldap/options.c index 041897494d..7d099089cb 100644 --- a/libraries/libldap/options.c +++ b/libraries/libldap/options.c @@ -17,6 +17,7 @@ #include "ldap-int.h" #define LDAP_OPT_REBIND_PROC 0x4e814d +#define LDAP_OPT_REBIND_PARAMS 0x4e814e static const LDAPAPIFeatureInfo features[] = { #ifdef LDAP_API_FEATURE_X_OPENLDAP @@ -281,12 +282,14 @@ ldap_get_option( default: #ifdef HAVE_TLS - if ( ldap_pvt_tls_get_option((struct ldapoptions *)lo, option, outvalue ) == 0 ) - return LDAP_OPT_SUCCESS; + if ( ldap_pvt_tls_get_option( ld, option, outvalue ) == 0 ) { + return LDAP_OPT_SUCCESS; + } #endif #ifdef HAVE_CYRUS_SASL - if ( ldap_int_sasl_get_option(ld, option, outvalue ) == 0 ) - return LDAP_OPT_SUCCESS; + if ( ldap_int_sasl_get_option( ld, option, outvalue ) == 0 ) { + return LDAP_OPT_SUCCESS; + } #endif /* bad param */ break; @@ -420,7 +423,10 @@ ldap_set_option( /* Only accessed from inside this function by ldap_set_rebind_proc() */ case LDAP_OPT_REBIND_PROC: { - lo->ldo_rebindproc = (LDAP_REBIND_PROC *)invalue; + lo->ldo_rebind_proc = (LDAP_REBIND_PROC *)invalue; + } return LDAP_OPT_SUCCESS; + case LDAP_OPT_REBIND_PARAMS: { + lo->ldo_rebind_params = (void *)invalue; } return LDAP_OPT_SUCCESS; } @@ -579,7 +585,7 @@ ldap_set_option( default: #ifdef HAVE_TLS - if ( ldap_pvt_tls_set_option( lo, option, (void *)invalue ) == 0 ) + if ( ldap_pvt_tls_set_option( ld, option, (void *)invalue ) == 0 ) return LDAP_OPT_SUCCESS; #endif #ifdef HAVE_CYRUS_SASL @@ -593,7 +599,12 @@ ldap_set_option( } int -ldap_set_rebind_proc( LDAP *ld, LDAP_REBIND_PROC *rebind_proc) +ldap_set_rebind_proc( LDAP *ld, LDAP_REBIND_PROC *proc, void *params ) { - return( ldap_set_option( ld, LDAP_OPT_REBIND_PROC, (void *)rebind_proc)); + int rc; + rc = ldap_set_option( ld, LDAP_OPT_REBIND_PROC, (void *)proc ); + if( rc != LDAP_OPT_SUCCESS ) return rc; + + rc = ldap_set_option( ld, LDAP_OPT_REBIND_PARAMS, (void *)params ); + return rc; }