summaryrefslogtreecommitdiff
path: root/program/include/rcmail.php
diff options
context:
space:
mode:
Diffstat (limited to 'program/include/rcmail.php')
-rw-r--r--program/include/rcmail.php31
1 files changed, 31 insertions, 0 deletions
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 7f9d7af06..e684a15bb 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -2011,4 +2011,35 @@ class rcmail extends rcube
{
return $this->storage_connect();
}
+
+ /**
+ * Connect to the mail storage server with stored session data
+ *
+ * @return bool True on success, False on error
+ */
+ public function storage_connect()
+ {
+ $storage = $this->get_storage();
+
+ if ($_SESSION['storage_host'] && !$storage->is_connected()) {
+ $host = $_SESSION['storage_host'];
+ $user = $_SESSION['username'];
+ $port = $_SESSION['storage_port'];
+ $ssl = $_SESSION['storage_ssl'];
+ $pass = $this->decrypt($_SESSION['password']);
+
+ if (!$storage->connect($host, $user, $pass, $port, $ssl)) {
+ if (is_object($this->output)) {
+ $error = $storage->get_error_code() == -1 ? 'storageerror' : 'sessionerror';
+ $this->output->show_message($error, 'error');
+ }
+ }
+ else {
+ $this->set_storage_prop();
+ return $storage->is_connected();
+ }
+ }
+
+ return false;
+ }
}