summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorwn_ <[email protected]>2022-12-20 02:03:46 +0000
committerwn_ <[email protected]>2022-12-20 02:16:47 +0000
commit8b129626cd2c10a26c505b104a0f403656782ce0 (patch)
tree5fbcb15542e14f33e7d0404b8b154c7a0330abe2 /classes
parentc6d21b31965b28e2b3b86f42a97289c3ee95fa28 (diff)
Only touch on send for expirable cache files.
With d373b7b452c6d64b47180940ed88c99c21bd9bc3 feed icon modification times get used for cache-busting, but 'Cache_Local' updates that value on each send. This change makes it so the modification time only gets updated on files in expirable caches, keeping the value consistent between sends for files in non-expiring caches. Also, marking 'Cache_Local::send_local_file()' private since it's unique to that adapter.
Diffstat (limited to 'classes')
-rw-r--r--classes/cache/local.php6
1 files changed, 4 insertions, 2 deletions
diff --git a/classes/cache/local.php b/classes/cache/local.php
index d7d0c5cb1..8ac634a3e 100644
--- a/classes/cache/local.php
+++ b/classes/cache/local.php
@@ -124,10 +124,12 @@ class Cache_Local implements Cache_Adapter {
*
* @return bool|int false if the file doesn't exist (or unreadable) or isn't audio/video, true if a plugin handled, otherwise int of bytes sent
*/
- function send_local_file(string $filename) {
+ private function send_local_file(string $filename) {
if (file_exists($filename)) {
- if (is_writable($filename)) touch($filename);
+ if (is_writable($filename) && !$this->exists('.no-auto-expiry')) {
+ touch($filename);
+ }
$tmppluginhost = new PluginHost();