Mercurial > hg > nginx-quic
comparison src/http/v3/ngx_http_v3.h @ 7883:66feab03d9b7 quic
HTTP/3: restricted symbols in header names.
As per HTTP/3 draft 27, a request or response containing uppercase header
field names MUST be treated as malformed. Also, existing rules applied
when parsing HTTP/1 header names are also applied to HTTP/3 header names:
- null character is not allowed
- underscore character may or may not be treated as invalid depending on the
value of "underscores_in_headers"
- all non-alphanumeric characters with the exception of '-' are treated as
invalid
Also, the r->locase_header field is now filled while parsing an HTTP/3
header.
Error logging for invalid headers is fixed as well.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Tue, 19 May 2020 15:34:00 +0300 |
parents | d2759e4cc437 |
children | c8cabb5d45f5 |
comparison
equal
deleted
inserted
replaced
7882:d2759e4cc437 | 7883:66feab03d9b7 |
---|---|
66 ngx_str_t value; | 66 ngx_str_t value; |
67 } ngx_http_v3_header_t; | 67 } ngx_http_v3_header_t; |
68 | 68 |
69 | 69 |
70 ngx_int_t ngx_http_v3_parse_request(ngx_http_request_t *r, ngx_buf_t *b); | 70 ngx_int_t ngx_http_v3_parse_request(ngx_http_request_t *r, ngx_buf_t *b); |
71 ngx_int_t ngx_http_v3_parse_header(ngx_http_request_t *r, ngx_buf_t *b); | 71 ngx_int_t ngx_http_v3_parse_header(ngx_http_request_t *r, ngx_buf_t *b, |
72 ngx_uint_t allow_underscores); | |
72 ngx_int_t ngx_http_v3_parse_request_body(ngx_http_request_t *r, ngx_buf_t *b, | 73 ngx_int_t ngx_http_v3_parse_request_body(ngx_http_request_t *r, ngx_buf_t *b, |
73 ngx_http_chunked_t *ctx); | 74 ngx_http_chunked_t *ctx); |
74 ngx_chain_t *ngx_http_v3_create_header(ngx_http_request_t *r); | 75 ngx_chain_t *ngx_http_v3_create_header(ngx_http_request_t *r); |
75 ngx_chain_t *ngx_http_v3_create_trailers(ngx_http_request_t *r); | 76 ngx_chain_t *ngx_http_v3_create_trailers(ngx_http_request_t *r); |
76 | 77 |