aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Module
diff options
context:
space:
mode:
authorMax Kostikov <max@kostikov.co>2018-11-07 18:22:55 +0100
committerM. Dent <dentm42@gmail.com>2018-11-07 18:22:55 +0100
commiteaf117cce19f0fd78f551fea27f382d3b8b49110 (patch)
tree28fede5ff10c994272dae79b43fea96b98199c8c /Zotlabs/Module
parentfc1d8c0138f834ffa1c9044525c32757059c0f23 (diff)
downloadvolse-hubzilla-eaf117cce19f0fd78f551fea27f382d3b8b49110.tar.gz
volse-hubzilla-eaf117cce19f0fd78f551fea27f382d3b8b49110.tar.bz2
volse-hubzilla-eaf117cce19f0fd78f551fea27f382d3b8b49110.zip
Added `If-Modified-Since` header support for better image caching and fixed absent 404 for photos
Diffstat (limited to 'Zotlabs/Module')
-rw-r--r--Zotlabs/Module/Photo.php20
1 files changed, 14 insertions, 6 deletions
diff --git a/Zotlabs/Module/Photo.php b/Zotlabs/Module/Photo.php
index d76fca278..d3d82f035 100644
--- a/Zotlabs/Module/Photo.php
+++ b/Zotlabs/Module/Photo.php
@@ -10,7 +10,7 @@ require_once('include/photos.php');
class Photo extends \Zotlabs\Web\Controller {
function init() {
-
+
$prvcachecontrol = false;
$streaming = null;
$channel = null;
@@ -32,6 +32,7 @@ class Photo extends \Zotlabs\Web\Controller {
}
$observer_xchan = get_observer_hash();
+ $ismodified = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
if(isset($type)) {
@@ -86,6 +87,7 @@ class Photo extends \Zotlabs\Web\Controller {
if(intval($r[0]['os_storage']))
$data = file_get_contents($data);
}
+
if(! $data) {
$data = fetch_image_from_url($default,$mimetype);
}
@@ -179,8 +181,19 @@ class Photo extends \Zotlabs\Web\Controller {
}
}
+ } else {
+ http_status_exit(404,'not found');
}
}
+
+ header_remove('Pragma');
+
+ if($ismodified === gmdate("D, d M Y H:i:s", $modified) . " GMT") {
+ header_remove('Expires');
+ header_remove('Cache-Control');
+ header_remove('Set-Cookie');
+ http_status_exit(304,'not modified');
+ }
if(! isset($data)) {
if(isset($resolution)) {
@@ -219,11 +232,6 @@ class Photo extends \Zotlabs\Web\Controller {
}
- if(function_exists('header_remove')) {
- header_remove('Pragma');
- header_remove('pragma');
- }
-
header("Content-type: " . $mimetype);
if($prvcachecontrol) {