WP_Http_Curl::stream_body()privateWP 3.6.0

Grabs the body of the cURL request.

The contents of the document are passed in chunks, and are appended to the $body property for temporary storage. Returning a length shorter than the length of $data passed in will cause cURL to abort the request with CURLE_WRITE_ERROR.

Method of the class: WP_Http_Curl{}

No Hooks.

Return

Int. Total bytes of data written.

Usage

// private - for code of main (parent) class only
$result = $this->stream_body( $handle, $data );
$handle(resource) (required)
cURL handle.
$data(string) (required)
cURL request body.

Changelog

Since 3.6.0 Introduced.

WP_Http_Curl::stream_body() code WP 6.5.2

private function stream_body( $handle, $data ) {
	$data_length = strlen( $data );

	if ( $this->max_body_length && ( $this->bytes_written_total + $data_length ) > $this->max_body_length ) {
		$data_length = ( $this->max_body_length - $this->bytes_written_total );
		$data        = substr( $data, 0, $data_length );
	}

	if ( $this->stream_handle ) {
		$bytes_written = fwrite( $this->stream_handle, $data );
	} else {
		$this->body   .= $data;
		$bytes_written = $data_length;
	}

	$this->bytes_written_total += $bytes_written;

	// Upon event of this function returning less than strlen( $data ) curl will error with CURLE_WRITE_ERROR.
	return $bytes_written;
}