BUG/MINOR: h3: Set HTX flags corresponding to the scheme found in the request
When a ":scheme" pseudo-header is found in a h3 request, the HTX_SL_F_HAS_SCHM flag must be set on the HTX message. And if the scheme is 'http' or 'https', the corresponding HTX flag must also be set. So, respectively, HTX_SL_F_SCHM_HTTP or HTX_SL_F_SCHM_HTTPS. It is mainly used to send the right ":scheme" pseudo-header value to H2 server on backend side. This patch could be backported as far as 2.6.
This commit is contained in:
parent
083708daf8
commit
da9792cca8
7
src/h3.c
7
src/h3.c
@ -679,7 +679,12 @@ static ssize_t h3_headers_to_htx(struct qcs *qcs, const struct buffer *buf,
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!http_validate_scheme(list[hdr_idx].v)) {
|
||||
flags |= HTX_SL_F_HAS_SCHM;
|
||||
if (isteqi(list[hdr_idx].v, ist("http")))
|
||||
flags |= HTX_SL_F_SCHM_HTTP;
|
||||
else if (isteqi(list[hdr_idx].v, ist("https")))
|
||||
flags |= HTX_SL_F_SCHM_HTTPS;
|
||||
else if (!http_validate_scheme(list[hdr_idx].v)) {
|
||||
TRACE_ERROR("invalid scheme pseudo-header", H3_EV_RX_FRAME|H3_EV_RX_HDR, qcs->qcc->conn, qcs);
|
||||
h3s->err = H3_ERR_MESSAGE_ERROR;
|
||||
qcc_report_glitch(h3c->qcc, 1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user