From 29c64b0bdd3ee16532ed5f390044e5d5bec5bdec Mon Sep 17 00:00:00 2001 From: thomascube Date: Sun, 23 Nov 2008 13:24:49 +0000 Subject: Also clean cache table when removing old messages from cache --- program/include/main.inc | 18 +++++++++--------- program/include/session.inc | 8 ++++---- 2 files changed, 13 insertions(+), 13 deletions(-) (limited to 'program/include') diff --git a/program/include/main.inc b/program/include/main.inc index e531bd8d3..b5447c70a 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -151,19 +151,19 @@ function rcmail_temp_gc() * Garbage collector for cache entries. * Remove all expired message cache records */ -function rcmail_message_cache_gc() +function rcmail_cache_gc() { - global $DB, $CONFIG; - - // no cache lifetime configured - if (empty($CONFIG['message_cache_lifetime'])) - return; + $rcmail = rcmail::get_instance(); + $db = $rcmail->get_dbh(); // get target timestamp - $ts = get_offset_time($CONFIG['message_cache_lifetime'], -1); + $ts = get_offset_time($rcmail->config->get('message_cache_lifetime', '30d'), -1); - $DB->query("DELETE FROM ".get_table_name('messages')." - WHERE created < ".$DB->fromunixtime($ts)); + $db->query("DELETE FROM ".get_table_name('messages')." + WHERE created < " . $db->fromunixtime($ts)); + + $db->query("DELETE FROM ".get_table_name('cache')." + WHERE created < " . $db->fromunixtime($ts)); } diff --git a/program/include/session.inc b/program/include/session.inc index 3f01fcd53..f91a51a8c 100644 --- a/program/include/session.inc +++ b/program/include/session.inc @@ -125,12 +125,12 @@ function rcube_sess_gc($maxlifetime) return false; } - if ($rcmail->config->get('enable_caching')) - rcmail_message_cache_gc(); - // just delete all expired sessions $DB->query("DELETE FROM " . get_table_name('session') . " - WHERE changed < " . $now); + WHERE changed < " . $DB->fromunixtime(time() - $maxlifetime)); + + if ($rcmail->config->get('enable_caching')) + rcmail_cache_gc(); rcmail_temp_gc(); -- cgit v1.2.3