X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-meta%2Fconn.c;h=7e63fae89604e8b031dd868addb8bf5378b96c71;hb=4a6adbf5896ae503831807443dd3d83c8813b35c;hp=1b202b4611f543d6b6c86634473c721c3de4f896;hpb=8102d9d2df0d97b70f9d5d9e54e7a171975a6fee;p=openldap diff --git a/servers/slapd/back-meta/conn.c b/servers/slapd/back-meta/conn.c index 1b202b4611..7e63fae896 100644 --- a/servers/slapd/back-meta/conn.c +++ b/servers/slapd/back-meta/conn.c @@ -421,6 +421,8 @@ retry_lock:; ldap_set_option( msc->msc_ld, LDAP_OPT_REFERRALS, META_BACK_TGT_CHASE_REFERRALS( mt ) ? LDAP_OPT_ON : LDAP_OPT_OFF ); + slap_client_keepalive(msc->msc_ld, &mt->mt_tls.sb_keepalive); + #ifdef HAVE_TLS if ( !is_ldaps ) { slap_bindconf *sb = NULL; @@ -762,6 +764,7 @@ meta_back_retry( if ( rc == LDAP_SUCCESS ) { quarantine = 0; + LDAP_BACK_CONN_BINDING_SET( msc ); binding = 1; rc = meta_back_single_dobind( op, rs, mcp, candidate, sendok, mt->mt_nretries, 0 ); @@ -1179,8 +1182,8 @@ retry_lock:; mc = NULL; } else { - if ( ( mi->mi_conn_ttl != 0 && op->o_time > mc->mc_create_time + mi->mi_conn_ttl ) - || ( mi->mi_idle_timeout != 0 && op->o_time > mc->mc_time + mi->mi_idle_timeout ) ) + if ( mc->mc_refcnt == 0 && (( mi->mi_conn_ttl != 0 && op->o_time > mc->mc_create_time + mi->mi_conn_ttl ) + || ( mi->mi_idle_timeout != 0 && op->o_time > mc->mc_time + mi->mi_idle_timeout )) ) { #if META_BACK_PRINT_CONNTREE > 0 meta_back_print_conntree( mi,