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.
diff --git a/src/mux_h2.c b/src/mux_h2.c
index 4eebe1a..80a6fe0 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -4069,8 +4069,12 @@
}
/* 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("/"))) {