1
0
Fork 0

Prefer the first https:// PEAR mirror; avoid http://.

Fixes #5069
pull/5071/head
Jon Dufresne 2016-03-15 14:14:09 -07:00
parent a363df5087
commit 939955fb2c
1 changed files with 11 additions and 1 deletions

View File

@ -80,8 +80,18 @@ class ChannelReader extends BaseChannelReader
$channelXml->registerXPathNamespace('ns', self::CHANNEL_NS); $channelXml->registerXPathNamespace('ns', self::CHANNEL_NS);
foreach ($supportedVersions as $version) { foreach ($supportedVersions as $version) {
$xpathTest = "ns:servers/ns:primary/ns:rest/ns:baseurl[@type='{$version}']"; $xpathTest = "ns:servers/ns:*/ns:rest/ns:baseurl[@type='{$version}']";
$testResult = $channelXml->xpath($xpathTest); $testResult = $channelXml->xpath($xpathTest);
foreach ($testResult as $result) {
// Choose first https:// option.
$result = (string) $result;
if (preg_match('{^https://}i', $result)) {
return array('version' => $version, 'baseUrl' => $result);
}
}
// Fallback to non-https if it does not exist.
if (count($testResult) > 0) { if (count($testResult) > 0) {
return array('version' => $version, 'baseUrl' => (string) $testResult[0]); return array('version' => $version, 'baseUrl' => (string) $testResult[0]);
} }