Skip to content

Commit

Permalink
Coding Standards: Rename the $process variable to `$processed_respo…
Browse files Browse the repository at this point in the history
…nse` for clarity in `WP_Http_Streams::request()`.

Includes minor code layout fixes for better readability.

Follow-up to [8516], [51826], [51929], [51931].

See #53359.

git-svn-id: https://develop.svn.wordpress.org/trunk@51940 602fd350-edb4-49c9-b593-d223f7449a82
  • Loading branch information
SergeyBiryukov committed Oct 27, 2021
1 parent 9b6c18b commit 28a1ec5
Showing 1 changed file with 72 additions and 23 deletions.
95 changes: 72 additions & 23 deletions src/wp-includes/class-wp-http-streams.php
Expand Up @@ -92,6 +92,7 @@ public function request( $url, $args = array() ) {

$is_local = isset( $parsed_args['local'] ) && $parsed_args['local'];
$ssl_verify = isset( $parsed_args['sslverify'] ) && $parsed_args['sslverify'];

if ( $is_local ) {
/**
* Filters whether SSL should be verified for local HTTP API requests.
Expand Down Expand Up @@ -141,20 +142,48 @@ public function request( $url, $args = array() ) {

if ( $proxy->is_enabled() && $proxy->send_through_proxy( $url ) ) {
// phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
$handle = @stream_socket_client( 'tcp://' . $proxy->host() . ':' . $proxy->port(), $connection_error, $connection_error_str, $connect_timeout, STREAM_CLIENT_CONNECT, $context );
$handle = @stream_socket_client(
'tcp://' . $proxy->host() . ':' . $proxy->port(),
$connection_error,
$connection_error_str,
$connect_timeout,
STREAM_CLIENT_CONNECT,
$context
);
} else {
// phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
$handle = @stream_socket_client( $connect_host . ':' . $parsed_url['port'], $connection_error, $connection_error_str, $connect_timeout, STREAM_CLIENT_CONNECT, $context );
$handle = @stream_socket_client(
$connect_host . ':' . $parsed_url['port'],
$connection_error,
$connection_error_str,
$connect_timeout,
STREAM_CLIENT_CONNECT,
$context
);
}

if ( $secure_transport ) {
error_reporting( $error_reporting );
}
} else {
if ( $proxy->is_enabled() && $proxy->send_through_proxy( $url ) ) {
$handle = stream_socket_client( 'tcp://' . $proxy->host() . ':' . $proxy->port(), $connection_error, $connection_error_str, $connect_timeout, STREAM_CLIENT_CONNECT, $context );
$handle = stream_socket_client(
'tcp://' . $proxy->host() . ':' . $proxy->port(),
$connection_error,
$connection_error_str,
$connect_timeout,
STREAM_CLIENT_CONNECT,
$context
);
} else {
$handle = stream_socket_client( $connect_host . ':' . $parsed_url['port'], $connection_error, $connection_error_str, $connect_timeout, STREAM_CLIENT_CONNECT, $context );
$handle = stream_socket_client(
$connect_host . ':' . $parsed_url['port'],
$connection_error,
$connection_error_str,
$connect_timeout,
STREAM_CLIENT_CONNECT,
$context
);
}
}

Expand Down Expand Up @@ -185,9 +214,9 @@ public function request( $url, $args = array() ) {
$strHeaders = strtoupper( $parsed_args['method'] ) . ' ' . $requestPath . ' HTTP/' . $parsed_args['httpversion'] . "\r\n";

$include_port_in_host_header = (
( $proxy->is_enabled() && $proxy->send_through_proxy( $url ) ) ||
( 'http' === $parsed_url['scheme'] && 80 != $parsed_url['port'] ) ||
( 'https' === $parsed_url['scheme'] && 443 != $parsed_url['port'] )
( $proxy->is_enabled() && $proxy->send_through_proxy( $url ) )
|| ( 'http' === $parsed_url['scheme'] && 80 != $parsed_url['port'] )
|| ( 'https' === $parsed_url['scheme'] && 443 != $parsed_url['port'] )
);

if ( $include_port_in_host_header ) {
Expand Down Expand Up @@ -238,6 +267,7 @@ public function request( $url, $args = array() ) {
$bodyStarted = false;
$keep_reading = true;
$block_size = 4096;

if ( isset( $parsed_args['limit_response_size'] ) ) {
$block_size = min( $block_size, $parsed_args['limit_response_size'] );
}
Expand All @@ -249,6 +279,7 @@ public function request( $url, $args = array() ) {
} else {
$stream_handle = fopen( $parsed_args['filename'], 'w+' );
}

if ( ! $stream_handle ) {
return new WP_Error(
'http_request_failed',
Expand All @@ -262,22 +293,25 @@ public function request( $url, $args = array() ) {
}

$bytes_written = 0;

while ( ! feof( $handle ) && $keep_reading ) {
$block = fread( $handle, $block_size );
if ( ! $bodyStarted ) {
$strResponse .= $block;
if ( strpos( $strResponse, "\r\n\r\n" ) ) {
$process = WP_Http::processResponse( $strResponse );
$bodyStarted = true;
$block = $process['body'];
$processed_response = WP_Http::processResponse( $strResponse );
$bodyStarted = true;
$block = $processed_response['body'];
unset( $strResponse );
$process['body'] = '';
$processed_response['body'] = '';
}
}

$this_block_size = strlen( $block );

if ( isset( $parsed_args['limit_response_size'] ) && ( $bytes_written + $this_block_size ) > $parsed_args['limit_response_size'] ) {
if ( isset( $parsed_args['limit_response_size'] )
&& ( $bytes_written + $this_block_size ) > $parsed_args['limit_response_size']
) {
$this_block_size = ( $parsed_args['limit_response_size'] - $bytes_written );
$block = substr( $block, 0, $this_block_size );
}
Expand All @@ -292,31 +326,41 @@ public function request( $url, $args = array() ) {

$bytes_written += $bytes_written_to_file;

$keep_reading = ! isset( $parsed_args['limit_response_size'] ) || $bytes_written < $parsed_args['limit_response_size'];
$keep_reading = (
! isset( $parsed_args['limit_response_size'] )
|| $bytes_written < $parsed_args['limit_response_size']
);
}

fclose( $stream_handle );

} else {
$header_length = 0;

while ( ! feof( $handle ) && $keep_reading ) {
$block = fread( $handle, $block_size );
$strResponse .= $block;

if ( ! $bodyStarted && strpos( $strResponse, "\r\n\r\n" ) ) {
$header_length = strpos( $strResponse, "\r\n\r\n" ) + 4;
$bodyStarted = true;
}
$keep_reading = ( ! $bodyStarted || ! isset( $parsed_args['limit_response_size'] ) || strlen( $strResponse ) < ( $header_length + $parsed_args['limit_response_size'] ) );

$keep_reading = (
! $bodyStarted
|| ! isset( $parsed_args['limit_response_size'] )
|| strlen( $strResponse ) < ( $header_length + $parsed_args['limit_response_size'] )
);
}

$process = WP_Http::processResponse( $strResponse );
$processed_response = WP_Http::processResponse( $strResponse );
unset( $strResponse );

}

fclose( $handle );

$processed_headers = WP_Http::processHeaders( $process['headers'], $url );
$processed_headers = WP_Http::processHeaders( $processed_response['headers'], $url );

$response = array(
'headers' => $processed_headers['headers'],
Expand All @@ -334,21 +378,26 @@ public function request( $url, $args = array() ) {
}

// If the body was chunk encoded, then decode it.
if ( ! empty( $process['body'] ) && isset( $processed_headers['headers']['transfer-encoding'] )
if ( ! empty( $processed_response['body'] )
&& isset( $processed_headers['headers']['transfer-encoding'] )
&& 'chunked' === $processed_headers['headers']['transfer-encoding']
) {
$process['body'] = WP_Http::chunkTransferDecode( $process['body'] );
$processed_response['body'] = WP_Http::chunkTransferDecode( $processed_response['body'] );
}

if ( true === $parsed_args['decompress'] && true === WP_Http_Encoding::should_decode( $processed_headers['headers'] ) ) {
$process['body'] = WP_Http_Encoding::decompress( $process['body'] );
if ( true === $parsed_args['decompress']
&& true === WP_Http_Encoding::should_decode( $processed_headers['headers'] )
) {
$processed_response['body'] = WP_Http_Encoding::decompress( $processed_response['body'] );
}

if ( isset( $parsed_args['limit_response_size'] ) && strlen( $process['body'] ) > $parsed_args['limit_response_size'] ) {
$process['body'] = substr( $process['body'], 0, $parsed_args['limit_response_size'] );
if ( isset( $parsed_args['limit_response_size'] )
&& strlen( $processed_response['body'] ) > $parsed_args['limit_response_size']
) {
$processed_response['body'] = substr( $processed_response['body'], 0, $parsed_args['limit_response_size'] );
}

$response['body'] = $process['body'];
$response['body'] = $processed_response['body'];

return $response;
}
Expand Down

0 comments on commit 28a1ec5

Please sign in to comment.