From 450ff71c955afc95111170f9245d83b50dd9db55 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 14 Nov 2023 07:45:43 +0100 Subject: [PATCH] MEDIUM: mux-h1: Handle MUX_SUBS_RECV flag in h1_ctl() and susbscribe for reads The H1 mux now handle MUX_SUBS_RECV flag in h1_ctl(). If it is not already subscribed for reads, it does so. This patch will be mandatory to properly handle abortonclose option. --- src/mux_h1.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mux_h1.c b/src/mux_h1.c index ab777a701b..8980fa11c0 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -4805,7 +4805,7 @@ static int h1_resume_fastfwd(struct stconn *sc, unsigned int flags) static int h1_ctl(struct connection *conn, enum mux_ctl_type mux_ctl, void *output) { - const struct h1c *h1c = conn->ctx; + struct h1c *h1c = conn->ctx; int ret = 0; switch (mux_ctl) { @@ -4822,6 +4822,10 @@ static int h1_ctl(struct connection *conn, enum mux_ctl_type mux_ctl, void *outp ((h1c->errcode >= 400 && h1c->errcode <= 499) ? MUX_ES_INVALID_ERR : MUX_ES_SUCCESS)))); return ret; + case MUX_SUBS_RECV: + if (!(h1c->wait_event.events & SUB_RETRY_RECV)) + h1c->conn->xprt->subscribe(h1c->conn, h1c->conn->xprt_ctx, SUB_RETRY_RECV, &h1c->wait_event); + return 0; default: return -1; } -- 2.47.3