aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_parse.c
diff options
context:
space:
mode:
authorRoman Arutyunyan <arut@nginx.com>2020-05-19 15:47:37 +0300
committerRoman Arutyunyan <arut@nginx.com>2020-05-19 15:47:37 +0300
commitd6b6b6dfc57c916dc7990504fffe71248421456d (patch)
tree602a577d135b3b1d61507f91c5e68d7f9324b1ee /src/http/ngx_http_parse.c
parentd25937c2b596013874fcb049f10b28270ee49e29 (diff)
downloadnginx-d6b6b6dfc57c916dc7990504fffe71248421456d.tar.gz
nginx-d6b6b6dfc57c916dc7990504fffe71248421456d.zip
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.
Diffstat (limited to 'src/http/ngx_http_parse.c')
-rw-r--r--src/http/ngx_http_parse.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c
index f66593443..b59a6ce4c 100644
--- a/src/http/ngx_http_parse.c
+++ b/src/http/ngx_http_parse.c
@@ -143,6 +143,7 @@ ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b)
/* HTTP methods: GET, HEAD, POST */
case sw_start:
+ r->parse_start = p;
r->request_start = p;
r->method_start = p;
@@ -883,6 +884,7 @@ ngx_http_parse_header_line(ngx_http_request_t *r, ngx_buf_t *b,
/* first char */
case sw_start:
+ r->parse_start = p;
r->header_name_start = p;
r->invalid_header = 0;