[Pkg-owncloud-commits] [owncloud] 300/457: port detection needs to take care of now thrown exceptions when LDAP server is not available

David Prévot taffit at moszumanska.debian.org
Sun Jun 28 20:06:28 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch stable8
in repository owncloud.

commit 6f69fab38407cc40877904ad49a4906527f8f606
Author: Arthur Schiwon <blizzz at owncloud.com>
Date:   Thu Jun 4 16:28:48 2015 +0200

    port detection needs to take care of now thrown exceptions when LDAP server is not available
---
 apps/user_ldap/lib/wizard.php | 34 +++++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 13 deletions(-)

diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php
index 6c39f40..49cbe6d 100644
--- a/apps/user_ldap/lib/wizard.php
+++ b/apps/user_ldap/lib/wizard.php
@@ -31,6 +31,8 @@
 
 namespace OCA\user_ldap\lib;
 
+use OC\ServerNotAvailableException;
+
 class Wizard extends LDAPUtility {
 	static protected $l;
 	protected $access;
@@ -1065,18 +1067,27 @@ class Wizard extends LDAPUtility {
 		$this->ldap->setOption($cr, LDAP_OPT_PROTOCOL_VERSION, 3);
 		$this->ldap->setOption($cr, LDAP_OPT_REFERRALS, 0);
 		$this->ldap->setOption($cr, LDAP_OPT_NETWORK_TIMEOUT, self::LDAP_NW_TIMEOUT);
-		if($tls) {
-			$isTlsWorking = @$this->ldap->startTls($cr);
-			if(!$isTlsWorking) {
-				return false;
+
+		try {
+			if($tls) {
+				$isTlsWorking = @$this->ldap->startTls($cr);
+				if(!$isTlsWorking) {
+					return false;
+				}
 			}
-		}
 
-		\OCP\Util::writeLog('user_ldap', 'Wiz: Attemping to Bind ', \OCP\Util::DEBUG);
-		//interesting part: do the bind!
-		$login = $this->ldap->bind($cr,
-									$this->configuration->ldapAgentName,
-									$this->configuration->ldapAgentPassword);
+			\OCP\Util::writeLog('user_ldap', 'Wiz: Attemping to Bind ', \OCP\Util::DEBUG);
+			//interesting part: do the bind!
+			$login = $this->ldap->bind($cr,
+				$this->configuration->ldapAgentName,
+				$this->configuration->ldapAgentPassword
+			);
+			$errNo = $this->ldap->errno($cr);
+			$error = ldap_error($cr);
+			$this->ldap->unbind($cr);
+		} catch(ServerNotAvailableException $e) {
+			return false;
+		}
 
 		if($login === true) {
 			$this->ldap->unbind($cr);
@@ -1087,9 +1098,6 @@ class Wizard extends LDAPUtility {
 			return true;
 		}
 
-		$errNo = $this->ldap->errno($cr);
-		$error = ldap_error($cr);
-		$this->ldap->unbind($cr);
 		if($errNo === -1 || ($errNo === 2 && $ncc)) {
 			//host, port or TLS wrong
 			return false;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list