From f61fa251d26d1e95aa9693c5d321793508b15c04 Mon Sep 17 00:00:00 2001 From: Carlos C Soto Date: Thu, 21 Mar 2019 21:25:24 -0600 Subject: [PATCH 1/2] Fix CurlClient on default mode verify_peer and default ca_info --- src/Psr18/CurlHandle.php | 7 +++++-- tests/Psr18/CurlClientTest.php | 1 - 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Psr18/CurlHandle.php b/src/Psr18/CurlHandle.php index 669c12df..2e508910 100644 --- a/src/Psr18/CurlHandle.php +++ b/src/Psr18/CurlHandle.php @@ -103,7 +103,7 @@ protected function initCurlOptions():array{ '2.0' => \CURL_HTTP_VERSION_2_0, ]; - return [ + $options = [ \CURLOPT_HEADER => false, \CURLOPT_RETURNTRANSFER => false, \CURLOPT_FOLLOWLOCATION => false, @@ -113,12 +113,15 @@ protected function initCurlOptions():array{ \CURLOPT_PROTOCOLS => \CURLPROTO_HTTP | \CURLPROTO_HTTPS, \CURLOPT_SSL_VERIFYPEER => true, \CURLOPT_SSL_VERIFYHOST => 2, - \CURLOPT_CAINFO => $this->options->ca_info, \CURLOPT_TIMEOUT => 10, \CURLOPT_CONNECTTIMEOUT => 30, \CURLOPT_WRITEFUNCTION => [$this, 'writefunction'], \CURLOPT_HEADERFUNCTION => [$this, 'headerfunction'], ]; + if ($this->options->ca_info) { + $options[\CURLOPT_CAINFO] = $this->options->ca_info; + } + return $options; } /** diff --git a/tests/Psr18/CurlClientTest.php b/tests/Psr18/CurlClientTest.php index 0091febb..c7d6de24 100644 --- a/tests/Psr18/CurlClientTest.php +++ b/tests/Psr18/CurlClientTest.php @@ -18,7 +18,6 @@ class CurlClientTest extends HTTPClientTestAbstract{ protected function setUp():void{ $options = new HTTPOptions([ - 'ca_info' => __DIR__.'/../cacert.pem', 'user_agent' => $this::USER_AGENT, ]); From ac82d51a8d1172ef92d27ea244d649a5d821676d Mon Sep 17 00:00:00 2001 From: Carlos C Soto Date: Thu, 21 Mar 2019 21:26:10 -0600 Subject: [PATCH 2/2] Fix StreamClient on default mode verify_peer and default ca_info --- src/Psr18/StreamClient.php | 4 ++-- tests/Psr18/StreamClientTest.php | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Psr18/StreamClient.php b/src/Psr18/StreamClient.php index 5b3bd308..17a6ffba 100644 --- a/src/Psr18/StreamClient.php +++ b/src/Psr18/StreamClient.php @@ -40,14 +40,14 @@ public function sendRequest(RequestInterface $request):ResponseInterface{ 'max_redirects' => 0, 'timeout' => 5, ], - 'ssl' => [ + 'ssl' => array_filter([ 'cafile' => $this->options->ca_info, 'verify_peer' => $this->options->ssl_verifypeer, 'verify_depth' => 3, 'peer_name' => $uri->getHost(), 'ciphers' => 'HIGH:!SSLv2:!SSLv3', 'disable_compression' => true, - ], + ]), ]); $requestUri = (string)$uri->withFragment(''); diff --git a/tests/Psr18/StreamClientTest.php b/tests/Psr18/StreamClientTest.php index 772169d3..5eb7d5f2 100644 --- a/tests/Psr18/StreamClientTest.php +++ b/tests/Psr18/StreamClientTest.php @@ -18,7 +18,6 @@ class StreamClientTest extends HTTPClientTestAbstract{ protected function setUp():void{ $options = new HTTPOptions([ - 'ca_info' => __DIR__.'/../cacert.pem', 'user_agent' => $this::USER_AGENT, ]);