From 03478654bdd231bcf73505f76b976f8ad519e77c Mon Sep 17 00:00:00 2001 From: pdontthink Date: Mon, 21 Jun 2010 00:39:12 +0000 Subject: [PATCH] Synchronize no-cache headers. This reverses revision 13940 because no-cahce headers were already being sent in displayHtmlHeader() for left_main.php and right_main.php (the tracker referred to in that revision only applies to SquirrelMail 1.4.x). git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@13945 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- doc/ChangeLog | 1 - functions/page_header.php | 16 ++++++++++++---- src/left_main.php | 5 ----- src/mailto.php | 4 ++++ src/redirect.php | 4 ++++ src/right_main.php | 5 ----- src/squirrelmail_rpc.php | 10 ++++------ 7 files changed, 24 insertions(+), 21 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index f9b4d179..50f062af 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -337,7 +337,6 @@ Version 1.5.2 - SVN leakage when Firefox does DNS prefetching for URLs contained in emails. - Added the ability to configure Google Mail (Gmail) as the mail server behind SquirrelMail. - - Explicitly disable caching for left_main and right_main pages (#2983134). - Fix error with SpamCop reporting plugin not being able to send report as emails (#1795310). - Fix typo in SpamCop plugin. diff --git a/functions/page_header.php b/functions/page_header.php index 744b26d6..f6d1e80a 100644 --- a/functions/page_header.php +++ b/functions/page_header.php @@ -24,9 +24,12 @@ include_once(SM_PATH . 'functions/imap_mailbox.php'); * @param string xtra extra HTML to insert into the header * @param bool do_hook whether to execute hooks, default true * @param bool frames generate html frameset doctype (since 1.5.1) + * @param bool $browser_cache_ok When TRUE, it's OK to leave out the + * no-cache browser headers (OPTIONAL; + * default = FALSE, send no-cache headers) * @return void */ -function displayHtmlHeader( $title = 'SquirrelMail', $xtra = '', $do_hook = TRUE, $frames = FALSE ) { +function displayHtmlHeader( $title = 'SquirrelMail', $xtra = '', $do_hook = TRUE, $frames = FALSE, $browser_cache_ok=FALSE ) { global $squirrelmail_language, $sTemplateID, $oErrorHandler, $oTemplate; if ( !sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION) ) { @@ -36,10 +39,15 @@ function displayHtmlHeader( $title = 'SquirrelMail', $xtra = '', $do_hook = TRUE $default_fontset, $chosen_fontset, $default_fontsize, $chosen_fontsize, $chosen_theme, $chosen_theme_path, $user_themes, $user_theme_default; - /* add no cache headers here */ + // add no cache headers here + // + if (!$browser_cache_ok) { //FIXME: should change all header() calls in SM core to use $oTemplate->header()!! - $oTemplate->header('Pragma: no-cache'); // http 1.0 (rfc1945) - $oTemplate->header('Cache-Control: private, no-cache, no-store'); // http 1.1 (rfc2616) + $oTemplate->header('Pragma: no-cache'); // http 1.0 (rfc1945) + $oTemplate->header('Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0'); // http 1.1 (rfc2616) + $oTemplate->header('Expires: Sat, 1 Jan 2000 00:00:00 GMT'); +//TODO: is this needed? $oTemplate->header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT'); + } /* prevent information leakage about read emails by forbidding Firefox * to do preemptive DNS requests for any links in the message body. */ $oTemplate->header('X-DNS-Prefetch-Control: off'); diff --git a/src/left_main.php b/src/left_main.php index 24f32253..64324429 100644 --- a/src/left_main.php +++ b/src/left_main.php @@ -15,11 +15,6 @@ /** This is the left_main page */ define('PAGE_NAME', 'left_main'); -/* Disable browser caching */ -header('Cache-Control: no-cache, no-store, must-revalidate'); -header('Pragma: no-cache'); -header('Expires: ' . gmdate(DATE_RFC1123, time()-1)); - /** * Include the SquirrelMail initialization file. */ diff --git a/src/mailto.php b/src/mailto.php index 3981c5bd..edbd5d71 100644 --- a/src/mailto.php +++ b/src/mailto.php @@ -64,7 +64,11 @@ $force_login = FALSE; $compose_only = FALSE; +// Disable browser caching +// +header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0'); header('Pragma: no-cache'); +header('Expires: Sat, 1 Jan 2000 00:00:00 GMT'); $trtable = array('cc' => 'cc', 'bcc' => 'bcc', diff --git a/src/redirect.php b/src/redirect.php index fdf8d096..d8253f63 100644 --- a/src/redirect.php +++ b/src/redirect.php @@ -23,7 +23,11 @@ require('../include/init.php'); require_once(SM_PATH . 'functions/imap_general.php'); require_once(SM_PATH . 'functions/strings.php'); +// Disable browser caching +// +header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0'); header('Pragma: no-cache'); +header('Expires: Sat, 1 Jan 2000 00:00:00 GMT'); $location = get_location(); // session_set_cookie_params (0, $base_uri); diff --git a/src/right_main.php b/src/right_main.php index ef2797da..94bd618e 100644 --- a/src/right_main.php +++ b/src/right_main.php @@ -17,11 +17,6 @@ define('PAGE_NAME', 'right_main'); //xdebug_start_profiling("/var/spool/xdebug/right_main.txt"); -/* Disable browser caching */ -header('Cache-Control: no-cache, no-store, must-revalidate'); -header('Pragma: no-cache'); -header('Expires: ' . gmdate(DATE_RFC1123, time()-1)); - /** * Include the SquirrelMail initialization file. */ diff --git a/src/squirrelmail_rpc.php b/src/squirrelmail_rpc.php index 787b7d28..651718d1 100644 --- a/src/squirrelmail_rpc.php +++ b/src/squirrelmail_rpc.php @@ -100,12 +100,10 @@ if (!sqGetGlobalVar('rpc_action', $rpc_action, SQ_FORM)) { */ $oTemplate->header('Content-Type: text/xml'); $oTemplate->header('Content-Type: application/xml'); // required by IE -//FIXME: which anti-cache headers do we want to use? -$oTemplate->header('Cache-Control: no-cache'); -// $oTemplate->header("Expires: Sat, 1 Jan 2000 00:00:00 GMT"); -// $oTemplate->header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); -// $oTemplate->header("Cache-Control: no-cache, must-revalidate"); -// $oTemplate->header("Pragma: no-cache"); +$oTemplate->header('Pragma: no-cache'); +$oTemplate->header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0'); +$oTemplate->header('Expires: Sat, 1 Jan 2000 00:00:00 GMT'); +//TODO: is this needed? $oTemplate->header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT'); -- 2.25.1