summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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);
+ }
+
}