From 3b4b03d6b342075098d4cdd95bb131a00deed5b8 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Sat, 05 Nov 2011 07:34:53 -0400
Subject: [PATCH] Added config property to set LDAP_OPT_REFERRALS option to an LDAP connection

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

diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index 3782374..896fcbe 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -586,6 +586,7 @@
   'numsub_filter' => '(objectClass=organizationalUnit)',   // with VLV, we also use numSubOrdinates to query the total number of records. Set this filter to get all numSubOrdinates attributes for counting
   'sizelimit'     => '0',     // Enables you to limit the count of entries fetched. Setting this to 0 means no limit.
   'timelimit'     => '0',     // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.
+  'referrals'     => true|false,  // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups
 
   // definition for contact groups (uncomment if no groups are supported)
   // for the groups base_dn, the user replacements %fu, %u, $d and %dc work as for base_dn (see above)
diff --git a/program/include/rcube_ldap.php b/program/include/rcube_ldap.php
index a816325..ab891e3 100644
--- a/program/include/rcube_ldap.php
+++ b/program/include/rcube_ldap.php
@@ -189,6 +189,9 @@
                 ldap_set_option($lc, LDAP_OPT_PROTOCOL_VERSION, $this->prop['ldap_version']);
                 $this->prop['host'] = $host;
                 $this->conn = $lc;
+
+                if (isset($this->prop['referrals']))
+                    ldap_set_option($lc, LDAP_OPT_REFERRALS, $this->prop['referrals']);
                 break;
             }
             $this->_debug("S: NOT OK");

--
Gitblit v1.9.1