thomascube
2008-11-23 29c64b0bdd3ee16532ed5f390044e5d5bec5bdec
Also clean cache table when removing old messages from cache

2 files modified
26 ■■■■ changed files
program/include/main.inc 18 ●●●● patch | view | raw | blame | history
program/include/session.inc 8 ●●●● patch | view | raw | blame | history
program/include/main.inc
@@ -151,19 +151,19 @@
 * 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));
  }
program/include/session.inc
@@ -125,12 +125,12 @@
    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();