From fec2d8e1309d1f16f9cd772b82b28627d9359354 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Tue, 21 Feb 2012 16:43:39 -0500
Subject: [PATCH] Refactored IMAP cache expunge: delegate to storage object; don't rely on deprecated 'enable_caching' config option

---
 program/include/rcube_imap.php |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index 56b5e59..70b410f 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -3527,7 +3527,8 @@
     {
         if ($this->caching && !$this->cache) {
             $rcmail = rcmail::get_instance();
-            $this->cache = $rcmail->get_cache('IMAP', $this->caching);
+            $ttl = $rcmail->config->get('message_cache_lifetime', '10d') - mktime();
+            $this->cache = $rcmail->get_cache('IMAP', $this->caching, $ttl);
         }
 
         return $this->cache;
@@ -3574,6 +3575,20 @@
         }
     }
 
+    /**
+     * Delete outdated cache entries
+     */
+    public function expunge_cache()
+    {
+        if ($this->mcache) {
+            $ttl = rcmail::get_instance()->config->get('message_cache_lifetime', '10d');
+            $this->mcache->expunge($ttl);
+        }
+
+        if ($this->cache)
+            $this->cache->expunge();
+    }
+
 
     /* --------------------------------
      *   message caching methods

--
Gitblit v1.9.1