From 49086392c15e3bfe26be148618aee64332158284 Mon Sep 17 00:00:00 2001 From: Tobias Schultze Date: Fri, 1 Jul 2016 16:12:51 +0200 Subject: [PATCH] ignore URI fragment when dereferencing --- src/Handler/CurlFactory.php | 16 +++++++++------- src/Handler/StreamHandler.php | 4 ++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Handler/CurlFactory.php b/src/Handler/CurlFactory.php index 10918991..9f757454 100644 --- a/src/Handler/CurlFactory.php +++ b/src/Handler/CurlFactory.php @@ -194,7 +194,7 @@ class CurlFactory implements CurlFactoryInterface $conf = [ '_headers' => $easy->request->getHeaders(), CURLOPT_CUSTOMREQUEST => $easy->request->getMethod(), - CURLOPT_URL => (string) $easy->request->getUri(), + CURLOPT_URL => (string) $easy->request->getUri()->withFragment(''), CURLOPT_RETURNTRANSFER => false, CURLOPT_HEADER => false, CURLOPT_CONNECTTIMEOUT => 150, @@ -495,12 +495,14 @@ class CurlFactory implements CurlFactoryInterface private function createHeaderFn(EasyHandle $easy) { - if (!isset($easy->options['on_headers'])) { - $onHeaders = null; - } elseif (!is_callable($easy->options['on_headers'])) { - throw new \InvalidArgumentException('on_headers must be callable'); - } else { + if (isset($easy->options['on_headers'])) { $onHeaders = $easy->options['on_headers']; + + if (!is_callable($onHeaders)) { + throw new \InvalidArgumentException('on_headers must be callable'); + } + } else { + $onHeaders = null; } return function ($ch, $h) use ( @@ -512,7 +514,7 @@ class CurlFactory implements CurlFactoryInterface if ($value === '') { $startingResponse = true; $easy->createResponse(); - if ($onHeaders) { + if ($onHeaders !== null) { try { $onHeaders($easy->response); } catch (\Exception $e) { diff --git a/src/Handler/StreamHandler.php b/src/Handler/StreamHandler.php index 08c0723a..644cd217 100644 --- a/src/Handler/StreamHandler.php +++ b/src/Handler/StreamHandler.php @@ -284,7 +284,7 @@ class StreamHandler return $this->createResource( function () use ($request, &$http_response_header, $context) { - $resource = fopen($request->getUri(), 'r', null, $context); + $resource = fopen((string) $request->getUri()->withFragment(''), 'r', null, $context); $this->lastHeaders = $http_response_header; return $resource; } @@ -425,7 +425,7 @@ class StreamHandler 'bytes_transferred', 'bytes_max']; $value = \GuzzleHttp\debug_resource($value); - $ident = $request->getMethod() . ' ' . $request->getUri(); + $ident = $request->getMethod() . ' ' . $request->getUri()->withFragment(''); $this->addNotification( $params, function () use ($ident, $value, $map, $args) {