summaryrefslogtreecommitdiff
path: root/roundcubemail/program/include/rcmail.php
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-03-26 21:03:22 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-03-26 21:03:22 +0000
commit53398bbad17c072597f83116bf18c99077e5ec0e (patch)
treefb845803ebbc03e70f3cfcf3228efea30cafcff3 /roundcubemail/program/include/rcmail.php
parentd9658d30212d1c90714347e716a2f83fc688e2de (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 git-svn-id: https://svn.roundcube.net/trunk@3429 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/include/rcmail.php')
-rw-r--r--roundcubemail/program/include/rcmail.php18
1 files changed, 8 insertions, 10 deletions
diff --git a/roundcubemail/program/include/rcmail.php b/roundcubemail/program/include/rcmail.php
index 1224822c6..77ebb28b6 100644
--- a/roundcubemail/program/include/rcmail.php
+++ b/roundcubemail/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();