/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2005 The OpenLDAP Foundation.
+ * Copyright 1999-2006 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
/* we need meta_back_getconn() not send result even on error,
* because we want to intercept the error and make it
* invalidCredentials */
- mc = meta_back_getconn( op, rs, NULL, LDAP_BACK_DONTSEND );
+ mc = meta_back_getconn( op, rs, NULL, LDAP_BACK_BIND_SERR );
if ( !mc ) {
char buf[ SLAP_TEXT_BUFLEN ];
*/
Debug( LDAP_DEBUG_ANY,
"### %s meta_back_bind: more than one"
- " candidate is trying to bind...\n",
+ " candidate selected...\n",
op->o_log_prefix, 0, 0 );
}
struct timeval tv;
int rc;
int nretries = mt->mt_nretries;
+ char buf[ SLAP_TEXT_BUFLEN ];
LDAP_BACK_TV_SET( &tv );
* handle response!!!
*/
retry:;
- tv.tv_sec = 0;
- tv.tv_usec = META_BIND_TIMEOUT;
- switch ( ldap_result( msc->msc_ld, msgid, 0, &tv, &res ) ) {
+ switch ( ldap_result( msc->msc_ld, msgid, LDAP_MSG_ALL, &tv, &res ) ) {
case 0:
- Debug( LDAP_DEBUG_ANY,
- "%s meta_back_single_bind: "
+ snprintf( buf, sizeof( buf ),
"ldap_result=0 nretries=%d%s\n",
- op->o_log_prefix, nretries,
- rebinding ? " rebinding" : "" );
+ nretries, rebinding ? " rebinding" : "" );
+ Debug( LDAP_DEBUG_ANY,
+ "%s meta_back_single_bind[%d]: %s.\n",
+ op->o_log_prefix, candidate, buf );
if ( nretries != META_RETRY_NEVER ) {
ldap_pvt_thread_yield();
if ( nretries > 0 ) {
nretries--;
}
- LDAP_BACK_TV_SET( &tv );
+ tv = mt->mt_bind_timeout;
goto retry;
}
rs->sr_err = LDAP_BUSY;
ldap_abandon_ext( msc->msc_ld, msgid, NULL, NULL );
}
+ snprintf( buf, sizeof( buf ),
+ "err=%d nretries=%d",
+ rs->sr_err, nretries );
Debug( LDAP_DEBUG_ANY,
- "### %s meta_back_single_bind: "
- "err=%d nretries=%d\n",
- op->o_log_prefix, rs->sr_err, nretries );
+ "### %s meta_back_single_bind[%d]: %s.\n",
+ op->o_log_prefix, candidate, buf );
rc = slap_map_api2result( rs );
if ( rs->sr_err == LDAP_UNAVAILABLE && nretries != META_RETRY_NEVER ) {
if ( rc == LDAP_SUCCESS ) {
LDAPMessage *res;
struct timeval tv;
+ char buf[ SLAP_TEXT_BUFLEN ];
LDAP_BACK_TV_SET( &tv );
* handle response!!!
*/
retry:;
- tv.tv_sec = 0;
- tv.tv_usec = META_BIND_TIMEOUT;
- switch ( ldap_result( msc->msc_ld, msgid, 0, &tv, &res ) ) {
+ switch ( ldap_result( msc->msc_ld, msgid, LDAP_MSG_ALL, &tv, &res ) ) {
case 0:
+ snprintf( buf, sizeof( buf ),
+ "ldap_result=0 nretries=%d%s",
+ nretries, rebinding ? " rebinding" : "" );
Debug( LDAP_DEBUG_ANY,
- "%s meta_back_single_dobind: "
- "ldap_result=0 nretries=%d%s\n",
- op->o_log_prefix, nretries,
- rebinding ? " rebinding" : "" );
+ "%s meta_back_single_dobind[%d]: %s.\n",
+ op->o_log_prefix, candidate, buf );
if ( nretries != META_RETRY_NEVER ) {
ldap_pvt_thread_yield();
if ( nretries > 0 ) {
nretries--;
}
- LDAP_BACK_TV_SET( &tv );
+ tv = mt->mt_bind_timeout;
goto retry;
}
ldap_abandon_ext( msc->msc_ld, msgid, NULL, NULL );
}
+ snprintf( buf, sizeof( buf ),
+ "err=%d nretries=%d",
+ rs->sr_err, nretries );
Debug( LDAP_DEBUG_ANY,
- "### %s meta_back_single_dobind: "
- "err=%d nretries=%d\n",
- op->o_log_prefix, rs->sr_err, nretries );
+ "### %s meta_back_single_dobind[%d]: %s.\n",
+ op->o_log_prefix, candidate, buf );
rc = slap_map_api2result( rs );
if ( rc == LDAP_UNAVAILABLE && nretries != META_RETRY_NEVER ) {
/* mc here must be the regular mc,
* reset and ready for init */
rc = meta_back_init_one_conn( op, rs,
- mt, mc, msc,
+ mt, mc, candidate,
LDAP_BACK_CONN_ISPRIV( mc ),
- candidate == mc->mc_authz_target,
LDAP_BACK_DONTSEND );
} else {