@@ -571,6 +571,12 @@ PHP_MINFO_FUNCTION(curl)
571
571
#endif
572
572
#if LIBCURL_VERSION_NUM >= 0x073400 /* 7.52.0 */
573
573
{"HTTPS_PROXY" , CURL_VERSION_HTTPS_PROXY },
574
+ #endif
575
+ #if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */
576
+ {"MULTI_SSL" , CURL_VERSION_MULTI_SSL },
577
+ #endif
578
+ #if LIBCURL_VERSION_NUM >= 0x073900 /* 7.57.0 */
579
+ {"BROTLI" , CURL_VERSION_BROTLI },
574
580
#endif
575
581
{NULL , 0 }
576
582
};
@@ -889,10 +895,19 @@ PHP_MINIT_FUNCTION(curl)
889
895
REGISTER_CURL_CONSTANT (CURL_TIMECOND_NONE );
890
896
891
897
/* Curl version constants */
898
+ REGISTER_CURL_CONSTANT (CURL_VERSION_ASYNCHDNS );
899
+ REGISTER_CURL_CONSTANT (CURL_VERSION_CONV );
900
+ REGISTER_CURL_CONSTANT (CURL_VERSION_DEBUG );
901
+ REGISTER_CURL_CONSTANT (CURL_VERSION_GSSNEGOTIATE );
902
+ REGISTER_CURL_CONSTANT (CURL_VERSION_IDN );
892
903
REGISTER_CURL_CONSTANT (CURL_VERSION_IPV6 );
893
904
REGISTER_CURL_CONSTANT (CURL_VERSION_KERBEROS4 );
905
+ REGISTER_CURL_CONSTANT (CURL_VERSION_LARGEFILE );
894
906
REGISTER_CURL_CONSTANT (CURL_VERSION_LIBZ );
907
+ REGISTER_CURL_CONSTANT (CURL_VERSION_NTLM );
908
+ REGISTER_CURL_CONSTANT (CURL_VERSION_SPNEGO );
895
909
REGISTER_CURL_CONSTANT (CURL_VERSION_SSL );
910
+ REGISTER_CURL_CONSTANT (CURL_VERSION_SSPI );
896
911
897
912
/* Available since 7.10.6 */
898
913
REGISTER_CURL_CONSTANT (CURLOPT_HTTPAUTH );
@@ -1183,6 +1198,7 @@ PHP_MINIT_FUNCTION(curl)
1183
1198
REGISTER_CURL_CONSTANT (CURLOPT_TLSAUTH_TYPE );
1184
1199
REGISTER_CURL_CONSTANT (CURLOPT_TLSAUTH_USERNAME );
1185
1200
REGISTER_CURL_CONSTANT (CURL_TLSAUTH_SRP );
1201
+ REGISTER_CURL_CONSTANT (CURL_VERSION_TLSAUTH_SRP );
1186
1202
#endif
1187
1203
1188
1204
#if LIBCURL_VERSION_NUM >= 0x071506 /* Available since 7.21.6 */
@@ -1195,6 +1211,7 @@ PHP_MINIT_FUNCTION(curl)
1195
1211
REGISTER_CURL_CONSTANT (CURLGSSAPI_DELEGATION_FLAG );
1196
1212
REGISTER_CURL_CONSTANT (CURLGSSAPI_DELEGATION_POLICY_FLAG );
1197
1213
REGISTER_CURL_CONSTANT (CURLOPT_GSSAPI_DELEGATION );
1214
+ REGISTER_CURL_CONSTANT (CURL_VERSION_NTLM_WB );
1198
1215
#endif
1199
1216
1200
1217
#if LIBCURL_VERSION_NUM >= 0x071800 /* Available since 7.24.0 */
@@ -1264,6 +1281,7 @@ PHP_MINIT_FUNCTION(curl)
1264
1281
1265
1282
#if LIBCURL_VERSION_NUM >= 0x072600 /* Available since 7.38.0 */
1266
1283
REGISTER_CURL_CONSTANT (CURLAUTH_NEGOTIATE );
1284
+ REGISTER_CURL_CONSTANT (CURL_VERSION_GSSAPI );
1267
1285
#endif
1268
1286
1269
1287
#if LIBCURL_VERSION_NUM >= 0x072700 /* Available since 7.39.0 */
@@ -1272,9 +1290,10 @@ PHP_MINIT_FUNCTION(curl)
1272
1290
1273
1291
#if LIBCURL_VERSION_NUM >= 0x072800 /* Available since 7.40.0 */
1274
1292
REGISTER_CURL_CONSTANT (CURLOPT_UNIX_SOCKET_PATH );
1275
-
1276
1293
REGISTER_CURL_CONSTANT (CURLPROTO_SMB );
1277
1294
REGISTER_CURL_CONSTANT (CURLPROTO_SMBS );
1295
+ REGISTER_CURL_CONSTANT (CURL_VERSION_KERBEROS5 );
1296
+ REGISTER_CURL_CONSTANT (CURL_VERSION_UNIX_SOCKETS );
1278
1297
#endif
1279
1298
1280
1299
#if LIBCURL_VERSION_NUM >= 0x072900 /* Available since 7.41.0 */
@@ -1393,6 +1412,46 @@ PHP_MINIT_FUNCTION(curl)
1393
1412
REGISTER_CURL_CONSTANT (CURLOPT_SOCKS5_AUTH );
1394
1413
#endif
1395
1414
1415
+ #if LIBCURL_VERSION_NUM >= 0x073800 /* Available since 7.56.0 */
1416
+ REGISTER_CURL_CONSTANT (CURLOPT_SSH_COMPRESSION );
1417
+ REGISTER_CURL_CONSTANT (CURL_VERSION_MULTI_SSL );
1418
+ #endif
1419
+
1420
+ #if LIBCURL_VERSION_NUM >= 0x073900 /* Available since 7.57.0 */
1421
+ REGISTER_CURL_CONSTANT (CURL_VERSION_BROTLI );
1422
+ REGISTER_CURL_CONSTANT (CURL_LOCK_DATA_CONNECT );
1423
+ #endif
1424
+
1425
+ #if LIBCURL_VERSION_NUM >= 0x073a00 /* Available since 7.58.0 */
1426
+ REGISTER_CURL_CONSTANT (CURLSSH_AUTH_GSSAPI );
1427
+ #endif
1428
+
1429
+ #if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */
1430
+ REGISTER_CURL_CONSTANT (CURLINFO_FILETIME_T );
1431
+ REGISTER_CURL_CONSTANT (CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS );
1432
+ REGISTER_CURL_CONSTANT (CURLOPT_TIMEVALUE_LARGE );
1433
+ #endif
1434
+
1435
+ #if LIBCURL_VERSION_NUM >= 0x073c00 /* Available since 7.60.0 */
1436
+ REGISTER_CURL_CONSTANT (CURLOPT_DNS_SHUFFLE_ADDRESSES );
1437
+ REGISTER_CURL_CONSTANT (CURLOPT_HAPROXYPROTOCOL );
1438
+ #endif
1439
+
1440
+ #if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */
1441
+ REGISTER_CURL_CONSTANT (CURL_LOCK_DATA_PSL );
1442
+ REGISTER_CURL_CONSTANT (CURLAUTH_BEARER );
1443
+ REGISTER_CURL_CONSTANT (CURLINFO_APPCONNECT_TIME_T );
1444
+ REGISTER_CURL_CONSTANT (CURLINFO_CONNECT_TIME_T );
1445
+ REGISTER_CURL_CONSTANT (CURLINFO_NAMELOOKUP_TIME_T );
1446
+ REGISTER_CURL_CONSTANT (CURLINFO_PRETRANSFER_TIME_T );
1447
+ REGISTER_CURL_CONSTANT (CURLINFO_REDIRECT_TIME_T );
1448
+ REGISTER_CURL_CONSTANT (CURLINFO_STARTTRANSFER_TIME_T );
1449
+ REGISTER_CURL_CONSTANT (CURLINFO_TOTAL_TIME_T );
1450
+ REGISTER_CURL_CONSTANT (CURLOPT_DISALLOW_USERNAME_IN_URL );
1451
+ REGISTER_CURL_CONSTANT (CURLOPT_PROXY_TLS13_CIPHERS );
1452
+ REGISTER_CURL_CONSTANT (CURLOPT_TLS13_CIPHERS );
1453
+ #endif
1454
+
1396
1455
REGISTER_CURL_CONSTANT (CURLOPT_SAFE_UPLOAD );
1397
1456
1398
1457
#ifdef PHP_CURL_NEED_OPENSSL_TSL
@@ -1833,6 +1892,25 @@ PHP_FUNCTION(curl_version)
1833
1892
}
1834
1893
CAAZ ("protocols" , & protocol_list );
1835
1894
}
1895
+ if (d -> age >= 1 ) {
1896
+ CAAS ("ares" , d -> ares );
1897
+ CAAL ("ares_num" , d -> ares_num );
1898
+ }
1899
+ if (d -> age >= 2 ) {
1900
+ CAAS ("libidn" , d -> libidn );
1901
+ }
1902
+ #if LIBCURL_VERSION_NUM >= 0x071001 /* Available since 7.16.1 */
1903
+ if (d -> age >= 3 ) {
1904
+ CAAL ("iconv_ver_num" , d -> iconv_ver_num );
1905
+ CAAS ("libssh_version" , d -> libssh_version );
1906
+ }
1907
+ #endif
1908
+ #if LIBCURL_VERSION_NUM >= 0x073900 /* Available since 7.57.0 */
1909
+ if (d -> age >= 4 ) {
1910
+ CAAL ("brotli_ver_num" , d -> brotli_ver_num );
1911
+ CAAS ("brotli_version" , d -> brotli_version );
1912
+ }
1913
+ #endif
1836
1914
}
1837
1915
/* }}} */
1838
1916
@@ -2267,7 +2345,19 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
2267
2345
#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */
2268
2346
case CURLOPT_SOCKS5_AUTH :
2269
2347
#endif
2270
-
2348
+ #if LIBCURL_VERSION_NUM >= 0x073800 /* Available since 7.56.0 */
2349
+ case CURLOPT_SSH_COMPRESSION :
2350
+ #endif
2351
+ #if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */
2352
+ case CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS :
2353
+ #endif
2354
+ #if LIBCURL_VERSION_NUM >= 0x073c00 /* Available since 7.60.0 */
2355
+ case CURLOPT_DNS_SHUFFLE_ADDRESSES :
2356
+ case CURLOPT_HAPROXYPROTOCOL :
2357
+ #endif
2358
+ #if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */
2359
+ case CURLOPT_DISALLOW_USERNAME_IN_URL :
2360
+ #endif
2271
2361
lval = zval_get_long (zvalue );
2272
2362
#if LIBCURL_VERSION_NUM >= 0x071304
2273
2363
if ((option == CURLOPT_PROTOCOLS || option == CURLOPT_REDIR_PROTOCOLS ) &&
@@ -2379,6 +2469,10 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
2379
2469
#endif
2380
2470
#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */
2381
2471
case CURLOPT_REQUEST_TARGET :
2472
+ #endif
2473
+ #if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */
2474
+ case CURLOPT_PROXY_TLS13_CIPHERS :
2475
+ case CURLOPT_TLS13_CIPHERS :
2382
2476
#endif
2383
2477
{
2384
2478
zend_string * tmp_str ;
@@ -2819,8 +2913,12 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
2819
2913
ch -> handlers -> write -> method = PHP_CURL_USER ;
2820
2914
break ;
2821
2915
2916
+ /* Curl off_t options */
2822
2917
case CURLOPT_MAX_RECV_SPEED_LARGE :
2823
2918
case CURLOPT_MAX_SEND_SPEED_LARGE :
2919
+ #if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */
2920
+ case CURLOPT_TIMEVALUE_LARGE :
2921
+ #endif
2824
2922
lval = zval_get_long (zvalue );
2825
2923
error = curl_easy_setopt (ch -> cp , option , (curl_off_t )lval );
2826
2924
break ;
@@ -3215,6 +3313,34 @@ PHP_FUNCTION(curl_getinfo)
3215
3313
if (curl_easy_getinfo (ch -> cp , CURLINFO_SPEED_UPLOAD_T , & co ) == CURLE_OK ) {
3216
3314
CAAL ("speed_upload" , co );
3217
3315
}
3316
+ #endif
3317
+ #if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */
3318
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_FILETIME_T , & co ) == CURLE_OK ) {
3319
+ CAAL ("filetime" , co );
3320
+ }
3321
+ #endif
3322
+ #if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */
3323
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_APPCONNECT_TIME_T , & co ) == CURLE_OK ) {
3324
+ CAAL ("appconnect_time" , co );
3325
+ }
3326
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_CONNECT_TIME_T , & co ) == CURLE_OK ) {
3327
+ CAAL ("connect_time" , co );
3328
+ }
3329
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_NAMELOOKUP_TIME_T , & co ) == CURLE_OK ) {
3330
+ CAAL ("namelookup_time" , co );
3331
+ }
3332
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_PRETRANSFER_TIME_T , & co ) == CURLE_OK ) {
3333
+ CAAL ("pretransfer_time" , co );
3334
+ }
3335
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_REDIRECT_TIME_T , & co ) == CURLE_OK ) {
3336
+ CAAL ("redirect_time" , co );
3337
+ }
3338
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_STARTTRANSFER_TIME_T , & co ) == CURLE_OK ) {
3339
+ CAAL ("starttransfer_time" , co );
3340
+ }
3341
+ if (curl_easy_getinfo (ch -> cp , CURLINFO_TOTAL_TIME_T , & co ) == CURLE_OK ) {
3342
+ CAAL ("total_time" , co );
3343
+ }
3218
3344
#endif
3219
3345
if (ch -> header .str ) {
3220
3346
CAASTR ("request_header" , ch -> header .str );
0 commit comments