config['follow_redirects'] is the extlib's config! if max_redirs is set we want to do our own redirection following in this function

This commit is contained in:
hannes 2016-01-25 19:03:26 +00:00
parent a888294135
commit b1b6a0a69c
1 changed files with 7 additions and 3 deletions

View File

@ -321,10 +321,11 @@ class HTTPClient extends HTTP_Request2
public function send()
{
$maxRedirs = intval($this->config['max_redirs']);
if (empty($this->config['follow_redirects'])) {
if (empty($this->config['max_redirs'])) {
$maxRedirs = 0;
}
$redirs = 0;
$redirUrls = array();
do {
try {
$response = parent::send();
@ -333,9 +334,12 @@ class HTTPClient extends HTTP_Request2
throw $e;
}
$code = $response->getStatus();
$effectiveUrl = $response->getEffectiveUrl();
$redirUrls[] = $effectiveUrl;
$response->redirUrls = $redirUrls;
if ($code >= 200 && $code < 300) {
$reason = $response->getReasonPhrase();
$this->log(LOG_INFO, "$code $reason");
$this->log(LOG_INFO, "$code $reason - Effective URL: ".$response->getEffectiveUrl().' redirect: '.json_encode($response->isRedirect()));
} elseif ($code >= 300 && $code < 400) {
$url = $this->getUrl();
$target = $response->getHeader('Location');
@ -362,4 +366,4 @@ class HTTPClient extends HTTP_Request2
} while ($maxRedirs);
return new GNUsocial_HTTPResponse($response, $this->getUrl(), $redirs);
}
}
}