mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-24 00:29:35 -05:00
Reset connection state on abandon
This commit is contained in:
parent
6140cdf6f8
commit
f7cf34e69c
2 changed files with 16 additions and 0 deletions
|
|
@ -541,6 +541,9 @@ operation_abandon( Operation *op )
|
|||
/* The operation has already been abandoned or finished */
|
||||
goto unlock;
|
||||
}
|
||||
if ( c->c_state == SLAP_C_BINDING ) {
|
||||
c->c_state = SLAP_C_READY;
|
||||
}
|
||||
c->c_n_ops_executing--;
|
||||
b = (Backend *)c->c_private;
|
||||
CONNECTION_UNLOCK_INCREF(c);
|
||||
|
|
@ -586,6 +589,9 @@ done:
|
|||
|
||||
/* Caller should hold a reference on client */
|
||||
CONNECTION_LOCK(c);
|
||||
if ( c->c_state == SLAP_C_BINDING ) {
|
||||
c->c_state = SLAP_C_READY;
|
||||
}
|
||||
op->o_client_refcnt--;
|
||||
operation_destroy_from_client( op );
|
||||
CONNECTION_UNLOCK(c);
|
||||
|
|
@ -623,6 +629,13 @@ request_abandon( Connection *c, Operation *op )
|
|||
c->c_connid, op->o_client_msgid, slap_msgtype2str( request->o_tag ),
|
||||
needle.o_client_msgid );
|
||||
|
||||
if ( c->c_state == SLAP_C_BINDING ) {
|
||||
/* We have found the request and we are binding, it must be a bind
|
||||
* request */
|
||||
assert( request->o_tag == LDAP_REQ_BIND );
|
||||
c->c_state = SLAP_C_READY;
|
||||
}
|
||||
|
||||
CONNECTION_UNLOCK_INCREF(c);
|
||||
operation_abandon( request );
|
||||
CONNECTION_LOCK_DECREF(c);
|
||||
|
|
|
|||
|
|
@ -443,6 +443,9 @@ handle_one_response( Connection *c )
|
|||
CONNECTION_LOCK_DECREF(c);
|
||||
op->o_upstream_refcnt--;
|
||||
if ( !client || !op->o_upstream_refcnt ) {
|
||||
if ( c->c_state == SLAP_C_BINDING ) {
|
||||
c->c_state = SLAP_C_READY;
|
||||
}
|
||||
operation_destroy_from_upstream( op );
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in a new issue