X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fguzzlehttp%2Fguzzle%2Fsrc%2FRedirectMiddleware.php;fp=vendor%2Fguzzlehttp%2Fguzzle%2Fsrc%2FRedirectMiddleware.php;h=131b77179aa07f59ef65ff0945dd51083d58eb0e;hp=5613f6ec0e4a44f5ef081235fdaf6decba1ec017;hb=3f4e21847e67242d3000b01156783f25594f7333;hpb=8acec36f19c470dfcda1ae2336826a782f41874c diff --git a/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php b/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php index 5613f6ec0..131b77179 100644 --- a/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php +++ b/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php @@ -19,6 +19,8 @@ class RedirectMiddleware { const HISTORY_HEADER = 'X-Guzzle-Redirect-History'; + const STATUS_HISTORY_HEADER = 'X-Guzzle-Redirect-Status-History'; + public static $defaultSettings = [ 'max' => 5, 'protocols' => ['http', 'https'], @@ -108,23 +110,27 @@ class RedirectMiddleware if (!empty($options['allow_redirects']['track_redirects'])) { return $this->withTracking( $promise, - (string) $nextRequest->getUri() + (string) $nextRequest->getUri(), + $response->getStatusCode() ); } return $promise; } - private function withTracking(PromiseInterface $promise, $uri) + private function withTracking(PromiseInterface $promise, $uri, $statusCode) { return $promise->then( - function (ResponseInterface $response) use ($uri) { + function (ResponseInterface $response) use ($uri, $statusCode) { // Note that we are pushing to the front of the list as this // would be an earlier response than what is currently present // in the history header. - $header = $response->getHeader(self::HISTORY_HEADER); - array_unshift($header, $uri); - return $response->withHeader(self::HISTORY_HEADER, $header); + $historyHeader = $response->getHeader(self::HISTORY_HEADER); + $statusHeader = $response->getHeader(self::STATUS_HISTORY_HEADER); + array_unshift($historyHeader, $uri); + array_unshift($statusHeader, $statusCode); + return $response->withHeader(self::HISTORY_HEADER, $historyHeader) + ->withHeader(self::STATUS_HISTORY_HEADER, $statusHeader); } ); }