From 8b129626cd2c10a26c505b104a0f403656782ce0 Mon Sep 17 00:00:00 2001 From: wn_ Date: Tue, 20 Dec 2022 02:03:46 +0000 Subject: 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. --- classes/cache/local.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'classes') 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(); -- cgit v1.2.3