From 6106ad89147dec3e180931e3cee6c3973aac8150 Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Sun, 18 Jan 2009 19:36:00 +0100 Subject: add http_sendfile() function - update fetch.php to use the new function darcs-hash:20090118183600-f07c6-65c818bba58fab8856c9f353ff4953ead9b5221e.gz --- inc/pageutils.php | 18 ++++++++++++++++++ lib/exe/fetch.php | 12 ++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/inc/pageutils.php b/inc/pageutils.php index ccf8d10b8..1fdb4f2d0 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -578,4 +578,22 @@ function http_conditionalRequest($timestamp){ exit; } +function http_sendfile($file) { + global $conf; + + //use x-sendfile header to pass the delivery to compatible webservers + if($conf['xsendfile'] == 1){ + header("X-LIGHTTPD-send-file: $file"); + return true; + }elseif($conf['xsendfile'] == 2){ + header("X-Sendfile: $file"); + return true; + }elseif($conf['xsendfile'] == 3){ + header("X-Accel-Redirect: $file"); + return true; + } + + return false; +} + //Setup VIM: ex: et ts=2 enc=utf-8 : diff --git a/lib/exe/fetch.php b/lib/exe/fetch.php index dd4da459c..ddfff4b4e 100644 --- a/lib/exe/fetch.php +++ b/lib/exe/fetch.php @@ -14,6 +14,7 @@ require_once(DOKU_INC.'inc/pageutils.php'); require_once(DOKU_INC.'inc/confutils.php'); require_once(DOKU_INC.'inc/auth.php'); + //close sesseion session_write_close(); if(!defined('CHUNK_SIZE')) define('CHUNK_SIZE',16*1024); @@ -136,16 +137,7 @@ function sendFile($file,$mime,$dl,$cache){ } //use x-sendfile header to pass the delivery to compatible webservers - if($conf['xsendfile'] == 1){ - header("X-LIGHTTPD-send-file: $file"); - exit; - }elseif($conf['xsendfile'] == 2){ - header("X-Sendfile: $file"); - exit; - }elseif($conf['xsendfile'] == 3){ - header("X-Accel-Redirect: $file"); - exit; - } + if (http_sendfile($file)) exit; //support download continueing header('Accept-Ranges: bytes'); -- cgit v1.2.3