thomascube
2009-04-26 1c932d58b57930ce527a77e885ace5b430a60883
program/include/session.inc
@@ -5,7 +5,7 @@
 | program/include/session.inc                                           |
 |                                                                       |
 | This file is part of the RoundCube Webmail client                     |
 | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland                 |
 | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland                 |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 | PURPOSE:                                                              |
@@ -111,12 +111,6 @@
  $DB->query("DELETE FROM " . get_table_name('session') . " WHERE sess_id=?", $key);
  // delete session entries in cache table
  // on databases wthout foreign keys
  if ($rcmail->config->get('enable_caching') && $DB->db_provider != 'pgsql') {
    $DB->query("DELETE FROM " . get_table_name('cache') . " WHERE session_id=?", $key);
  }
  return true;
}
@@ -131,38 +125,12 @@
    return false;
  }
  $now = $DB->fromunixtime(time() - $maxlifetime);
  // delete session entries in cache table
  if ($rcmail->config->get('enable_caching')) {
    // on databases wthout foreign keys...
    if($DB->db_provider != 'pgsql') {
      // get all expired sessions
      $sql_result = $DB->query(
   "SELECT sess_id FROM " . get_table_name('session') . "
           WHERE changed < " . $now);
      $exp_sessions = array();
      while ($sql_arr = $DB->fetch_assoc($sql_result)) {
        $exp_sessions[] = $sql_arr['sess_id'];
      }
      if (sizeof($exp_sessions)) {
        $exp_sessions = "'" . join("','", $exp_sessions) . "'";
        // delete session cache records
        $DB->query("DELETE FROM " . get_table_name('cache') . "
            WHERE session_id IN (" . $exp_sessions . ")");
      }
    }
    // also run message cache GC
    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();