Skip to content

Commit 2b3dace

Browse files
committed
Bump required libcurl version to 7.17.1
libcurl 7.17.1 has been released 12 years ago, so it doesn't seem reasonable to still cater to older versions. The main reason for this version bump is to cater to a mass renaming of `CURLE_*` constants in 7.17.0 (and a single further renaming in 7.17.1), whereby many of the old constants have been marked obsolete, and according to curl.h have been scheduled for removal in 2009 already. So we remove all respective PHP `CURLE_*` constants, and add not yet available replacements, except for those constants which have been marked as being obsolete (`CURLE_OBSOLETE*`), since these error codes are not supposed to be returned ever. Renamed constants: * `CURLE_FTP_ACCESS_DENIED` → `CURLE_REMOTE_ACCESS_DENIED` * `CURLE_FTP_BAD_DOWNLOAD_RESUME` → `CURLE_BAD_DOWNLOAD_RESUME` * `CURLE_FTP_COULDNT_SET_BINARY` → `CURLE_FTP_COULDNT_SET_TYPE` * `CURLE_FTP_COULDNT_STOR_FILE` → `CURLE_UPLOAD_FAILED` * `CURLE_FTP_PARTIAL_FILE` → `CURLE_PARTIAL_FILE` * `CURLE_FTP_QUOTE_ERROR` → `CURLE_QUOTE_ERROR` * `CURLE_HTTP_NOT_FOUND` → `CURLE_HTTP_RETURNED_ERROR` * `CURLE_HTTP_PORT_FAILED` → `CURLE_INTERFACE_FAILED` * `CURLE_HTTP_RANGE_ERROR` → `CURLE_RANGE_ERROR` * `CURLE_OPERATION_TIMEOUTED` → `CURLE_OPERATION_TIMEDOUT` * `CURLE_SSL_PEER_CERTIFICATE` → `CURLE_PEER_FAILED_VERIFICATION` * `CURLE_URL_MALFORMAT_USER` → `CURLE_NOT_BUILT_IN` * `CURLE_FTP_SSL_FAILED` → `CURLE_USE_SSL_FAILED` Removed constants: * `CURLE_BAD_CALLING_ORDER` * `CURLE_BAD_PASSWORD_ENTERED` * `CURLE_FTP_CANT_RECONNECT` * `CURLE_FTP_COULDNT_GET_SIZE` * `CURLE_FTP_COULDNT_SET_ASCII` * `CURLE_FTP_USER_PASSWORD_INCORRECT` * `CURLE_FTP_WEIRD_USER_REPLY` * `CURLE_FTP_WRITE_ERROR` * `CURLE_LIBRARY_NOT_FOUND` * `CURLE_OBSOLETE` * `CURLE_SHARE_IN_USE` * `CURLE_MALFORMAT_USER`
1 parent 292a1ae commit 2b3dace

File tree

3 files changed

+18
-85
lines changed

3 files changed

+18
-85
lines changed

ext/curl/config.m4

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ PHP_ARG_WITH([curl],
44
[Include cURL support])])
55

66
if test "$PHP_CURL" != "no"; then
7-
PKG_CHECK_MODULES([CURL], [libcurl >= 7.15.5])
7+
PKG_CHECK_MODULES([CURL], [libcurl >= 7.17.1])
88
PKG_CHECK_VAR([CURL_FEATURES], [libcurl], [supported_features])
99

1010
PHP_EVAL_LIBLINE($CURL_LIBS, CURL_SHARED_LIBADD)

ext/curl/interface.c

Lines changed: 17 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -118,20 +118,16 @@ static int php_curl_option_str(php_curl *ch, zend_long option, const char *str,
118118
return FAILURE;
119119
}
120120

121-
#if LIBCURL_VERSION_NUM >= 0x071100
122121
if (make_copy) {
123-
#endif
124122
char *copystr;
125123

126124
/* Strings passed to libcurl as 'char *' arguments, are copied by the library since 7.17.0 */
127125
copystr = estrndup(str, len);
128126
error = curl_easy_setopt(ch->cp, option, copystr);
129127
zend_llist_add_element(&ch->to_free->str, &copystr);
130-
#if LIBCURL_VERSION_NUM >= 0x071100
131128
} else {
132129
error = curl_easy_setopt(ch->cp, option, str);
133130
}
134-
#endif
135131

136132
SAVE_CURL_ERROR(ch, error);
137133

@@ -544,64 +540,41 @@ PHP_MINIT_FUNCTION(curl)
544540

545541
/* */
546542
REGISTER_CURL_CONSTANT(CURLE_ABORTED_BY_CALLBACK);
547-
REGISTER_CURL_CONSTANT(CURLE_BAD_CALLING_ORDER);
548543
REGISTER_CURL_CONSTANT(CURLE_BAD_CONTENT_ENCODING);
549544
REGISTER_CURL_CONSTANT(CURLE_BAD_DOWNLOAD_RESUME);
550545
REGISTER_CURL_CONSTANT(CURLE_BAD_FUNCTION_ARGUMENT);
551-
REGISTER_CURL_CONSTANT(CURLE_BAD_PASSWORD_ENTERED);
552546
REGISTER_CURL_CONSTANT(CURLE_COULDNT_CONNECT);
553547
REGISTER_CURL_CONSTANT(CURLE_COULDNT_RESOLVE_HOST);
554548
REGISTER_CURL_CONSTANT(CURLE_COULDNT_RESOLVE_PROXY);
555549
REGISTER_CURL_CONSTANT(CURLE_FAILED_INIT);
556550
REGISTER_CURL_CONSTANT(CURLE_FILE_COULDNT_READ_FILE);
557-
REGISTER_CURL_CONSTANT(CURLE_FTP_ACCESS_DENIED);
558-
REGISTER_CURL_CONSTANT(CURLE_FTP_BAD_DOWNLOAD_RESUME);
559551
REGISTER_CURL_CONSTANT(CURLE_FTP_CANT_GET_HOST);
560-
REGISTER_CURL_CONSTANT(CURLE_FTP_CANT_RECONNECT);
561-
REGISTER_CURL_CONSTANT(CURLE_FTP_COULDNT_GET_SIZE);
562552
REGISTER_CURL_CONSTANT(CURLE_FTP_COULDNT_RETR_FILE);
563-
REGISTER_CURL_CONSTANT(CURLE_FTP_COULDNT_SET_ASCII);
564-
REGISTER_CURL_CONSTANT(CURLE_FTP_COULDNT_SET_BINARY);
565-
REGISTER_CURL_CONSTANT(CURLE_FTP_COULDNT_STOR_FILE);
566553
REGISTER_CURL_CONSTANT(CURLE_FTP_COULDNT_USE_REST);
567-
REGISTER_CURL_CONSTANT(CURLE_FTP_PARTIAL_FILE);
568554
REGISTER_CURL_CONSTANT(CURLE_FTP_PORT_FAILED);
569-
REGISTER_CURL_CONSTANT(CURLE_FTP_QUOTE_ERROR);
570-
REGISTER_CURL_CONSTANT(CURLE_FTP_USER_PASSWORD_INCORRECT);
571555
REGISTER_CURL_CONSTANT(CURLE_FTP_WEIRD_227_FORMAT);
572556
REGISTER_CURL_CONSTANT(CURLE_FTP_WEIRD_PASS_REPLY);
573557
REGISTER_CURL_CONSTANT(CURLE_FTP_WEIRD_PASV_REPLY);
574558
REGISTER_CURL_CONSTANT(CURLE_FTP_WEIRD_SERVER_REPLY);
575-
REGISTER_CURL_CONSTANT(CURLE_FTP_WEIRD_USER_REPLY);
576-
REGISTER_CURL_CONSTANT(CURLE_FTP_WRITE_ERROR);
577559
REGISTER_CURL_CONSTANT(CURLE_FUNCTION_NOT_FOUND);
578560
REGISTER_CURL_CONSTANT(CURLE_GOT_NOTHING);
579-
REGISTER_CURL_CONSTANT(CURLE_HTTP_NOT_FOUND);
580-
REGISTER_CURL_CONSTANT(CURLE_HTTP_PORT_FAILED);
581561
REGISTER_CURL_CONSTANT(CURLE_HTTP_POST_ERROR);
582-
REGISTER_CURL_CONSTANT(CURLE_HTTP_RANGE_ERROR);
583562
REGISTER_CURL_CONSTANT(CURLE_HTTP_RETURNED_ERROR);
584563
REGISTER_CURL_CONSTANT(CURLE_LDAP_CANNOT_BIND);
585564
REGISTER_CURL_CONSTANT(CURLE_LDAP_SEARCH_FAILED);
586-
REGISTER_CURL_CONSTANT(CURLE_LIBRARY_NOT_FOUND);
587-
REGISTER_CURL_CONSTANT(CURLE_MALFORMAT_USER);
588-
REGISTER_CURL_CONSTANT(CURLE_OBSOLETE);
589565
REGISTER_CURL_CONSTANT(CURLE_OK);
590566
REGISTER_CURL_CONSTANT(CURLE_OPERATION_TIMEDOUT);
591-
REGISTER_CURL_CONSTANT(CURLE_OPERATION_TIMEOUTED);
592567
REGISTER_CURL_CONSTANT(CURLE_OUT_OF_MEMORY);
593568
REGISTER_CURL_CONSTANT(CURLE_PARTIAL_FILE);
594569
REGISTER_CURL_CONSTANT(CURLE_READ_ERROR);
595570
REGISTER_CURL_CONSTANT(CURLE_RECV_ERROR);
596571
REGISTER_CURL_CONSTANT(CURLE_SEND_ERROR);
597-
REGISTER_CURL_CONSTANT(CURLE_SHARE_IN_USE);
598572
REGISTER_CURL_CONSTANT(CURLE_SSL_CACERT);
599573
REGISTER_CURL_CONSTANT(CURLE_SSL_CERTPROBLEM);
600574
REGISTER_CURL_CONSTANT(CURLE_SSL_CIPHER);
601575
REGISTER_CURL_CONSTANT(CURLE_SSL_CONNECT_ERROR);
602576
REGISTER_CURL_CONSTANT(CURLE_SSL_ENGINE_NOTFOUND);
603577
REGISTER_CURL_CONSTANT(CURLE_SSL_ENGINE_SETFAILED);
604-
REGISTER_CURL_CONSTANT(CURLE_SSL_PEER_CERTIFICATE);
605578
#if LIBCURL_VERSION_NUM >= 0x072700 /* Available since 7.39.0 */
606579
REGISTER_CURL_CONSTANT(CURLE_SSL_PINNEDPUBKEYNOTMATCH);
607580
#endif
@@ -610,7 +583,6 @@ PHP_MINIT_FUNCTION(curl)
610583
REGISTER_CURL_CONSTANT(CURLE_UNKNOWN_TELNET_OPTION);
611584
REGISTER_CURL_CONSTANT(CURLE_UNSUPPORTED_PROTOCOL);
612585
REGISTER_CURL_CONSTANT(CURLE_URL_MALFORMAT);
613-
REGISTER_CURL_CONSTANT(CURLE_URL_MALFORMAT_USER);
614586
REGISTER_CURL_CONSTANT(CURLE_WRITE_ERROR);
615587

616588
/* cURL info constants */
@@ -735,7 +707,7 @@ PHP_MINIT_FUNCTION(curl)
735707
REGISTER_CURL_CONSTANT(CURL_IPRESOLVE_WHATEVER);
736708

737709
/* Available since 7.11.0 */
738-
REGISTER_CURL_CONSTANT(CURLE_FTP_SSL_FAILED);
710+
REGISTER_CURL_CONSTANT(CURLE_USE_SSL_FAILED);
739711
REGISTER_CURL_CONSTANT(CURLFTPSSL_ALL);
740712
REGISTER_CURL_CONSTANT(CURLFTPSSL_CONTROL);
741713
REGISTER_CURL_CONSTANT(CURLFTPSSL_NONE);
@@ -791,13 +763,12 @@ PHP_MINIT_FUNCTION(curl)
791763
REGISTER_CURL_CONSTANT(CURLOPT_MAX_RECV_SPEED_LARGE);
792764
REGISTER_CURL_CONSTANT(CURLOPT_MAX_SEND_SPEED_LARGE);
793765

794-
#if LIBCURL_VERSION_NUM >= 0x071000 /* Available since 7.16.0 */
766+
/* Available since 7.16.0 */
795767
REGISTER_CURL_CONSTANT(CURLE_SSL_CACERT_BADFILE);
796768
REGISTER_CURL_CONSTANT(CURLOPT_SSL_SESSIONID_CACHE);
797769
REGISTER_CURL_CONSTANT(CURLMOPT_PIPELINING);
798-
#endif
799770

800-
#if LIBCURL_VERSION_NUM >= 0x071001 /* Available since 7.16.1 */
771+
/* Available since 7.16.1 */
801772
REGISTER_CURL_CONSTANT(CURLE_SSH);
802773
REGISTER_CURL_CONSTANT(CURLOPT_FTP_SSL_CCC);
803774
REGISTER_CURL_CONSTANT(CURLOPT_SSH_AUTH_TYPES);
@@ -806,26 +777,22 @@ PHP_MINIT_FUNCTION(curl)
806777
REGISTER_CURL_CONSTANT(CURLFTPSSL_CCC_ACTIVE);
807778
REGISTER_CURL_CONSTANT(CURLFTPSSL_CCC_NONE);
808779
REGISTER_CURL_CONSTANT(CURLFTPSSL_CCC_PASSIVE);
809-
#endif
810780

811-
#if LIBCURL_VERSION_NUM >= 0x071002 /* Available since 7.16.2 */
781+
/* Available since 7.16.2 */
812782
REGISTER_CURL_CONSTANT(CURLOPT_CONNECTTIMEOUT_MS);
813783
REGISTER_CURL_CONSTANT(CURLOPT_HTTP_CONTENT_DECODING);
814784
REGISTER_CURL_CONSTANT(CURLOPT_HTTP_TRANSFER_DECODING);
815785
REGISTER_CURL_CONSTANT(CURLOPT_TIMEOUT_MS);
816-
#endif
817786

818-
#if LIBCURL_VERSION_NUM >= 0x071003 /* Available since 7.16.3 */
787+
/* Available since 7.16.3 */
819788
REGISTER_CURL_CONSTANT(CURLMOPT_MAXCONNECTS);
820-
#endif
821789

822-
#if LIBCURL_VERSION_NUM >= 0x071004 /* Available since 7.16.4 */
790+
/* Available since 7.16.4 */
823791
REGISTER_CURL_CONSTANT(CURLOPT_KRBLEVEL);
824792
REGISTER_CURL_CONSTANT(CURLOPT_NEW_DIRECTORY_PERMS);
825793
REGISTER_CURL_CONSTANT(CURLOPT_NEW_FILE_PERMS);
826-
#endif
827794

828-
#if LIBCURL_VERSION_NUM >= 0x071100 /* Available since 7.17.0 */
795+
/* Available since 7.17.0 */
829796
REGISTER_CURL_CONSTANT(CURLOPT_APPEND);
830797
REGISTER_CURL_CONSTANT(CURLOPT_DIRLISTONLY);
831798
REGISTER_CURL_CONSTANT(CURLOPT_USE_SSL);
@@ -834,11 +801,18 @@ PHP_MINIT_FUNCTION(curl)
834801
REGISTER_CURL_CONSTANT(CURLUSESSL_CONTROL);
835802
REGISTER_CURL_CONSTANT(CURLUSESSL_NONE);
836803
REGISTER_CURL_CONSTANT(CURLUSESSL_TRY);
837-
#endif
838804

839-
#if LIBCURL_VERSION_NUM >= 0x071101 /* Available since 7.17.1 */
805+
REGISTER_CURL_CONSTANT(CURLE_REMOTE_ACCESS_DENIED);
806+
REGISTER_CURL_CONSTANT(CURLE_FTP_COULDNT_SET_TYPE);
807+
REGISTER_CURL_CONSTANT(CURLE_UPLOAD_FAILED);
808+
REGISTER_CURL_CONSTANT(CURLE_QUOTE_ERROR);
809+
REGISTER_CURL_CONSTANT(CURLE_INTERFACE_FAILED);
810+
REGISTER_CURL_CONSTANT(CURLE_RANGE_ERROR);
811+
REGISTER_CURL_CONSTANT(CURLE_NOT_BUILT_IN);
812+
813+
/* Available since 7.17.1 */
840814
REGISTER_CURL_CONSTANT(CURLOPT_SSH_HOST_PUBLIC_KEY_MD5);
841-
#endif
815+
REGISTER_CURL_CONSTANT(CURLE_PEER_FAILED_VERIFICATION);
842816

843817
#if LIBCURL_VERSION_NUM >= 0x071200 /* Available since 7.18.0 */
844818
REGISTER_CURL_CONSTANT(CURLOPT_PROXY_TRANSFER_MODE);
@@ -1716,12 +1690,10 @@ PHP_FUNCTION(curl_version)
17161690
if (d->age >= 2) {
17171691
CAAS("libidn", d->libidn);
17181692
}
1719-
#if LIBCURL_VERSION_NUM >= 0x071001 /* Available since 7.16.1 */
17201693
if (d->age >= 3) {
17211694
CAAL("iconv_ver_num", d->iconv_ver_num);
17221695
CAAS("libssh_version", d->libssh_version);
17231696
}
1724-
#endif
17251697
#if LIBCURL_VERSION_NUM >= 0x073900 /* Available since 7.57.0 */
17261698
if (d->age >= 4) {
17271699
CAAL("brotli_ver_num", d->brotli_ver_num);
@@ -2079,32 +2051,18 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
20792051
case CURLOPT_CONNECT_ONLY:
20802052
case CURLOPT_LOCALPORT:
20812053
case CURLOPT_LOCALPORTRANGE:
2082-
#if LIBCURL_VERSION_NUM >= 0x071000 /* Available since 7.16.0 */
20832054
case CURLOPT_SSL_SESSIONID_CACHE:
2084-
#endif
2085-
#if LIBCURL_VERSION_NUM >= 0x071001 /* Available since 7.16.1 */
20862055
case CURLOPT_FTP_SSL_CCC:
20872056
case CURLOPT_SSH_AUTH_TYPES:
2088-
#endif
2089-
#if LIBCURL_VERSION_NUM >= 0x071002 /* Available since 7.16.2 */
20902057
case CURLOPT_CONNECTTIMEOUT_MS:
20912058
case CURLOPT_HTTP_CONTENT_DECODING:
20922059
case CURLOPT_HTTP_TRANSFER_DECODING:
20932060
case CURLOPT_TIMEOUT_MS:
2094-
#endif
2095-
#if LIBCURL_VERSION_NUM >= 0x071004 /* Available since 7.16.4 */
20962061
case CURLOPT_NEW_DIRECTORY_PERMS:
20972062
case CURLOPT_NEW_FILE_PERMS:
2098-
#endif
2099-
#if LIBCURL_VERSION_NUM >= 0x071100 /* Available since 7.17.0 */
21002063
case CURLOPT_USE_SSL:
21012064
case CURLOPT_APPEND:
21022065
case CURLOPT_DIRLISTONLY:
2103-
#else
2104-
case CURLOPT_FTP_SSL:
2105-
case CURLOPT_FTPAPPEND:
2106-
case CURLOPT_FTPLISTONLY:
2107-
#endif
21082066
#if LIBCURL_VERSION_NUM >= 0x071200 /* Available since 7.18.0 */
21092067
case CURLOPT_PROXY_TRANSFER_MODE:
21102068
#endif
@@ -2245,9 +2203,7 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
22452203
case CURLOPT_USERPWD:
22462204
case CURLOPT_COOKIELIST:
22472205
case CURLOPT_FTP_ALTERNATIVE_TO_USER:
2248-
#if LIBCURL_VERSION_NUM >= 0x071101 /* Available since 7.17.1 */
22492206
case CURLOPT_SSH_HOST_PUBLIC_KEY_MD5:
2250-
#endif
22512207
#if LIBCURL_VERSION_NUM >= 0x071301 /* Available since 7.19.1 */
22522208
case CURLOPT_PASSWORD:
22532209
case CURLOPT_PROXYPASSWORD:
@@ -2343,11 +2299,7 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
23432299
#if LIBCURL_VERSION_NUM >= 0x072800 /* Available since 7.40.0 */
23442300
case CURLOPT_UNIX_SOCKET_PATH:
23452301
#endif
2346-
#if LIBCURL_VERSION_NUM >= 0x071004 /* Available since 7.16.4 */
23472302
case CURLOPT_KRBLEVEL:
2348-
#else
2349-
case CURLOPT_KRB4LEVEL:
2350-
#endif
23512303
{
23522304
if (Z_ISNULL_P(zvalue)) {
23532305
error = curl_easy_setopt(ch->cp, option, NULL);
@@ -2751,25 +2703,12 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
27512703
error = curl_easy_setopt(ch->cp, CURLOPT_HTTPPOST, first);
27522704
#endif
27532705
} else {
2754-
#if LIBCURL_VERSION_NUM >= 0x071101
27552706
zend_string *tmp_str;
27562707
zend_string *str = zval_get_tmp_string(zvalue, &tmp_str);
27572708
/* with curl 7.17.0 and later, we can use COPYPOSTFIELDS, but we have to provide size before */
27582709
error = curl_easy_setopt(ch->cp, CURLOPT_POSTFIELDSIZE, ZSTR_LEN(str));
27592710
error = curl_easy_setopt(ch->cp, CURLOPT_COPYPOSTFIELDS, ZSTR_VAL(str));
27602711
zend_tmp_string_release(tmp_str);
2761-
#else
2762-
char *post = NULL;
2763-
zend_string *tmp_str;
2764-
zend_string *str = zval_get_tmp_string(zvalue, &tmp_str);
2765-
2766-
post = estrndup(ZSTR_VAL(str), ZSTR_LEN(str));
2767-
zend_llist_add_element(&ch->to_free->str, &post);
2768-
2769-
curl_easy_setopt(ch->cp, CURLOPT_POSTFIELDS, post);
2770-
error = curl_easy_setopt(ch->cp, CURLOPT_POSTFIELDSIZE, ZSTR_LEN(str));
2771-
zend_tmp_string_release(tmp_str);
2772-
#endif
27732712
}
27742713
break;
27752714

@@ -2837,10 +2776,8 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{
28372776
case CURLOPT_RANDOM_FILE:
28382777
case CURLOPT_SSLCERT:
28392778
case CURLOPT_NETRC_FILE:
2840-
#if LIBCURL_VERSION_NUM >= 0x071001 /* Available since 7.16.1 */
28412779
case CURLOPT_SSH_PRIVATE_KEYFILE:
28422780
case CURLOPT_SSH_PUBLIC_KEYFILE:
2843-
#endif
28442781
#if LIBCURL_VERSION_NUM >= 0x071300 /* Available since 7.19.0 */
28452782
case CURLOPT_CRLFILE:
28462783
case CURLOPT_ISSUERCERT:

ext/curl/multi.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -552,12 +552,8 @@ static int _php_curl_multi_setopt(php_curlm *mh, zend_long option, zval *zvalue,
552552
CURLMcode error = CURLM_OK;
553553

554554
switch (option) {
555-
#if LIBCURL_VERSION_NUM >= 0x071000 /* 7.16.0 */
556555
case CURLMOPT_PIPELINING:
557-
#endif
558-
#if LIBCURL_VERSION_NUM >= 0x071003 /* 7.16.3 */
559556
case CURLMOPT_MAXCONNECTS:
560-
#endif
561557
#if LIBCURL_VERSION_NUM >= 0x071e00 /* 7.30.0 */
562558
case CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE:
563559
case CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE:

0 commit comments

Comments
 (0)