whoami7 - Manager
:
/
home
/
kckglobal
/
www
/
portal
/
vendor
/
sentry
/
sentry
/
src
/
HttpClient
/
Plugin
/
Upload File:
files >> //home/kckglobal/www/portal/vendor/sentry/sentry/src/HttpClient/Plugin/GzipEncoderPlugin.php
<?php declare(strict_types=1); namespace Sentry\HttpClient\Plugin; use Http\Client\Common\Plugin as PluginInterface; use Http\Promise\Promise as PromiseInterface; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\StreamFactoryInterface; /** * This plugin encodes the request body by compressing it with Gzip. * * @author Stefano Arlandini <sarlandini@alice.it> */ final class GzipEncoderPlugin implements PluginInterface { /** * @var StreamFactoryInterface The PSR-17 stream factory */ private $streamFactory; /** * Constructor. * * @param StreamFactoryInterface $streamFactory The stream factory * * @throws \RuntimeException If the zlib extension is not enabled */ public function __construct(StreamFactoryInterface $streamFactory) { if (!\extension_loaded('zlib')) { throw new \RuntimeException('The "zlib" extension must be enabled to use this plugin.'); } $this->streamFactory = $streamFactory; } /** * {@inheritdoc} */ public function handleRequest(RequestInterface $request, callable $next, callable $first): PromiseInterface { $requestBody = $request->getBody(); if ($requestBody->isSeekable()) { $requestBody->rewind(); } // Instead of using a stream filter we have to compress the whole request // body in one go to work around a PHP bug. See https://github.com/getsentry/sentry-php/pull/877 $encodedBody = gzcompress($requestBody->getContents(), -1, \ZLIB_ENCODING_GZIP); if (false === $encodedBody) { throw new \RuntimeException('Failed to GZIP-encode the request body.'); } $request = $request->withHeader('Content-Encoding', 'gzip'); $request = $request->withBody($this->streamFactory->createStream($encodedBody)); return $next($request); } }
Copyright ©2021 || Defacer Indonesia