Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
885 commits
Select commit Hold shift + click to select a range
d993d46
GHA/windows: install MSYS2 c-ares only when used
vszakats Dec 3, 2025
dc8c0d5
test3207: enable memdebug for this test again
bagder Dec 2, 2025
c3b030b
lib: fix formatting nits (part 3)
vszakats Dec 2, 2025
6694a42
idn: avoid allocations and wcslen on Windows
vszakats Dec 1, 2025
1753de9
GHA/checksrc: give more time for slow Azure servers [ci skip]
vszakats Dec 3, 2025
0417d32
src: fix formatting nits
vszakats Dec 3, 2025
004f41c
tests: add `%AMP` macro, use it in two tests
vszakats Dec 2, 2025
276a4af
test787: fix possible typo `&` -> `%` in curl option
vszakats Dec 3, 2025
e8a4068
docs: clarify how to do unix domain sockets with SOCKS proxy
bagder Dec 4, 2025
ff2aaed
noproxy: fix ipv6 handling
Dec 3, 2025
472bc90
runtests: make memanalyzer a Perl module (for 1.1-2x speed-up per tes…
vszakats Dec 3, 2025
608f5dd
vtls: do not reach into ASN1_STRING
botovq Dec 4, 2025
39d1976
ldap: call ldap_init() before setting the options
bagder Dec 3, 2025
f39b8a1
lib: add a Curl_bufref_uptr() function and use it
monnerat Dec 3, 2025
36542b7
lib: turn state.url into a struct bufref
monnerat Dec 3, 2025
2cb8682
lib: turn state.referer into a struct bufref
monnerat Dec 3, 2025
fe7703a
formdata: use struct bufref for maybe-dynamic fields.
monnerat Dec 3, 2025
1def380
bufref: rename *memdup() to *memdup0()
bagder Dec 4, 2025
d792802
connection: attached transfer count
icing Dec 4, 2025
d517efe
bufref: add Curl_bufref_dup that returns a strdup()ed version
bagder Dec 4, 2025
7a1e99e
badwords: check FAQ with allowlisted 'will', fix a typo
vszakats Dec 4, 2025
0476e4f
tidy-up: one more round of formatting nits
vszakats Nov 29, 2025
dfd781f
tidy-up: miscellaneous
vszakats Nov 21, 2025
f97e62f
sws: fix binding to unix socket on Windows
vszakats Dec 2, 2025
df07f43
mbedtls: sync format across log messages
vszakats Nov 29, 2025
6d04227
openssl: simplify `HAVE_KEYLOG_CALLBACK` guard
vszakats Dec 4, 2025
ebe6fa0
docs/libcurl: fix C formatting nits
vszakats Dec 4, 2025
a153126
CURLMOPT_SOCKETFUNCTION.md: fix the callback argument use
bagder Dec 4, 2025
f1f76e0
url: if curl_url_get() fails due to OOM, error out properly
bagder Dec 4, 2025
859ce48
ldap: detect version of "legacy" LDAP
vszakats Dec 4, 2025
68a44ed
TODO: remove a mandriva.com reference
bagder Dec 5, 2025
8d9aa6d
tests/servers: put unix-domain-path inside LOGDIR
icing Dec 2, 2025
2d6ade1
ldap: improve detection of Apple LDAP
vszakats Dec 5, 2025
4e051ff
curlx: limit use of system allocators to the minimum possible
vszakats Dec 4, 2025
af5def0
tidy-up: avoid `(())`, clang-format fixes and more
vszakats Dec 4, 2025
cca815c
test1498: disable 'HTTP PUT from stdin' test on Windows
vszakats Dec 5, 2025
0b69c47
docs: remove dead URLs
bagder Dec 5, 2025
58394b1
docs: use .example URLs for proxies
bagder Dec 5, 2025
e80682d
FAQ: fix hackerone URL
bagder Dec 5, 2025
ca24b6a
DISTROS: remove broken URLs for buildroot
bagder Dec 5, 2025
51587f6
mdlinkcheck: detect and check "raw" links
bagder Dec 5, 2025
15e5ac6
RELEASE-NOTES: synced
bagder Dec 5, 2025
891566c
ftp: make EPRT connections non-blocking
icing Dec 5, 2025
1c0822e
formdata: validate callback is non-NULL before use
Dec 6, 2025
0b5ece5
altsvc: make it one malloc instead of three per entry
bagder Dec 6, 2025
f4b56f3
asyn-thrdd: fix Curl_async_getaddrinfo() on systems without getaddrinfo
bagder Dec 6, 2025
65597f8
noproxy: fix build on systems without IPv6
bagder Dec 6, 2025
9ec63d8
hsts: use one malloc instead of two per entry
bagder Dec 7, 2025
a3f4fd2
http: return OOM errors from hsts properly
bagder Dec 7, 2025
cc5c155
wolfssl: fix possible assert with `!HAVE_NO_EX` wolfSSL builds
vszakats Dec 5, 2025
f08417c
runner.pm: run memanalyzer as a Perl module
vszakats Dec 7, 2025
c6e5dfa
cookie: allocate the main struct once cookie is fine
bagder Dec 7, 2025
524936f
cookie: when parsing a cookie header, delay all allocations until okay
bagder Dec 7, 2025
a093c93
cookie: only keep and use the canonical cleaned up path
bagder Dec 7, 2025
a78a07d
cookie: cleanups and improvements
bagder Dec 7, 2025
121c540
sspi: fix memory leaks on error paths in `Curl_create_sspi_identity()`
vszakats Dec 7, 2025
2535c42
hostcheck: fail wildcard match if host starts with a dot
bagder Dec 8, 2025
d360ddb
test1475: consistently use %CR in headers
fabiankeil Dec 7, 2025
96ba7a7
gnutls: add PROFILE_MEDIUM as default
icing Dec 5, 2025
4a92afc
DISTROS: fix a Mageia URL
bagder Dec 8, 2025
81e5e24
GHA/linux: blind try to make Renovate detect Fil-C releases
vszakats Dec 8, 2025
c56ee2a
GHA/linux: update dependency pizlonator/fil-c to v0.675
renovate[bot] Dec 8, 2025
a1c01b2
mdlinkcheck: ignore IP numbers, allow '@' in raw URLs
bagder Dec 8, 2025
ab9beda
docs: switch more URLs to https://
bagder Dec 8, 2025
7dd5bb7
CI/windows: add torture tests with Schannel
vszakats Dec 7, 2025
cc853dd
GHA: bump pip-dependencies ruff, psutil, pytest
dependabot[bot] Dec 8, 2025
64a1092
IPFS.md: wrap long lines
vszakats Dec 8, 2025
16f4b20
KNOWN_BUGS: remove link to codepoints.net
bagder Dec 8, 2025
09e48d5
mk-ca-bundle.md: the file format docs URL is permaredirected
bagder Dec 8, 2025
2ae983b
tidy-up: URLs
vszakats Dec 8, 2025
d75716e
tests/data: move `--libcurl` output to external data files
vszakats Dec 1, 2025
cce6606
tests/data: use more `%TESTNUMBER` macro for previous patch
vszakats Dec 9, 2025
86f5bd3
curl_setup.h: fix `FMT_SOCKET_T` to be unsigned on Windows
vszakats Aug 21, 2025
bf70031
RELEASE-NOTES: synced
bagder Dec 9, 2025
70d71e8
tests/data: move section data to external files
vszakats Dec 9, 2025
4c36143
headers: add length argument to Curl_headers_push()
bagder Dec 9, 2025
43c781a
imap: check buffer length before accessing it
bagder Dec 9, 2025
3dd1ffd
FAQ/TODO/KNOWN_BUGS: convert to markdown
bagder Dec 8, 2025
4fb609f
FAQ: fix minor link syntax mistake
bagder Dec 9, 2025
761750b
Dockerfile: update debian:bookworm-slim digest to 1371f81
renovate[bot] Dec 9, 2025
4fe629c
Dockerfile: update debian:bookworm-slim digest to e899040
renovate[bot] Dec 9, 2025
1dd758b
test1464: mark XML-compliant
vszakats Dec 9, 2025
d14bf19
test1025, 1221: fold long command-lines
vszakats Dec 9, 2025
b739102
TODO: remove ancient entries no longer considered
bagder Dec 9, 2025
e28dc58
examples: use 64-bit `fstat` on Windows
vszakats Dec 9, 2025
e76080f
test: add test 2090 for SSLKEYLOGFILE structure
yedayak Dec 2, 2025
8e847fa
gtls: Call keylog_close in cleanup
yedayak Dec 2, 2025
f450f38
GHA/windows: re-enable `taskkill`
vszakats Dec 9, 2025
5ed7b5b
alt-svc: more flexibility on same destination
icing Dec 8, 2025
9711c98
multi: remove MSTATE_TUNNELING
icing Dec 9, 2025
44e6491
pytest: socksd startup delay
icing Dec 9, 2025
197904d
config-win32.h: delete obsolete, non-Windows comments
vszakats Dec 9, 2025
74bc0c8
configure: delete unused variable
vszakats Dec 9, 2025
073b85c
GHA: make links get checked daily
bagder Dec 9, 2025
163705d
windows: assume `USE_WIN32_LARGE_FILES`
vszakats Dec 9, 2025
a7c974e
DEPRECATE: add CMake <3.18 deprecation for April 2026
vszakats Oct 8, 2025
9203198
mdlinkcheck: exclude self from URL search
vszakats Dec 9, 2025
3fb932d
mdlinkcheck: do not pick up single quote and backslash after URLs
vszakats Dec 9, 2025
bd19433
build: set `-Wno-format-signedness`
vszakats Dec 9, 2025
d371288
test: increase altsvc test reliability
icing Dec 9, 2025
00f0612
memdebug: fix realloc logging
icing Dec 9, 2025
d9d2e33
tidy-up: URLs (cont.) and mdlinkcheck
vszakats Dec 9, 2025
6532398
GHA: update dependencies and actions
renovate[bot] Dec 10, 2025
b11b67c
test318: tweak the name a little
bagder Dec 10, 2025
2180d7b
CURLOPT_FOLLOWLOCATION.md: s/Authentication:/Authorization:/
bagder Dec 10, 2025
26d7665
mdlinkcheck: add --dry-run to only show all found URLs
bagder Dec 10, 2025
0b96f75
GHA/checkurls: add dry run on push
vszakats Dec 10, 2025
1447842
pytest: quiche flakiness
icing Dec 10, 2025
0295c94
ldap: drop PP logic for old, unsupported, Windows SDKs
vszakats Dec 10, 2025
edbbcbb
config-win32.h: drop unused/obsolete `CURL_HAS_OPENLDAP_LDAPSDK`
vszakats Dec 10, 2025
a73040a
quiche: fix version for skip due to flakiness
icing Dec 10, 2025
cc28564
autotools: fix LargeFile feature display on Windows (after prev patch)
vszakats Dec 10, 2025
8db0e28
autotools: tidy-up `if` expressions
vszakats Aug 5, 2025
73b732e
tests/data: replace `&` with `%AMP`
vszakats Dec 10, 2025
7109b42
tests/data: replace `<` with `%LT`
vszakats Dec 10, 2025
2397be8
tests/data: replace `<`, `>` with `%LT`, `%GT`
vszakats Dec 10, 2025
3192984
runtests: add support for single-quoted attributes, use it
vszakats Dec 10, 2025
bfe6eb1
runtests: drop `notxml` keyword, verify all test data files as XML
vszakats Dec 10, 2025
bb134bb
test3214: allow a larger struct Curl_easy
bagder Dec 11, 2025
1a82227
curl_sasl: if redirected, require permission to use bearer
bagder Dec 10, 2025
f72c377
tests: verify setting bearer and doing redirects
bagder Dec 10, 2025
869248c
autotools: drop reference to deleted `CURL_CHECK_CURLDEBUG`
vszakats Dec 11, 2025
421f931
test1165: drop reference to deleted `CURL_DISABLE_TESTS`
vszakats Dec 11, 2025
8ff5222
docs: fold long lines
vszakats Dec 11, 2025
46429d6
GHA/checkdocs: re-enable proselint, update setup, fix issues found
vszakats Dec 11, 2025
624d98e
transfer: remove @param for err for xfer_recv_resp function.
MonkeybreadSoftware Dec 11, 2025
846eaf4
RELEASE-NOTES: synced
bagder Dec 11, 2025
2e3687c
mdlinkcheck: only look for markdown links in markdown files
bagder Dec 11, 2025
141ce4b
GHA: update actions/cache action to v5
renovate[bot] Dec 11, 2025
fe8393d
tidy-up: miscellaneous
vszakats Dec 7, 2025
407d2f3
test568: remove what looks like an email and a URL
bagder Dec 12, 2025
eb39fee
pytest: add tests using sshd
icing Dec 11, 2025
3f1cd80
runtests: add options to set minimum number of tests, use them
vszakats Dec 12, 2025
e413a38
build: disable typecheck for analyzers and Fil-C
vszakats Dec 12, 2025
d248d17
cmake: update a comment
vszakats Dec 12, 2025
77eb669
test568: fix codespell, catch it next time early in CI
vszakats Dec 12, 2025
b83fb8c
GHA/windows: move dl-mingw tests from 9.5.0 to 15.1.0
vszakats Dec 12, 2025
7d79ef9
test567: add a header separating CRLF
bagder Dec 12, 2025
b5ea073
tests/data: add XML prolog to test files
vszakats Dec 12, 2025
5e14d62
tests/data: delete stray comments
vszakats Dec 12, 2025
74494d6
GHA: enable libssh and libssh2 in 10 more Linux jobs
vszakats Dec 12, 2025
72f55c1
GHA: update actions
renovate[bot] Dec 12, 2025
e0a77ec
tests: fix perl scalar warning
dfandrich Dec 12, 2025
28d2757
tool_urlglob: support globs as long as config line lengths
bagder Dec 13, 2025
23f9d62
GHA/checksrc: fix `-z` position, also use `--output` with `xmllint`
vszakats Dec 13, 2025
67ae101
http: unfold response headers earlier
bagder Dec 12, 2025
f0d277c
tests: verify new header undfolder
bagder Dec 11, 2025
1c8c34c
schannel: cap the maximum allowed size for loading cert
bagder Dec 13, 2025
a9b1be5
renovate: leave bumping GitHub Actions to Dependabot
vszakats Dec 12, 2025
c8375c9
examples: delete unresponsive example URL
vszakats Dec 13, 2025
20ffdff
renovate: try to disable GitHub Actions updates differently
vszakats Dec 14, 2025
e614641
GHA: update actions
renovate[bot] Dec 13, 2025
b714c67
synctime: tidy up, make it work on all platforms
vszakats Dec 14, 2025
187e219
runtests: improve XML prolog check, enable `-w` permanently, fix two …
vszakats Dec 14, 2025
15de32f
easy: fix debug ev poll builds
gbrlmarn Dec 13, 2025
43a95aa
renovate: try bumping Fil-C on releases, not tags
vszakats Dec 15, 2025
2399ec7
tidy-up: replace banned `printf()` with `puts()`
vszakats Dec 14, 2025
b10b7c1
tests/server: fix initialization on Windows Vista+
vszakats Dec 14, 2025
6f3124e
RELEASE-NOTES: synced
bagder Dec 15, 2025
5914b9c
TODO: consider a multi-threaded curl tool
bagder Dec 14, 2025
9b3557b
GHA/linux: update dependency pizlonator/fil-c to v0.677
renovate[bot] Dec 15, 2025
6a3d0b6
vquic: ignore 0-length UDP packets
icing Dec 15, 2025
9570fa7
docs: fix time_posttransfer output unit as seconds
skatsubo Dec 15, 2025
c36416e
getenv: drop internal 1-to-1 wrapper
vszakats Dec 15, 2025
7b27834
GHA/non-native: fix passing some envs to the VMs
vszakats Dec 15, 2025
425a2aa
curl_sasl: username cleanups
bagder Dec 15, 2025
2de22a0
lib: keep timestamp in easy handle
icing Dec 15, 2025
222fce0
cookie. return proper error on OOM
bagder Dec 16, 2025
3a485c2
pytest: do not ignore server issues
icing Dec 16, 2025
5431b3d
build: unix socket tidy-ups
vszakats Dec 16, 2025
74a2828
runtests: log the required minimum number of tests in CI
vszakats Dec 15, 2025
c6988f9
curlx: move `Curl_gmtime()`, use `gmtime_s()` on Windows
vszakats Dec 12, 2025
32454b9
localtime: detect thread-safe alternatives and use them
vszakats Dec 13, 2025
be76b32
idn: clarify null-termination on Windows
vszakats Dec 15, 2025
627e32f
cf-socket: enable Win10 `TCP_KEEP*` options with old SDKs
vszakats Dec 16, 2025
5196aba
lib: create unitprotos.h in the builddir, not srcdir
dfandrich Dec 16, 2025
8dadff9
schannel: use Win8 `CERT_NAME_SEARCH_ALL_NAMES_FLAG` with old SDKs
vszakats Dec 16, 2025
61273f5
badwords: catch and fix threading-related words
vszakats Dec 16, 2025
fe91d5d
tests: add a standard log line for alloc failures
dfandrich Dec 16, 2025
680f050
HISTORY: add current website stats
bagder Dec 16, 2025
e88209d
examples/threaded-ssl: delete in favor of `examples/threaded`
vszakats Dec 16, 2025
1b20507
GHA: bump pip-dependencies
dependabot[bot] Dec 16, 2025
0a26e3a
lib: name the main CURLMcode variable 'mresult'
bagder Dec 16, 2025
56f600e
tests: rename CURLMcode variables to mresult
bagder Dec 16, 2025
d21f437
docs: use mresult as variable name for CURLMcode
bagder Dec 16, 2025
09f01f2
docs: rename CURLcode variables to 'result'
bagder Dec 16, 2025
de8470c
multi: remove useless assignment
bagder Dec 17, 2025
be3c226
wolfssl: proof use of wolfSSL_i2d_SSL_SESSION
icing Dec 17, 2025
cd046f6
openssl: toggling CURLSSLOPT_NO_PARTIALCHAIN makes a different CA cache
bagder Dec 17, 2025
14d5b6c
cmake: replace deprecated `PERL_FOUND` with `Perl_FOUND`
vszakats Dec 17, 2025
9cd827a
cmake: replace deprecated `OPENSSL_FOUND` with `OpenSSL_FOUND`
vszakats Dec 17, 2025
7e2b15e
build: replace `-pedantic` with `-Wpedantic` when supported
vszakats Dec 17, 2025
d7bde80
cmake: add `curl-optiontable`, `curl-listhelp`, `curl-listcats` targets
vszakats Dec 18, 2025
673e02a
cmake/FindRustls: merge two `if`s
vszakats Dec 18, 2025
9941e7c
http: when unfolding, leave single-space for new header line
bagder Dec 18, 2025
cd9da30
INSTALL-CMAKE.md: add recently added targets
vszakats Dec 18, 2025
308c347
tidy-up: miscellaneous
vszakats Dec 12, 2025
b4be1f2
time-keeping: keep timestamp in multi, always update
icing Dec 18, 2025
1e0865b
TIME-KEEPING.md: fold long lines
vszakats Dec 18, 2025
2c31dc4
timeval: scope a variable, merge two PP branches
vszakats Dec 18, 2025
951d778
build: drop unused `curl_share.h` includes
vszakats Dec 18, 2025
eb72ec4
build: drop unused `curlx/inet_pton.h` includes
vszakats Dec 18, 2025
e59e512
curl_trc: delete unused DoH remains
vszakats Dec 19, 2025
fb50214
build: drop unused `multiif.h` includes
vszakats Dec 18, 2025
7db6049
build: drop unused includes
vszakats Dec 18, 2025
26d3b9e
compressed.md: might generate a huge amount of bytes
bagder Dec 19, 2025
481f11d
CURLOPT_ACCEPT_ENCODING.md: warn about the expansion
bagder Dec 19, 2025
6c7bc98
http: fix for unfolding line starting with TAB
bagder Dec 19, 2025
d11b859
build: drop duplicate include `curl/curl.h` and others
vszakats Dec 19, 2025
828d2e8
contributors.sh: only check -by: lines for names
bagder Dec 19, 2025
eeb9689
RELEASE-NOTES: synced
bagder Dec 19, 2025
3233304
socketpair: drop redundant `_WIN32` branch and include
vszakats Dec 19, 2025
3388afd
http: more unfold fixing
bagder Dec 19, 2025
0f7b182
ngtcp2: retune window sizes
icing Dec 19, 2025
4ec7136
scorecard: more upload options
icing Dec 19, 2025
7ded0e2
cmake: delete unused file `CMake/CMakeConfigurableFile.in`
vszakats Dec 19, 2025
1892286
cmake: match filename suffixes with file content
vszakats Dec 19, 2025
c0d8fed
tool_urlglob: constify an argument
vszakats Dec 20, 2025
e157638
curlx: use curl alloc in `curlx_win32_stat()` (Windows)
vszakats Dec 20, 2025
ff85571
curl_ntlm_core: drop unused OpenSSL/wolfSSL headers
vszakats Dec 20, 2025
43baf7a
lib: drop unused `rand.h` includes
vszakats Dec 20, 2025
a468e60
openssl: drop includes unused or duplicate
vszakats Dec 20, 2025
969351b
windows: fix `CreateFile()` calls to support long filenames
vszakats Dec 19, 2025
424cef6
GHA/http3-linux: set minimum number of runtest tests
vszakats Dec 20, 2025
6d0ee7b
curlx: add `curlx_rename()`, fix to support long filenames on Windows
vszakats Dec 20, 2025
c85994d
http: minor cleanup after the unfold rework
bagder Dec 19, 2025
d405ac8
multi-notify: add check macro
icing Dec 19, 2025
1dc6ddd
mbedTLS: cleanup insecure/deprecated code
wyattoday Dec 15, 2025
50b2944
contributors.sh: even stricter requirements for the -by: line
bagder Dec 20, 2025
94a57b4
contrithanks.sh: adopt the stricter by: check from contributors.sh
bagder Dec 20, 2025
b5aafb8
lib: use `SOCKET_WRITABLE()`/`SOCKET_READABLE()` where possible
vszakats Dec 20, 2025
df4edd2
socks.h: delete obsolete, unused, macros
vszakats Dec 20, 2025
a354cc8
lib: drop includes unused or duplicate
vszakats Dec 20, 2025
3c1c299
lib: drop unused curlx headers
vszakats Dec 20, 2025
fdb5152
lib: drop unused `vtls/vtls.h` includes
vszakats Dec 21, 2025
d429860
tidy-up: `curlx/nonblock.h` includes
vszakats Dec 20, 2025
6011b83
curl_ntlm_core: move `vauth/vauth.h` include from header to source
vszakats Dec 21, 2025
a3f866a
transfer: drop unused `vquic/vquic.h` include
vszakats Dec 21, 2025
70651cb
lib: drop unused `vssh/ssh.h` includes
vszakats Dec 21, 2025
884b5ea
lib: include `curlx/warnless.h` from `curl_setup.h`
vszakats Dec 20, 2025
4cf88d8
x509asn1: drop unused `hostcheck.h`, `vtls_int.h` includes
vszakats Dec 21, 2025
4df7269
test96: fix to accept non-unity memdump content with MSVC
vszakats Dec 21, 2025
e8415a8
lib: drop, or replace `sendf.h` with `curl_trc.h` where possible
vszakats Dec 21, 2025
4ad87f2
checksrc: ensure using `ifdef`/`ifndef` when possible, fix fallouts
vszakats Dec 21, 2025
6e6fafa
binmode: delete extra nop instruction from fallback macro
vszakats Dec 21, 2025
d92e264
curlx: rename `Curl_`-prefixed symbols to `curlx_`
vszakats Dec 21, 2025
6b9c75e
content_encoding: avoid strcpy
bagder Dec 22, 2025
230ee53
CURLOPT_HAPROXY_CLIENT_IP.md: emphasize reused connection use
bagder Dec 22, 2025
f099c2c
apple sectrust: fix ancient evaluation
icing Dec 17, 2025
a535be4
curlx: curlx_strcopy() instead of strcpy()
bagder Dec 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
36 changes: 16 additions & 20 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,28 +38,16 @@ commands:
steps:
- run:
command: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update && sudo apt-get install -y libssh-dev

install-deps:
steps:
- run:
command: |
sudo apt-get update && sudo apt-get install -y libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev python3-pip libpsl-dev
sudo python3 -m pip --disable-pip-version-check --no-input --no-cache-dir install --progress-bar off --prefer-binary -r tests/requirements.txt

install-wolfssl:
steps:
- run:
command: |
# renovate: datasource=github-tags depName=wolfSSL/wolfssl versioning=semver extractVersion=^v?(?<version>.+)-stable$ registryUrl=https://github.com
WOLFSSL_VERSION=5.8.0
echo "Installing wolfSSL $WOLFSSL_VERSION"
curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 120 --retry 6 --retry-connrefused \
--location "https://github.com/wolfSSL/wolfssl/archive/v$WOLFSSL_VERSION-stable.tar.gz" | tar -xz
cd wolfssl-$WOLFSSL_VERSION-stable
./autogen.sh
./configure --disable-dependency-tracking --enable-tls13 --enable-all --enable-harden --prefix=$HOME/wssl
make install
sudo apt-get update && sudo apt-get install -y libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev python3-pip
python3 -m venv ~/venv
~/venv/bin/pip --disable-pip-version-check --no-input --no-cache-dir install --progress-bar off --prefer-binary -r tests/requirements.txt

configure:
steps:
Expand Down Expand Up @@ -109,16 +97,24 @@ commands:
build:
steps:
- run: make -j3 V=1
- run: src/curl --disable --version
- run: make -j3 V=1 examples

test:
steps:
- run: make -j3 V=1 test-ci TFLAGS='-j14'
- run:
command: |
source ~/venv/bin/activate
# Revert a CircleCI-specific local setting that makes test 1459
# return 67 (CURLE_LOGIN_DENIED) instead of the
# expected 60 (CURLE_PEER_FAILED_VERIFICATION).
echo 'StrictHostKeyChecking yes' >> ~/.ssh/config
make -j3 V=1 test-ci TFLAGS='-j14'

executors:
ubuntu:
machine:
image: ubuntu-2004:2024.01.1
image: ubuntu-2204:2025.09.1

jobs:
basic:
Expand Down Expand Up @@ -161,7 +157,7 @@ jobs:

arm:
machine:
image: ubuntu-2004:2024.01.1
image: ubuntu-2204:2025.09.1
resource_class: arm.medium
steps:
- checkout
Expand All @@ -172,7 +168,7 @@ jobs:

arm-cares:
machine:
image: ubuntu-2004:2024.01.1
image: ubuntu-2204:2025.09.1
resource_class: arm.medium
steps:
- checkout
Expand Down
21 changes: 19 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,37 @@
#
# SPDX-License-Identifier: curl

# https://docs.github.com/code-security/dependabot/working-with-dependabot/dependabot-options-reference

version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'monthly'
cooldown:
default-days: 7
groups:
gha-dependencies:
patterns:
- '*'
commit-message:
prefix: 'GHA:'

- package-ecosystem: 'pip'
directories:
- '/.github/scripts'
- '/tests'
- '.github/scripts'
- 'tests'
schedule:
interval: 'monthly'
cooldown:
default-days: 7
semver-major-days: 15
semver-minor-days: 7
semver-patch-days: 3
groups:
pip-dependencies:
patterns:
- '*'
commit-message:
prefix: 'GHA:'
9 changes: 5 additions & 4 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
# the files fit into the category, and the any-glob-to-any-file ones are added
# as long as any file matches. The first ones are for "major" categories (the
# PR is all about that one topic, like HTTP/3), while the second ones are
# "addendums" that give useful information about a PR that's really mostly
# "addendums" that give useful information about a PR that is really mostly
# something else (e.g. CI if the PR also touches CI jobs).
#
# N.B. any-glob-to-all-files is misnamed; it acts like one-glob-to-all-files.
Expand Down Expand Up @@ -65,7 +65,7 @@ build:
**/*.mk,\
*.m4,\
docs/INSTALL-CMAKE.md,\
lib/curl_config.h.cmake,\
lib/curl_config-cmake.h.in,\
lib/libcurl*.in,\
CMake/**,\
CMakeLists.txt,\
Expand Down Expand Up @@ -98,7 +98,7 @@ cmake:
**/CMakeLists.txt,\
CMake/**,\
docs/INSTALL-CMAKE.md,\
lib/curl_config.h.cmake,\
lib/curl_config-cmake.h.in,\
tests/cmake/**\
}"

Expand Down Expand Up @@ -162,9 +162,9 @@ cryptography:
docs/libcurl/opts/CURLOPT_EGDSOCKET*,\
lib/*sha256*,\
lib/*sha512*,\
lib/curl_des.*,\
lib/curl_hmac.*,\
lib/curl_md?.*,\
lib/curl_ntlm_core.*,\
lib/md?.*,\
lib/rand.*\
}"
Expand Down Expand Up @@ -451,6 +451,7 @@ TLS:
- all:
- changed-files:
- any-glob-to-all-files: "{\
CMake/FindGnuTLS.cmake,\
CMake/FindMbedTLS.cmake,\
CMake/FindWolfSSL.cmake,\
CMake/FindRustls.cmake,\
Expand Down
7 changes: 7 additions & 0 deletions .github/scripts/badwords.ok
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
#
# SPDX-License-Identifier: curl
#
# whitelisted uses of bad words
# file:[line]:rule
docs/FAQ.md::\bwill\b
51 changes: 45 additions & 6 deletions .github/scripts/badwords.pl
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,29 @@
my @whitelist;
my %alt;
my %exactcase;
my $skip_indented = 1;

if($ARGV[0] eq "-a") {
shift @ARGV;
$skip_indented = 0;
}
my %wl;
if($ARGV[0] eq "-w") {
shift @ARGV;
my $file = shift @ARGV;
open(W, "<$file") or die "Cannot open '$file': $!";
while(<W>) {
if(/^#/) {
# allow #-comments
next;
}
if(/^([^:]*):(\d*):(.*)/) {
$wl{"$1:$2:$3"}=1;
#print STDERR "whitelisted $1:$2:$3\n";
}
}
close(W);
}

my @w;
while(<STDIN>) {
Expand All @@ -30,7 +53,7 @@
if($_ =~ /^---(.*)/) {
push @whitelist, $1;
}
elsif($_ =~ /^([^:=]*)([:=])(.*)/) {
elsif($_ =~ /^(.*)([:=])(.*)/) {
my ($bad, $sep, $better)=($1, $2, $3);
push @w, $bad;
$alt{$bad} = $better;
Expand All @@ -50,7 +73,7 @@ sub file {
my $in = $_;
$l++;
chomp $in;
if($in =~ /^ /) {
if($skip_indented && $in =~ /^ /) {
next;
}
# remove the link part
Expand All @@ -67,8 +90,22 @@ sub file {
($in =~ /^(.*)$w/ && $case) ) {
my $p = $1;
my $c = length($p)+1;

my $ch = "$f:$l:$w";
if($wl{$ch}) {
# whitelisted filename + line + word
print STDERR "$ch found but whitelisted\n";
next;
}
$ch = $f . "::" . $w;
if($wl{$ch}) {
# whitelisted filename + word
print STDERR "$ch found but whitelisted\n";
next;
}

print STDERR "$f:$l:$c: error: found bad word \"$w\"\n";
printf STDERR " %4d | $in\n", $l;
printf STDERR " %4d | %s\n", $l, $in;
printf STDERR " | %*s^%s\n", length($p), " ",
"~" x (length($w)-1);
printf STDERR " maybe use \"%s\" instead?\n", $alt{$w};
Expand All @@ -79,9 +116,11 @@ sub file {
close(F);
}

my @files = @ARGV;

foreach my $each (@files) {
my @filemasks = @ARGV;
open(my $git_ls_files, '-|', 'git', 'ls-files', '--', @filemasks) or die "Failed running git ls-files: $!";
while(my $each = <$git_ls_files>) {
chomp $each;
file($each);
}
close $git_ls_files;
exit $errors;
86 changes: 53 additions & 33 deletions .github/scripts/badwords.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,73 +3,93 @@
# SPDX-License-Identifier: curl
#
back-end:backend
e-mail:email
\be-mail[^/]:email
run-time:runtime
set-up:setup
tool chain:toolchain
tool-chain:toolchain
wild-card:wildcard
wild card:wildcard
\bthread ?safe[^."t]:thread-safe
\bthread ?unsafe[^."t]:thread-unsafe
multi ?thread:multi-thread
\bit's:it is
aren't:are not
can't:cannot
could've:could have
couldn't:could not
didn't:did not
doesn't:does not
don't:do not
haven't:have not
i'd:I would
i'll:I will
i'm:I am
you've:You have
we've:we have
we're:we are
we'll:we will
we'd:we would
they've:They have
they're:They are
they'll:They will
i've:I have
isn't:is not
it'd:it would
it'll:it will
might've:might have
needn't:need not
should've:should have
shouldn't:should not
that's:that is
there's:there is
they'd:They would
you've:you have
they'll:They will
they're:They are
they've:They have
this'll:this will
wasn't:was not
we'd:we would
we'll:we will
we're:we are
we've:we have
weren't:were not
won't:will not
would've:would have
wouldn't:would not
you'd:you would
you'll:you will
you're:you are
should've:should have
don't=do not
could've:could have
doesn't:does not
isn't:is not
aren't:are not
you've:you have
a html: an html
a http: an http
a ftp: an ftp
a IPv4: an IPv4
a IPv6: an IPv6
url =URL
internet\b=Internet
url [^=]=URL
[^/]internet\b=Internet
isation:ization
\bit's:it is
it'd:it would
there's:there is
[^.]\. And: Rewrite it somehow?
^(And|So|But) = Rewrite it somehow?
\. But: Rewrite it somehow?
\. So : Rewrite without "so" ?
dir :directory
can't:cannot
that's:that is
dir [^=]=directory
Dir [^=]=Directory
sub-director:subdirector
web page:webpage
host name\b:hostname
host names\b:hostnames
file name\b:filename
[^;<]file name\b:filename
file names\b:filenames
\buser name\b:username
\buser names\b:usernames
\bpass phrase:passphrase
didn't:did not
doesn't:does not
won't:will not
couldn't:could not
\bwill\b:rewrite to present tense
\b32bit=32-bit
\b64bit=64-bit
32 bit\b=32-bit
64 bit\b=64-bit
\b32bit:32-bit
\b64bit:64-bit
32 bit\b:32-bit
64 bit\b:64-bit
64-bits:64 bits or 64-bit
32-bits:32 bits or 32-bit
\bvery\b:rephrase using an alternative word
\bCurl\b=curl
\bcURL\b=curl
\bLibcurl\b=libcurl
\bLibCurl\b=libcurl
---WWW::Curl
---NET::Curl
---Curl Corporation
\bmanpages[^./;=&{:-]:man pages
\bmanpage[^si./;=&{:-]:man page
Loading