Skip to content

Commit

Permalink
Merge pull request #31480 from nextcloud/backport/31426/stable22
Browse files Browse the repository at this point in the history
[stable22] Connectivity check: allow using the protocol in 'connectivity_check_domains'
  • Loading branch information
Julien Veyssier authored Mar 8, 2022
2 parents 6c34d14 + 15d60a0 commit 86a375e
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 8 deletions.
21 changes: 13 additions & 8 deletions apps/settings/lib/Controller/CheckSetupController.php
Original file line number Diff line number Diff line change
Expand Up @@ -179,19 +179,24 @@ private function hasInternetConnectivityProblems(): bool {
}

/**
* Checks if the Nextcloud server can connect to a specific URL using both HTTPS and HTTP
* Checks if the Nextcloud server can connect to a specific URL
* @param string $site site domain or full URL with http/https protocol
* @return bool
*/
private function isSiteReachable($sitename) {
$httpSiteName = 'http://' . $sitename . '/';
$httpsSiteName = 'https://' . $sitename . '/';

private function isSiteReachable(string $site): bool {
try {
$client = $this->clientService->newClient();
$client->get($httpSiteName);
$client->get($httpsSiteName);
// if there is no protocol, test http:// AND https://
if (preg_match('/^https?:\/\//', $site) !== 1) {
$httpSite = 'http://' . $site . '/';
$client->get($httpSite);
$httpsSite = 'https://' . $site . '/';
$client->get($httpsSite);
} else {
$client->get($site);
}
} catch (\Exception $e) {
$this->logger->error('Cannot connect to: ' . $sitename, [
$this->logger->error('Cannot connect to: ' . $site, [
'app' => 'internet_connection_check',
'exception' => $e,
]);
Expand Down
4 changes: 4 additions & 0 deletions config/config.sample.php
Original file line number Diff line number Diff line change
Expand Up @@ -768,6 +768,10 @@
* connection. If none of these hosts are reachable, the administration panel
* will show a warning. Set to an empty list to not do any such checks (warning
* will still be shown).
* If no protocol is provided, both http and https will be tested.
* For example, 'http://www.nextcloud.com' and 'https://www.nextcloud.com'
* will be tested for 'www.nextcloud.com'
* If a protocol is provided, only this one will be tested.
*
* Defaults to the following domains:
*
Expand Down

0 comments on commit 86a375e

Please sign in to comment.