From e2b4c0b70c102cd19f3a0e2099bb9ccdcc1076b1 Mon Sep 17 00:00:00 2001 From: Rob Hoelz Date: Wed, 29 May 2013 20:50:27 +0200 Subject: [PATCH 1/2] Pass error code along if geturl fails --- include/functions.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/include/functions.php b/include/functions.php index bad01eb96..2b7f9ac59 100644 --- a/include/functions.php +++ b/include/functions.php @@ -317,7 +317,12 @@ $fetch_curl_used = true; 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 { $ch = curl_init($url); } @@ -4100,10 +4105,10 @@ $html = curl_exec($curl); $status = curl_getinfo($curl); - curl_close($curl); if($status['http_code']!=200){ if($status['http_code'] == 301 || $status['http_code'] == 302) { + curl_close($curl); list($header) = explode("\r\n\r\n", $html, 2); $matches = array(); preg_match("/(Location:|URI:)[^(\n)]*/", $header, $matches); @@ -4111,6 +4116,12 @@ $url_parsed = parse_url($url); return (isset($url_parsed))? geturl($url):''; } + + global $fetch_last_error; + + $fetch_last_error = curl_errno($curl) . " " . curl_error($curl); + curl_close($curl); + $oline=''; foreach($status as $key=>$eline){$oline.='['.$key.']'.$eline.' ';} $line =$oline." \r\n ".$url."\r\n-----------------\r\n"; @@ -4118,6 +4129,7 @@ # fwrite($handle, $line); return FALSE; } + curl_close($curl); return $url; } From 40a35a628dffe559df0da8abae2ae09808011d53 Mon Sep 17 00:00:00 2001 From: Rob Hoelz Date: Wed, 29 May 2013 20:55:22 +0200 Subject: [PATCH 2/2] Don't verify SSL peers in geturl --- include/functions.php | 1 + 1 file changed, 1 insertion(+) diff --git a/include/functions.php b/include/functions.php index 2b7f9ac59..8dc109f99 100644 --- a/include/functions.php +++ b/include/functions.php @@ -4101,6 +4101,7 @@ curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); //CURLOPT_FOLLOWLOCATION Disabled... curl_setopt($curl, CURLOPT_TIMEOUT, 60); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $html = curl_exec($curl);