'headline' => array('Package', 'Version'),
);
foreach ($available as $name => $info) {
- $data['data'][] = array($name, $info['stable']);
+ $data['data'][] = array($name, isset($info['stable']) ? $info['stable'] : '-n/a-');
}
if (count($available)==0) {
$data = '(no packages installed yet)';
} else {
$config = &PEAR_Config::singleton();
}
- $proxy_host = $proxy_port = null;
- if ($proxy = $config->get('http_proxy')) {
- $proxy = str_replace('http://', '', $proxy);
- list($proxy_host, $proxy_port) = explode(':', $proxy);
- if (empty($proxy_port)) {
+ $proxy_host = $proxy_port = $proxy_user = $proxy_pass = '';
+ if ($proxy = parse_url($config->get('http_proxy'))) {
+ $proxy_host = @$proxy['host'];
+ $proxy_port = @$proxy['port'];
+ $proxy_user = @$proxy['user'];
+ $proxy_pass = @$proxy['pass'];
+
+ if ($proxy_port == '') {
$proxy_port = 8080;
}
if ($callback) {
if (empty($port)) {
$port = 80;
}
- if ($proxy_host) {
+ if ($proxy_host != '') {
$fp = @fsockopen($proxy_host, $proxy_port, $errno, $errstr);
if (!$fp) {
if ($callback) {
$request = "GET $path HTTP/1.0\r\n";
}
$request .= "Host: $host:$port\r\n".
- "User-Agent: PHP/".PHP_VERSION."\r\n".
- "\r\n";
+ "User-Agent: PHP/".PHP_VERSION."\r\n";
+ if ($proxy_host != '' && $proxy_user != '') {
+ $request .= 'Proxy-Authorization: Basic ' .
+ base64_encode($proxy_user . ':' . $proxy_pass) . "\r\n";
+ }
+ $request .= "\r\n";
fwrite($fp, $request);
$headers = array();
while (trim($line = fgets($fp, 1024))) {
'lastChange' => filemtime($filename),
'content' => unserialize(implode('', file($filename))),
);
+ $proxy_host = $proxy_port = $proxy_user = $proxy_pass = '';
+ if ($proxy = parse_url($this->config->get('http_proxy'))) {
+ $proxy_host = @$proxy['host'];
+ $proxy_port = @$proxy['port'];
+ $proxy_user = @$proxy['user'];
+ $proxy_pass = @$proxy['pass'];
+ }
return $result;
}
} else {
$maxAge = '';
};
- $c = new XML_RPC_Client('/xmlrpc.php'.$maxAge, $server_host, 80);
+ $c = new XML_RPC_Client('/xmlrpc.php'.$maxAge, $server_host, 80, $proxy_host, $proxy_port, $proxy_user, $proxy_pass);
if ($username && $password) {
$c->setCredentials($username, $password);
}