Skip to content

Commit

Permalink
Xslt: disabled ranges.
Browse files Browse the repository at this point in the history
Previously, the document generated by the xslt filter was always fully sent
to client even if a range was requested and response status was 206 with
appropriate Content-Range.

The xslt module is unable to serve a range because of suspending the header
filter chain.  By the moment full response xml is buffered by the xslt filter,
range header filter is not called yet, but the range body filter has already
been called and did nothing.

The fix is to disable ranges by resetting the r->allow_ranges flag much like
the image filter that employs a similar technique.
  • Loading branch information
arut committed Jul 22, 2020
1 parent 80daef9 commit 4dd43df
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions src/http/modules/ngx_http_xslt_filter_module.c
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,7 @@ ngx_http_xslt_header_filter(ngx_http_request_t *r)
ngx_http_set_ctx(r, ctx, ngx_http_xslt_filter_module);

r->main_filter_need_in_memory = 1;
r->allow_ranges = 0;

return NGX_OK;
}
Expand Down

0 comments on commit 4dd43df

Please sign in to comment.