You are here

private function StreamHandler::drain in Lockr 7.3

Drains the source stream into the "sink" client option.

Parameters

StreamInterface $source:

StreamInterface $sink:

string $contentLength Header specifying the amount of: data to read.

Return value

StreamInterface

Throws

\RuntimeException when the sink option is invalid.

1 call to StreamHandler::drain()
StreamHandler::createResponse in vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php

File

vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php, line 201

Class

StreamHandler
HTTP handler that uses PHP's HTTP stream wrapper.

Namespace

GuzzleHttp\Handler

Code

private function drain(StreamInterface $source, StreamInterface $sink, $contentLength) {

  // If a content-length header is provided, then stop reading once
  // that number of bytes has been read. This can prevent infinitely
  // reading from a stream when dealing with servers that do not honor
  // Connection: Close headers.
  Psr7\copy_to_stream($source, $sink, strlen($contentLength) > 0 && (int) $contentLength > 0 ? (int) $contentLength : -1);
  $sink
    ->seek(0);
  $source
    ->close();
  return $sink;
}