MINOR: spoe: Don't queue a SPOE context if nothing is sent

When some messages must be sent to an agent, the SPOE context of the stream is
queued to be handled by an SPOE applet. If there is no available applet, a new
one is created, thus opening a connection with the agent.

Since the support of ACLs on messages, some processing can now be discarded. So,
to avoid opening a connection for nothing, the SPOE context is now queued after
the messages encoding.
This commit is contained in:
Christopher Faulet 2018-01-12 10:45:47 +01:00 committed by Willy Tarreau
parent 336d3ef0e7
commit 333694d771

View File

@ -2592,9 +2592,6 @@ spoe_process_messages(struct stream *s, struct spoe_context *ctx,
if (!ret)
goto out;
if (spoe_queue_context(ctx) < 0)
goto error;
ctx->state = SPOE_CTX_ST_ENCODING_MSGS;
/* fall through */
}
@ -2607,6 +2604,8 @@ spoe_process_messages(struct stream *s, struct spoe_context *ctx,
goto error;
if (!ret)
goto skip;
if (spoe_queue_context(ctx) < 0)
goto error;
ctx->state = SPOE_CTX_ST_SENDING_MSGS;
}