diff options
author | thomascube <thomas@roundcube.net> | 2012-02-21 21:43:39 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2012-02-21 21:43:39 +0000 |
commit | fec2d8e1309d1f16f9cd772b82b28627d9359354 (patch) | |
tree | 84a7d8d9276822535c6bfb2fd8429258df3436cf /program/include/rcube_imap_cache.php | |
parent | 965e6276b3bf20545bcec46f87ef13ffadfac6c3 (diff) |
Refactored IMAP cache expunge: delegate to storage object; don't rely on deprecated 'enable_caching' config option
Diffstat (limited to 'program/include/rcube_imap_cache.php')
-rw-r--r-- | program/include/rcube_imap_cache.php | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/program/include/rcube_imap_cache.php b/program/include/rcube_imap_cache.php index 96c49f713..655979de6 100644 --- a/program/include/rcube_imap_cache.php +++ b/program/include/rcube_imap_cache.php @@ -599,6 +599,27 @@ class rcube_imap_cache /** + * Delete cache entries older than TTL + * + * @param string $ttl Lifetime of message cache entries + */ + function expunge($ttl) + { + // get expiration timestamp + $ts = get_offset_time($ttl, -1); + + $this->db->query("DELETE FROM ".get_table_name('cache_messages') + ." WHERE changed < " . $this->db->fromunixtime($ts)); + + $this->db->query("DELETE FROM ".get_table_name('cache_index') + ." WHERE changed < " . $this->db->fromunixtime($ts)); + + $this->db->query("DELETE FROM ".get_table_name('cache_thread') + ." WHERE changed < " . $this->db->fromunixtime($ts)); + } + + + /** * Fetches index data from database */ private function get_index_row($mailbox) |