[mod_fastcgi] use http_response_xsendfile() (fixes #799, fixes #851, fixes #2017...
commitb9940f9856c166dc7368207d1869cb203774db87
authorGlenn Strauss <gstrauss@gluelogic.com>
Fri, 22 Apr 2016 01:01:30 +0000 (21 21:01 -0400)
committerGlenn Strauss <gstrauss@gluelogic.com>
Thu, 28 Apr 2016 03:10:24 +0000 (27 23:10 -0400)
treedab18a3c2da99d3bc01d5b89c75e3d972991c816
parent4a51d2ab8ccfa8f8da476da100963c1b26b5b67f
[mod_fastcgi] use http_response_xsendfile() (fixes #799, fixes #851, fixes #2017, fixes #2076)

handle X-Sendfile and X-LIGHTTPD-send-file w/ http_response_xsendfile()
  if host is configured ( "x-sendfile" = "enable" )

Note: X-Sendfile path is url-decoded for consistency, like X-Sendfile2
      (response headers should be url-encoded to avoid tripping over
       chars allowed in filesystem but which might change response
       header parsing semantics)

Note: deprecated: "allow-x-send-file";         use "x-sendfile"
Note: deprecated: X-LIGHTTPD-send-file header; use X-Sendfile header
Note: deprecated: X-Sendfile2 header;          use X-Sendfile header
For now, X-Sendfile2 is still handled internally by mod_fastcgi.

Since http_response_send_file() supports HTTP Range requests,
X-Sendfile2 is effectively obsolete.  However, any code, e.g. PHP,
currently using X-Sendfile2 is probably manually generating 206 Partial
Content status and Range response headers.  A future version of lighttpd
might *remove* X-Sendfile2.  Existing code should be converted to use
X-Sendfile, which is easily done by removing all the special logic
around using X-Sendfile2, since the 206 Partial Content status and Range
response headers are handled in http_response_send_file().

x-ref:
  "mod_fastcgi + X-Sendfile -> mod_staticfile"
  https://redmine.lighttpd.net/issues/799
  "Feature Request: New option "x-send-file-docroot""
  https://redmine.lighttpd.net/issues/851
  "X-Sendfile handoff to mod-static-file in 1.4.x"
  https://redmine.lighttpd.net/issues/2017
  "X-sendfile should be able to set content-type"
  https://redmine.lighttpd.net/issues/2076
doc/outdated/fastcgi.txt
src/http-header-glue.c
src/mod_fastcgi.c
src/response.h