Merge pull request #212 from hoelzro/master

Fix self-signed certificate issue (issue 698)
This commit is contained in:
Andrew Dolgov 2013-05-29 12:02:54 -07:00
commit 102a36c233
1 changed files with 15 additions and 2 deletions

View File

@ -317,7 +317,12 @@
$fetch_curl_used = true; $fetch_curl_used = true;
if (ini_get("safe_mode") || ini_get("open_basedir")) { if (ini_get("safe_mode") || ini_get("open_basedir")) {
$ch = curl_init(geturl($url)); $new_url = geturl($url);
if (!$new_url) {
// geturl has already populated $fetch_last_error
return false;
}
$ch = curl_init($new_url);
} else { } else {
$ch = curl_init($url); $ch = curl_init($url);
} }
@ -4096,14 +4101,15 @@
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); //CURLOPT_FOLLOWLOCATION Disabled... //curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); //CURLOPT_FOLLOWLOCATION Disabled...
curl_setopt($curl, CURLOPT_TIMEOUT, 60); curl_setopt($curl, CURLOPT_TIMEOUT, 60);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$html = curl_exec($curl); $html = curl_exec($curl);
$status = curl_getinfo($curl); $status = curl_getinfo($curl);
curl_close($curl);
if($status['http_code']!=200){ if($status['http_code']!=200){
if($status['http_code'] == 301 || $status['http_code'] == 302) { if($status['http_code'] == 301 || $status['http_code'] == 302) {
curl_close($curl);
list($header) = explode("\r\n\r\n", $html, 2); list($header) = explode("\r\n\r\n", $html, 2);
$matches = array(); $matches = array();
preg_match("/(Location:|URI:)[^(\n)]*/", $header, $matches); preg_match("/(Location:|URI:)[^(\n)]*/", $header, $matches);
@ -4111,6 +4117,12 @@
$url_parsed = parse_url($url); $url_parsed = parse_url($url);
return (isset($url_parsed))? geturl($url):''; return (isset($url_parsed))? geturl($url):'';
} }
global $fetch_last_error;
$fetch_last_error = curl_errno($curl) . " " . curl_error($curl);
curl_close($curl);
$oline=''; $oline='';
foreach($status as $key=>$eline){$oline.='['.$key.']'.$eline.' ';} foreach($status as $key=>$eline){$oline.='['.$key.']'.$eline.' ';}
$line =$oline." \r\n ".$url."\r\n-----------------\r\n"; $line =$oline." \r\n ".$url."\r\n-----------------\r\n";
@ -4118,6 +4130,7 @@
# fwrite($handle, $line); # fwrite($handle, $line);
return FALSE; return FALSE;
} }
curl_close($curl);
return $url; return $url;
} }