@@ -568,6 +568,9 @@ PHP_MINFO_FUNCTION(curl)
568
568
#endif
569
569
#if LIBCURL_VERSION_NUM >= 0x072f00 /* 7.47.0 */
570
570
{"PSL" , CURL_VERSION_PSL },
571
+ #endif
572
+ #if LIBCURL_VERSION_NUM >= 0x073400 /* 7.52.0 */
573
+ {"HTTPS_PROXY" , CURL_VERSION_HTTPS_PROXY },
571
574
#endif
572
575
{NULL , 0 }
573
576
};
@@ -1324,8 +1327,70 @@ PHP_MINIT_FUNCTION(curl)
1324
1327
REGISTER_CURL_CONSTANT (CURLOPT_TCP_FASTOPEN );
1325
1328
#endif
1326
1329
1330
+ #if LIBCURL_VERSION_NUM >= 0x073200 /* Available since 7.50.0 */
1331
+ REGISTER_CURL_CONSTANT (CURLINFO_HTTP_VERSION );
1332
+ #endif
1333
+
1334
+ #if LIBCURL_VERSION_NUM >= 0x073300 /* Available since 7.51.0 */
1335
+ REGISTER_CURL_CONSTANT (CURLE_WEIRD_SERVER_REPLY );
1336
+ REGISTER_CURL_CONSTANT (CURLOPT_KEEP_SENDING_ON_ERROR );
1337
+ #endif
1338
+
1339
+ #if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */
1340
+ REGISTER_CURL_CONSTANT (CURL_SSLVERSION_TLSv1_3 );
1341
+ REGISTER_CURL_CONSTANT (CURL_VERSION_HTTPS_PROXY );
1342
+ REGISTER_CURL_CONSTANT (CURLINFO_PROTOCOL );
1343
+ REGISTER_CURL_CONSTANT (CURLINFO_PROXY_SSL_VERIFYRESULT );
1344
+ REGISTER_CURL_CONSTANT (CURLINFO_SCHEME );
1345
+ REGISTER_CURL_CONSTANT (CURLOPT_PRE_PROXY );
1346
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_CAINFO );
1347
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_CAPATH );
1348
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_CRLFILE );
1349
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_KEYPASSWD );
1350
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_PINNEDPUBLICKEY );
1351
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_SSL_CIPHER_LIST );
1352
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_SSL_OPTIONS );
1353
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_SSL_VERIFYHOST );
1354
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_SSL_VERIFYPEER );
1355
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_SSLCERT );
1356
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_SSLCERTTYPE );
1357
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_SSLKEY );
1358
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_SSLKEYTYPE );
1359
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_SSLVERSION );
1360
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_TLSAUTH_PASSWORD );
1361
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_TLSAUTH_TYPE );
1362
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_TLSAUTH_USERNAME );
1363
+ REGISTER_CURL_CONSTANT (CURLPROXY_HTTPS );
1364
+ #endif
1365
+
1366
+ #if LIBCURL_VERSION_NUM >= 0x073500 /* Available since 7.53.0 */
1367
+ REGISTER_CURL_CONSTANT (CURL_MAX_READ_SIZE );
1368
+ REGISTER_CURL_CONSTANT (CURLOPT_ABSTRACT_UNIX_SOCKET );
1369
+ #endif
1370
+
1371
+ #if LIBCURL_VERSION_NUM >= 0x073600 /* Available since 7.54.0 */
1372
+ REGISTER_CURL_CONSTANT (CURL_SSLVERSION_MAX_DEFAULT );
1373
+ REGISTER_CURL_CONSTANT (CURL_SSLVERSION_MAX_NONE );
1374
+ REGISTER_CURL_CONSTANT (CURL_SSLVERSION_MAX_TLSv1_0 );
1375
+ REGISTER_CURL_CONSTANT (CURL_SSLVERSION_MAX_TLSv1_1 );
1376
+ REGISTER_CURL_CONSTANT (CURL_SSLVERSION_MAX_TLSv1_2 );
1377
+ REGISTER_CURL_CONSTANT (CURL_SSLVERSION_MAX_TLSv1_3 );
1378
+ REGISTER_CURL_CONSTANT (CURLOPT_SUPPRESS_CONNECT_HEADERS );
1379
+ #endif
1380
+
1381
+ #if LIBCURL_VERSION_NUM >= 0x073601 /* Available since 7.54.1 */
1382
+ REGISTER_CURL_CONSTANT (CURLAUTH_GSSAPI );
1383
+ #endif
1384
+
1327
1385
#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */
1386
+ REGISTER_CURL_CONSTANT (CURLINFO_CONTENT_LENGTH_DOWNLOAD_T );
1387
+ REGISTER_CURL_CONSTANT (CURLINFO_CONTENT_LENGTH_UPLOAD_T );
1388
+ REGISTER_CURL_CONSTANT (CURLINFO_SIZE_DOWNLOAD_T );
1389
+ REGISTER_CURL_CONSTANT (CURLINFO_SIZE_UPLOAD_T );
1390
+ REGISTER_CURL_CONSTANT (CURLINFO_SPEED_DOWNLOAD_T );
1391
+ REGISTER_CURL_CONSTANT (CURLINFO_SPEED_UPLOAD_T );
1328
1392
REGISTER_CURL_CONSTANT (CURLOPT_REQUEST_TARGET );
1393
+ REGISTER_CURL_CONSTANT (CURLOPT_SOCKS5_AUTH );
1329
1394
#endif
1330
1395
1331
1396
REGISTER_CURL_CONSTANT (CURLOPT_SAFE_UPLOAD );
@@ -2187,6 +2252,22 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
2187
2252
#if LIBCURL_VERSION_NUM >= 0x073100 /* Available since 7.49.0 */
2188
2253
case CURLOPT_TCP_FASTOPEN :
2189
2254
#endif
2255
+ #if LIBCURL_VERSION_NUM >= 0x073300 /* Available since 7.51.0 */
2256
+ case CURLOPT_KEEP_SENDING_ON_ERROR :
2257
+ #endif
2258
+ #if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */
2259
+ case CURLOPT_PROXY_SSL_OPTIONS :
2260
+ case CURLOPT_PROXY_SSL_VERIFYHOST :
2261
+ case CURLOPT_PROXY_SSL_VERIFYPEER :
2262
+ case CURLOPT_PROXY_SSLVERSION :
2263
+ #endif
2264
+ #if LIBCURL_VERSION_NUM >= 0x073600 /* Available since 7.54.0 */
2265
+ case CURLOPT_SUPPRESS_CONNECT_HEADERS :
2266
+ #endif
2267
+ #if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */
2268
+ case CURLOPT_SOCKS5_AUTH :
2269
+ #endif
2270
+
2190
2271
lval = zval_get_long (zvalue );
2191
2272
#if LIBCURL_VERSION_NUM >= 0x071304
2192
2273
if ((option == CURLOPT_PROTOCOLS || option == CURLOPT_REDIR_PROTOCOLS ) &&
@@ -2277,6 +2358,25 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
2277
2358
#if LIBCURL_VERSION_NUM >= 0x072d00 /* Available since 7.45.0 */
2278
2359
case CURLOPT_DEFAULT_PROTOCOL :
2279
2360
#endif
2361
+ #if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */
2362
+ case CURLOPT_PRE_PROXY :
2363
+ case CURLOPT_PROXY_CAINFO :
2364
+ case CURLOPT_PROXY_CAPATH :
2365
+ case CURLOPT_PROXY_CRLFILE :
2366
+ case CURLOPT_PROXY_KEYPASSWD :
2367
+ case CURLOPT_PROXY_PINNEDPUBLICKEY :
2368
+ case CURLOPT_PROXY_SSL_CIPHER_LIST :
2369
+ case CURLOPT_PROXY_SSLCERT :
2370
+ case CURLOPT_PROXY_SSLCERTTYPE :
2371
+ case CURLOPT_PROXY_SSLKEY :
2372
+ case CURLOPT_PROXY_SSLKEYTYPE :
2373
+ case CURLOPT_PROXY_TLSAUTH_PASSWORD :
2374
+ case CURLOPT_PROXY_TLSAUTH_TYPE :
2375
+ case CURLOPT_PROXY_TLSAUTH_USERNAME :
2376
+ #endif
2377
+ #if LIBCURL_VERSION_NUM >= 0x073500 /* Available since 7.53.0 */
2378
+ case CURLOPT_ABSTRACT_UNIX_SOCKET :
2379
+ #endif
2280
2380
#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */
2281
2381
case CURLOPT_REQUEST_TARGET :
2282
2382
#endif
@@ -2976,10 +3076,13 @@ PHP_FUNCTION(curl_getinfo)
2976
3076
long as there's no 32-bit int overflow. */
2977
3077
long l_code ;
2978
3078
double d_code ;
2979
- #if LIBCURL_VERSION_NUM > 0x071301
3079
+ #if LIBCURL_VERSION_NUM > 0x071301 /* 7.19.1 */
2980
3080
struct curl_certinfo * ci = NULL ;
2981
3081
zval listcode ;
2982
3082
#endif
3083
+ #if LIBCURL_VERSION_NUM >= 0x073700 /* 7.55.0 */
3084
+ curl_off_t co ;
3085
+ #endif
2983
3086
2984
3087
array_init (return_value );
2985
3088
@@ -3076,6 +3179,42 @@ PHP_FUNCTION(curl_getinfo)
3076
3179
if (curl_easy_getinfo (ch -> cp , CURLINFO_LOCAL_PORT , & l_code ) == CURLE_OK ) {
3077
3180
CAAL ("local_port" , l_code );
3078
3181
}
3182
+ #endif
3183
+ #if LIBCURL_VERSION_NUM >= 0x073200 /* Available since 7.50.0 */
3184
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_HTTP_VERSION , & l_code ) == CURLE_OK ) {
3185
+ CAAL ("http_version" , l_code );
3186
+ }
3187
+ #endif
3188
+ #if LIBCURL_VERSION_NUM >= 0x073400 /* Available since 7.52.0 */
3189
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_PROTOCOL , & l_code ) == CURLE_OK ) {
3190
+ CAAL ("protocol" , l_code );
3191
+ }
3192
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_PROXY_SSL_VERIFYRESULT , & l_code ) == CURLE_OK ) {
3193
+ CAAL ("ssl_verifyresult" , l_code );
3194
+ }
3195
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_SCHEME , & s_code ) == CURLE_OK ) {
3196
+ CAAS ("scheme" , s_code );
3197
+ }
3198
+ #endif
3199
+ #if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */
3200
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_CONTENT_LENGTH_DOWNLOAD_T , & co ) == CURLE_OK ) {
3201
+ CAAL ("content_length_download" , co );
3202
+ }
3203
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_CONTENT_LENGTH_UPLOAD_T , & co ) == CURLE_OK ) {
3204
+ CAAL ("content_length_upload" , co );
3205
+ }
3206
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_SIZE_DOWNLOAD_T , & co ) == CURLE_OK ) {
3207
+ CAAL ("size_download" , co );
3208
+ }
3209
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_SIZE_UPLOAD_T , & co ) == CURLE_OK ) {
3210
+ CAAL ("size_upload" , co );
3211
+ }
3212
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_SPEED_DOWNLOAD_T , & co ) == CURLE_OK ) {
3213
+ CAAL ("speed_download" , co );
3214
+ }
3215
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_SPEED_UPLOAD_T , & co ) == CURLE_OK ) {
3216
+ CAAL ("speed_upload" , co );
3217
+ }
3079
3218
#endif
3080
3219
if (ch -> header .str ) {
3081
3220
CAASTR ("request_header" , ch -> header .str );
@@ -3153,6 +3292,18 @@ PHP_FUNCTION(curl_getinfo)
3153
3292
}
3154
3293
break ;
3155
3294
}
3295
+ #if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */
3296
+ case CURLINFO_OFF_T :
3297
+ {
3298
+ curl_off_t c_off ;
3299
+ if (curl_easy_getinfo (ch -> cp , option , & c_off ) == CURLE_OK ) {
3300
+ RETURN_LONG ((long ) c_off );
3301
+ } else {
3302
+ RETURN_FALSE ;
3303
+ }
3304
+ break ;
3305
+ }
3306
+ #endif
3156
3307
default :
3157
3308
RETURN_FALSE ;
3158
3309
}
0 commit comments