Slice filter: clear original Accept-Ranges.

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.
This commit is contained in:
Roman Arutyunyan 2020-07-09 16:21:37 +03:00
parent 826fb0d45c
commit 5cef7de7a1

View 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->hash = 0;
r->headers_out.content_range = NULL; 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->allow_ranges = 1;
r->subrequest_ranges = 1; r->subrequest_ranges = 1;
r->single_range = 1; r->single_range = 1;