An HTTP/3 request must contains :scheme pseudo-header. Currently, only
"https" value is expected due to QUIC transport layer in use.
However, https value is incorrectly encoded due to a QPACK index value
mismatch in qpack_encode_scheme(). Fix it to ensure that scheme is now
properly set for HTTP/3 requests on the backend side.
No need to backport this.
b_putchr(out, istptr(scheme)[i]);
}
else {
- int idx = 23;
+ const int idx = isteq(scheme, ist("https")) ?
+ 23 : /* :scheme: https */
+ 22; /* :scheme: http */
- if (unlikely(!isteq(scheme, ist("http"))))
- idx = 22;
if (b_room(out) < 2)
return 1;