summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Schiessle <bjoern@schiessle.org>2019-01-07 12:15:11 +0100
committerRoeland Jago Douma <roeland@famdouma.nl>2019-03-17 20:39:40 +0100
commit23c57b22cbb52edd5e875ef4ff44ca8ed42f88e3 (patch)
tree56ecf3403896f9db72412c3f6a8f0860bc52e692
parentcec3fd4dcfe04d5cdd359663c21117f70b3a69f6 (diff)
downloadnextcloud-server-23c57b22cbb52edd5e875ef4ff44ca8ed42f88e3.tar.gz
nextcloud-server-23c57b22cbb52edd5e875ef4ff44ca8ed42f88e3.zip
improve lookup server behaviour
Don't try to connect to the lookup server if the lookup server was disabled by the admin or an empty lookup server URL was given Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
-rw-r--r--apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php21
-rw-r--r--apps/lookup_server_connector/lib/UpdateLookupServer.php20
2 files changed, 39 insertions, 2 deletions
diff --git a/apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php b/apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php
index 5a7212a6522..3b110ead1e3 100644
--- a/apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php
+++ b/apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php
@@ -75,7 +75,7 @@ class RetryJob extends Job {
}
protected function run($argument) {
- if ($argument['retryNo'] === 5 || empty($this->lookupServer)) {
+ if ($this->killBackgroundJob((int)$argument['retryNo'])) {
return;
}
@@ -110,4 +110,23 @@ class RetryJob extends Job {
protected function shouldRun($argument) {
return !isset($argument['lastRun']) || ((time() - $argument['lastRun']) > $this->interval);
}
+
+ /**
+ * check if we should kill the background job
+ *
+ * The lookup server should no longer be contacted if:
+ *
+ * - max retries are reached (set to 5)
+ * - lookup server was disabled by the admin
+ * - no valid lookup server URL given
+ *
+ * @param int $retryCount
+ * @return bool
+ */
+ protected function killBackgroundJob($retryCount) {
+ $maxTriesReached = $retryCount >= 5;
+ $lookupServerDisabled = $this->config->getAppValue('files_sharing', 'lookupServerUploadEnabled', 'yes') !== 'yes';
+
+ return $maxTriesReached || $lookupServerDisabled || empty($this->lookupServer);
+ }
}
diff --git a/apps/lookup_server_connector/lib/UpdateLookupServer.php b/apps/lookup_server_connector/lib/UpdateLookupServer.php
index 7902ede8816..727dff70cbb 100644
--- a/apps/lookup_server_connector/lib/UpdateLookupServer.php
+++ b/apps/lookup_server_connector/lib/UpdateLookupServer.php
@@ -46,6 +46,8 @@ class UpdateLookupServer {
private $jobList;
/** @var string URL point to lookup server */
private $lookupServer;
+ /** @var bool */
+ private $lookupServerEnabled;
/**
* @param AccountManager $accountManager
@@ -68,6 +70,8 @@ class UpdateLookupServer {
return;
}
+ $this->lookupServerEnabled = $this->config->getAppValue('files_sharing', 'lookupServerUploadEnabled', 'yes') === 'yes';
+
$this->lookupServer = $config->getSystemValue('lookup_server', 'https://lookup.nextcloud.com');
if(!empty($this->lookupServer)) {
$this->lookupServer = rtrim($this->lookupServer, '/');
@@ -79,7 +83,8 @@ class UpdateLookupServer {
* @param IUser $user
*/
public function userUpdated(IUser $user) {
- if(empty($this->lookupServer)) {
+
+ if (!$this->shouldUpdateLookupServer()) {
return;
}
@@ -150,4 +155,17 @@ class UpdateLookupServer {
);
}
}
+
+ /**
+ * check if we should update the lookup server, we only do it if
+ *
+ * * we have a valid URL
+ * * the lookup server update was enabled by the admin
+ *
+ * @return bool
+ */
+ private function shouldUpdateLookupServer() {
+ return $this->lookupServerEnabled || !empty($this->lookupServer);
+ }
+
}