Skip to content

Commit 8775751

Browse files
committed
enable c-ares by default in curl 8.12.0 for HTTPS RR support [ci skip]
Replace `noh3` alternative build example with `nocares`. Size increase is about 200 KiB for the distro `.zip` and `.tar.gz` files, and about the same amount for `curl.exe` and `libcurl*.dll`. c-ares static lib is 440 KiB in size (on Windows). This is not small, but fine. The bigger issue is that c-ares needs patching to build correctly and it's also unclear if it breaks the binary on supported systems back to Windows Vista. [EXPERIMENTAL]
1 parent 6504217 commit 8775751

File tree

3 files changed

+20
-11
lines changed

3 files changed

+20
-11
lines changed

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,38 +67,38 @@ Uses [LibreSSL](https://www.libressl.org/) TLS backend.
6767
```
6868
Windows:
6969
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
70-
Features: alt-svc AsynchDNS brotli CAcert HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSPI SSLS-EXPORT threadsafe UnixSockets zstd
70+
Features: alt-svc asyn-rr AsynchDNS brotli CAcert HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSPI SSLS-EXPORT threadsafe UnixSockets zstd
7171
7272
macOS:
7373
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
74-
Features: alt-svc AsynchDNS brotli CAcert HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Largefile libz NTLM PSL SSL SSLS-EXPORT threadsafe UnixSockets zstd
74+
Features: alt-svc asyn-rr AsynchDNS brotli CAcert HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Largefile libz NTLM PSL SSL SSLS-EXPORT threadsafe UnixSockets zstd
7575
7676
Linux:
7777
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
78-
Features: alt-svc AsynchDNS brotli CAcert HSTS HTTP2 HTTP3 HTTPS-proxy IPv6 Largefile libz NTLM PSL SSL SSLS-EXPORT threadsafe UnixSockets zstd
78+
Features: alt-svc asyn-rr AsynchDNS brotli CAcert HSTS HTTP2 HTTP3 HTTPS-proxy IPv6 Largefile libz NTLM PSL SSL SSLS-EXPORT threadsafe UnixSockets zstd
7979
```
8080
<details><summary>Alternate configurations:</summary><p>
8181

8282
```
83-
"noh3", HTTP/2:
83+
"nocares", HTTP/2:
8484
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
85-
Features: alt-svc AsynchDNS brotli CAcert HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSPI SSLS-EXPORT threadsafe UnixSockets zstd
85+
Features: alt-svc AsynchDNS brotli CAcert HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSPI SSLS-EXPORT threadsafe UnixSockets zstd
8686
8787
"mini", without brotli and zstd, with OS TLS backend (Schannel, SecureTransport) if available:
8888
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
89-
Features: alt-svc AsynchDNS CAcert HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSPI threadsafe UnixSockets
89+
Features: alt-svc AsynchDNS CAcert HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSPI threadsafe UnixSockets
9090
9191
"micro", without libssh2:
9292
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss
93-
Features: alt-svc AsynchDNS CAcert HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSPI threadsafe UnixSockets
93+
Features: alt-svc AsynchDNS CAcert HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSPI threadsafe UnixSockets
9494
9595
"nano", HTTP/1.1:
9696
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss
97-
Features: AsynchDNS CAcert HSTS HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSPI threadsafe UnixSockets
97+
Features: AsynchDNS CAcert HSTS HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSPI threadsafe UnixSockets
9898
9999
"pico", HTTP/1.1-only:
100100
Protocols: http https
101-
Features: AsynchDNS CAcert HSTS HTTPS-proxy IPv6 Largefile libz PSL SSL threadsafe
101+
Features: AsynchDNS CAcert HSTS HTTPS-proxy IPv6 Largefile libz PSL SSL threadsafe
102102
```
103103
</p></details>
104104

_build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ set -o xtrace -o errexit -o nounset; [ -n "${BASH:-}${ZSH_NAME:-}" ] && set -o p
3838
# nobrotli build without brotli
3939
# nozstd build without zstd
4040
# nozlib build without zlib
41+
# nocares build without c-ares
4142
# noftp build without FTP/FTPS support
4243
# nohttp build without HTTP and proxy support
4344
# nocookie build without cookie support

_dl.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -672,8 +672,16 @@ if [[ ! "${_CONFIG}" =~ (zero|bldtst|pico|nano|micro|mini) ]]; then
672672
fi
673673
fi
674674

675-
if [[ "${_CONFIG}" = *'cares'* ]]; then
676-
_DEPS+=' cares'
675+
if [[ "${_CONFIG}" = *'dev'* ]]; then
676+
if [[ ! "${_CONFIG}" =~ (zero|bldtst|pico|nano|micro|mini) || "${_CONFIG}" = *'cares'* ]]; then
677+
if [[ "${_CONFIG}" != *'nocares'* ]]; then
678+
_DEPS+=' cares'
679+
fi
680+
fi
681+
else
682+
if [[ "${_CONFIG}" = *'cares'* ]]; then
683+
_DEPS+=' cares'
684+
fi
677685
fi
678686

679687
if [[ ! "${_CONFIG}" =~ (zero|bldtst|nocookie) ]]; then

0 commit comments

Comments
 (0)