Skip to content

Commit 64881a1

Browse files
committed
Add constants from curl 7.56 to 7.61
1 parent d982bbe commit 64881a1

File tree

4 files changed

+167
-3
lines changed

4 files changed

+167
-3
lines changed

NEWS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ PHP NEWS
33
?? ??? ????, PHP 7.3.0RC3
44

55
- CURL:
6-
. Expose curl constants from curl 7.50 to 7.55. (Pierrick)
6+
. Expose curl constants from curl 7.50 to 7.61. (Pierrick)
77

88
- Core:
99
. Fixed bug #76846 (Segfault in shutdown function after memory limit error).

UPGRADING

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,20 +486,35 @@ PCRE:
486486
========================================
487487

488488
Curl:
489+
. CURLAUTH_BEARER
489490
. CURLAUTH_GSSAPI
490491
. CURLE_WEIRD_SERVER_REPLY
492+
. CURLINFO_APPCONNECT_TIME_T
493+
. CURLINFO_CONNECT_TIME_T
491494
. CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
492495
. CURLINFO_CONTENT_LENGTH_UPLOAD_T
496+
. CURLINFO_FILETIME_T
493497
. CURLINFO_HTTP_VERSION
498+
. CURLINFO_NAMELOOKUP_TIME_T
499+
. CURLINFO_PRETRANSFER_TIME_T
494500
. CURLINFO_PROTOCOL
495501
. CURLINFO_PROXY_SSL_VERIFYRESULT
502+
. CURLINFO_REDIRECT_TIME_T
496503
. CURLINFO_SCHEME
497504
. CURLINFO_SIZE_DOWNLOAD_T
498505
. CURLINFO_SIZE_UPLOAD_T
499506
. CURLINFO_SPEED_DOWNLOAD_T
500507
. CURLINFO_SPEED_UPLOAD_T
508+
. CURLINFO_STARTTRANSFER_TIME_T
509+
. CURLINFO_TOTAL_TIME_T
510+
. CURL_LOCK_DATA_CONNECT
511+
. CURL_LOCK_DATA_PSL
501512
. CURL_MAX_READ_SIZE
502513
. CURLOPT_ABSTRACT_UNIX_SOCKET
514+
. CURLOPT_DISALLOW_USERNAME_IN_URL
515+
. CURLOPT_DNS_SHUFFLE_ADDRESSES
516+
. CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
517+
. CURLOPT_HAPROXYPROTOCOL
503518
. CURLOPT_KEEP_SENDING_ON_ERROR
504519
. CURLOPT_PRE_PROXY
505520
. CURLOPT_PROXY_CAINFO
@@ -516,21 +531,42 @@ Curl:
516531
. CURLOPT_PROXY_SSL_VERIFYHOST
517532
. CURLOPT_PROXY_SSL_VERIFYPEER
518533
. CURLOPT_PROXY_SSLVERSION
534+
. CURLOPT_PROXY_TLS13_CIPHERS
519535
. CURLOPT_PROXY_TLSAUTH_PASSWORD
520536
. CURLOPT_PROXY_TLSAUTH_TYPE
521537
. CURLOPT_PROXY_TLSAUTH_USERNAME
522538
. CURLOPT_REQUEST_TARGET
523539
. CURLOPT_SOCKS5_AUTH
540+
. CURLOPT_SSH_COMPRESSION
524541
. CURLOPT_SUPPRESS_CONNECT_HEADERS
542+
. CURLOPT_TIMEVALUE_LARGE
543+
. CURLOPT_TLS13_CIPHERS
525544
. CURLPROXY_HTTPS
545+
. CURLSSH_AUTH_GSSAPI
526546
. CURL_SSLVERSION_MAX_DEFAULT
527547
. CURL_SSLVERSION_MAX_NONE
528548
. CURL_SSLVERSION_MAX_TLSv1_0
529549
. CURL_SSLVERSION_MAX_TLSv1_1
530550
. CURL_SSLVERSION_MAX_TLSv1_2
531551
. CURL_SSLVERSION_MAX_TLSv1_3
532552
. CURL_SSLVERSION_TLSv1_3
553+
. CURL_VERSION_ASYNCHDNS
554+
. CURL_VERSION_BROTLI
555+
. CURL_VERSION_CONV
556+
. CURL_VERSION_DEBUG
557+
. CURL_VERSION_GSSAPI
558+
. CURL_VERSION_GSSNEGOTIATE
533559
. CURL_VERSION_HTTPS_PROXY
560+
. CURL_VERSION_IDN
561+
. CURL_VERSION_KERBEROS5
562+
. CURL_VERSION_LARGEFILE
563+
. CURL_VERSION_MULTI_SSL
564+
. CURL_VERSION_NTLM
565+
. CURL_VERSION_NTLM_WB
566+
. CURL_VERSION_SPNEGO
567+
. CURL_VERSION_SSPI
568+
. CURL_VERSION_TLSAUTH_SRP
569+
. CURL_VERSION_UNIX_SOCKETS
534570

535571
JSON:
536572
. JSON_THROW_ON_ERROR

ext/curl/interface.c

Lines changed: 128 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,12 @@ PHP_MINFO_FUNCTION(curl)
571571
#endif
572572
#if LIBCURL_VERSION_NUM >= 0x073400 /* 7.52.0 */
573573
{"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},
574580
#endif
575581
{NULL, 0}
576582
};
@@ -889,10 +895,19 @@ PHP_MINIT_FUNCTION(curl)
889895
REGISTER_CURL_CONSTANT(CURL_TIMECOND_NONE);
890896

891897
/* 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);
892903
REGISTER_CURL_CONSTANT(CURL_VERSION_IPV6);
893904
REGISTER_CURL_CONSTANT(CURL_VERSION_KERBEROS4);
905+
REGISTER_CURL_CONSTANT(CURL_VERSION_LARGEFILE);
894906
REGISTER_CURL_CONSTANT(CURL_VERSION_LIBZ);
907+
REGISTER_CURL_CONSTANT(CURL_VERSION_NTLM);
908+
REGISTER_CURL_CONSTANT(CURL_VERSION_SPNEGO);
895909
REGISTER_CURL_CONSTANT(CURL_VERSION_SSL);
910+
REGISTER_CURL_CONSTANT(CURL_VERSION_SSPI);
896911

897912
/* Available since 7.10.6 */
898913
REGISTER_CURL_CONSTANT(CURLOPT_HTTPAUTH);
@@ -1183,6 +1198,7 @@ PHP_MINIT_FUNCTION(curl)
11831198
REGISTER_CURL_CONSTANT(CURLOPT_TLSAUTH_TYPE);
11841199
REGISTER_CURL_CONSTANT(CURLOPT_TLSAUTH_USERNAME);
11851200
REGISTER_CURL_CONSTANT(CURL_TLSAUTH_SRP);
1201+
REGISTER_CURL_CONSTANT(CURL_VERSION_TLSAUTH_SRP);
11861202
#endif
11871203

11881204
#if LIBCURL_VERSION_NUM >= 0x071506 /* Available since 7.21.6 */
@@ -1195,6 +1211,7 @@ PHP_MINIT_FUNCTION(curl)
11951211
REGISTER_CURL_CONSTANT(CURLGSSAPI_DELEGATION_FLAG);
11961212
REGISTER_CURL_CONSTANT(CURLGSSAPI_DELEGATION_POLICY_FLAG);
11971213
REGISTER_CURL_CONSTANT(CURLOPT_GSSAPI_DELEGATION);
1214+
REGISTER_CURL_CONSTANT(CURL_VERSION_NTLM_WB);
11981215
#endif
11991216

12001217
#if LIBCURL_VERSION_NUM >= 0x071800 /* Available since 7.24.0 */
@@ -1264,6 +1281,7 @@ PHP_MINIT_FUNCTION(curl)
12641281

12651282
#if LIBCURL_VERSION_NUM >= 0x072600 /* Available since 7.38.0 */
12661283
REGISTER_CURL_CONSTANT(CURLAUTH_NEGOTIATE);
1284+
REGISTER_CURL_CONSTANT(CURL_VERSION_GSSAPI);
12671285
#endif
12681286

12691287
#if LIBCURL_VERSION_NUM >= 0x072700 /* Available since 7.39.0 */
@@ -1272,9 +1290,10 @@ PHP_MINIT_FUNCTION(curl)
12721290

12731291
#if LIBCURL_VERSION_NUM >= 0x072800 /* Available since 7.40.0 */
12741292
REGISTER_CURL_CONSTANT(CURLOPT_UNIX_SOCKET_PATH);
1275-
12761293
REGISTER_CURL_CONSTANT(CURLPROTO_SMB);
12771294
REGISTER_CURL_CONSTANT(CURLPROTO_SMBS);
1295+
REGISTER_CURL_CONSTANT(CURL_VERSION_KERBEROS5);
1296+
REGISTER_CURL_CONSTANT(CURL_VERSION_UNIX_SOCKETS);
12781297
#endif
12791298

12801299
#if LIBCURL_VERSION_NUM >= 0x072900 /* Available since 7.41.0 */
@@ -1393,6 +1412,46 @@ PHP_MINIT_FUNCTION(curl)
13931412
REGISTER_CURL_CONSTANT(CURLOPT_SOCKS5_AUTH);
13941413
#endif
13951414

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+
13961455
REGISTER_CURL_CONSTANT(CURLOPT_SAFE_UPLOAD);
13971456

13981457
#ifdef PHP_CURL_NEED_OPENSSL_TSL
@@ -1833,6 +1892,25 @@ PHP_FUNCTION(curl_version)
18331892
}
18341893
CAAZ("protocols", &protocol_list);
18351894
}
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
18361914
}
18371915
/* }}} */
18381916

@@ -2267,7 +2345,19 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
22672345
#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */
22682346
case CURLOPT_SOCKS5_AUTH:
22692347
#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
22712361
lval = zval_get_long(zvalue);
22722362
#if LIBCURL_VERSION_NUM >= 0x071304
22732363
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) /* {{{
23792469
#endif
23802470
#if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */
23812471
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:
23822476
#endif
23832477
{
23842478
zend_string *tmp_str;
@@ -2819,8 +2913,12 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
28192913
ch->handlers->write->method = PHP_CURL_USER;
28202914
break;
28212915

2916+
/* Curl off_t options */
28222917
case CURLOPT_MAX_RECV_SPEED_LARGE:
28232918
case CURLOPT_MAX_SEND_SPEED_LARGE:
2919+
#if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */
2920+
case CURLOPT_TIMEVALUE_LARGE:
2921+
#endif
28242922
lval = zval_get_long(zvalue);
28252923
error = curl_easy_setopt(ch->cp, option, (curl_off_t)lval);
28262924
break;
@@ -3215,6 +3313,34 @@ PHP_FUNCTION(curl_getinfo)
32153313
if (curl_easy_getinfo(ch->cp, CURLINFO_SPEED_UPLOAD_T, &co) == CURLE_OK) {
32163314
CAAL("speed_upload", co);
32173315
}
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+
}
32183344
#endif
32193345
if (ch->header.str) {
32203346
CAASTR("request_header", ch->header.str);

ext/curl/tests/check_win_config.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ KERBEROS5 => Yes
4646
UNIX_SOCKETS => No
4747
PSL => No
4848
HTTPS_PROXY => Yes
49+
MULTI_SSL => %s
50+
BROTLI => %s
4951
Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp
5052
Host => %s-pc-win32
5153
SSL Version => OpenSSL/%s

0 commit comments

Comments
 (0)