BUG/MINOR: mux-h1: Do h2 upgrade only on the first request
When a request is received, if the h2 preface is matched, an implicit upgrade
from h1 to h2 is performed. This must only be done for the first request on a
connection. But a test was missing to unsure it is really the first request.
This patch must be backported to 2.0.
(cherry picked from commit eec96b5381c9508686035842e5886c6cd9d64fa2)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/mux_h1.c b/src/mux_h1.c
index de63a05..3e85277 100644
--- a/src/mux_h1.c
+++ b/src/mux_h1.c
@@ -989,7 +989,7 @@
if (b_head(buf) + b_data(buf) > b_wrap(buf))
b_slow_realign(buf, trash.area, 0);
- if (!(h1m->flags & H1_MF_RESP)) {
+ if (!(h1s->flags & H1S_F_NOT_FIRST) && !(h1m->flags & H1_MF_RESP)) {
/* Try to match H2 preface before parsing the request headers. */
ret = b_isteq(buf, 0, b_data(buf), ist(H2_CONN_PREFACE));
if (ret > 0)