From: Pierangelo Masarati Date: Sat, 12 Jul 2008 15:22:39 +0000 (+0000) Subject: fix quarantine (ITS#5592) X-Git-Tag: LOCKER_IDS~44 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=f48d99cb77c7f4f2eb05255dae9d7dc11250cfce;p=openldap fix quarantine (ITS#5592) --- diff --git a/servers/slapd/back-meta/conn.c b/servers/slapd/back-meta/conn.c index fbc33720ed..3b086cfc04 100644 --- a/servers/slapd/back-meta/conn.c +++ b/servers/slapd/back-meta/conn.c @@ -289,11 +289,12 @@ meta_back_init_one_conn( * 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 ) { @@ -307,9 +308,10 @@ meta_back_init_one_conn( 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 ); }