mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-02-05 13:40:08 +08:00
ITS#6909 blind fix. re-init creds for retry.
Move retry so that cred validity is also re-checked.
This commit is contained in:
parent
81687b321c
commit
45ce60c094
@ -235,6 +235,10 @@ meta_search_dobind_init(
|
|||||||
|
|
||||||
assert( msc->msc_ld != NULL );
|
assert( msc->msc_ld != NULL );
|
||||||
|
|
||||||
|
/* connect must be async only the first time... */
|
||||||
|
ldap_set_option( msc->msc_ld, LDAP_OPT_CONNECT_ASYNC, LDAP_OPT_ON );
|
||||||
|
|
||||||
|
retry:;
|
||||||
if ( !BER_BVISEMPTY( &binddn ) && BER_BVISEMPTY( &cred ) ) {
|
if ( !BER_BVISEMPTY( &binddn ) && BER_BVISEMPTY( &cred ) ) {
|
||||||
/* bind anonymously? */
|
/* bind anonymously? */
|
||||||
Debug( LDAP_DEBUG_ANY, "%s meta_search_dobind_init[%d] mc=%p: "
|
Debug( LDAP_DEBUG_ANY, "%s meta_search_dobind_init[%d] mc=%p: "
|
||||||
@ -250,10 +254,6 @@ meta_search_dobind_init(
|
|||||||
goto other;
|
goto other;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* connect must be async only the first time... */
|
|
||||||
ldap_set_option( msc->msc_ld, LDAP_OPT_CONNECT_ASYNC, LDAP_OPT_ON );
|
|
||||||
|
|
||||||
retry:;
|
|
||||||
rc = ldap_sasl_bind( msc->msc_ld, binddn.bv_val, LDAP_SASL_SIMPLE, &cred,
|
rc = ldap_sasl_bind( msc->msc_ld, binddn.bv_val, LDAP_SASL_SIMPLE, &cred,
|
||||||
NULL, NULL, &candidates[ candidate ].sr_msgid );
|
NULL, NULL, &candidates[ candidate ].sr_msgid );
|
||||||
|
|
||||||
@ -327,6 +327,8 @@ down:;
|
|||||||
|
|
||||||
if ( rc == LDAP_SUCCESS ) {
|
if ( rc == LDAP_SUCCESS ) {
|
||||||
candidates[ candidate ].sr_msgid = META_MSGID_IGNORE;
|
candidates[ candidate ].sr_msgid = META_MSGID_IGNORE;
|
||||||
|
binddn = msc->msc_bound_ndn;
|
||||||
|
cred = msc->msc_cred;
|
||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user