From 7c7ab4078970040a2a8536e4b3c38ab038ad0006 Mon Sep 17 00:00:00 2001 From: Squidly271 Date: Wed, 11 Sep 2019 21:36:16 -0400 Subject: [PATCH] Switch download routine to be PHP Curl --- .../scripts/PluginAPI.php | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/plugins/dynamix.plugin.manager/scripts/PluginAPI.php b/plugins/dynamix.plugin.manager/scripts/PluginAPI.php index 0ee8e756b..68bac5ea2 100644 --- a/plugins/dynamix.plugin.manager/scripts/PluginAPI.php +++ b/plugins/dynamix.plugin.manager/scripts/PluginAPI.php @@ -13,10 +13,21 @@ $docroot = $docroot ?? $_SERVER['DOCUMENT_ROOT'] ?: '/usr/local/emhttp'; require_once "$docroot/plugins/dynamix.plugin.manager/include/PluginHelpers.php"; -function download_url($url, $path = "", $bg = false, $timeout=45){ - if ( ! strpos($url,"?") ) $url .= "?".time(); - exec("curl --compressed --connect-timeout 15 --max-time $timeout --silent --insecure --location --fail ".($path ? " -o '$path' " : "")." $url ".($bg ? ">/dev/null 2>&1 &" : "2>/dev/null"), $out, $exit_code ); - return ($exit_code === 0 ) ? implode("\n", $out) : false; +function download_url($url, $path = "") { + $ch = curl_init(); + curl_setopt($ch,CURLOPT_URL,$url); + curl_setopt($ch,CURLOPT_FRESH_CONNECT,true); + curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); + curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,15); + curl_setopt($ch,CURLOPT_TIMEOUT,45); + curl_setopt($ch,CURLOPT_ENCODING,""); + curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); + $out = curl_exec($ch); + curl_close($ch); + if ( $path ) + file_put_contents($path,$out); + + return $out ?: false; } $options = $_POST['options']; @@ -50,4 +61,4 @@ if ( strcmp($version,$installedVersion) > 0 ) { echo json_encode(array("updateAvailable" => $update,"version" => $version,"min"=>$min,"changes"=>$changes,"installedVersion"=>$installedVersion)); -?> \ No newline at end of file +?>