From 00cb22cf92d267fe602ad37336fba4454c6aa896 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Sat, 25 May 2013 15:46:20 +0200 Subject: Expunge all cache instances in shutdown --- program/lib/Roundcube/rcube.php | 3 +++ program/lib/Roundcube/rcube_cache.php | 2 +- program/lib/Roundcube/rcube_cache_shared.php | 2 +- program/lib/Roundcube/rcube_imap.php | 3 +++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php index a57cad57e..78d7959b7 100644 --- a/program/lib/Roundcube/rcube.php +++ b/program/lib/Roundcube/rcube.php @@ -897,6 +897,9 @@ class rcube foreach ($this->caches as $cache) { if (is_object($cache)) { + if ($this->expunge_cache) { + $cache->expunge(); + } $cache->close(); } } diff --git a/program/lib/Roundcube/rcube_cache.php b/program/lib/Roundcube/rcube_cache.php index 92f12a8bf..129f3242d 100644 --- a/program/lib/Roundcube/rcube_cache.php +++ b/program/lib/Roundcube/rcube_cache.php @@ -192,7 +192,7 @@ class rcube_cache */ function expunge() { - if ($this->type == 'db' && $this->db) { + if ($this->type == 'db' && $this->db && $this->ttl) { $this->db->query( "DELETE FROM ".$this->db->table_name('cache'). " WHERE user_id = ?". diff --git a/program/lib/Roundcube/rcube_cache_shared.php b/program/lib/Roundcube/rcube_cache_shared.php index bef9e85f2..c43d2cad1 100644 --- a/program/lib/Roundcube/rcube_cache_shared.php +++ b/program/lib/Roundcube/rcube_cache_shared.php @@ -191,7 +191,7 @@ class rcube_cache */ function expunge() { - if ($this->type == 'db' && $this->db) { + if ($this->type == 'db' && $this->db && $this->ttl) { $this->db->query( "DELETE FROM " . $this->table . " WHERE cache_key LIKE ?" diff --git a/program/lib/Roundcube/rcube_imap.php b/program/lib/Roundcube/rcube_imap.php index 43c61fd81..31e7079fb 100644 --- a/program/lib/Roundcube/rcube_imap.php +++ b/program/lib/Roundcube/rcube_imap.php @@ -3749,9 +3749,12 @@ class rcube_imap extends rcube_storage $this->mcache->expunge($ttl); } +/* + // this cache is expunged by rcube class if ($this->cache) { $this->cache->expunge(); } +*/ } -- cgit v1.2.3