* don't return the connection */
if ( mt->mt_isquarantined ) {
slap_retry_info_t *ri = &mt->mt_quarantine;
- int dont_retry = 1;
+ int dont_retry = 0;
if ( mt->mt_quarantine.ri_interval ) {
ldap_pvt_thread_mutex_lock( &mt->mt_quarantine_mutex );
- if ( mt->mt_isquarantined == LDAP_BACK_FQ_YES ) {
+ dont_retry = ( mt->mt_isquarantined > LDAP_BACK_FQ_NO );
+ if ( dont_retry ) {
dont_retry = ( ri->ri_num[ ri->ri_idx ] == SLAP_RETRYNUM_TAIL
|| slap_get_time() < ri->ri_last + ri->ri_interval[ ri->ri_idx ] );
if ( !dont_retry ) {
Debug( LDAP_DEBUG_ANY, "%s %s.\n",
op->o_log_prefix, buf, 0 );
}
+
+ mt->mt_isquarantined = LDAP_BACK_FQ_RETRYING;
}
- mt->mt_isquarantined = LDAP_BACK_FQ_RETRYING;
}
ldap_pvt_thread_mutex_unlock( &mt->mt_quarantine_mutex );
}