Skip to content

Commit 4ba7e5b

Browse files
committed
Merge branch 'PHP-8.0'
* PHP-8.0: Fix curl_copy_handle() with CURLINFO_HEADER_OUT
2 parents 992b5f2 + 416dd52 commit 4ba7e5b

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

Diff for: ext/curl/interface.c

+1
Original file line numberDiff line numberDiff line change
@@ -1914,6 +1914,7 @@ void _php_setup_easy_copy_handlers(php_curl *ch, php_curl *source)
19141914
curl_easy_setopt(ch->cp, CURLOPT_FILE, (void *) ch);
19151915
curl_easy_setopt(ch->cp, CURLOPT_INFILE, (void *) ch);
19161916
curl_easy_setopt(ch->cp, CURLOPT_WRITEHEADER, (void *) ch);
1917+
curl_easy_setopt(ch->cp, CURLOPT_DEBUGDATA, (void *) ch);
19171918

19181919
if (source->handlers.progress) {
19191920
ch->handlers.progress = ecalloc(1, sizeof(php_curl_callback));

Diff for: ext/curl/tests/curl_copy_handle_basic_009.phpt

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
--TEST--
2+
Test curl_copy_handle() with CURLINFO_HEADER_OUT
3+
--EXTENSIONS--
4+
curl
5+
--FILE--
6+
<?php
7+
include 'server.inc';
8+
$host = curl_cli_server_start();
9+
10+
$url = "{$host}/get.inc";
11+
$ch = curl_init($url);
12+
13+
curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
14+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
15+
$ch2 = curl_copy_handle($ch);
16+
echo curl_exec($ch), PHP_EOL;
17+
var_dump(strstr(curl_getinfo($ch, CURLINFO_HEADER_OUT), "\r", true));
18+
unset($ch);
19+
echo curl_exec($ch2), PHP_EOL;
20+
var_dump(strstr(curl_getinfo($ch2, CURLINFO_HEADER_OUT), "\r", true));
21+
22+
?>
23+
--EXPECT--
24+
Hello World!
25+
Hello World!
26+
string(21) "GET /get.inc HTTP/1.1"
27+
Hello World!
28+
Hello World!
29+
string(21) "GET /get.inc HTTP/1.1"

0 commit comments

Comments
 (0)