fix(http): drop deprecated curl_close calls; resolve Proxy destination lazily
PHP 8.5 deprecates curl_close() (no-op since 8.0) and Libs\Proxy fataled on class load because SOURCE_URL was evaluated in a static property initializer. Stamps http with per-component core data for load-verified clients (aria2, proxy, compreFace).
This commit is contained in:
@@ -22,9 +22,25 @@ class Proxy
|
||||
'Location',
|
||||
];
|
||||
public static $proxy_base_url_canonical = '/';
|
||||
public static $destination_host = SOURCE_URL;
|
||||
public static ?string $destination_host = null;
|
||||
protected static $filters = [];
|
||||
|
||||
/**
|
||||
* Host destino efectivo: el asignado explicitamente o la constante
|
||||
* SOURCE_URL del proyecto si existe. Se resuelve tarde para que la
|
||||
* simple carga de la clase no falle sin configuracion.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected static function destinationHost(): string
|
||||
{
|
||||
if (static::$destination_host !== null) {
|
||||
return static::$destination_host;
|
||||
}
|
||||
|
||||
return defined('SOURCE_URL') ? (string) SOURCE_URL : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a callable (AKA filter) that will receive the content
|
||||
* and should return a string.
|
||||
@@ -76,7 +92,7 @@ class Proxy
|
||||
}
|
||||
|
||||
// Generate the final URL
|
||||
$proxy_request_url = static::$destination_host . $proxy_request_uri;
|
||||
$proxy_request_url = static::destinationHost() . $proxy_request_uri;
|
||||
|
||||
// cURL initialization
|
||||
$ch = curl_init();
|
||||
@@ -121,11 +137,10 @@ class Proxy
|
||||
|
||||
// Execute the request
|
||||
$res = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
|
||||
// Parse the response
|
||||
list($headers, $body) = explode("\r\n\r\n", $res, 2);
|
||||
$headers = str_replace(static::$destination_host, '/', $headers);
|
||||
$headers = str_replace(static::destinationHost(), '/', $headers);
|
||||
|
||||
$headers = explode("\r\n", $headers);
|
||||
$hs = [];
|
||||
|
||||
Reference in New Issue
Block a user