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.
This commit is contained in:
Christopher Faulet 2019-09-25 09:10:46 +02:00
parent 5112a603d9
commit eec96b5381

View File

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