return null;
}
- $imap_obj = unserialize($_SESSION['imp']['imap_ob']);
+ $imap_obj = unserialize($_SESSION['imp']['imap_ob'][$_SESSION['imp']['server_key']]);
return array(
'hostspec' => $imap_obj->getParam('hostspec'),
'port' => $imap_obj->getParam('port'),
* 'filteravail' - (boolean) Can we apply filters manually?
* 'imap' - (array) Config for various IMAP resources (acl, admin,
* namespace, quota, thread)
+ * 'imap_ob' - (array) The serialized Horde_Imap_Client objects. Stored
+ * by server key.
* 'maildomain' - (string) See config/servers.php.
* 'notepadavail' - (boolean) Is listing of notepads available?
- * 'ob' - (string) The serialized Horde_Imap_Client object.
* 'protocol' - (string) Either 'imap' or 'pop'.
* 'rteavail' - (boolean) Is the HTML editor available?
* 'search' - (array) Settings used by the IMP_Search library.
* necessary initialization. */
if ($this->_ob &&
isset($_SESSION['imp']) &&
- !isset($_SESSION['imp']['imap_ob'])) {
+ empty($_SESSION['imp']['imap_ob'])) {
$this->_ob->login();
/* First login may occur on a non-viewable page. However,
$notification->push($alert, 'horde.warning');
}
- $_SESSION['imp']['imap_ob'] = serialize($this->_ob);
+ $_SESSION['imp']['imap_ob'][$_SESSION['imp']['server_key']] = serialize($this->_ob);
}
}
return true;
}
- if (!isset($_SESSION['imp']['imap_ob'])) {
+ if (empty($_SESSION['imp']) ||
+ empty($_SESSION['imp']['imap_ob'][$_SESSION['imp']['server_key']])) {
return false;
}
Horde_Imap_Client::$encryptKey = Horde_Secret::getKey('imp');
$old_error = error_reporting(0);
- $this->_ob = unserialize($_SESSION['imp']['imap_ob']);
+ $this->_ob = unserialize($_SESSION['imp']['imap_ob'][$_SESSION['imp']['server_key']]);
error_reporting($old_error);
if (empty($this->_ob)) {