From: Christopher Faulet Date: Tue, 4 Feb 2025 09:46:28 +0000 (+0100) Subject: MINOR: flt-spoe: Report end of input immediately after applet init X-Git-Tag: v3.2-dev5~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f7e571859629b40defb37ce3d4331a571ba619ec;p=thirdparty%2Fhaproxy.git MINOR: flt-spoe: Report end of input immediately after applet init The SPOE applet forwards the message that must be sent to agent during its init stage. So just after it is created. When it is performed, the end of input must be reported because no more data will be forwarded. However, it was performed after receiving the ACK response. It is harmless, but there is no reason to delay the EOI. It is now fixed. This patch must be backported to 3.1. --- diff --git a/src/flt_spoe.c b/src/flt_spoe.c index bc1f1042b..1e9fd8a68 100644 --- a/src/flt_spoe.c +++ b/src/flt_spoe.c @@ -395,6 +395,9 @@ static int spoe_init_appctx(struct appctx *appctx) s->scf->flags |= SC_FL_NOHALF; s->parent = spoe_appctx->spoe_ctx->strm; + /* The frame was forwarded to the SPOP mux, set EOI now */ + applet_set_eoi(appctx); + appctx->st0 = SPOE_APPCTX_ST_WAITING_ACK; appctx_wakeup(appctx); return 0; @@ -511,8 +514,6 @@ static void spoe_handle_appctx(struct appctx *appctx) case SPOE_APPCTX_ST_EXIT: if (SPOE_APPCTX(appctx)->status_code != SPOP_ERR_NONE) applet_set_error(appctx); - else - applet_set_eoi(appctx); if (!SPOE_APPCTX(appctx)->spoe_ctx) { appctx->st0 = SPOE_APPCTX_ST_END; applet_set_eos(appctx);