From: Christopher Faulet Date: Fri, 12 Jan 2018 09:45:47 +0000 (+0100) Subject: MINOR: spoe: Don't queue a SPOE context if nothing is sent X-Git-Tag: v1.9-dev1~517 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=333694d7715952a9610a3e6f00807eaf5edd209a;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/flt_spoe.c b/src/flt_spoe.c index e70cf111e3..cb97164677 100644 --- a/src/flt_spoe.c +++ b/src/flt_spoe.c @@ -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; }