diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2009-05-13 07:17:33 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2009-05-13 07:17:33 +0000 |
| commit | ce92386d2847df86870f4a87d5ca5c1f4925998d (patch) | |
| tree | 1162c257cb360eaa435e4baa395be296a9aec1b0 | |
| parent | 0b75eecb509765b633007525e1d5db99d6b0f248 (diff) | |
- speed up the whole session cleaning in kill_session()
git-svn-id: https://svn.roundcube.net/trunk@2472 208e9e7b-5314-0410-a742-e7e81cd9613c
| -rw-r--r-- | roundcubemail/program/include/rcmail.php | 3 | ||||
| -rw-r--r-- | roundcubemail/program/include/session.inc | 5 |
2 files changed, 5 insertions, 3 deletions
diff --git a/roundcubemail/program/include/rcmail.php b/roundcubemail/program/include/rcmail.php index 1443617c4..6ed095062 100644 --- a/roundcubemail/program/include/rcmail.php +++ b/roundcubemail/program/include/rcmail.php @@ -793,8 +793,7 @@ class rcmail */ public function kill_session() { - foreach (array_keys($_SESSION) as $var) - rcube_sess_unset($var); + rcube_sess_unset(); $_SESSION = array('language' => $this->user->language, 'auth_time' => time(), 'temp' => true); rcmail::setcookie('sessauth', '-del-', time() - 60); $this->user->reset(); diff --git a/roundcubemail/program/include/session.inc b/roundcubemail/program/include/session.inc index 7ba60412c..e19807763 100644 --- a/roundcubemail/program/include/session.inc +++ b/roundcubemail/program/include/session.inc @@ -87,10 +87,13 @@ function rcube_sess_write($key, $vars) // unset session variable -function rcube_sess_unset($var) +function rcube_sess_unset($var=NULL) { $DB = rcmail::get_instance()->get_dbh(); + if (empty($var)) + return rcube_sess_destroy(session_id()); + $now = $DB->fromunixtime(time()); $sql_result = $DB->query( |
