From: Christopher Faulet Date: Tue, 21 Mar 2023 10:49:21 +0000 (+0100) Subject: MINOR: stconn/applet: Handle EOI in the applet .wake callback function X-Git-Tag: v2.8-dev7~87 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f8fbb6de66aef3433bed3e7f6df7b6bd602845f8;p=thirdparty%2Fhaproxy.git MINOR: stconn/applet: Handle EOI in the applet .wake callback function The end of input reported by the endpoint (SE_FL_EOI flag), is now handled in sc_applet_process(). This function is always called after an applet was called. So, the applets can now only report EOI on the SE descriptor and have no reason to update the channel too. --- diff --git a/src/stconn.c b/src/stconn.c index 918653d5c5..1aaf9572f0 100644 --- a/src/stconn.c +++ b/src/stconn.c @@ -1822,6 +1822,13 @@ static int sc_applet_process(struct stconn *sc) BUG_ON(!sc_appctx(sc)); + /* Report EOI on the channel if it was reached from the applet point of + * view. */ + if (sc_ep_test(sc, SE_FL_EOI) && !(ic->flags & CF_EOI)) { + sc_ep_report_read_activity(sc); + ic->flags |= (CF_EOI|CF_READ_EVENT); + } + /* If the applet wants to write and the channel is closed, it's a * broken pipe and it must be reported. */