]> git.kaiwu.me - nginx.git/commitdiff
Slice filter: clear original Accept-Ranges.
authorRoman Arutyunyan <arut@nginx.com>
Thu, 9 Jul 2020 13:21:37 +0000 (16:21 +0300)
committerRoman Arutyunyan <arut@nginx.com>
Thu, 9 Jul 2020 13:21:37 +0000 (16:21 +0300)
The slice filter allows ranges for the response by setting the r->allow_ranges
flag, which enables the range filter.  If the range was not requested, the
range filter adds an Accept-Ranges header to the response to signal the
support for ranges.

Previously, if an Accept-Ranges header was already present in the first slice
response, client received two copies of this header.  Now, the slice filter
removes the Accept-Ranges header from the response prior to setting the
r->allow_ranges flag.

src/http/modules/ngx_http_slice_filter_module.c

index c1edbca2b6bad560b2214511557e35f8ab39281f..186380a2f3cb29e452e52522f62f7a88944ba2fd 100644 (file)
@@ -180,6 +180,11 @@ ngx_http_slice_header_filter(ngx_http_request_t *r)
     r->headers_out.content_range->hash = 0;
     r->headers_out.content_range = NULL;
 
+    if (r->headers_out.accept_ranges) {
+        r->headers_out.accept_ranges->hash = 0;
+        r->headers_out.accept_ranges = NULL;
+    }
+
     r->allow_ranges = 1;
     r->subrequest_ranges = 1;
     r->single_range = 1;