From 7561bcbb36dca7447d42055ba06e45a3676ffd3e Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 10 Dec 2018 19:17:06 +0100 Subject: [PATCH] MEDIUM: mux-h2: make use of hpack_encode_scheme() to encode the scheme The HTTP scheme encoding was open-coded with a HPACK byte matching the "https" scheme. Let's make use of the new functions to avoid this. --- src/mux_h2.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mux_h2.c b/src/mux_h2.c index 4eebe1a04c..80a6fe0c2c 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -4069,8 +4069,12 @@ static size_t h2s_htx_bck_make_req_headers(struct h2s *h2s, struct htx *htx) } /* encode the scheme which is always "https" (or 0x86 for "http") */ - if (outbuf.data < outbuf.size) - outbuf.area[outbuf.data++] = 0x87; // indexed field : idx[02]=(":scheme", "https") + if (!hpack_encode_scheme(&outbuf, ist("https"))) { + /* output full */ + if (b_space_wraps(&h2c->mbuf)) + goto realign_again; + goto full; + } /* encode the path, which necessarily is the second one */ if (outbuf.data < outbuf.size && isteq(path, ist("/"))) {