diff options
-rw-r--r-- | apps/settings/lib/Controller/CheckSetupController.php | 21 | ||||
-rw-r--r-- | config/config.sample.php | 4 |
2 files changed, 17 insertions, 8 deletions
diff --git a/apps/settings/lib/Controller/CheckSetupController.php b/apps/settings/lib/Controller/CheckSetupController.php index b615bfae793..1809a47ff44 100644 --- a/apps/settings/lib/Controller/CheckSetupController.php +++ b/apps/settings/lib/Controller/CheckSetupController.php @@ -198,19 +198,24 @@ class CheckSetupController extends Controller { } /** - * 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, ]); diff --git a/config/config.sample.php b/config/config.sample.php index 32a946ceb51..e66276e8b8d 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -767,6 +767,10 @@ $CONFIG = [ * 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: * |