From 7c2d30b2e106a23fe2ab295f7dc2e628e4d828bb Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 13 Aug 2008 07:39:10 -0400
Subject: [PATCH] #1485170: fixed splitter under Firefox3
---
program/include/session.inc | 45 ++++++++++++++++++++++++++-------------------
1 files changed, 26 insertions(+), 19 deletions(-)
diff --git a/program/include/session.inc b/program/include/session.inc
index 8a98fad..ef8eb27 100644
--- a/program/include/session.inc
+++ b/program/include/session.inc
@@ -26,7 +26,6 @@
}
-
function sess_close()
{
return TRUE;
@@ -89,9 +88,7 @@
VALUES (?, ?, ?, ".$DB->now().", ".$DB->now().")",
$key,
$vars,
- $_SERVER['REMOTE_ADDR']);
-
-
+ (string)$_SERVER['REMOTE_ADDR']);
}
return TRUE;
@@ -101,15 +98,18 @@
// handler for session_destroy()
function sess_destroy($key)
{
- global $DB;
+ global $DB, $CONFIG;
if ($DB->is_error())
return FALSE;
-
- // delete session entries in cache table
- $DB->query("DELETE FROM ".get_table_name('cache')."
- WHERE session_id=?",
+
+ if ($CONFIG['enable_caching'])
+ {
+ // delete session entries in cache table
+ $DB->query("DELETE FROM ".get_table_name('cache')."
+ WHERE session_id=?",
$key);
+ }
$DB->query("DELETE FROM ".get_table_name('session')."
WHERE sess_id=?",
@@ -122,7 +122,7 @@
// garbage collecting function
function sess_gc($maxlifetime)
{
- global $DB;
+ global $DB, $CONFIG;
if ($DB->is_error())
return FALSE;
@@ -137,20 +137,23 @@
while ($sql_arr = $DB->fetch_assoc($sql_result))
$a_exp_sessions[] = $sql_arr['sess_id'];
-
if (sizeof($a_exp_sessions))
{
- // delete session cache records
- $DB->query("DELETE FROM ".get_table_name('cache')."
- WHERE session_id IN ('".join("','", $a_exp_sessions)."')");
-
+ if ($CONFIG['enable_caching'])
+ {
+ // delete session cache records
+ $DB->query("DELETE FROM ".get_table_name('cache')."
+ WHERE session_id IN ('".join("','", $a_exp_sessions)."')");
+ }
+
// delete session records
$DB->query("DELETE FROM ".get_table_name('session')."
WHERE sess_id IN ('".join("','", $a_exp_sessions)."')");
}
// also run message cache GC
- rcmail_message_cache_gc();
+ if ($CONFIG['enable_caching'])
+ rcmail_message_cache_gc();
rcmail_temp_gc();
return TRUE;
@@ -172,9 +175,13 @@
sess_destroy(session_id());
session_id($random);
- $cookie = session_get_cookie_params();
- setcookie(session_name(), "", time() -3600);
- setcookie(session_name(), $random, $cookie['lifetime'], $cookie['path']);
+
+ $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']);
return true;
}
--
Gitblit v1.9.1