From c0806c6dfbe21d466bfd9344cd2caeef0ba7cdfa Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Sat, 25 Feb 2012 11:09:49 -0500
Subject: [PATCH] Renamed error message label
---
program/include/rcmail.php | 29 ++++++++++++++++++++++++-----
1 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 1c34759..05cfefa 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -129,6 +129,7 @@
private $caches = array();
private $action_map = array();
private $shutdown_functions = array();
+ private $expunge_cache = false;
/**
@@ -767,8 +768,7 @@
$this->session = new rcube_session($this->get_dbh(), $this->config);
$this->session->register_gc_handler('rcmail_temp_gc');
- if ($this->config->get('enable_caching'))
- $this->session->register_gc_handler('rcmail_cache_gc');
+ $this->session->register_gc_handler(array($this, 'cache_gc'));
// start PHP session (if not in CLI mode)
if ($_SERVER['REMOTE_ADDR'])
@@ -777,6 +777,10 @@
// set initial session vars
if (!$_SESSION['user_id'])
$_SESSION['temp'] = true;
+
+ // restore skin selection after logout
+ if ($_SESSION['temp'] && !empty($_SESSION['skin']))
+ $this->config->set('skin', $_SESSION['skin']);
}
@@ -1221,7 +1225,7 @@
$this->plugins->exec_hook('session_destroy');
$this->session->kill();
- $_SESSION = array('language' => $this->user->language, 'temp' => true);
+ $_SESSION = array('language' => $this->user->language, 'temp' => true, 'skin' => $this->config->get('skin'));
$this->user->reset();
}
@@ -1278,8 +1282,11 @@
$cache->close();
}
- if (is_object($this->storage))
+ if (is_object($this->storage)) {
+ if ($this->expunge_cache)
+ $this->storage->expunge_cache();
$this->storage->close();
+ }
// before closing the database connection, write session data
if ($_SERVER['REMOTE_ADDR'] && is_object($this->session)) {
@@ -1312,6 +1319,18 @@
public function add_shutdown_function($function)
{
$this->shutdown_functions[] = $function;
+ }
+
+
+ /**
+ * Garbage collector for cache entries.
+ * Set flag to expunge caches on shutdown
+ */
+ function cache_gc()
+ {
+ // because this gc function is called before storage is initialized,
+ // we just set a flag to expunge storage cache on shutdown.
+ $this->expunge_cache = true;
}
@@ -1507,7 +1526,7 @@
$url = './';
$delm = '?';
foreach (array_reverse($p) as $key => $val) {
- if ($val !== '') {
+ if ($val !== '' && $val !== null) {
$par = $key[0] == '_' ? $key : '_'.$key;
$url .= $delm.urlencode($par).'='.urlencode($val);
$delm = '&';
--
Gitblit v1.9.1