diff --git a/apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php b/apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php index 5a7212a652..3b110ead1e 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 7902ede881..727dff70cb 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); + } + }