> On 20 Jun 2023, at 17:43, Sergey Kandaurov <pluk...@nginx.com> wrote: > > # HG changeset patch > # User Sergey Kandaurov <pluk...@nginx.com> > # Date 1687268079 -14400 > # Tue Jun 20 17:34:39 2023 +0400 > # Node ID a95bffe430283bf25341ad9745ffe1199e7c2190 > # Parent bf4bd5af4d7fdadab83616be9218604b658e3d84 > HTTP/3: fixed $body_bytes_sent. > > diff --git a/src/http/v3/ngx_http_v3_filter_module.c > b/src/http/v3/ngx_http_v3_filter_module.c > --- a/src/http/v3/ngx_http_v3_filter_module.c > +++ b/src/http/v3/ngx_http_v3_filter_module.c > @@ -540,6 +540,8 @@ ngx_http_v3_header_filter(ngx_http_reque > *ll = hl; > ll = &cl->next; > > + r->header_size = n + (b->last - b->pos); > + > if (r->headers_out.content_length_n >= 0 > && !r->header_only && !r->expect_trailers) > {
This variant of the patch additionally cuts off the first (and only) DATA frame header length from the variable value. This better matches HTTP/1.1 non-"chunked transfer encoding" behaviour, when the content length is known and no trailers expected. Else, when chunked is used, all DATA-frame header lengths (and trailers) are included similar to HTTP/1.1. # HG changeset patch # User Sergey Kandaurov <pluk...@nginx.com> # Date 1687514427 -14400 # Fri Jun 23 14:00:27 2023 +0400 # Node ID c681f4906d838ac45b517fada4c4274ade03fd3c # Parent 77c1418916f7817a0d020f28d8a08f278a12fe43 HTTP/3: fixed $body_bytes_sent. diff --git a/src/http/v3/ngx_http_v3_filter_module.c b/src/http/v3/ngx_http_v3_filter_module.c --- a/src/http/v3/ngx_http_v3_filter_module.c +++ b/src/http/v3/ngx_http_v3_filter_module.c @@ -581,6 +581,7 @@ ngx_http_v3_header_filter(ngx_http_reque for (cl = out; cl; cl = cl->next) { h3c->total_bytes += cl->buf->last - cl->buf->pos; + r->header_size += cl->buf->last - cl->buf->pos; } return ngx_http_write_filter(r, out); -- Sergey Kandaurov _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-devel