From c5338156c5bdfabb3fbab06abbb9808f65a51692 Mon Sep 17 00:00:00 2001 From: Dan Poltawski Date: Thu, 13 Jun 2013 13:58:00 +0800 Subject: [PATCH] Revert "MDL-39832 Files: Revert MDL-39688 commit, 6ce0c9ce42fa7849e67d7611a628ece51c336c5f" This reverts commit 1cb1157809878bbfddf061d676ecc41fea17cfd7. --- lib/filelib.php | 10 +++++++++- lib/xsendfilelib.php | 6 ++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/filelib.php b/lib/filelib.php index 1820beac83c..2d9b2b393cb 100644 --- a/lib/filelib.php +++ b/lib/filelib.php @@ -1956,7 +1956,11 @@ function readfile_accel($file, $mimetype, $accelerate) { header('Last-Modified: '. gmdate('D, d M Y H:i:s', $lastmodified) .' GMT'); if (is_object($file)) { - header('ETag: ' . $file->get_contenthash()); + if (empty($_SERVER['HTTP_RANGE'])) { + // Use Etag only when not byteserving, + // is it tag of this range or whole file? + header('Etag: ' . $file->get_contenthash()); + } if (isset($_SERVER['HTTP_IF_NONE_MATCH']) and $_SERVER['HTTP_IF_NONE_MATCH'] === $file->get_contenthash()) { header('HTTP/1.1 304 Not Modified'); return; @@ -2606,6 +2610,10 @@ function byteserving_send_file($handle, $mimetype, $ranges, $filesize) { // better turn off any kind of compression and buffering @ini_set('zlib.output_compression', 'Off'); + // Remove Etag because is is not strictly defined for byteserving, + // is it tag of this range or whole file? + header_remove('Etag'); + $chunksize = 1*(1024*1024); // 1MB chunks - must be less than 2MB! if ($handle === false) { die; diff --git a/lib/xsendfilelib.php b/lib/xsendfilelib.php index 3a563fd892a..5c254856090 100644 --- a/lib/xsendfilelib.php +++ b/lib/xsendfilelib.php @@ -68,6 +68,12 @@ function xsendfile($filepath) { } } + // Remove Etag because is is not strictly defined for byteserving, + // is it tag of this range or whole file? + if (!empty($_SERVER['HTTP_RANGE'])) { + header_remove('Etag'); + } + if ($CFG->xsendfile === 'X-LIGHTTPD-send-file') { // http://redmine.lighttpd.net/projects/lighttpd/wiki/X-LIGHTTPD-send-file says 1.4 it does not support byteserving header('Accept-Ranges: none'); -- 2.43.0