From 216c253ad9db873221a343fe23c44c5edfa6477f Mon Sep 17 00:00:00 2001 From: Andrew Ruthven Date: Sat, 20 Jan 2024 15:18:46 +1300 Subject: [PATCH] Set a sane timeout for fetching the current DAViCal version Without this it takes 90 seconds to timeout. --- htdocs/setup.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/htdocs/setup.php b/htdocs/setup.php index ff4f9ffe..39b6c7cf 100644 --- a/htdocs/setup.php +++ b/htdocs/setup.php @@ -267,9 +267,14 @@ function check_davical_version() { if ( ! ini_get('allow_url_fopen') ) return new CheckResult( false, translate("Cannot determine upstream version, because PHP has set “allow_url_fopen” to “FALSE”."), 'dep_warning' ); $url = 'https://www.davical.org/current_davical_version?v='.$c->version_string; - $version_file = @fopen($url, 'r'); + $version_context = stream_context_create( array( + 'http' => array( + 'timeout' => 2.0 + ) + )); + $version_file = @fopen($url, 'r', false, $version_context); if ( ! $version_file ) return new CheckResult( false, translate("Could not retrieve") . " '$url'", 'dep_warning' ); - $current_version = htmlentities( trim(fread( $version_file,12)) ); + $current_version = htmlentities( trim(fread( $version_file, 12)) ); fclose($version_file); $result = new CheckResult($c->version_string == $current_version); if ( ! $result->getOK() ) {