]> git.sur5r.net Git - openldap/commitdiff
fix quarantine (ITS#5592)
authorPierangelo Masarati <ando@openldap.org>
Sat, 12 Jul 2008 15:22:39 +0000 (15:22 +0000)
committerPierangelo Masarati <ando@openldap.org>
Sat, 12 Jul 2008 15:22:39 +0000 (15:22 +0000)
servers/slapd/back-meta/conn.c

index fbc33720ed00ce326d32ad0a957a147b79a6590f..3b086cfc0484c6b84a551d0a7ad6a50d38b2833e 100644 (file)
@@ -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 );
                }