mirror of
https://github.com/nginx/nginx.git
synced 2025-02-25 18:55:26 -06:00
Range filter: clearing of pre-existing Content-Range headers.
Some servers might emit Content-Range header on 200 responses, and this does not seem to contradict RFC 9110: as per RFC 9110, the Content-Range header has no meaning for status codes other than 206 and 416. Previously this resulted in duplicate Content-Range headers in nginx responses handled by the range filter. Fix is to clear pre-existing headers.
This commit is contained in:
parent
14341ce237
commit
f35475c083
@ -425,6 +425,10 @@ ngx_http_range_singlepart_header(ngx_http_request_t *r,
|
|||||||
return NGX_ERROR;
|
return NGX_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (r->headers_out.content_range) {
|
||||||
|
r->headers_out.content_range->hash = 0;
|
||||||
|
}
|
||||||
|
|
||||||
r->headers_out.content_range = content_range;
|
r->headers_out.content_range = content_range;
|
||||||
|
|
||||||
content_range->hash = 1;
|
content_range->hash = 1;
|
||||||
@ -582,6 +586,11 @@ ngx_http_range_multipart_header(ngx_http_request_t *r,
|
|||||||
r->headers_out.content_length = NULL;
|
r->headers_out.content_length = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (r->headers_out.content_range) {
|
||||||
|
r->headers_out.content_range->hash = 0;
|
||||||
|
r->headers_out.content_range = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return ngx_http_next_header_filter(r);
|
return ngx_http_next_header_filter(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -598,6 +607,10 @@ ngx_http_range_not_satisfiable(ngx_http_request_t *r)
|
|||||||
return NGX_ERROR;
|
return NGX_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (r->headers_out.content_range) {
|
||||||
|
r->headers_out.content_range->hash = 0;
|
||||||
|
}
|
||||||
|
|
||||||
r->headers_out.content_range = content_range;
|
r->headers_out.content_range = content_range;
|
||||||
|
|
||||||
content_range->hash = 1;
|
content_range->hash = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user