From 06d5c256f3ef4f23f5c382970d7ef8bd3b38b881 Mon Sep 17 00:00:00 2001 From: reef-actor Date: Fri, 2 Feb 2018 13:23:18 +0000 Subject: [PATCH] Add option to forward cache-control headers to client --- src/Plugin/HeaderRewritePlugin.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Plugin/HeaderRewritePlugin.php b/src/Plugin/HeaderRewritePlugin.php index 9eccdf3..8810b7e 100644 --- a/src/Plugin/HeaderRewritePlugin.php +++ b/src/Plugin/HeaderRewritePlugin.php @@ -4,6 +4,7 @@ use Proxy\Plugin\AbstractPlugin; use Proxy\Event\ProxyEvent; +use Proxy\Config; class HeaderRewritePlugin extends AbstractPlugin { @@ -40,7 +41,7 @@ function onHeadersReceived(ProxyEvent $event){ // we need content-encoding (in case server refuses to serve it in plain text) // content-length: final size of content sent to user may change via plugins, so it makes no sense to send old content-length - $forward_headers = array('content-type', 'zzzcontent-length', 'accept-ranges', 'content-range', 'content-disposition', 'location', 'set-cookie'); + $forward_headers = array('cache-control', 'content-type', 'zzzcontent-length', 'accept-ranges', 'content-range', 'content-disposition', 'location', 'set-cookie'); foreach($response->headers->all() as $name => $value){ @@ -57,13 +58,14 @@ function onHeadersReceived(ProxyEvent $event){ $response->headers->set('Content-Disposition', 'filename="'.$filename.'"'); } - - // do not ever cache our proxy pages! - $response->headers->set("cache-control", "no-cache, no-store, must-revalidate"); - $response->headers->set("pragma", "no-cache"); - $response->headers->set("expires", 0); + + if (!Config::get('allow_client_caching')) { + // do not ever cache our proxy pages! + $response->headers->set("cache-control", "no-cache, no-store, must-revalidate"); + $response->headers->set("pragma", "no-cache"); + $response->headers->set("expires", 0); + } } - } ?> \ No newline at end of file