From: Christopher Faulet Date: Tue, 28 Feb 2023 16:56:54 +0000 (+0100) Subject: BUG/MINOR: mux-h1: Don't report an error on an early response close X-Git-Tag: v2.8-dev5~77 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb5fff19fee40c660f9839f3bb0b40f33d4899e7;p=thirdparty%2Fhaproxy.git BUG/MINOR: mux-h1: Don't report an error on an early response close If the response is closed before any data was received, we must not report an error to the SE descriptor. It is important to be able to retry on an empty response. This patch should fix the issue #2061. It must be backported to 2.7. --- diff --git a/src/mux_h1.c b/src/mux_h1.c index 455f62384a..7517d92f97 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -1912,7 +1912,7 @@ static size_t h1_process_demux(struct h1c *h1c, struct buffer *buf, size_t count se_fl_set(h1s->sd, SE_FL_EOI); TRACE_STATE("report EOI to SE", H1_EV_RX_DATA, h1c->conn, h1s); } - else if (h1m->state < H1_MSG_DONE) { + else if (h1m->state < H1_MSG_DONE && (h1m->state != H1_MSG_RPBEFORE || b_data(&h1c->ibuf))) { se_fl_set(h1s->sd, SE_FL_ERROR); TRACE_ERROR("message aborted, set error on SC", H1_EV_RX_DATA|H1_EV_H1S_ERR, h1c->conn, h1s); }