From 54854b2e3dcd036ba6a9b22a3ebccde7f287b01c Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@owncloud.com>
Date: Tue, 1 May 2012 12:17:33 +0200
Subject: [PATCH] LDAP: decent behaviour and log message when there is no
 connection to the LDAP server

---
 apps/user_ldap/lib_ldap.php | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/apps/user_ldap/lib_ldap.php b/apps/user_ldap/lib_ldap.php
index 4efcf0c5a0d..55ef44c5d9a 100644
--- a/apps/user_ldap/lib_ldap.php
+++ b/apps/user_ldap/lib_ldap.php
@@ -437,8 +437,14 @@ class OC_LDAP {
 		if(!is_null($attr) && !is_array($attr)) {
 			$attr = array(strtolower($attr));
 		}
-		$sr = ldap_search(self::getConnectionResource(), $base, $filter, $attr);
-		$findings = ldap_get_entries(self::getConnectionResource(), $sr );
+
+		$sr = @ldap_search(self::getConnectionResource(), $base, $filter, $attr);
+		$findings = @ldap_get_entries(self::getConnectionResource(), $sr );
+		// if we're here, probably no connection ressource is returned.
+		// to make ownCloud behave nicely, we simply give back an empty array.
+		if(is_null($findings)) {
+			return array();
+		}
 
 		if(!is_null($attr)) {
 			$selection = array();
@@ -522,6 +528,9 @@ class OC_LDAP {
 		if(!self::$ldapConnectionRes) {
 			self::init();
 		}
+		if(is_null(self::$ldapConnectionRes)) {
+			OCP\Util::writeLog('ldap', 'Connection could not be established', OC_Log::INFO);
+		}
 		return self::$ldapConnectionRes;
 	}
 
-- 
GitLab