From b3a6ca90af54482e88f714ef1062c84d36322167 Mon Sep 17 00:00:00 2001 From: Pierrick Charron Date: Sat, 8 Dec 2018 15:09:43 -0500 Subject: [PATCH] Fix 77264: curl_getinfo returning microseconds, not seconds Since curl 7.55.0, libcurl introduced new constants to return more sensible variable types with curl_getinfo. When curl_getinfo with no option was called, and curl >= 7.55.0, some of the result were returned as int when they where returned as float in previous versions. This commit remove this BC Break. If someone still want to use more sensible variable types, it's always possible to call curl_getinfo with newer constants. CURLINFO_CONTENT_LENGTH_DOWNLOAD => CURLINFO_CONTENT_LENGTH_DOWNLOAD_T CURLINFO_CONTENT_LENGTH_UPLOAD => CURLINFO_CONTENT_LENGTH_UPLOAD_T CURLINFO_SIZE_DOWNLOAD => CURLINFO_SIZE_DOWNLOAD_T CURLINFO_SIZE_UPLOAD => CURLINFO_SIZE_UPLOAD_T CURLINFO_SPEED_DOWNLOAD => CURLINFO_SPEED_DOWNLOAD_T CURLINFO_SPEED_UPLOAD => CURLINFO_SPEED_UPLOAD_T CURLINFO_APPCONNECT_TIME => CURLINFO_APPCONNECT_TIME_T CURLINFO_CONNECT_TIME => CURLINFO_CONNECT_TIME_T CURLINFO_NAMELOOKUP_TIME => CURLINFO_NAMELOOKUP_TIME_T CURLINFO_PRETRANSFER_TIME => CURLINFO_PRETRANSFER_TIME_T CURLINFO_REDIRECT_TIME => CURLINFO_REDIRECT_TIME_T CURLINFO_STARTTRANSFER_TIME => CURLINFO_STARTTRANSFER_TIME_T CURLINFO_TOTAL_TIME => CURLINFO_TOTAL_TIME_T --- NEWS | 4 ++++ ext/curl/interface.c | 39 +++++++-------------------------------- 2 files changed, 11 insertions(+), 32 deletions(-) diff --git a/NEWS b/NEWS index 34c1fbba501..f274e621bff 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,10 @@ PHP NEWS . Fixed bug #76046 (PHP generates "FE_FREE" opcode on the wrong line). (Nikita) +- CURL: + . Fixed bug #77264 (curl_getinfo returning microseconds, not seconds). + (Pierrick) + - COM: . Fixed bug #77177 (Serializing or unserializing COM objects crashes). (cmb) diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 4e6bd0792a1..ef0eee95785 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -3294,52 +3294,27 @@ PHP_FUNCTION(curl_getinfo) CAAS("scheme", s_code); } #endif -#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */ - if (curl_easy_getinfo(ch->cp, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, &co) == CURLE_OK) { - CAAL("content_length_download", co); - } - if (curl_easy_getinfo(ch->cp, CURLINFO_CONTENT_LENGTH_UPLOAD_T, &co) == CURLE_OK) { - CAAL("content_length_upload", co); - } - if (curl_easy_getinfo(ch->cp, CURLINFO_SIZE_DOWNLOAD_T, &co) == CURLE_OK) { - CAAL("size_download", co); - } - if (curl_easy_getinfo(ch->cp, CURLINFO_SIZE_UPLOAD_T, &co) == CURLE_OK) { - CAAL("size_upload", co); - } - if (curl_easy_getinfo(ch->cp, CURLINFO_SPEED_DOWNLOAD_T, &co) == CURLE_OK) { - CAAL("speed_download", co); - } - if (curl_easy_getinfo(ch->cp, CURLINFO_SPEED_UPLOAD_T, &co) == CURLE_OK) { - CAAL("speed_upload", co); - } -#endif -#if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */ - if (curl_easy_getinfo(ch->cp, CURLINFO_FILETIME_T, &co) == CURLE_OK) { - CAAL("filetime", co); - } -#endif #if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */ if (curl_easy_getinfo(ch->cp, CURLINFO_APPCONNECT_TIME_T, &co) == CURLE_OK) { - CAAL("appconnect_time", co); + CAAL("appconnect_time_us", co); } if (curl_easy_getinfo(ch->cp, CURLINFO_CONNECT_TIME_T, &co) == CURLE_OK) { - CAAL("connect_time", co); + CAAL("connect_time_us", co); } if (curl_easy_getinfo(ch->cp, CURLINFO_NAMELOOKUP_TIME_T, &co) == CURLE_OK) { - CAAL("namelookup_time", co); + CAAL("namelookup_time_us", co); } if (curl_easy_getinfo(ch->cp, CURLINFO_PRETRANSFER_TIME_T, &co) == CURLE_OK) { - CAAL("pretransfer_time", co); + CAAL("pretransfer_time_us", co); } if (curl_easy_getinfo(ch->cp, CURLINFO_REDIRECT_TIME_T, &co) == CURLE_OK) { - CAAL("redirect_time", co); + CAAL("redirect_time_us", co); } if (curl_easy_getinfo(ch->cp, CURLINFO_STARTTRANSFER_TIME_T, &co) == CURLE_OK) { - CAAL("starttransfer_time", co); + CAAL("starttransfer_time_us", co); } if (curl_easy_getinfo(ch->cp, CURLINFO_TOTAL_TIME_T, &co) == CURLE_OK) { - CAAL("total_time", co); + CAAL("total_time_us", co); } #endif if (ch->header.str) {