From f8fbb6de66aef3433bed3e7f6df7b6bd602845f8 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 21 Mar 2023 11:49:21 +0100 Subject: [PATCH] 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. --- src/stconn.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/stconn.c b/src/stconn.c index 918653d..1aaf957 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. */ -- 1.7.10.4