Commit edfb3d73 authored by Ondřej Kuzník's avatar Ondřej Kuzník
Browse files

Fix operation status tracking.

An operation is rejected iff it has to be dropped before we can find an
upstream for it (unless we handle it ourselves, that is). At that point
it is failed unless completed successfully.

This makes a difference for multi-stage binds which alternate between
'failed' (we are waiting on a server response) and 'completed' (server
did what we asked them to, waiting on client to continue).
parent cfe90658
......@@ -408,6 +408,7 @@ request_bind( LloadConnection *client, LloadOperation *op )
op->o_upstream = upstream;
op->o_upstream_connid = upstream->c_connid;
op->o_upstream_msgid = upstream->c_next_msgid++;
op->o_res = LLOAD_OP_FAILED;
if ( BER_BVISNULL( &mech ) ) {
if ( !BER_BVISNULL( &upstream->c_sasl_bind_mech ) ) {
......
......@@ -106,6 +106,7 @@ request_process( LloadConnection *client, LloadOperation *op )
}
op->o_upstream = upstream;
op->o_upstream_connid = upstream->c_connid;
op->o_res = LLOAD_OP_FAILED;
output = upstream->c_pendingber;
if ( output == NULL && (output = ber_alloc()) == NULL ) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment