From cd67494a9c6f7ca3d9727e87db46249328425ebf Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 06 Jun 2008 05:38:30 -0400
Subject: [PATCH] - TLS support in LDAP connections: 'use_tls' property (#1485104)

---
 CHANGELOG                      |    4 ++++
 program/include/rcube_ldap.php |    4 ++++
 config/main.inc.php.dist       |    1 +
 3 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 7a0ac90..5250cce 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,10 @@
 CHANGELOG RoundCube Webmail
 ---------------------------
 
+2008/06/06 (alec)
+----------
+- TLS support in LDAP connections: 'use_tls' property (#1485104)
+
 2008/06/05 (alec)
 ----------
 - Fix removing messages from search set after deleting them (#1485106)
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index c58f010..5d43c1a 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -247,6 +247,7 @@
  *  'name'          => 'Verisign.com',
  *  'hosts'         => array('directory.verisign.com'),
  *  'port'          => 389,
+ *  'use_tls'	    => false,
  *  'user_specific' => false,   // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login.
  *  // %fu - The full username provided, assumes the username is an email
  *  //       address, uses the username_domain value if not an email address.
diff --git a/program/include/rcube_ldap.php b/program/include/rcube_ldap.php
index c596203..df68f34 100644
--- a/program/include/rcube_ldap.php
+++ b/program/include/rcube_ldap.php
@@ -94,6 +94,10 @@
     {
       if ($lc = @ldap_connect($host, $this->prop['port']))
       {
+	if ($this->prop['use_tls']===true || strtoupper($this->prop['use_tls'])==='TRUE')
+	  if (!ldap_start_tls($lc))
+	    continue;
+
         ldap_set_option($lc, LDAP_OPT_PROTOCOL_VERSION, $this->prop['ldap_version']);
         $this->prop['host'] = $host;
         $this->conn = $lc;

--
Gitblit v1.9.1