mirror of
https://github.com/friendica/friendica
synced 2024-12-21 15:04:54 +01:00
fixed it. Twas the infernal 100 continue headers
This commit is contained in:
parent
a266217a6d
commit
d193763aa8
1 changed files with 14 additions and 4 deletions
18
boot.php
18
boot.php
|
@ -354,7 +354,7 @@ function fetch_url($url,$binary = false, &$redirects = 0) {
|
|||
if(($redirects > 8) || (! $ch))
|
||||
return false;
|
||||
|
||||
curl_setopt($ch, CURLOPT_HEADER, false);
|
||||
curl_setopt($ch, CURLOPT_HEADER, true);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
|
||||
|
||||
// by default we will allow self-signed certs
|
||||
|
@ -378,6 +378,11 @@ function fetch_url($url,$binary = false, &$redirects = 0) {
|
|||
|
||||
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
$header = substr($s,0,strpos($s,"\r\n\r\n"));
|
||||
if(stristr($header,'100') && (strlen($header) < 30)) {
|
||||
// 100 Continue has two headers, get the real one
|
||||
$s = substr($s,strlen($header)+4);
|
||||
$header = substr($s,0,strpos($s,"\r\n\r\n"));
|
||||
}
|
||||
if($http_code == 301 || $http_code == 302 || $http_code == 303) {
|
||||
$matches = array();
|
||||
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
|
||||
|
@ -394,7 +399,7 @@ function fetch_url($url,$binary = false, &$redirects = 0) {
|
|||
$a->set_curl_headers($header);
|
||||
|
||||
curl_close($ch);
|
||||
return($s);
|
||||
return($body);
|
||||
}}
|
||||
|
||||
// post request to $url. $params is an array of post variables.
|
||||
|
@ -405,7 +410,7 @@ function post_url($url,$params, &$redirects = 0) {
|
|||
if(($redirects > 8) || (! $ch))
|
||||
return false;
|
||||
|
||||
curl_setopt($ch, CURLOPT_HEADER, false);
|
||||
curl_setopt($ch, CURLOPT_HEADER, true);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
|
||||
curl_setopt($ch, CURLOPT_POST,1);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
|
||||
|
@ -425,6 +430,11 @@ function post_url($url,$params, &$redirects = 0) {
|
|||
|
||||
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
$header = substr($s,0,strpos($s,"\r\n\r\n"));
|
||||
if(stristr($header,'100') && (strlen($header) < 30)) {
|
||||
// 100 Continue has two headers, get the real one
|
||||
$s = substr($s,strlen($header)+4);
|
||||
$header = substr($s,0,strpos($s,"\r\n\r\n"));
|
||||
}
|
||||
if($http_code == 301 || $http_code == 302 || $http_code == 303) {
|
||||
$matches = array();
|
||||
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
|
||||
|
@ -441,7 +451,7 @@ function post_url($url,$params, &$redirects = 0) {
|
|||
$a->set_curl_headers($header);
|
||||
|
||||
curl_close($ch);
|
||||
return($s);
|
||||
return($body);
|
||||
}}
|
||||
|
||||
// random hash, 64 chars
|
||||
|
|
Loading…
Reference in a new issue