diff src/http/v3/ngx_http_v3_request.c @ 7884:d6feece1288a quic

Fixed $request_length for HTTP/3. New field r->parse_start is introduced to substitute r->request_start and r->header_name_start for request length accounting. These fields only work for this purpose in HTTP/1 because HTTP/1 request line and header line start with these values. Also, error logging is now fixed to output the right part of the request.
author Roman Arutyunyan <arut@nginx.com>
date Tue, 19 May 2020 15:47:37 +0300
parents 66feab03d9b7
children 5b367070cc9c
line wrap: on
line diff
--- a/src/http/v3/ngx_http_v3_request.c
+++ b/src/http/v3/ngx_http_v3_request.c
@@ -59,6 +59,7 @@ ngx_http_v3_parse_request(ngx_http_reque
         }
 
         r->h3_parse = st;
+        r->parse_start = b->pos;
     }
 
     while (b->pos < b->last) {
@@ -130,6 +131,7 @@ ngx_http_v3_parse_header(ngx_http_reques
     st = r->h3_parse;
 
     if (st->header_rep.state == 0) {
+        r->parse_start = b->pos;
         r->invalid_header = 0;
     }