summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/lib/connection.php
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2016-04-20 10:42:59 +0200
committerVincent Petry <pvince81@owncloud.com>2016-04-20 10:42:59 +0200
commitaa408deef91521cff20031711ab495ad36b8fdfc (patch)
treef15dce9858314846eacea8ddf33b8663216d4efa /apps/user_ldap/lib/connection.php
parent36c43bad53d97ea0db5ded5c7f4dca0942a51300 (diff)
parent01d12ec74e97d2657baaf3e27b448b763fee1a0f (diff)
downloadnextcloud-server-aa408deef91521cff20031711ab495ad36b8fdfc.tar.gz
nextcloud-server-aa408deef91521cff20031711ab495ad36b8fdfc.zip
Merge pull request #23402 from owncloud/backport-23282-stable8.2
[stable8.2] fix writing to cache when fallback server should be used immediately
Diffstat (limited to 'apps/user_ldap/lib/connection.php')
-rw-r--r--apps/user_ldap/lib/connection.php14
1 files changed, 12 insertions, 2 deletions
diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php
index e0ee4d5780b..2ab1a0fc6c2 100644
--- a/apps/user_ldap/lib/connection.php
+++ b/apps/user_ldap/lib/connection.php
@@ -179,6 +179,16 @@ class Connection extends LDAPUtility {
}
/**
+ * resets the connection resource
+ */
+ public function resetConnectionResource() {
+ if(!is_null($this->ldapConnectionRes)) {
+ @$this->ldap->unbind($this->ldapConnectionRes);
+ $this->ldapConnectionRes = null;
+ }
+ }
+
+ /**
* @param string|null $key
* @return string
*/
@@ -529,7 +539,7 @@ class Connection extends LDAPUtility {
}
$bindStatus = false;
- $error = null;
+ $error = -1;
try {
if (!$this->configuration->ldapOverrideMainServer
&& !$this->getFromCache('overrideMainServer')
@@ -557,7 +567,7 @@ class Connection extends LDAPUtility {
$this->doConnect($this->configuration->ldapBackupHost,
$this->configuration->ldapBackupPort);
$bindStatus = $this->bind();
- if($bindStatus && $error === -1) {
+ if($bindStatus && $error === -1 && !$this->getFromCache('overrideMainServer')) {
//when bind to backup server succeeded and failed to main server,
//skip contacting him until next cache refresh
$this->writeToCache('overrideMainServer', true);