From 3dc19d5fc8e13612d0f8cd85df391d7f2e232d06 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Sat, 06 Dec 2008 12:59:26 -0500
Subject: [PATCH] Move search filter drop-down closed to search box

---
 program/include/session.inc |   48 ++++++++++--------------------------------------
 1 files changed, 10 insertions(+), 38 deletions(-)

diff --git a/program/include/session.inc b/program/include/session.inc
index ad66f0c..f91a51a 100644
--- a/program/include/session.inc
+++ b/program/include/session.inc
@@ -75,10 +75,12 @@
      WHERE  sess_id=?",
     $key);
 
+  $now = $DB->fromunixtime(time());
+
   if ($DB->num_rows($sql_result)) {
     $DB->query(
       "UPDATE " . get_table_name('session') . "
-       SET    vars=?, changed=" . $DB->now() . "
+       SET    vars=?, changed= " . $now . "
        WHERE  sess_id=?",
       $vars,
       $key);
@@ -87,7 +89,7 @@
     $DB->query(
       "INSERT INTO " . get_table_name('session') . "
        (sess_id, vars, ip, created, changed)
-       VALUES (?, ?, ?, ".$DB->now().", ".$DB->now().")",
+       VALUES (?, ?, ?, " . $now . ", " . $now .")",
       $key,
       $vars,
       (string)$_SERVER['REMOTE_ADDR']);
@@ -107,11 +109,6 @@
     return false;
   }
 
-  // delete session entries in cache table
-  if ($rcmail->config->get('enable_caching')) {
-    $DB->query("DELETE FROM " . get_table_name('cache') . " WHERE session_id=?", $key);
-  }
-              
   $DB->query("DELETE FROM " . get_table_name('session') . " WHERE sess_id=?", $key);
 
   return true;
@@ -128,36 +125,13 @@
     return false;
   }
 
-  // get all expired sessions
-  $sql_result = $DB->query(
-    "SELECT sess_id
-     FROM " . get_table_name('session') . "
-     WHERE " . $DB->unixtimestamp($DB->now())."-".$DB->unixtimestamp('changed') . " > ?",
-    $maxlifetime);
-                                   
-  $exp_sessions = array();
-  while ($sql_arr = $DB->fetch_assoc($sql_result)) {
-    $exp_sessions[] = $sql_arr['sess_id'];
-  }
+  // just delete all expired sessions
+  $DB->query("DELETE FROM " . get_table_name('session') . "
+    WHERE changed < " . $DB->fromunixtime(time() - $maxlifetime));
 
-  $caching = $rcmail->config->get('enable_caching');
+  if ($rcmail->config->get('enable_caching'))
+    rcmail_cache_gc();
 
-  if (sizeof($exp_sessions)) {
-    // delete session cache records
-    if ($caching) {
-      $DB->query("DELETE FROM " . get_table_name('cache') . "
-                  WHERE session_id IN ('".join("','", $exp_sessions)."')");
-    }
-
-    // delete session records
-    $DB->query("DELETE FROM " . get_table_name('session') . "
-                WHERE sess_id IN ('".join("','", $exp_sessions)."')");
-  }
-
-  // also run message cache GC
-  if ($caching) {
-    rcmail_message_cache_gc();
-  }
   rcmail_temp_gc();
 
   return true;
@@ -183,9 +157,7 @@
   $cookie   = session_get_cookie_params();
   $lifetime = $cookie['lifetime'] ? time() + $cookie['lifetime'] : 0;
 
-  setcookie(session_name(), '', time() - 3600);
-  setcookie(session_name(), $random, $lifetime, $cookie['path'], $cookie['domain'],
-            $_SERVER['HTTPS'] && ($_SERVER['HTTPS']!='off'));
+  rcmail::setcookie(session_name(), $random, $lifetime);
 
   return true;
 }

--
Gitblit v1.9.1