Insphpect

This tool is currently proof-of-concept. Your feedback and evaluation is valuable in helping to improve it and ensure its reports are meaninful.

Please click here to complete a short survey to tell us what you think. It should take less than 5 minutes and help further this research project!

GuzzleHttp\Handler\EasyHandle

Detected issues

Issue Method Line number

Code

Click highlighted lines for details

<?phpnamespace GuzzleHttp\Handler;use GuzzleHttp\Psr7\Response;use GuzzleHttp\Utils;use Psr\Http\Message\RequestInterface;use Psr\Http\Message\ResponseInterface;use Psr\Http\Message\StreamInterface;/** * Represents a cURL easy handle and the data it populates. * * @internal */final class EasyHandle{    /** @var resource cURL resource */    public $handle;    /** @var StreamInterface Where data is being written */    public $sink;    /** @var array Received HTTP headers so far */    public $headers = [];    /** @var ResponseInterface Received response (if any) */    public $response;    /** @var RequestInterface Request being sent */    public $request;    /** @var array Request options */    public $options = [];    /** @var int cURL error number (if any) */    public $errno = 0;    /** @var \Throwable Exception during on_headers (if any) */    public $onHeadersException;    /**     * Attach a response to the easy handle based on the received headers.     *     * @throws \RuntimeException if no headers have been received.     */    public function createResponse(): void    {        if (empty($this->headers)) {            throw new \RuntimeException('No headers have been received');        }        // HTTP-version SP status-code SP reason-phrase        $startLine = \explode(' ', \array_shift($this->headers), 3);        $headers = Utils::headersFromLines($this->headers);        $normalizedKeys = Utils::normalizeHeaderKeys($headers);        if (!empty($this->options['decode_content'])            && isset($normalizedKeys['content-encoding'])        ) {            $headers['x-encoded-content-encoding']                = $headers[$normalizedKeys['content-encoding']];            unset($headers[$normalizedKeys['content-encoding']]);            if (isset($normalizedKeys['content-length'])) {                $headers['x-encoded-content-length']                    = $headers[$normalizedKeys['content-length']];                $bodyLength = (int) $this->sink->getSize();                if ($bodyLength) {                    $headers[$normalizedKeys['content-length']] = $bodyLength;                } else {                    unset($headers[$normalizedKeys['content-length']]);                }            }        }        // Attach a response to the easy handle with the parsed headers.        $this->response = new Response(            $startLine[1],            $headers,            $this->sink,            \substr($startLine[0], 5),            isset($startLine[2]) ? (string) $startLine[2] : null        );    }    public function __get($name)    {        $msg = $name === 'handle'            ? 'The EasyHandle has been released'            : 'Invalid property: ' . $name;        throw new \BadMethodCallException($msg);    }}