summaryrefslogtreecommitdiff
path: root/roundcubemail/program/include
diff options
context:
space:
mode:
authorthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2011-03-10 20:21:21 +0000
committerthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2011-03-10 20:21:21 +0000
commit0b178f16f1a1139a45cc5478bd2ed3e992a61bc8 (patch)
treecdb2813617b7e39f05000b4176cf5882b89e4dd5 /roundcubemail/program/include
parentb4cc1c43649302683aeb406c80fe8566f383d959 (diff)
Prepare for multiple concurrent compose windows
git-svn-id: https://svn.roundcube.net/trunk@4604 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/include')
-rw-r--r--roundcubemail/program/include/rcmail.php4
-rw-r--r--roundcubemail/program/include/rcube_session.php13
2 files changed, 16 insertions, 1 deletions
diff --git a/roundcubemail/program/include/rcmail.php b/roundcubemail/program/include/rcmail.php
index 980efe43d..d9bb30bbe 100644
--- a/roundcubemail/program/include/rcmail.php
+++ b/roundcubemail/program/include/rcmail.php
@@ -1078,8 +1078,10 @@ class rcmail
$this->imap->close();
// before closing the database connection, write session data
- if ($_SERVER['REMOTE_ADDR'])
+ if ($_SERVER['REMOTE_ADDR']) {
+ $this->session->cleanup();
session_write_close();
+ }
// write performance stats to logs/console
if ($this->config->get('devel_mode')) {
diff --git a/roundcubemail/program/include/rcube_session.php b/roundcubemail/program/include/rcube_session.php
index 1fa331753..8c7adb3f1 100644
--- a/roundcubemail/program/include/rcube_session.php
+++ b/roundcubemail/program/include/rcube_session.php
@@ -192,6 +192,19 @@ class rcube_session
/**
+ * Cleanup session data before saving
+ */
+ public function cleanup()
+ {
+ // current compose information is stored in $_SESSION['compose'], move it to $_SESSION['compose_data']
+ if ($_SESSION['compose']) {
+ $_SESSION['compose_data'][$_SESSION['compose']['id']] = $_SESSION['compose'];
+ $this->remove('compose');
+ }
+ }
+
+
+ /**
* Register additional garbage collector functions
*
* @param mixed Callback function