[Pkg-owncloud-commits] [owncloud] 03/63: LDAP: attempt to connect to backup server again, if main server is not available. Fixes #18701
David Prévot
taffit at moszumanska.debian.org
Tue Dec 22 16:50:45 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch stable8.0
in repository owncloud.
commit e92a0ff0e466edee28a15dd1e8aa9adf99c3ae10
Author: Arthur Schiwon <blizzz at owncloud.com>
Date: Tue Nov 3 17:17:00 2015 +0100
LDAP: attempt to connect to backup server again, if main server is not available. Fixes #18701
---
apps/user_ldap/lib/connection.php | 51 ++++++++++++++++++++++++---------------
1 file changed, 31 insertions(+), 20 deletions(-)
diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php
index 7f7225f..2e9e6e0 100644
--- a/apps/user_ldap/lib/connection.php
+++ b/apps/user_ldap/lib/connection.php
@@ -520,30 +520,41 @@ class Connection extends LDAPUtility {
\OCP\Util::WARN);
}
}
- if(!$this->configuration->ldapOverrideMainServer
- && !$this->getFromCache('overrideMainServer')) {
- $this->doConnect($this->configuration->ldapHost,
- $this->configuration->ldapPort);
- $bindStatus = $this->bind();
- $error = $this->ldap->isResource($this->ldapConnectionRes) ?
- $this->ldap->errno($this->ldapConnectionRes) : -1;
- } else {
- $bindStatus = false;
- $error = null;
+
+ $bindStatus = false;
+ $error = null;
+ try {
+ if (!$this->configuration->ldapOverrideMainServer
+ && !$this->getFromCache('overrideMainServer')
+ ) {
+ $this->doConnect($this->configuration->ldapHost,
+ $this->configuration->ldapPort);
+ $bindStatus = $this->bind();
+ $error = $this->ldap->isResource($this->ldapConnectionRes) ?
+ $this->ldap->errno($this->ldapConnectionRes) : -1;
+ }
+ if($bindStatus === true) {
+ return $bindStatus;
+ }
+ } catch (\OC\ServerNotAvailableException $e) {
+ if(trim($this->configuration->ldapBackupHost) === "") {
+ throw $e;
+ }
}
//if LDAP server is not reachable, try the Backup (Replica!) Server
- if((!$bindStatus && ($error !== 0))
+ if( $error !== 0
|| $this->configuration->ldapOverrideMainServer
- || $this->getFromCache('overrideMainServer')) {
- $this->doConnect($this->configuration->ldapBackupHost,
- $this->configuration->ldapBackupPort);
- $bindStatus = $this->bind();
- if(!$bindStatus && $error === -1) {
- //when bind to backup server succeeded and failed to main server,
- //skip contacting him until next cache refresh
- $this->writeToCache('overrideMainServer', true);
- }
+ || $this->getFromCache('overrideMainServer'))
+ {
+ $this->doConnect($this->configuration->ldapBackupHost,
+ $this->configuration->ldapBackupPort);
+ $bindStatus = $this->bind();
+ if($bindStatus && $error === -1) {
+ //when bind to backup server succeeded and failed to main server,
+ //skip contacting him until next cache refresh
+ $this->writeToCache('overrideMainServer', true);
+ }
}
return $bindStatus;
}
--
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