comparison src/http/v3/ngx_http_v3.h @ 8406: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
8405:d2759e4cc437 8406: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