From e7e79470e425c75495a846435b43350f0b793bb7 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Mon, 19 Sep 2011 08:34:01 -0400
Subject: [PATCH] - Allow setting connection options in imap_connect hook

---
 program/include/rcube_imap.php         |    5 +++--
 program/include/rcmail.php             |    2 +-
 program/include/rcube_imap_generic.php |    4 ++--
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 3cc2774..ca62fa2 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -615,7 +615,7 @@
     // Setting root and delimiter before establishing the connection
     // can save time detecting them using NAMESPACE and LIST
     $options = array(
-      'auth_method' => $this->config->get('imap_auth_type', 'check'),
+      'auth_type'   => $this->config->get('imap_auth_type', 'check'),
       'auth_cid'    => $this->config->get('imap_auth_cid'),
       'auth_pw'     => $this->config->get('imap_auth_pw'),
       'debug'       => (bool) $this->config->get('imap_debug', 0),
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index e9dafbf..f95f7ce 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -176,12 +176,13 @@
         $attempt = 0;
         do {
             $data = rcmail::get_instance()->plugins->exec_hook('imap_connect',
-                array('host' => $host, 'user' => $user, 'attempt' => ++$attempt));
+                array_merge($this->options, array('host' => $host, 'user' => $user,
+                    'attempt' => ++$attempt)));
 
             if (!empty($data['pass']))
                 $pass = $data['pass'];
 
-            $this->conn->connect($data['host'], $data['user'], $pass, $this->options);
+            $this->conn->connect($data['host'], $data['user'], $pass, $data);
         } while(!$this->conn->connected() && $data['retry']);
 
         $this->host = $data['host'];
diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php
index 55eb8fa..8b99da4 100644
--- a/program/include/rcube_imap_generic.php
+++ b/program/include/rcube_imap_generic.php
@@ -672,8 +672,8 @@
             $this->prefs = $options;
         }
         // set auth method
-        if (!empty($this->prefs['auth_method'])) {
-            $auth_method = strtoupper($this->prefs['auth_method']);
+        if (!empty($this->prefs['auth_type'])) {
+            $auth_method = strtoupper($this->prefs['auth_type']);
         } else {
             $auth_method = 'CHECK';
         }

--
Gitblit v1.9.1