Si un servidor esta en un grupo de servidores sin acceso a internet directamente el curl no funciona en las páginas de admin_home y updater, la función curl_get_contents debe considerar funciones de proxy a traves de un parámetro de configuracion
private function curl_get_contents($url)
{
if( function_exists('curl_init') )
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$data = curl_exec($ch);
$info = curl_getinfo($ch);
if($info['http_code'] == 301 OR $info['http_code'] == 302)
{
$redirs = 0;
return $this->curl_redirect_exec($ch, $redirs);
}
else
{
curl_close($ch);
return $data;
}
}
else
return file_get_contents($url);
}
Debería tener una opción para configurar un proxy y el puerto a conectar
private function curl_get_contents($url)
{
if( function_exists('curl_init') )
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
if(!empty(FS_HTTP_PROXY)){
curl_setopt($ch, CURLOPT_PROXYPORT, FS_HTTP_PROXY_PORT);
curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($ch, CURLOPT_PROXY, FS_HTTP_PROXY_HOST);
}
$data = curl_exec($ch);
$info = curl_getinfo($ch);
if($info['http_code'] == 301 OR $info['http_code'] == 302)
{
$redirs = 0;
return $this->curl_redirect_exec($ch, $redirs);
}
else
{
curl_close($ch);
return $data;
}
}
else
return file_get_contents($url);
}
Con esto garantizamos que siempre podrá conectar a actualizar en caso de que un servidor este detras de un proxy manual o de tipo pac.