From 569701d7002e71fbf76e9acaa6c83e5bee90b411 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 17 Mar 2011 10:17:08 -0400
Subject: [PATCH] - Handle properly situation when uploaded attachment file is too big

---
 program/include/rcube_session.php |   25 +++++++++++++++++++------
 1 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/program/include/rcube_session.php b/program/include/rcube_session.php
index 0fc4442..8c7adb3 100644
--- a/program/include/rcube_session.php
+++ b/program/include/rcube_session.php
@@ -192,6 +192,19 @@
 
 
   /**
+   * 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
@@ -205,15 +218,15 @@
 
   /**
    * Generate and set new session id
+   *
+   * @param boolean $destroy If enabled the current session will be destroyed
    */
-  public function regenerate_id()
+  public function regenerate_id($destroy=true)
   {
-    // delete old session record
-    $this->destroy(session_id());
-    $this->vars = false;
+    session_regenerate_id($destroy);
 
-    session_regenerate_id(false);
-    $this->key = session_id();
+    $this->vars = false;
+    $this->key  = session_id();
 
     return true;
   }

--
Gitblit v1.9.1