Commit graph

16749 commits

Author SHA1 Message Date
Viktor Szakats
4da0f86d20
shorten name 2026-06-12 19:55:16 +02:00
Viktor Szakats
62b92b22df
comment cleanups 2026-06-12 18:19:17 +02:00
Viktor Szakats
483c140a51
comment nits 2 2026-06-12 17:45:20 +02:00
Viktor Szakats
06c874437e
comment nits 2026-06-12 17:42:28 +02:00
Viktor Szakats
7556b07d19
vquic.c use new local var in err msgs 2026-06-12 17:37:40 +02:00
Viktor Szakats
30b27371c5
rustls.c fixup 2026-06-12 17:08:15 +02:00
Viktor Szakats
b0ccea9358
replace switch cases with the new macro 2026-06-12 17:08:15 +02:00
Viktor Szakats
ffb99912ac
inline two comments 2026-06-12 16:34:20 +02:00
Viktor Szakats
ac9dba09df
socketpair.c use interim err var in Curl_wakeup_consume f 2026-06-12 16:34:20 +02:00
Viktor Szakats
14d5cab62c
indent 2026-06-12 16:34:20 +02:00
Viktor Szakats
6ae09171a8
socketpair.c use interim err var in Curl_wakeup_consume 2026-06-12 16:34:20 +02:00
Viktor Szakats
d2687af73a
merge checks on Win/non-Win 2026-06-12 16:34:20 +02:00
Viktor Szakats
613056afc3
move variable to the left-side of equality expression 2026-06-12 16:34:20 +02:00
Viktor Szakats
8a192a5b70
drop defined(EAGAIN) checks everywhere
There was an unprotected unconditional use in src. Also in vquic
and socketpair, on conditions.
2026-06-12 16:34:20 +02:00
Viktor Szakats
670e3fc0fa
rest of code sync guard with cf-socket.c 2026-06-12 16:34:20 +02:00
Viktor Szakats
78b3de67c3
vquic.c sync guard with cf-socket.c 2026-06-12 16:34:20 +02:00
Viktor Szakats
6e44399d4d
there is EAGAIN on Windows nowadays, but never returned by SOCKERRNO 2026-06-12 16:34:20 +02:00
Viktor Szakats
54ced2826a
rename macros 2026-06-12 16:34:20 +02:00
Viktor Szakats
86bdd0a10d
winsock 2026-06-12 16:34:20 +02:00
Viktor Szakats
796ac6430a
move raw macros to rustls 2026-06-12 16:34:20 +02:00
Viktor Szakats
e23f4a1a73
vquic.c guard off EAGAIN as in cf-socket.c 2026-06-12 16:34:20 +02:00
Viktor Szakats
fb0d07ec8c
rely more on EWOULDBLOCK 2026-06-12 16:34:20 +02:00
Viktor Szakats
7bb5a096e9
socketpair.c one more 2026-06-12 16:34:20 +02:00
Viktor Szakats
3951d0489d
maybe 2026-06-12 16:34:20 +02:00
Viktor Szakats
6e4aa6600a
add RAW macro for rustls and use it
comparing to raw EWOULDBLOCK may not be working as expected on Windows.

Based on this:
https://doc.rust-lang.org/std/io/struct.Error.html#method.last_os_error
Rust doesn't seem to be returning the socket error on Windows, but
a GetLastError() which does not return EWOULDBLOCK or SOCKEWOULDBLOCK.
2026-06-12 16:34:20 +02:00
Viktor Szakats
14cd3ff22b
cf-socket shorten 2026-06-12 16:34:20 +02:00
Viktor Szakats
c7b4f96ee8
socketpair shorten 2026-06-12 16:34:20 +02:00
Viktor Szakats
921c610b68
vquic 2026-06-12 16:34:20 +02:00
Viktor Szakats
deb40d1bf6
rustls 2026-06-12 16:34:20 +02:00
Viktor Szakats
b970538ad7
socketpair.c move variable to the left-side of equality expression (tidy up) 2026-06-12 16:34:19 +02:00
Viktor Szakats
ee0dc8353d
avoid another warning
```
/Users/runner/work/curl/curl/lib/socketpair.c:329:15: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality]
      if((err == SOCKEWOULDBLOCK)
          ~~~~^~~~~~~~~~~~~~~~~~
/Users/runner/work/curl/curl/lib/socketpair.c:329:15: note: remove extraneous parentheses around the comparison to silence this warning
      if((err == SOCKEWOULDBLOCK)
         ~    ^                 ~
/Users/runner/work/curl/curl/lib/socketpair.c:329:15: note: use '=' to turn this equality comparison into an assignment
      if((err == SOCKEWOULDBLOCK)
              ^~
              =
/Users/runner/work/curl/curl/lib/socketpair.c:359:21: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality]
      if((SOCKERRNO == SOCKEWOULDBLOCK)
          ~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/Users/runner/work/curl/curl/lib/socketpair.c:359:21: note: remove extraneous parentheses around the comparison to silence this warning
      if((SOCKERRNO == SOCKEWOULDBLOCK)
         ~          ^                 ~
/Users/runner/work/curl/curl/lib/socketpair.c:359:21: note: use '=' to turn this equality comparison into an assignment
      if((SOCKERRNO == SOCKEWOULDBLOCK)
                    ^~
                    =
2 errors generated.
```
https://github.com/curl/curl/actions/runs/27107980068/job/80000462156?pr=21893
2026-06-12 16:34:19 +02:00
Viktor Szakats
935c7245de
silence 2 2026-06-12 16:34:19 +02:00
Viktor Szakats
3cdc2935cd
silence
```
/Users/runner/work/curl/curl/lib/cf-socket.c: In function 'cf_socket_send':
/Users/runner/work/curl/curl/lib/cf-socket.c:1498:36: error: logical 'or' of equal expressions [-Werror=logical-op]
 1498 |       (SOCKEWOULDBLOCK == sockerr) ||
      |                                    ^~
/Users/runner/work/curl/curl/lib/cf-socket.c: In function 'cf_socket_recv':
/Users/runner/work/curl/curl/lib/cf-socket.c:1564:36: error: logical 'or' of equal expressions [-Werror=logical-op]
 1564 |       (SOCKEWOULDBLOCK == sockerr) ||
      |                                    ^~
In file included from /Users/runner/work/curl/curl/bld/lib/CMakeFiles/libcurl_shared.dir/Unity/unity_0_c.c:331:
/Users/runner/work/curl/curl/lib/socketpair.c: In function 'Curl_wakeup_signal':
/Users/runner/work/curl/curl/lib/socketpair.c:329:35: error: logical 'or' of equal expressions [-Werror=logical-op]
  329 |       if((err == SOCKEWOULDBLOCK) || (err == EAGAIN))
      |                                   ^~
```
2026-06-12 16:34:19 +02:00
Viktor Szakats
4f53234309
telnet: fix old copy-paste typo in variable name
This code lacks tests, though we agreed it looks plausible enough to
merge it based on surrounding code. Even though this line has been
present for a long time. If you use this code, please report any results
or issues.

Reported by GitHub Code Quality

Follow-up to ae1912cb0d

Closes #21979
2026-06-12 16:03:32 +02:00
Darren Banfi
982e2e8c75
AmigaOS: curl_setup.h avoid explicit_bzero with clib2
clib2 defines __NEWLIB__ after its system headers are included, but it
does not provide explicit_bzero().

curl therefore selects the explicit_bzero() path and fails to build with
m68k-amigaos-gcc:

```
../lib/curl_setup.h:1650:35: error: implicit declaration of function 'explicit_bzero' [-Werror=implicit-function-declaration]
 1650 | #define curlx_memzero(buf, size)  explicit_bzero(buf, size)
      |                                   ^~~~~~~~~~~~~~
curlx/strdup.c:115:5: note: in expansion of macro 'curlx_memzero'
  115 |     curlx_memzero(buf, size);
      |     ^~~~~~~~~~~~~
```

Excluding __CLIB2__ from the generic __NEWLIB__ branch makes curl use
its existing portable curlx_memzero() fallback. The full AmigaOS build
then completes successfully.

I've tested the following on Amiga OS 3.2.3 with this patch and latest
build.

- HTTP and HTTPS transfers
- AmiSSL certificate handling
- redirects
- downloads and file output
- timeout handling with the expected exit code 28
- repeated execution with clean exits
- no crashes or regressions observed

Follow-up to 066478f634 #21598

Closes #21989
2026-06-12 14:44:10 +02:00
Viktor Szakats
bcb2890c6f
telnet: fix error message typos
Spotted by GitHub Code Quality

Closes #21976
2026-06-11 22:09:47 +02:00
Viktor Szakats
e35ba09f47
tidy-up: add spaces around equal operators where missing
Found via regex search: `=[^~>= ]`

Closes #21975
2026-06-11 19:52:01 +02:00
Viktor Szakats
2a606c68fa
tidy-up: miscellaneous
- GHA/windows: drop redundant double-quotes.
- CMake/PickyWarnings: improve/shorten comment.
- INTERNALS: fix typo in LibreSSL release date.
- drop redundant parentheses from single variables and sole `#if`
  expressions.
- cf-ip-happy: fix missing space from error string.
- telnet: fix parentheses in commented PP code.
- lib1922: fix typo test output text.
- smbserver: unfold lines.
- smbserver: use f-string.
- smbserver: initialize binary string as b``.
- fix typos in comments.

Closes #21972
2026-06-11 19:48:07 +02:00
sourceturner
04a85a1d38
asyn-thrdd: add IPv6 guards
It seems that the usual '#ifdef USE_IPV6' guards have been overlooked in
lib/asyn-thrdd.c.

This commit makes sure that the code compiles if IPv6 is not available.

Closes #21881
2026-06-11 19:33:41 +02:00
Daniel Stenberg
7f45bb8f5b
http_digest: return better error
It is not a content encoding error.

Found by the GitHub AI thing.

Closes #21969
2026-06-11 16:06:40 +02:00
Daniel Stenberg
f763847982
cf-ip-happy.c: minor comment typo 2026-06-11 15:44:28 +02:00
Daniel Stenberg
2b336e6b73
content_encoding: fix non-last chunked rejection
Even when two 'chunked' are listed and neither is the last encoding the
transfer is rejected.

Verified by test 1722 and 1723

Reported-by: violet12331 on hackerone
Closes #21966
2026-06-11 13:21:09 +02:00
Daniel Stenberg
9cf6b70ad7
multi: remove a stale comment
It tricks humans and AIs alike.

Closes #21961
2026-06-11 10:11:15 +02:00
Stefan Eissing
8a867c2062
h3proxy: no stream userdata
Do not set the easy handle opening a proxy tunnel as userdata on the
stream. The ease handle might go out of scope long before the tunnel
stream is closed.

Closes #21962
2026-06-11 10:07:42 +02:00
Stefan Eissing
946306b3e5
cf-ip-happy: update documentation
Reported-by: correctmost on github
Fixes #21957
Closes #21959
2026-06-11 10:06:09 +02:00
Stefan Eissing
30c9c79cf8
cf-socket: make Curl_addr2string static
Move as sockaddr2string() into cf-socket.c where its only callers are.

Mark as UNITTEST for unit1609.

Move "struct Curl_sockaddr_ex" into sockaddr.h, so connect.h and
cf-socket.h can be included without all the system headers needed.

Closes #21946
2026-06-11 08:15:31 +02:00
alhudz
7ec25148c0
digest: flush proxy state on proxy or credential change
Closes #21951
2026-06-11 08:13:20 +02:00
Daniel Stenberg
a6971ce90a
connect: turn conn_get_first_origin into static
This function is only used within this source file.

Closes #21948
2026-06-10 22:58:42 +02:00
Viktor Szakats
97aed9c960
tidy-up: drop stray comparisons with literal zero
Drop from:
- strcmp, strcmpi, strncmp, memcmp, lstat, getrlimit, setrlimit, fseek,
  fstat
- autotools detection snippets.
- smooth-gtk-thread: simplify `!var != 0` expression.

Closes #21947
2026-06-10 15:15:54 +02:00
Viktor Szakats
2f3fa479dd
build: enable -Wformat-signedness, fix issues found
Adjust code to avoid `-Wformat-signedness` warnings, while making sure
that enums are always cast to a known type when passing them to `printf`
functions, to support compilers and compiler settings where enums are
not default-size signed ints.

- cast integers printed as hex to `unsigned`. (63 times, 20 of them in
  `mbedtls.c`)
- cast misc enums to `int` for printing. (31 times)
- cast `CURL_LOCK_DATA_*` enums to `int`. (4 times)
- cast `CURL_FORMADD_*` enums to `int`. (13 times)
- cast `CURLSHE_*` enums to `int`. (3 times)
- cast `CURLUE_*` enums to `int`. (33 times)
- cast `CURLMSG_*` enums to `int`. (6 times)
- cast `CURLE_*` enums to `int`. (~380 times)
- unit1675: fix mask.
  Follow-up to 7c34365cce #21879

Ref: #18343 (initial attempt)

Closes #20848
2026-06-10 15:14:08 +02:00