From 55d21e475d7e350d03b46557ca38878c8efb33b1 Mon Sep 17 00:00:00 2001 From: Michael Kaufmann Date: Sun, 6 Oct 2019 18:53:30 +0200 Subject: [PATCH] set low timeout for version-check and output message if check is not possible (due to connection error, downtime of server, etc.) Signed-off-by: Michael Kaufmann --- admin_autoupdate.php | 7 +++++-- lib/Froxlor/Api/Commands/Froxlor.php | 6 +++++- lib/Froxlor/Http/HttpClient.php | 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/admin_autoupdate.php b/admin_autoupdate.php index 8598a5b0..f9978700 100644 --- a/admin_autoupdate.php +++ b/admin_autoupdate.php @@ -43,8 +43,11 @@ if ($page == 'overview') { $log->logAction(\Froxlor\FroxlorLogger::ADM_ACTION, LOG_NOTICE, "checking auto-update"); // check for new version - $latestversion = HttpClient::urlGet(UPDATE_URI); - + try { + $latestversion = HttpClient::urlGet(UPDATE_URI, true, 3); + } catch (\Exception $e) { + \Froxlor\UI\Response::dynamic_error("Version-check currently unavailable, please try again later"); + } $latestversion = explode('|', $latestversion); if (is_array($latestversion) && count($latestversion) >= 1) { diff --git a/lib/Froxlor/Api/Commands/Froxlor.php b/lib/Froxlor/Api/Commands/Froxlor.php index 1e427240..85bf5500 100644 --- a/lib/Froxlor/Api/Commands/Froxlor.php +++ b/lib/Froxlor/Api/Commands/Froxlor.php @@ -39,7 +39,11 @@ class Froxlor extends \Froxlor\Api\ApiCommand $this->logger()->logAction(\Froxlor\FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] checking for updates"); // check for new version - $latestversion = \Froxlor\Http\HttpClient::urlGet(UPDATE_URI); + try { + $latestversion = \Froxlor\Http\HttpClient::urlGet(UPDATE_URI, true, 3); + } catch (\Exception $e) { + $latestversion = \Froxlor\Froxlor::getVersion()."|Version-check currently unavailable, please try again later"; + } $latestversion = explode('|', $latestversion); if (is_array($latestversion) && count($latestversion) >= 1) { diff --git a/lib/Froxlor/Http/HttpClient.php b/lib/Froxlor/Http/HttpClient.php index 6f5acb00..5b0e764a 100644 --- a/lib/Froxlor/Http/HttpClient.php +++ b/lib/Froxlor/Http/HttpClient.php @@ -11,7 +11,7 @@ class HttpClient * * @return array */ - public static function urlGet($url, $follow_location = true) + public static function urlGet($url, $follow_location = true, $timeout = 10) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); @@ -19,6 +19,7 @@ class HttpClient if ($follow_location) { curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); } + curl_setopt($ch, CURLOPT_TIMEOUT, (int)$timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); if ($output === false) {