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) {