From: Christopher Faulet Date: Wed, 25 Sep 2019 07:10:46 +0000 (+0200) Subject: BUG/MINOR: mux-h1: Do h2 upgrade only on the first request X-Git-Tag: v2.1-dev2~20 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=eec96b5381c9508686035842e5886c6cd9d64fa2;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/mux_h1.c b/src/mux_h1.c index ee12686bbc..5056fa88f9 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -891,7 +891,7 @@ static size_t h1_process_headers(struct h1s *h1s, struct h1m *h1m, struct htx *h union h1_sl h1sl; int ret = 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)