Synchronize no-cache headers. This reverses revision 13940 because no-cahce headers...
authorpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Mon, 21 Jun 2010 00:39:12 +0000 (00:39 +0000)
committerpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Mon, 21 Jun 2010 00:39:12 +0000 (00:39 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@13945 7612ce4b-ef26-0410-bec9-ea0150e637f0

doc/ChangeLog
functions/page_header.php
src/left_main.php
src/mailto.php
src/redirect.php
src/right_main.php
src/squirrelmail_rpc.php

index f9b4d17..50f062a 100644 (file)
@@ -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.
index 744b26d..f6d1e80 100644 (file)
@@ -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');
index 24f3225..6432442 100644 (file)
 /** 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.
  */
index 3981c5b..edbd5d7 100644 (file)
@@ -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',
index fdf8d09..d8253f6 100644 (file)
@@ -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);
index ef2797d..94bd618 100644 (file)
@@ -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.
  */
index 787b7d2..651718d 100644 (file)
@@ -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');