#
d78e129d |
| 27-Sep-2024 |
Daniel Stenberg |
WebSockets: make support official (non-experimental) Inverts the configure/cmake options to instead provide options that disable WebSockets and have them (ws + wss) enabled by default.
WebSockets: make support official (non-experimental) Inverts the configure/cmake options to instead provide options that disable WebSockets and have them (ws + wss) enabled by default. Closes #14936
show more ...
|
#
22652a5a |
| 18-Aug-2024 |
Viktor Szakats |
curl: add options for safe/no CA bundle search (Windows) Add `CURL_CA_SEARCH_SAFE` build-time option to enable CA bundle search in the `curl` tool directory. The lookup method was alread
curl: add options for safe/no CA bundle search (Windows) Add `CURL_CA_SEARCH_SAFE` build-time option to enable CA bundle search in the `curl` tool directory. The lookup method was already used to find `.curlrc` and `_curlrc` (on Windows). On Windows it overrides the unsafe default `SearchPath()` method. Enable with: - cmake: `-DCURL_CA_SEARCH_SAFE=ON` - autotools: `--enable-ca-search-safe` - raw: `CPPFLAGS=-DCURL_CA_SEARCH_SAFE` On Windows, before this patch the whole `PATH` was searched for a CA bundle. `PATH` may contain unwanted or world-writable locations, including the current directory. Searching them all is convenient to pick up any CA bundle, but not secure. The Muldersoft curl distro implements such CA search via a custom patch for Windows: https://github.com/lordmulder/cURL-build-win32/blob/cd652d4792c177c98b08b4309d3cac2b8dbbf9b0/patch/curl_tool_doswin.diff#L50 MSYS2/mingw-w64 distro has also been rolling a patch solving this: https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-curl/0001-Make-cURL-relocatable.patch https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-curl/pathtools.c Also add option to fully disable Windows CA search: - cmake: `-DCURL_DISABLE_CA_SEARCH=ON` - autotools: `--disable-ca-search` - raw: `CPPFLAGS=-DCURL_DISABLE_CA_SEARCH`. Both options are considered EXPERIMENTAL, with possible incompatible changes or even (partial) removal in the future, depending on feedback. An alternative, secure option is to embed the CA bundle into the binary. Safe search can be extended to other platforms if necessary or useful, by using `_NSGetExecutablePath()` (macOS), `/proc/self/exe` (Linux/Cygwin), or `argv[0]`. Closes #14582
show more ...
|
#
1064dfa8 |
| 26-Aug-2024 |
Viktor Szakats |
tidy-up: indent, whitespace, comment in sources Cherry-picked from #14692 Closes #14995
|
#
ce7d0d41 |
| 08-Sep-2024 |
Viktor Szakats |
ipfs: add options to disable - CPPFLAGS: `-DCURL_DISABLE_IPFS` - configure: `--disable-ipfs` - cmake: `-DCURL_DISABLE_IPFS=ON` Fixes #14824 Closes #14827
|
#
8d32e878 |
| 26-Aug-2024 |
Viktor Szakats |
cmake: delete unused `NEED_LBER_H`, `HAVE_LDAP_H` Both are used by `./configure` internally, not by curl C code. CMake adds `NEED_LBER_H` to `CURL_TEST_DEFINES`, which is used by `cu
cmake: delete unused `NEED_LBER_H`, `HAVE_LDAP_H` Both are used by `./configure` internally, not by curl C code. CMake adds `NEED_LBER_H` to `CURL_TEST_DEFINES`, which is used by `curl_internal_test()`, but there is no LDAP-related test made with that call. Thus, stop detecting and publishing these from CMake. `NEED_LBER_H` added in 7320e53d9e17b22cacea77a89ecaa8348513f0e1. `HAVE_LDAP_H` added in 4c5307b45655ba75ab066564afdc0c111a8b9291 (initial CMake commit). Closes #14690
show more ...
|
#
269fdd4c |
| 31-Aug-2024 |
Daniel Stenberg |
lib: remove use of RANDOM_FILE It could previously be set with configure/cmake and used in rare cases for reading randomness: with ancient mbedTLS or rustls without arc4random.
lib: remove use of RANDOM_FILE It could previously be set with configure/cmake and used in rare cases for reading randomness: with ancient mbedTLS or rustls without arc4random. We now get randomness in this order: 1. The TLS library's way to provide random 2. On Windows: Curl_win32_random 3. if arc4random exists, use that 4. weak non-crytographically strong pseudo-random Closes #14749
show more ...
|
#
33629949 |
| 01-Sep-2024 |
Viktor Szakats |
build: add options to disable SHA-512/256 hash algo Existing C macro lacked build-level counterparts. Add them in this patch. - cmake: `-DCURL_DISABLE_SHA512_256=ON` - autot
build: add options to disable SHA-512/256 hash algo Existing C macro lacked build-level counterparts. Add them in this patch. - cmake: `-DCURL_DISABLE_SHA512_256=ON` - autotools: `--disable-sha512-256` Also drop the checker exception from `test1165.pl`. Follow-up to cbe41d151d6a100c1f045eaf37ff06b2b2a7b382 #12897 Closes #14753
show more ...
|
#
83bcd335 |
| 01-Sep-2024 |
Viktor Szakats |
test1165: check if `curl_config.h.cmake` lists all `DISABLED` options Also fix issues: - cmake: fix `CURL_DISABLE_HTTP_AUTH` option - cmake: fix `CURL_DISABLE_SHUFFLE_DNS` option
test1165: check if `curl_config.h.cmake` lists all `DISABLED` options Also fix issues: - cmake: fix `CURL_DISABLE_HTTP_AUTH` option - cmake: fix `CURL_DISABLE_SHUFFLE_DNS` option Fixes: ``` Present in CMakeLists.txt, not propagated via curl_config.h.cmake: CURL_DISABLE_HTTP_AUTH Present in CMakeLists.txt, not propagated via curl_config.h.cmake: CURL_DISABLE_SHUFFLE_DNS ``` Ref: https://github.com/curl/curl/actions/runs/10655027540/job/29532054141?pr=14754#step:11:2090 Closes #14754
show more ...
|
#
c5cb8e7c |
| 19-Aug-2024 |
Viktor Szakats |
tidy-up: spelling quiche and Rustls Closes #14605
|
#
0d8fdd1c |
| 15-Aug-2024 |
Viktor Szakats |
cmake: add wolfSSH support Enable with CMake option `-DCURL_USE_WOLFSSH=ON`. Customize with `-DWOLFSSH_INCLUDE_DIR=<path-to-wolfssh>/include`, `-DWOLFSSH_LIBRARY=<path-to-wolfssh>/li
cmake: add wolfSSH support Enable with CMake option `-DCURL_USE_WOLFSSH=ON`. Customize with `-DWOLFSSH_INCLUDE_DIR=<path-to-wolfssh>/include`, `-DWOLFSSH_LIBRARY=<path-to-wolfssh>/lib/libwolfssh.a`. It requires the wolfSSL TLS backend. Closes #14568
show more ...
|
#
ed76a23f |
| 13-Aug-2024 |
Jan Venekamp <1422460+jan2000@users.noreply.github.com> |
cmake: add rustls Closes #14534
|
#
919394ee |
| 07-Aug-2024 |
Viktor Szakats |
cmake: more small tidy-ups and fixes - tidy up two `MATCHES` expression by avoiding macros expansion and adding quotes. Then convert then to `STREQUAL` to match other places in t
cmake: more small tidy-ups and fixes - tidy up two `MATCHES` expression by avoiding macros expansion and adding quotes. Then convert then to `STREQUAL` to match other places in the code doing the same checks. - fix setting `_ALL_SOURCE` for AIX to match what autotools does. - delete stray `_ALL_SOURCE` reference from `lib/config_riscos.h` - simplify/fix two `STREQUAL ""` checks. The one in the `openssl_check_symbol_exists()` macro succeeded regardless of the value. The other could return TRUE when `CMAKE_OSX_SYSROOT` was undefined. - delete code for CMake versions (<3.7) we no longer support. - prefer `LIST(APPEND ...)` to extend `CURL_LIBS`. - use `CURL_LIBS` to add the `network` lib for Haiku. Before this patch it was done via raw C flags. I could not test this. - move `_WIN32_WINNT`-related code next to each other. It also moves detection to the top, allowing more code to use the result. - merge two `WIN32` blocks. - rename internal variables to underscore + lowercase. - unwrap a line, indent, whitespace. Closes #14450
show more ...
|
#
ea3dfcb3 |
| 06-Aug-2024 |
Viktor Szakats |
cmake: drop unused `HAVE_IDNA_STRERROR` Unused since 9c91ec778104ae3b744b39444d544e82d5ee9ece Closes #14420
|
#
f7d5f470 |
| 05-Aug-2024 |
Viktor Szakats |
cmake: add support for `CURL_USE_LIBUV` option Also use an `#undef` hack for CMake Unity builds to avoid the previously included `memdebug.h` header messing up the declarations pulled in
cmake: add support for `CURL_USE_LIBUV` option Also use an `#undef` hack for CMake Unity builds to avoid the previously included `memdebug.h` header messing up the declarations pulled in by `uv.h`: ``` In file included from ~/curl/bld/src/CMakeFiles/curl.dir/Unity/unity_0_c.c:88: In file included from ~/curl/src/tool_operate.c:54: In file included from /usr/local/Cellar/libuv/1.48.0/include/uv.h:71: In file included from /usr/local/Cellar/libuv/1.48.0/include/uv/unix.h:34: /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/usr/include/netdb.h:269:7: error: expected parameter declarator void freeaddrinfo(struct addrinfo *); ^ ~/curl/lib/memdebug.h:167:31: note: expanded from macro 'freeaddrinfo' curl_dbg_freeaddrinfo(data, __LINE__, __FILE__) ^ ``` Follow-up to 38d334e3e17f16107921299a6d7b6654f6ec553b #14298 Closes #14399
show more ...
|
#
f81f351b |
| 02-Aug-2024 |
Viktor Szakats |
tidy-up: OS names Use these words and casing more consistently across text, comments and one curl tool output: AIX, ALPN, ANSI, BSD, Cygwin, Darwin, FreeBSD, GitHub, HP-UX, Linux,
tidy-up: OS names Use these words and casing more consistently across text, comments and one curl tool output: AIX, ALPN, ANSI, BSD, Cygwin, Darwin, FreeBSD, GitHub, HP-UX, Linux, macOS, MS-DOS, MSYS, MinGW, NTLM, POSIX, Solaris, UNIX, Unix, Unicode, WINE, WebDAV, Win32, winbind, WinIDN, Windows, Windows CE, Winsock. Mostly OS names and a few more. Also a couple of other minor text fixups. Closes #14360
show more ...
|
#
09cdf7e5 |
| 13-Jul-2024 |
Viktor Szakats |
cmake: delete unused `HAVE_LIBSSH2`, `HAVE_LIBSOCKET` macros - `HAVE_LIBSSH2`: unused in source. Not defined in CMake. - `HAVE_LIBSOCKET`: unused in source. Used internally in CMake
cmake: delete unused `HAVE_LIBSSH2`, `HAVE_LIBSOCKET` macros - `HAVE_LIBSSH2`: unused in source. Not defined in CMake. - `HAVE_LIBSOCKET`: unused in source. Used internally in CMake. autotools sets them implicitly, so add them to the flag comparison ignore-list. Closes #14178
show more ...
|
#
6343034d |
| 12-Jul-2024 |
Viktor Szakats |
tidy-up: adjust casing of project names Mostly TLS/SSH project name. Closes #14160
|
#
c074ba64 |
| 01-Jul-2024 |
Daniel Stenberg |
code: language cleanup in comments Based on the standards and guidelines we use for our documentation. - expand contractions (they're => they are etc) - host name = > hostname
code: language cleanup in comments Based on the standards and guidelines we use for our documentation. - expand contractions (they're => they are etc) - host name = > hostname - file name => filename - user name = username - man page => manpage - run-time => runtime - set-up => setup - back-end => backend - a HTTP => an HTTP - Two spaces after a period => one space after period Closes #14073
show more ...
|
#
d68a1212 |
| 30-Jun-2024 |
Viktor Szakats |
cmake: improve wolfSSL detection - support detecting wolfSSL via pkg-config (like autotools.) - detect wolfSSL version. - detect `HAVE_WOLFSSL_DES_ECB_ENCRYPT`. (need
cmake: improve wolfSSL detection - support detecting wolfSSL via pkg-config (like autotools.) - detect wolfSSL version. - detect `HAVE_WOLFSSL_DES_ECB_ENCRYPT`. (needs e.g. `--enable-curl` when building wolfSSL) - detect `HAVE_WOLFSSL_FULL_BIO` and enable HTTPS-proxy feature. (needs e.g. `--enable-opensslall` when building wolfSSL) - fix to show `HTTPS-proxy` in cmake feature list. Ref: 55807e6c056f27846d70cec70ee6ac3f0e5b3bbe #9962 - fix to show `NTLM` in cmake feature list. - fix to show `smb` and `smbs` in cmake protocol list. - add wolfSSL CMake job to GHA (for macOS). - fix mqtt and wolfSSL symbol clash. ``` ./curl/lib/mqtt.c: In function 'mqtt_doing': ./curl/lib/mqtt.c:746:17: error: declaration of 'byte' shadows a global declaration [-Werror=shadow] 746 | unsigned char byte; | ^~~~ /opt/homebrew/Cellar/wolfssl/5.7.0_1/include/wolfssl/wolfcrypt/types.h:85:36: note: shadowed declaration is here 85 | typedef unsigned char byte; | ^~~~ ``` - format `FindWolfSSL.cmake` closer to neighbours. Closes #14064
show more ...
|
#
66bf995d |
| 14-Jun-2024 |
Tal Regev |
cmake: add CURL_USE_GSASL option with detection + CI test Reviewed-by: Viktor Szakats Closes #13948
|
#
23fe1a52 |
| 01-Jun-2024 |
Andy Pan |
socketpair: add `eventfd` and use `SOCK_NONBLOCK` for `socketpair()` Currently, we use `pipe` for `wakeup_create`, which requires ***two*** file descriptors. Furthermore, given its compl
socketpair: add `eventfd` and use `SOCK_NONBLOCK` for `socketpair()` Currently, we use `pipe` for `wakeup_create`, which requires ***two*** file descriptors. Furthermore, given its complexity inside, `pipe` is a bit heavyweight for just a simple event wait/notify mechanism. `eventfd` would be a more suitable solution for this kind of scenario, kernel also advocates for developers to use `eventfd` instead of `pipe` in some simple use cases: Applications can use an eventfd file descriptor instead of a pipe (see pipe(2) in all cases where a pipe is used simply to signal events. The kernel overhead of an eventfd file descriptor is much lower than that of a pipe, and only one file descriptor is required (versus the two required for a pipe). This change adds the new backend of `eventfd` for `wakeup_create` and uses it where available, eliminating the overhead of `pipe`. Also, it optimizes the `wakeup_create` to eliminate the system calls that make file descriptors non-blocking by moving the logic of setting non-blocking flags on file descriptors to `socketpair.c` and using `SOCK_NONBLOCK` for `socketpair(2)`, `EFD_NONBLOCK` for `eventfd(2)`. Ref: https://man7.org/linux/man-pages/man7/pipe.7.html https://man7.org/linux/man-pages/man2/eventfd.2.html https://man7.org/linux/man-pages/man2/socketpair.2.html https://www.gnu.org/software/gnulib/manual/html_node/eventfd.html Closes #13874
show more ...
|
#
382717d7 |
| 11-Apr-2024 |
Evgeny Grin (Karlson2k) |
curl_setup.h: detect 'inline' support Closes #13355
|
#
add22fee |
| 31-Mar-2024 |
Christian Schmitz |
idn: add native AppleIDN (icucore) support for macOS/iOS I implemented the IDN functions for macOS and iOS using Unicode libraries coming with macOS and iOS. Builds and runs her
idn: add native AppleIDN (icucore) support for macOS/iOS I implemented the IDN functions for macOS and iOS using Unicode libraries coming with macOS and iOS. Builds and runs here on macOS 14.2.1. Also verified to load and run on older macOS version 10.13. Build requires macOS SDK 13 or equivalent. Set `-DUSE_APPLE_IDN=ON` CMake option to enable it. With autotools and other build tools, set these manual options: ``` CPPFLAGS=-DUSE_APPLE_IDN LIBS=-licucore ``` Completes TODO 1.6. TODO: add autotools option and feature-detection. Refs: #5330 #5371 Co-authored-by: Viktor Szakats Closes #13246
show more ...
|
#
a362962b |
| 04-Apr-2024 |
Stephen Farrell |
TLS: add support for ECH (Encrypted Client Hello) An EXPERIMENTAL feature used with CURLOPT_ECH and --ech. Closes #11922
|
#
6eb9e657 |
| 14-Apr-2024 |
Tal Regev |
cmake: forward `USE_LIBRTMP` option to C Define in C `USE_LIBRTMP` if user requested it from cmake. Closes #13364
|