From eec96b5381c9508686035842e5886c6cd9d64fa2 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 25 Sep 2019 09:10:46 +0200 Subject: [PATCH] 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. --- src/mux_h1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mux_h1.c b/src/mux_h1.c index ee12686bb..5056fa88f 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)