Bug #77624 [Opn]: curl_getinfo() returns bad or empty entries for responses pushed via HTTP/2
Edit report at https://bugs.php.net/bug.php?id=77624&edit=1
ID: 77624
Updated by: cmb@php.net
Reported by: nicolas dot grekas+php at gmail dot com
Summary: curl_getinfo() returns bad or empty entries for
responses pushed via HTTP/2
Status: Open
Type: Bug
Package: cURL related
PHP Version: 7.3Git-2019-02-15 (Git)
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
When testing against <https://http2.golang.org/serverpush>, I also
get fishy results. There *might* be a bug in curl or maybe
nghttp2, which *might* have been fixed in more recent versions.
I'll need to check.
Previous Comments:
------------------------------------------------------------------------
[2019-02-15 12:19:57] nicolas dot grekas+php at gmail dot com
Description:
------------
When calling curl_getinfo() on a pushed curl handle, the resulting entries return bad timing info,
bad URL, empty primary_ip, etc.
Test script:
---------------
$mh = curl_multi_init();
curl_multi_setopt($mh, CURLMOPT_PUSHFUNCTION, $onPush = function ($p, $c, $h) {
return CURL_PUSH_OK;
});
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://http2-push.io');
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_multi_add_handle($mh, $ch);
do {
while (CURLM_CALL_MULTI_PERFORM === curl_multi_exec($mh, $active));
while ($info = curl_multi_info_read($mh)) {
print_r(curl_getinfo($info['handle']));
}
if (-1 === curl_multi_select($mh)) {
usleep(1000);
}
} while ($active);
Expected result:
----------------
entry "url" should be set to the pushed URL
entry "primary_ip" should be set to the pushing server IP
entry "starttransfer_time" should return plausible value
etc.
Actual result:
--------------
entry "url" is set to the URL of the parent response
entry "primary_ip" is empty
entry "starttransfer_time" is 0.0 or some impossible (more than 1M seconds)
etc.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=77624&edit=1
Thread (3 messages)