From 2a34eb949210a43ab7fd0b2ba41d2b0006c81e48 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 07 Aug 2009 12:22:30 -0400
Subject: [PATCH] Add 'imap_connect' hook (#1485956)

---
 CHANGELOG                      |    2 ++
 program/include/rcube_imap.php |   17 +++++++++++------
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index f96f0aa..dc16c53 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,8 @@
 CHANGELOG RoundCube Webmail
 ===========================
 
+- Added 'imap_connect' hook (#1485956)
+- Fix vcard_attachments plugin (#1486035)
 - Updated PEAR::Auth_SASL to 1.0.3 version
 - Use sequence names only with PostgreSQL (#1486018)
 - Re-designed User Preferences interface 
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index aaa7784..b271245 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -70,6 +70,8 @@
   var $debug_level = 1;
   var $error_code = 0;
   var $options = array('imap' => 'check');
+  
+  private $host, $user, $pass, $port, $ssl;
 
 
   /**
@@ -101,19 +103,22 @@
     // check for Open-SSL support in PHP build
     if ($use_ssl && extension_loaded('openssl'))
       $ICL_SSL = $use_ssl == 'imaps' ? 'ssl' : $use_ssl;
-    else if ($use_ssl)
-      {
+    else if ($use_ssl) {
       raise_error(array('code' => 403, 'type' => 'imap', 'file' => __FILE__,
                         'message' => 'Open SSL not available;'), TRUE, FALSE);
       $port = 143;
-      }
+  }
 
     $ICL_PORT = $port;
     $IMAP_USE_INTERNAL_DATE = false;
+    
+    $data = rcmail::get_instance()->plugins->exec_hook('imap_connect', array('host' => $host, 'user' => $user));
+    if (!empty($data['pass']))
+      $pass = $data['pass'];
 
-    $this->conn = iil_Connect($host, $user, $pass, $this->options);
-    $this->host = $host;
-    $this->user = $user;
+    $this->conn = iil_Connect($data['host'], $data['user'], $pass, $this->options);
+    $this->host = $data['host'];
+    $this->user = $data['user'];
     $this->pass = $pass;
     $this->port = $port;
     $this->ssl = $use_ssl;

--
Gitblit v1.9.1