mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
MDL-39688 do not set Etag when sending http ranges
This commit is contained in:
parent
73f560c7b2
commit
f111746140
2 changed files with 15 additions and 1 deletions
|
@ -2021,7 +2021,11 @@ function readfile_accel($file, $mimetype, $accelerate) {
|
||||||
header('Last-Modified: '. gmdate('D, d M Y H:i:s', $lastmodified) .' GMT');
|
header('Last-Modified: '. gmdate('D, d M Y H:i:s', $lastmodified) .' GMT');
|
||||||
|
|
||||||
if (is_object($file)) {
|
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()) {
|
if (isset($_SERVER['HTTP_IF_NONE_MATCH']) and $_SERVER['HTTP_IF_NONE_MATCH'] === $file->get_contenthash()) {
|
||||||
header('HTTP/1.1 304 Not Modified');
|
header('HTTP/1.1 304 Not Modified');
|
||||||
return;
|
return;
|
||||||
|
@ -2671,6 +2675,10 @@ function byteserving_send_file($handle, $mimetype, $ranges, $filesize) {
|
||||||
// better turn off any kind of compression and buffering
|
// better turn off any kind of compression and buffering
|
||||||
@ini_set('zlib.output_compression', 'Off');
|
@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!
|
$chunksize = 1*(1024*1024); // 1MB chunks - must be less than 2MB!
|
||||||
if ($handle === false) {
|
if ($handle === false) {
|
||||||
die;
|
die;
|
||||||
|
|
|
@ -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') {
|
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
|
// http://redmine.lighttpd.net/projects/lighttpd/wiki/X-LIGHTTPD-send-file says 1.4 it does not support byteserving
|
||||||
header('Accept-Ranges: none');
|
header('Accept-Ranges: none');
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue