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.
This commit is contained in:
Christopher Faulet 2023-02-28 17:56:54 +01:00
parent 5e1b0e7bf8
commit fb5fff19fe

View File

@ -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);
}