Revert "MDL-39832 Files: Revert MDL-39688 commit, 6ce0c9ce42fa7849e67d7611a628ece51c3...
authorDan Poltawski <dan@moodle.com>
Thu, 13 Jun 2013 05:58:00 +0000 (13:58 +0800)
committerDan Poltawski <dan@moodle.com>
Thu, 13 Jun 2013 05:58:00 +0000 (13:58 +0800)
lib/filelib.php
lib/xsendfilelib.php

index 1820bea..2d9b2b3 100644 (file)
@@ -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;
index 3a563fd..5c25485 100644 (file)
@@ -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');