diff options
author | alecpl <alec@alec.pl> | 2010-03-26 21:03:22 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2010-03-26 21:03:22 +0000 |
commit | 59c216f3cceaf403ca0a678821eb219b6c41e6ff (patch) | |
tree | 6733766f1f87a275fe772543bb38ce25cec48b63 /program/include/rcmail.php | |
parent | 5e2014d90a23891a7e17c51356b3fdfce39c2615 (diff) |
- Fix bugs on unexpected IMAP connection close (#1486190, #1486270)
- Iloha's imap.inc rewritten into rcube_imap_generic class
- rcube_imap code re-formatting
Diffstat (limited to 'program/include/rcmail.php')
-rw-r--r-- | 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 1224822c6..77ebb28b6 100644 --- a/program/include/rcmail.php +++ b/program/include/rcmail.php @@ -456,21 +456,21 @@ class rcmail */ 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 @@ class rcmail */ 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(); |