alecpl
2008-10-02 a2740628bb1dcfaa84d00ac05a80a92afdaffbd6
program/include/session.inc
@@ -128,6 +128,7 @@
    return false;
  }
  if ($rcmail->config->get('enable_caching')) {
  // get all expired sessions
  $sql_result = $DB->query(
    "SELECT sess_id
@@ -140,24 +141,27 @@
    $exp_sessions[] = $sql_arr['sess_id'];
  }
  $caching = $rcmail->config->get('enable_caching');
  if (sizeof($exp_sessions)) {
      $exp_sessions = "'" . join("','", $exp_sessions) . "'";
    // delete session cache records
    if ($caching) {
      $DB->query("DELETE FROM " . get_table_name('cache') . "
                  WHERE session_id IN ('".join("','", $exp_sessions)."')");
    }
            WHERE session_id IN (" . $exp_sessions . ")");
    // delete session records
    $DB->query("DELETE FROM " . get_table_name('session') . "
                WHERE sess_id IN ('".join("','", $exp_sessions)."')");
            WHERE sess_id IN (" . $exp_sessions . ")");
  }
  // also run message cache GC
  if ($caching) {
    rcmail_message_cache_gc();
  } else {
    // just delete all expired sessions
    $DB->query("DELETE FROM " . get_table_name('session') . "
        WHERE " . $DB->unixtimestamp($DB->now())."-".$DB->unixtimestamp('changed') . " > ?",
   $maxlifetime);
  }
  rcmail_temp_gc();
  return true;