program/include/rcube_shared.inc | ●●●●● patch | view | raw | blame | history | |
program/steps/mail/show.inc | ●●●●● patch | view | raw | blame | history |
program/include/rcube_shared.inc
@@ -236,18 +236,22 @@ * @param int Modified date as unix timestamp * @param string Etag value for caching */ function send_modified_header($mdate, $etag=null) function send_modified_header($mdate, $etag=null, $skip_check=false) { if (headers_sent()) return; $iscached = false; if ($_SERVER['HTTP_IF_MODIFIED_SINCE'] && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $mdate) $iscached = true; $etag = $etag ? "\"$etag\"" : null; if ($etag) $iscached = ($_SERVER['HTTP_IF_NONE_MATCH'] == $etag); if (!$skip_check) { if ($_SERVER['HTTP_IF_MODIFIED_SINCE'] && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $mdate) $iscached = true; if ($etag) $iscached = ($_SERVER['HTTP_IF_NONE_MATCH'] == $etag); } if ($iscached) header("HTTP/1.x 304 Not Modified"); program/steps/mail/show.inc
@@ -30,7 +30,7 @@ // set message charset as default if (!empty($MESSAGE['headers']->charset)) $IMAP->set_charset($MESSAGE['headers']->charset); // go back to list if message not found (wrong UID) if (!$MESSAGE['headers']) { @@ -53,13 +53,13 @@ $mbox_name = $IMAP->get_mailbox_name(); // calculate Etag for this request $etag = md5($MESSAGE['UID'].$mbox_name.session_id().intval($MESSAGE['headers']->mdn_sent).intval($MESSAGE['headers']->seen).intval($MESSAGE['is_safe']).intval($PRINT_MODE)); $etag = md5($MESSAGE['UID'].$mbox_name.session_id().intval($MESSAGE['headers']->mdn_sent).intval($MESSAGE['is_safe']).intval($PRINT_MODE)); // allow caching, unless remote images are present if ((bool)$MESSAGE['is_safe']) send_nocacheing_headers(); else if (empty($CONFIG['devel_mode'])) send_modified_header($_SESSION['login_time'], $etag); send_modified_header($_SESSION['login_time'], $etag, !$MESSAGE['headers']->seen); $MESSAGE['subject'] = rcube_imap::decode_mime_string($MESSAGE['headers']->subject, $MESSAGE['headers']->charset); $OUTPUT->set_pagetitle($MESSAGE['subject']);