From 59c216f3cceaf403ca0a678821eb219b6c41e6ff Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 26 Mar 2010 17:03:22 -0400
Subject: [PATCH] - Fix bugs on unexpected IMAP connection close (#1486190, #1486270) - Iloha's imap.inc rewritten into rcube_imap_generic class - rcube_imap code re-formatting

---
 program/include/rcmail.php |   18 ++++++++----------
 1 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 1224822..77ebb28 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -456,21 +456,21 @@
    */
   public function imap_connect()
   {
-    $conn = false;
-
     if (!$this->imap)
       $this->imap_init();
     
-    if ($_SESSION['imap_host'] && !$this->imap->conn) {
-      if (!($conn = $this->imap->connect($_SESSION['imap_host'], $_SESSION['username'], $this->decrypt($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl']))) {
+    if ($_SESSION['imap_host'] && !$this->imap->conn->connected()) {
+      if (!$this->imap->connect($_SESSION['imap_host'], $_SESSION['username'], $this->decrypt($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl'])) {
         if ($this->output)
           $this->output->show_message($this->imap->error_code == -1 ? 'imaperror' : 'sessionerror', 'error');
       }
-
-      $this->set_imap_prop();
+      else {
+        $this->set_imap_prop();
+        return $this->imap->conn;
+      }
     }
 
-    return $conn;
+    return false;
   }
 
 
@@ -957,10 +957,8 @@
    */
   public function shutdown()
   {
-    if (is_object($this->imap)) {
+    if (is_object($this->imap))
       $this->imap->close();
-      $this->imap->write_cache();
-    }
 
     if (is_object($this->smtp))
       $this->smtp->disconnect();

--
Gitblit v1.9.1