Mercurial > hg > nginx
diff src/http/v3/ngx_http_v3_request.c @ 8650:9dce2978e4fd quic
HTTP/3: eliminated r->method_start.
The field was introduced to ease parsing HTTP/3 requests.
The change reduces diff to the default branch.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Wed, 25 Nov 2020 17:57:43 +0000 |
parents | 279ad36f2f4b |
children | 1efee5e4194c |
line wrap: on
line diff
--- a/src/http/v3/ngx_http_v3_request.c Tue Nov 17 20:54:10 2020 +0000 +++ b/src/http/v3/ngx_http_v3_request.c Wed Nov 25 17:57:43 2020 +0000 @@ -129,11 +129,9 @@ continue; } - ngx_str_set(&r->http_protocol, "HTTP/3.0"); - - len = (r->method_end - r->method_start) + 1 + len = r->method_name.len + 1 + (r->uri_end - r->uri_start) + 1 - + sizeof("HTTP/3") - 1; + + sizeof("HTTP/3.0") - 1; p = ngx_pnalloc(c->pool, len); if (p == NULL) { @@ -142,11 +140,13 @@ r->request_start = p; - p = ngx_cpymem(p, r->method_start, r->method_end - r->method_start); + p = ngx_cpymem(p, r->method_name.data, r->method_name.len); + r->method_end = p - 1; *p++ = ' '; p = ngx_cpymem(p, r->uri_start, r->uri_end - r->uri_start); *p++ = ' '; - p = ngx_cpymem(p, "HTTP/3", sizeof("HTTP/3") - 1); + r->http_protocol.data = p; + p = ngx_cpymem(p, "HTTP/3.0", sizeof("HTTP/3.0") - 1); r->request_end = p; r->state = 0; @@ -309,8 +309,7 @@ c = r->connection; if (name->len == 7 && ngx_strncmp(name->data, ":method", 7) == 0) { - r->method_start = value->data; - r->method_end = value->data + value->len; + r->method_name = *value; for (i = 0; i < sizeof(ngx_http_v3_methods) / sizeof(ngx_http_v3_methods[0]); i++)