i++;
continue;
}
- if ( c->c_writewaiter ) {
+ if ( c->c_writewaiter && global_writetimeout ) {
writers = 1;
if( difftime( c->c_activitytime+global_writetimeout, now) < 0 ) {
/* close it */
}
}
connection_done( c );
- if ( !writers )
+ if ( old && !writers )
slapd_clr_writetime( old );
return i;
ldap_pvt_thread_mutex_lock( &conn->c_mutex );
+ if ( opidx == SLAP_OP_BIND && conn->c_conn_state == SLAP_C_BINDING )
+ conn->c_conn_state = SLAP_C_ACTIVE;
+
cancel = op->o_cancel;
if ( cancel != SLAP_CANCEL_NONE && cancel != SLAP_CANCEL_DONE ) {
if ( cancel == SLAP_CANCEL_REQ ) {
ctx = cri->ctx;
op = slap_op_alloc( ber, msgid, tag, conn->c_n_ops_received++, ctx );
+ Debug( LDAP_DEBUG_TRACE, "op tag 0x%lx, time %ld\n", tag,
+ (long) op->o_time, 0);
+
op->o_conn = conn;
/* clear state if the connection is being reused from inactive */
if ( conn->c_conn_state == SLAP_C_INACTIVE ) {
static int connection_bind_cb( Operation *op, SlapReply *rs )
{
ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex );
- if ( op->o_conn->c_conn_state == SLAP_C_BINDING )
- op->o_conn->c_conn_state = SLAP_C_ACTIVE;
op->o_conn->c_sasl_bind_in_progress =
( rs->sr_err == LDAP_SASL_BIND_IN_PROGRESS );