X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Foptions.c;h=7d099089cb714f32dd12feef2bea816d2c38daff;hb=c1a257a83f3d8b9565238b5f9b8cad39a6194f63;hp=515f906b9845b2efa7bbef4cfd041c937347a8d5;hpb=d2b05a3858822df66785b4a0939204b10ac1c47f;p=openldap diff --git a/libraries/libldap/options.c b/libraries/libldap/options.c index 515f906b98..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; } @@ -465,7 +471,8 @@ ldap_set_option( int rc = LDAP_OPT_SUCCESS; if(host != NULL) { - rc = ldap_url_parsehosts(&ludlist, host); + rc = ldap_url_parsehosts( &ludlist, host, + lo->ldo_defport ? lo->ldo_defport : LDAP_PORT ); } else if(ld == NULL) { /* @@ -578,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 @@ -592,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; }