BUG/MEDIUM: applet: Fix test on shut flags for legacy applets (v2)

The previous fix was wrong. When shut flags are tested for legacy applets,
to know if the I/O handler can be called or not, we must be sure shut for
reads and for writes are both set to skip the applet I/O handler.

This bug introduced regression, at least for the peer applet and for the DNS
applet.

This patch must be backported with abc1947e1 ("BUG/MEDIUM: applet: Fix test
on shut flags for legacy applets"), so as far as 3.0.
This commit is contained in:
Christopher Faulet 2026-02-16 19:14:57 +01:00
parent 8e0c2599b6
commit 1b7843f1c1

View file

@ -852,7 +852,7 @@ struct task *task_run_applet(struct task *t, void *context, unsigned int state)
/* Don't call I/O handler if the applet was shut (release callback was
* already called)
*/
if (!se_fl_test(app->sedesc, SE_FL_SHR | SE_FL_SHW))
if (!se_fl_test(app->sedesc, SE_FL_SHR) || !se_fl_test(app->sedesc, SE_FL_SHW))
app->applet->fct(app);
TRACE_POINT(APPLET_EV_PROCESS, app);