#
6967571b |
| 14-Nov-2022 |
Patrick Monnerat |
lib: feature deprecation warnings in gcc >= 4.3 Add a deprecated attribute to functions and enum values that should not be used anymore. This uses a gcc 4.3 dialect, thus is only ava
lib: feature deprecation warnings in gcc >= 4.3 Add a deprecated attribute to functions and enum values that should not be used anymore. This uses a gcc 4.3 dialect, thus is only available for this version of gcc and newer. Note that the _Pragma() keyword is introduced by C99, but is available as part of the gcc dialect even when compiling in C89 mode. It is still possible to disable deprecation at a calling module compile time by defining CURL_DISABLE_DEPRECATION. Gcc type checking macros are made aware of possible deprecations. Some testing support Perl programs are adapted to the extended declaration syntax. Several test and unit test C programs intentionally use deprecated functions/options and are annotated to not generate a warning. New test 1222 checks the deprecation status in doc and header files. Closes #9667
show more ...
|
#
e780aae7 |
| 08-Nov-2022 |
Patrick Monnerat |
version: add a feature names array to curl_version_info_data Field feature_names contains a null-terminated sorted array of feature names. Bitmask field features is deprecated.
version: add a feature names array to curl_version_info_data Field feature_names contains a null-terminated sorted array of feature names. Bitmask field features is deprecated. Documentation is updated. Test 1177 and tests/version-scan.pl updated to match new documentation format and extended to check feature names too. Closes #9583
show more ...
|
#
6d751154 |
| 08-Nov-2022 |
Jay Satiro |
lib: add CURL_WRITEFUNC_ERROR to signal write callback error Prior to this change if the user wanted to signal an error from their write callbacks they would have to use logic to return
lib: add CURL_WRITEFUNC_ERROR to signal write callback error Prior to this change if the user wanted to signal an error from their write callbacks they would have to use logic to return a value different from the number of bytes (nmemb) passed to the callback. Also, the inclination of some users has been to just return 0 to signal error, which is incorrect as that may be the number of bytes passed to the callback. To remedy this the user can now return CURL_WRITEFUNC_ERROR instead. Ref: https://github.com/curl/curl/issues/9873 Closes https://github.com/curl/curl/pull/9874
show more ...
|
#
1fdca35d |
| 12-Oct-2022 |
Michael Drake |
curl.h: add CURLOPT_CA_CACHE_TIMEOUT option Adds a new option to control the maximum time that a cached certificate store may be retained for. Currently only the OpenSSL backend
curl.h: add CURLOPT_CA_CACHE_TIMEOUT option Adds a new option to control the maximum time that a cached certificate store may be retained for. Currently only the OpenSSL backend implements support for caching certificate stores. Closes #9620
show more ...
|
#
b0e4ebe9 |
| 12-Oct-2022 |
Patrick Monnerat |
doc: fix deprecation versions inconsistencies Ref: https://curl.se/mail/lib-2022-10/0026.html Closes #9711
|
#
e3f33514 |
| 03-Oct-2022 |
Daniel Stenberg |
websockets: remodeled API to support 63 bit frame sizes curl_ws_recv() now receives data to fill up the provided buffer, but can return a partial fragment. The function now also get a po
websockets: remodeled API to support 63 bit frame sizes curl_ws_recv() now receives data to fill up the provided buffer, but can return a partial fragment. The function now also get a pointer to a curl_ws_frame struct with metadata that also mentions the offset and total size of the fragment (of which you might be receiving a smaller piece). This way, large incoming fragments will be "streamed" to the application. When the curl_ws_frame struct field 'bytesleft' is 0, the final fragment piece has been delivered. curl_ws_recv() was also adjusted to work with a buffer size smaller than the fragment size. (Possibly needless to say as the fragment size can now be 63 bit large). curl_ws_send() now supports sending a piece of a fragment, in a streaming manner, in addition to sending the entire fragment in a single call if it is small enough. To send a huge fragment, curl_ws_send() can be used to send it in many small calls by first telling libcurl about the total expected fragment size, and then send the payload in N number of separate invokes and libcurl will stream those over the wire. The struct curl_ws_meta() returns is now called 'curl_ws_frame' and it has been extended with two new fields: *offset* and *bytesleft*. To help describe the passed on data chunk when a fragment is delivered in many smaller pieces. The documentation has been updated accordingly. Closes #9636
show more ...
|
#
70b6c701 |
| 22-Sep-2022 |
Daniel Stenberg |
symbols-in-versions: CURLOPT_ENCODING is deprecated since 7.21.6
|
#
16814d8f |
| 20-Sep-2022 |
Daniel Stenberg |
symbols-in-versions: add missing LIBCURL* symbols
|
#
4c8d1803 |
| 20-Sep-2022 |
Daniel Stenberg |
docs/libcurl/symbols-in-versions: add several missing symbols
|
#
485c9ba5 |
| 09-Sep-2022 |
Daniel Stenberg |
docs: the websockets symbols are added in 7.86.0 Nothing else Closes #9459
|
#
664249d0 |
| 09-Sep-2022 |
Daniel Stenberg |
ws: initial websockets support Closes #8995
|
#
472f1cbe |
| 01-Sep-2022 |
Daniel Stenberg |
NPN: remove support for and use of Next Protocol Negotiation is a TLS extension that was created and used for agreeing to use the SPDY protocol (the precursor to HTTP/2) for HTTPS. I
NPN: remove support for and use of Next Protocol Negotiation is a TLS extension that was created and used for agreeing to use the SPDY protocol (the precursor to HTTP/2) for HTTPS. In the early days of HTTP/2, before the spec was finalized and shipped, the protocol could be enabled using this extension with some servers. curl supports the NPN extension with some TLS backends since then, with a command line option `--npn` and in libcurl with `CURLOPT_SSL_ENABLE_NPN`. HTTP/2 proper is made to use the ALPN (Application-Layer Protocol Negotiation) extension and the NPN extension has no purposes anymore. The HTTP/2 spec was published in May 2015. Today, use of NPN in the wild should be extremely rare and most likely totally extinct. Chrome removed NPN support in Chrome 51, shipped in June 2016. Removed in Firefox 53, April 2017. Closes #9307
show more ...
|
#
be43dd60 |
| 04-Jul-2022 |
Daniel Stenberg |
CURLOPT_SERVER_RESPONSE_TIMEOUT: the new name Starting now, CURLOPT_FTP_RESPONSE_TIMEOUT is the alias instead of the other way around. Since 7.20.0, CURLOPT_SERVER_RESPONSE_TIME
CURLOPT_SERVER_RESPONSE_TIMEOUT: the new name Starting now, CURLOPT_FTP_RESPONSE_TIMEOUT is the alias instead of the other way around. Since 7.20.0, CURLOPT_SERVER_RESPONSE_TIMEOUT has existed as an alias but since the option is for more protocols than FTP the more "correct" version of the option is the "server" one so now we switch. Closes #9104
show more ...
|
#
e6f8445e |
| 13-Jun-2022 |
Daniel Stenberg |
setopt: add CURLOPT_PROTOCOLS_STR and CURLOPT_REDIR_PROTOCOLS_STR ... as replacements for deprecated CURLOPT_PROTOCOLS and CURLOPT_REDIR_PROTOCOLS as these new ones do not risk running i
setopt: add CURLOPT_PROTOCOLS_STR and CURLOPT_REDIR_PROTOCOLS_STR ... as replacements for deprecated CURLOPT_PROTOCOLS and CURLOPT_REDIR_PROTOCOLS as these new ones do not risk running into the 32 bit limit the old ones are facing. CURLINFO_PROTCOOL is now deprecated. The curl tool is updated to use the new options. Added test 1597 to verify the libcurl protocol parser. Closes #8992
show more ...
|
#
1dda49a1 |
| 29-Jun-2022 |
Daniel Stenberg |
curl.h: CURLE_CONV_FAILED is obsoleted The last use was removed in 7.82.0. Updated some docs too to reflect the current error code situation. Closes #9067
|
#
a94d6fe7 |
| 13-Jun-2022 |
Viktor Szakats |
version: rename threadsafe-init to threadsafe Referring to Daniel's article [1], making the init function thread-safe was the last bit to make libcurl thread-safe as a whole. So the name
version: rename threadsafe-init to threadsafe Referring to Daniel's article [1], making the init function thread-safe was the last bit to make libcurl thread-safe as a whole. So the name of the feature may as well be the more concise 'threadsafe', also telling the story that libcurl is now fully thread-safe, not just its init function. Chances are high that libcurl wants to remain so in the future, so there is little likelihood of ever needing any other distinct `threadsafe-<name>` feature flags. For consistency we also shorten `CURL_VERSION_THREADSAFE_INIT` to `CURL_VERSION_THREADSAFE`, update its description and reference libcurl's thread safety documentation. [1]: https://daniel.haxx.se/blog/2022/06/08/making-libcurl-init-more-thread-safe/ Reviewed-by: Daniel Stenberg Reviewed-by: Jay Satiro Closes #8989
show more ...
|
#
5912da25 |
| 08-Jun-2022 |
Daniel Stenberg |
select: return error from "lethal" poll/select errors Adds two new error codes: CURLE_UNRECOVERABLE_POLL and CURLM_UNRECOVERABLE_POLL one each for the easy and the multi interfaces.
select: return error from "lethal" poll/select errors Adds two new error codes: CURLE_UNRECOVERABLE_POLL and CURLM_UNRECOVERABLE_POLL one each for the easy and the multi interfaces. Reported-by: Harry Sintonen Fixes #8921 Closes #8961
show more ...
|
#
2ed10125 |
| 05-Apr-2022 |
Thomas Guillem |
curl_version_info: add CURL_VERSION_THREADSAFE_INIT This flag can be used to make sure that curl_global_init() is thread-safe. This can be useful for libraries that can't contro
curl_version_info: add CURL_VERSION_THREADSAFE_INIT This flag can be used to make sure that curl_global_init() is thread-safe. This can be useful for libraries that can't control what other dependencies are doing with Curl. Closes #8680
show more ...
|
#
15445139 |
| 04-Nov-2021 |
michael musset |
libssh2: add CURLOPT_SSH_HOSTKEYFUNCTION The callback set by CURLOPT_SSH_HOSTKEYFUNCTION is called to check wether or not the connection should continue. The host key is passed
libssh2: add CURLOPT_SSH_HOSTKEYFUNCTION The callback set by CURLOPT_SSH_HOSTKEYFUNCTION is called to check wether or not the connection should continue. The host key is passed in argument with a custom handle for the application. It overrides CURLOPT_SSH_KNOWNHOSTS Closes #7959
show more ...
|
#
7bc78538 |
| 23-May-2022 |
Daniel Stenberg |
CURLINFO_CAPATH/CAINFO: get the default CA paths from libcurl Closes #8888
|
#
d1e4a677 |
| 17-Mar-2022 |
Daniel Stenberg |
header api: add curl_easy_header and curl_easy_nextheader Add test 1940 to 1946 to verify. Closes #8593
|
#
26101421 |
| 03-Feb-2022 |
Daniel Stenberg |
lib: remove support for CURL_DOES_CONVERSIONS TPF was the only user and support for that was dropped. Closes #8378
|
#
7edb0fcf |
| 09-Jan-2022 |
Daniel Stenberg |
ldap: return CURLE_URL_MALFORMAT for bad URL For consistency, use the same return code for URL malformats, independently of what scheme that is used. Previously this would return CUR
ldap: return CURLE_URL_MALFORMAT for bad URL For consistency, use the same return code for URL malformats, independently of what scheme that is used. Previously this would return CURLE_LDAP_INVALID_URL, but starting now that error cannot be returned. Closes #8170
show more ...
|
#
2b3dd01b |
| 02-Dec-2021 |
Daniel Stenberg |
multi: handle errors returned from socket/timer callbacks The callbacks were partially documented to support this. Now the behavior is documented and returning error from either of these
multi: handle errors returned from socket/timer callbacks The callbacks were partially documented to support this. Now the behavior is documented and returning error from either of these callbacks will effectively kill all currently ongoing transfers. Added test 530 to verify Reported-by: Marcelo Juchem Fixes #8083 Closes #8089
show more ...
|
#
4183b8fe |
| 23-Nov-2021 |
Daniel Stenberg |
urlapi: provide more detailed return codes Previously, the return code CURLUE_MALFORMED_INPUT was used for almost 30 different URL format violations. This made it hard for users to u
urlapi: provide more detailed return codes Previously, the return code CURLUE_MALFORMED_INPUT was used for almost 30 different URL format violations. This made it hard for users to understand why a particular URL was not acceptable. Since the API cannot point out a specific position within the URL for the problem, this now instead introduces a number of additional and more fine-grained error codes to allow the API to return more exactly in what "part" or section of the URL a problem was detected. Also bug-fixes curl_url_get() with CURLUPART_ZONEID, which previously returned CURLUE_OK even if no zoneid existed. Test cases in 1560 have been adjusted and extended. Tests 1538 and 1559 have been updated. Updated libcurl-errors.3 and curl_url_strerror() accordingly. Closes #8049
show more ...
|