HTTP API: Restore backwards compatibility with the `http_api_curl` filter - it expects that the handle parameter is passed as a reference, however [39212] missed that.

Props pento.
Merges [40068] to the 4.7 branch.
Fixes #39783.


git-svn-id: https://develop.svn.wordpress.org/branches/4.7@40069 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Dion Hulse 2017-02-17 05:06:23 +00:00
parent 51887464fe
commit 7759f06d5f
2 changed files with 16 additions and 1 deletions

View File

@ -54,7 +54,7 @@ class WP_HTTP_Requests_Hooks extends Requests_Hooks {
switch ( $hook ) {
case 'curl.before_send':
/** This action is documented in wp-includes/class-wp-http-curl.php */
do_action_ref_array( 'http_api_curl', array( $parameters[0], $this->request, $this->url ) );
do_action_ref_array( 'http_api_curl', array( &$parameters[0], $this->request, $this->url ) );
break;
}

View File

@ -8,4 +8,19 @@ require_once dirname( __FILE__ ) . '/base.php';
*/
class Tests_HTTP_curl extends WP_HTTP_UnitTestCase {
var $transport = 'curl';
/**
* @ticket 39783
*/
public function test_http_api_curl_stream_parameter_is_a_reference() {
add_action( 'http_api_curl', array( $this, '_action_test_http_api_curl_stream_parameter_is_a_reference' ), 10, 3 );
wp_remote_request( $this->fileStreamUrl, array( 'stream' => true, 'timeout' => 30 ) );
remove_action( 'http_api_curl', array( $this, '_action_test_http_api_curl_stream_parameter_is_a_reference' ), 10 );
}
public function _action_test_http_api_curl_stream_parameter_is_a_reference( &$stream, $r, $url ) {
// $stream not being a reference will cause a PHP warning.
// For counting tests purposes, let's do a fake assert.
$this->assertTrue( true );
}
}