]> granicus.if.org Git - php/commitdiff
Add constants from curl 7.56 to 7.61
authorPierrick Charron <pierrick@php.net>
Mon, 8 Oct 2018 14:15:20 +0000 (10:15 -0400)
committerPierrick Charron <pierrick@php.net>
Mon, 8 Oct 2018 14:19:35 +0000 (10:19 -0400)
NEWS
UPGRADING
ext/curl/interface.c
ext/curl/tests/check_win_config.phpt

diff --git a/NEWS b/NEWS
index aa4c2864038f60189fe60be2476a870df48f2c91..4be6eb2ca39792879e1bb0e0a770caca42c76355 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,7 +3,7 @@ PHP                                                                        NEWS
 ?? ??? ????, PHP 7.3.0RC3
 
 - CURL:
-  . Expose curl constants from curl 7.50 to 7.55. (Pierrick)
+  . Expose curl constants from curl 7.50 to 7.61. (Pierrick)
 
 - Core:
   . Fixed bug #76846 (Segfault in shutdown function after memory limit error).
index fd915a8b50f9f6331a8ca19944b5e77f60dfc399..bc2a17df924dbfe8d3571034a389373f47d71b4a 100644 (file)
--- a/UPGRADING
+++ b/UPGRADING
@@ -486,20 +486,35 @@ PCRE:
 ========================================
 
 Curl:
+  . CURLAUTH_BEARER
   . CURLAUTH_GSSAPI
   . CURLE_WEIRD_SERVER_REPLY
+  . CURLINFO_APPCONNECT_TIME_T
+  . CURLINFO_CONNECT_TIME_T
   . CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
   . CURLINFO_CONTENT_LENGTH_UPLOAD_T
+  . CURLINFO_FILETIME_T
   . CURLINFO_HTTP_VERSION
+  . CURLINFO_NAMELOOKUP_TIME_T
+  . CURLINFO_PRETRANSFER_TIME_T
   . CURLINFO_PROTOCOL
   . CURLINFO_PROXY_SSL_VERIFYRESULT
+  . CURLINFO_REDIRECT_TIME_T
   . CURLINFO_SCHEME
   . CURLINFO_SIZE_DOWNLOAD_T
   . CURLINFO_SIZE_UPLOAD_T
   . CURLINFO_SPEED_DOWNLOAD_T
   . CURLINFO_SPEED_UPLOAD_T
+  . CURLINFO_STARTTRANSFER_TIME_T
+  . CURLINFO_TOTAL_TIME_T
+  . CURL_LOCK_DATA_CONNECT
+  . CURL_LOCK_DATA_PSL
   . CURL_MAX_READ_SIZE
   . CURLOPT_ABSTRACT_UNIX_SOCKET
+  . CURLOPT_DISALLOW_USERNAME_IN_URL
+  . CURLOPT_DNS_SHUFFLE_ADDRESSES
+  . CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
+  . CURLOPT_HAPROXYPROTOCOL
   . CURLOPT_KEEP_SENDING_ON_ERROR
   . CURLOPT_PRE_PROXY
   . CURLOPT_PROXY_CAINFO
@@ -516,13 +531,18 @@ Curl:
   . CURLOPT_PROXY_SSL_VERIFYHOST
   . CURLOPT_PROXY_SSL_VERIFYPEER
   . CURLOPT_PROXY_SSLVERSION
+  . CURLOPT_PROXY_TLS13_CIPHERS
   . CURLOPT_PROXY_TLSAUTH_PASSWORD
   . CURLOPT_PROXY_TLSAUTH_TYPE
   . CURLOPT_PROXY_TLSAUTH_USERNAME
   . CURLOPT_REQUEST_TARGET
   . CURLOPT_SOCKS5_AUTH
+  . CURLOPT_SSH_COMPRESSION
   . CURLOPT_SUPPRESS_CONNECT_HEADERS
+  . CURLOPT_TIMEVALUE_LARGE
+  . CURLOPT_TLS13_CIPHERS
   . CURLPROXY_HTTPS
+  . CURLSSH_AUTH_GSSAPI
   . CURL_SSLVERSION_MAX_DEFAULT
   . CURL_SSLVERSION_MAX_NONE
   . CURL_SSLVERSION_MAX_TLSv1_0
@@ -530,7 +550,23 @@ Curl:
   . CURL_SSLVERSION_MAX_TLSv1_2
   . CURL_SSLVERSION_MAX_TLSv1_3
   . CURL_SSLVERSION_TLSv1_3
+  . CURL_VERSION_ASYNCHDNS
+  . CURL_VERSION_BROTLI
+  . CURL_VERSION_CONV
+  . CURL_VERSION_DEBUG
+  . CURL_VERSION_GSSAPI
+  . CURL_VERSION_GSSNEGOTIATE
   . CURL_VERSION_HTTPS_PROXY
+  . CURL_VERSION_IDN
+  . CURL_VERSION_KERBEROS5
+  . CURL_VERSION_LARGEFILE
+  . CURL_VERSION_MULTI_SSL
+  . CURL_VERSION_NTLM
+  . CURL_VERSION_NTLM_WB
+  . CURL_VERSION_SPNEGO
+  . CURL_VERSION_SSPI
+  . CURL_VERSION_TLSAUTH_SRP
+  . CURL_VERSION_UNIX_SOCKETS
 
 JSON:
   . JSON_THROW_ON_ERROR
index 4b635899a6e0325d072d27967b5b46141513d7e0..4e6bd0792a1d1e51d1c447bcb8f02f2b1e0e67b6 100644 (file)
@@ -571,6 +571,12 @@ PHP_MINFO_FUNCTION(curl)
 #endif
 #if LIBCURL_VERSION_NUM >= 0x073400 /* 7.52.0 */
                        {"HTTPS_PROXY", CURL_VERSION_HTTPS_PROXY},
+#endif
+#if LIBCURL_VERSION_NUM >= 0x073800 /* 7.56.0 */
+                       {"MULTI_SSL", CURL_VERSION_MULTI_SSL},
+#endif
+#if LIBCURL_VERSION_NUM >= 0x073900 /* 7.57.0 */
+                       {"BROTLI", CURL_VERSION_BROTLI},
 #endif
                        {NULL, 0}
                };
@@ -889,10 +895,19 @@ PHP_MINIT_FUNCTION(curl)
        REGISTER_CURL_CONSTANT(CURL_TIMECOND_NONE);
 
        /* Curl version constants */
+       REGISTER_CURL_CONSTANT(CURL_VERSION_ASYNCHDNS);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_CONV);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_DEBUG);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_GSSNEGOTIATE);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_IDN);
        REGISTER_CURL_CONSTANT(CURL_VERSION_IPV6);
        REGISTER_CURL_CONSTANT(CURL_VERSION_KERBEROS4);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_LARGEFILE);
        REGISTER_CURL_CONSTANT(CURL_VERSION_LIBZ);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_NTLM);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_SPNEGO);
        REGISTER_CURL_CONSTANT(CURL_VERSION_SSL);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_SSPI);
 
        /* Available since 7.10.6 */
        REGISTER_CURL_CONSTANT(CURLOPT_HTTPAUTH);
@@ -1183,6 +1198,7 @@ PHP_MINIT_FUNCTION(curl)
        REGISTER_CURL_CONSTANT(CURLOPT_TLSAUTH_TYPE);
        REGISTER_CURL_CONSTANT(CURLOPT_TLSAUTH_USERNAME);
        REGISTER_CURL_CONSTANT(CURL_TLSAUTH_SRP);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_TLSAUTH_SRP);
 #endif
 
 #if LIBCURL_VERSION_NUM >= 0x071506 /* Available since 7.21.6 */
@@ -1195,6 +1211,7 @@ PHP_MINIT_FUNCTION(curl)
        REGISTER_CURL_CONSTANT(CURLGSSAPI_DELEGATION_FLAG);
        REGISTER_CURL_CONSTANT(CURLGSSAPI_DELEGATION_POLICY_FLAG);
        REGISTER_CURL_CONSTANT(CURLOPT_GSSAPI_DELEGATION);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_NTLM_WB);
 #endif
 
 #if LIBCURL_VERSION_NUM >= 0x071800 /* Available since 7.24.0 */
@@ -1264,6 +1281,7 @@ PHP_MINIT_FUNCTION(curl)
 
 #if LIBCURL_VERSION_NUM >= 0x072600 /* Available since 7.38.0 */
        REGISTER_CURL_CONSTANT(CURLAUTH_NEGOTIATE);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_GSSAPI);
 #endif
 
 #if LIBCURL_VERSION_NUM >= 0x072700 /* Available since 7.39.0 */
@@ -1272,9 +1290,10 @@ PHP_MINIT_FUNCTION(curl)
 
 #if LIBCURL_VERSION_NUM >= 0x072800 /* Available since 7.40.0 */
        REGISTER_CURL_CONSTANT(CURLOPT_UNIX_SOCKET_PATH);
-
        REGISTER_CURL_CONSTANT(CURLPROTO_SMB);
        REGISTER_CURL_CONSTANT(CURLPROTO_SMBS);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_KERBEROS5);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_UNIX_SOCKETS);
 #endif
 
 #if LIBCURL_VERSION_NUM >= 0x072900 /* Available since 7.41.0 */
@@ -1393,6 +1412,46 @@ PHP_MINIT_FUNCTION(curl)
        REGISTER_CURL_CONSTANT(CURLOPT_SOCKS5_AUTH);
 #endif
 
+#if LIBCURL_VERSION_NUM >= 0x073800 /* Available since 7.56.0 */
+       REGISTER_CURL_CONSTANT(CURLOPT_SSH_COMPRESSION);
+       REGISTER_CURL_CONSTANT(CURL_VERSION_MULTI_SSL);
+#endif
+
+#if LIBCURL_VERSION_NUM >= 0x073900 /* Available since 7.57.0 */
+       REGISTER_CURL_CONSTANT(CURL_VERSION_BROTLI);
+       REGISTER_CURL_CONSTANT(CURL_LOCK_DATA_CONNECT);
+#endif
+
+#if LIBCURL_VERSION_NUM >= 0x073a00 /* Available since 7.58.0 */
+       REGISTER_CURL_CONSTANT(CURLSSH_AUTH_GSSAPI);
+#endif
+
+#if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */
+       REGISTER_CURL_CONSTANT(CURLINFO_FILETIME_T);
+       REGISTER_CURL_CONSTANT(CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS);
+       REGISTER_CURL_CONSTANT(CURLOPT_TIMEVALUE_LARGE);
+#endif
+
+#if LIBCURL_VERSION_NUM >= 0x073c00 /* Available since 7.60.0 */
+       REGISTER_CURL_CONSTANT(CURLOPT_DNS_SHUFFLE_ADDRESSES);
+       REGISTER_CURL_CONSTANT(CURLOPT_HAPROXYPROTOCOL);
+#endif
+
+#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */
+       REGISTER_CURL_CONSTANT(CURL_LOCK_DATA_PSL);
+       REGISTER_CURL_CONSTANT(CURLAUTH_BEARER);
+       REGISTER_CURL_CONSTANT(CURLINFO_APPCONNECT_TIME_T);
+       REGISTER_CURL_CONSTANT(CURLINFO_CONNECT_TIME_T);
+       REGISTER_CURL_CONSTANT(CURLINFO_NAMELOOKUP_TIME_T);
+       REGISTER_CURL_CONSTANT(CURLINFO_PRETRANSFER_TIME_T);
+       REGISTER_CURL_CONSTANT(CURLINFO_REDIRECT_TIME_T);
+       REGISTER_CURL_CONSTANT(CURLINFO_STARTTRANSFER_TIME_T);
+       REGISTER_CURL_CONSTANT(CURLINFO_TOTAL_TIME_T);
+       REGISTER_CURL_CONSTANT(CURLOPT_DISALLOW_USERNAME_IN_URL);
+       REGISTER_CURL_CONSTANT(CURLOPT_PROXY_TLS13_CIPHERS);
+       REGISTER_CURL_CONSTANT(CURLOPT_TLS13_CIPHERS);
+#endif
+
        REGISTER_CURL_CONSTANT(CURLOPT_SAFE_UPLOAD);
 
 #ifdef PHP_CURL_NEED_OPENSSL_TSL
@@ -1833,6 +1892,25 @@ PHP_FUNCTION(curl_version)
                }
                CAAZ("protocols", &protocol_list);
        }
+       if (d->age >= 1) {
+               CAAS("ares", d->ares);
+               CAAL("ares_num", d->ares_num);
+       }
+       if (d->age >= 2) {
+               CAAS("libidn", d->libidn);
+       }
+#if LIBCURL_VERSION_NUM >= 0x071001 /* Available since 7.16.1 */
+       if (d->age >= 3) {
+               CAAL("iconv_ver_num", d->iconv_ver_num);
+               CAAS("libssh_version", d->libssh_version);
+       }
+#endif
+#if LIBCURL_VERSION_NUM >= 0x073900 /* Available since 7.57.0 */
+       if (d->age >= 4) {
+               CAAL("brotli_ver_num", d->brotli_ver_num);
+               CAAS("brotli_version", d->brotli_version);
+       }
+#endif
 }
 /* }}} */
 
@@ -2267,7 +2345,19 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
 #if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */
                case CURLOPT_SOCKS5_AUTH:
 #endif
-
+#if LIBCURL_VERSION_NUM >= 0x073800 /* Available since 7.56.0 */
+               case CURLOPT_SSH_COMPRESSION:
+#endif
+#if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */
+               case CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS:
+#endif
+#if LIBCURL_VERSION_NUM >= 0x073c00 /* Available since 7.60.0 */
+               case CURLOPT_DNS_SHUFFLE_ADDRESSES:
+               case CURLOPT_HAPROXYPROTOCOL:
+#endif
+#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */
+               case CURLOPT_DISALLOW_USERNAME_IN_URL:
+#endif
                        lval = zval_get_long(zvalue);
 #if LIBCURL_VERSION_NUM >= 0x071304
                        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) /* {{{
 #endif
 #if LIBCURL_VERSION_NUM >= 0x073700 /* Available since 7.55.0 */
                case CURLOPT_REQUEST_TARGET:
+#endif
+#if LIBCURL_VERSION_NUM >= 0x073d00 /* Available since 7.61.0 */
+               case CURLOPT_PROXY_TLS13_CIPHERS:
+               case CURLOPT_TLS13_CIPHERS:
 #endif
                {
                        zend_string *tmp_str;
@@ -2819,8 +2913,12 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
                        ch->handlers->write->method = PHP_CURL_USER;
                        break;
 
+               /* Curl off_t options */
                case CURLOPT_MAX_RECV_SPEED_LARGE:
                case CURLOPT_MAX_SEND_SPEED_LARGE:
+#if LIBCURL_VERSION_NUM >= 0x073b00 /* Available since 7.59.0 */
+               case CURLOPT_TIMEVALUE_LARGE:
+#endif
                        lval = zval_get_long(zvalue);
                        error = curl_easy_setopt(ch->cp, option, (curl_off_t)lval);
                        break;
@@ -3215,6 +3313,34 @@ PHP_FUNCTION(curl_getinfo)
                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);
+               }
+               if (curl_easy_getinfo(ch->cp, CURLINFO_CONNECT_TIME_T, &co) == CURLE_OK) {
+                       CAAL("connect_time", co);
+               }
+               if (curl_easy_getinfo(ch->cp, CURLINFO_NAMELOOKUP_TIME_T, &co) == CURLE_OK) {
+                       CAAL("namelookup_time", co);
+               }
+               if (curl_easy_getinfo(ch->cp, CURLINFO_PRETRANSFER_TIME_T, &co) == CURLE_OK) {
+                       CAAL("pretransfer_time", co);
+               }
+               if (curl_easy_getinfo(ch->cp, CURLINFO_REDIRECT_TIME_T, &co) == CURLE_OK) {
+                       CAAL("redirect_time", co);
+               }
+               if (curl_easy_getinfo(ch->cp, CURLINFO_STARTTRANSFER_TIME_T, &co) == CURLE_OK) {
+                       CAAL("starttransfer_time", co);
+               }
+               if (curl_easy_getinfo(ch->cp, CURLINFO_TOTAL_TIME_T, &co) == CURLE_OK) {
+                       CAAL("total_time", co);
+               }
 #endif
                if (ch->header.str) {
                        CAASTR("request_header", ch->header.str);
index bd66ef0aa787a8dcc18c24be876383d9ee26f4be..33145a359d9a26bf2988a9c5c090037a56977fe6 100644 (file)
@@ -46,6 +46,8 @@ KERBEROS5 => Yes
 UNIX_SOCKETS => No
 PSL => No
 HTTPS_PROXY => Yes
+MULTI_SSL => %s
+BROTLI => %s
 Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp
 Host => %s-pc-win32
 SSL Version => OpenSSL/%s