Commit graph

39006 commits

Author SHA1 Message Date
Viktor Szakats
adf4e90a8f
or higher -> or greater 11 docs 5 2026-06-13 00:09:22 +02:00
Viktor Szakats
222e447efc
or higher -> or greater 11 docs 4 2026-06-13 00:09:22 +02:00
Viktor Szakats
ce4d34e28f
or higher -> or greater 11 docs 3 2026-06-13 00:09:22 +02:00
Viktor Szakats
4b2c4c9e2e
or higher -> or greater 11 docs 2 2026-06-13 00:09:22 +02:00
Viktor Szakats
5df6c95d1b
or higher -> or greater 11 docs 2026-06-13 00:09:22 +02:00
Viktor Szakats
b912cb8c75
or higher -> or greater 10 lib 2 2026-06-13 00:09:22 +02:00
Viktor Szakats
5c5023775d
or higher -> or greater 10 lib 2026-06-13 00:09:22 +02:00
Viktor Szakats
037ff984ff
or higher -> or greater 9 src 2026-06-13 00:09:22 +02:00
Viktor Szakats
46d858bc3b
or higher -> or greater 9 src 2026-06-13 00:09:22 +02:00
Viktor Szakats
251780043c
or higher -> or greater 8 src 2026-06-13 00:09:22 +02:00
Viktor Szakats
ca032f6b0a
or higher -> or greater 7 GHA 2026-06-13 00:09:22 +02:00
Viktor Szakats
f60248956a
or higher -> or greater 6 vms 2026-06-13 00:09:22 +02:00
Viktor Szakats
13af664848
or higher -> or greater 5 cmake 2026-06-13 00:09:22 +02:00
Viktor Szakats
0e4d961a41
or higher -> or greater 4 m4 2026-06-13 00:09:22 +02:00
Viktor Szakats
fee38eb181
or higher -> or greater 3 tests 2026-06-13 00:09:22 +02:00
Viktor Szakats
b92d14018c
or higher -> or greater 2 2026-06-13 00:09:21 +02:00
Viktor Szakats
2843e66bd7
or higher -> or greater 2026-06-13 00:09:05 +02:00
Viktor Szakats
7ddd6405b4
later/older -> higher/lower 2026-06-13 00:09:05 +02:00
Viktor Szakats
c952c5d74c
minimum -> or higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
c62c48ef44
and older -> or older 2026-06-13 00:09:05 +02:00
Viktor Szakats
9224d37408
and newer -> or newer 2026-06-13 00:09:05 +02:00
Viktor Szakats
44439068b8
and older -> or older 2026-06-13 00:09:05 +02:00
Viktor Szakats
161e7f79f3
and later -> and newer 2026-06-13 00:09:05 +02:00
Viktor Szakats
bad8800c62
and later -> and newer 2026-06-13 00:09:05 +02:00
Viktor Szakats
d842beed0e
and newer -> and higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
a76927fa06
and later -> and newer 2026-06-13 00:09:05 +02:00
Viktor Szakats
97e75f98b7
and later -> or higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
de6ab39f5d
and older -> or lower, and newer -> or higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
1a086f8548
AIX uppercase 2026-06-13 00:09:05 +02:00
Viktor Szakats
e05b7bc752
and newer -> or higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
e66bdb9941
and above -> or newer 2026-06-13 00:09:05 +02:00
Viktor Szakats
9e5ead016b
and above -> or higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
69e89374b2
and upper -> or higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
c3178ce43b
and later -> or higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
a0b616162f
or greater/above -> higher (400) 2026-06-13 00:09:05 +02:00
Viktor Szakats
6ba2ab0741
or later -> newer (Windows version) 2026-06-13 00:09:05 +02:00
Viktor Szakats
eb2edbb00f
or later -> higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
c4707f2890
or greater -> higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
a2e9dfa9f0
or older -> lower 2026-06-13 00:09:05 +02:00
Viktor Szakats
e9347d54e4
or above -> higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
aa156cdc52
at least -> higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
46c2cf51f7
at least -> higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
7d02e46280
or newer -> higher 2026-06-13 00:09:05 +02:00
Viktor Szakats
1d5dc6d2f9
or later -> higher 2026-06-13 00:09:04 +02:00
Viktor Szakats
ccb637e5e3
or later -> newer (OS version) 2026-06-13 00:08:23 +02:00
Viktor Szakats
68a0bb1f50
or upper -> higher 2026-06-13 00:08:23 +02:00
Stefan Eissing
73daec6620
lib: transfer origin and proxy handling
Add `data->state.origin` as the origin the transfer is sending the
current request to/gets the response from. Use it for request specific
properties like authentication, hsts and cookie handling, etc.

Unless talking to a forwarding HTTP proxy (e.g. not tunneling),
`data->state.origin` and `conn->origin` are the same.

With a forwarding HTTP proxy in play, `conn->origin` is set to
`conn->http_proxy.peer` and `conn->bits.origin_is_proxy` (a new bit) is
set.

Remove the connection bits, now replaced with:

* `conn->bits.socksproxy` -> `conn->socks_proy.peer`
* `conn->bits.httpproxy` -> `conn->http_proy.peer`
* `conn->bits.proxy` -> `(conn->socks_proy.peer || conn->http_proy.peer`)
* `conn->bits.tunnel_proxy` -> (`conn->http_proy.peer && !conn->bits.origin_is_proxy`)
* `(conn->bits.httpproxy && !conn->bits.tunnel_proxy)` -> `conn->bits.origin_is_proxy`

Rename `noproxy.[ch]` to `proxy.[ch]`. Move the connection proxy setup
code from `url.c` to `proxy.c`.

Remove `data->info.conn_remote_port` as no one uses it.

Add test_40_02b for a SOCKS connection to a forwarding HTTPS proxy.

Update internal documentation about peers and creds.

Closes #21967
2026-06-12 23:52:00 +02:00
Viktor Szakats
c951368579
build: enable -Wlogical-op picky warning for GCC 4.4+
Follow-up to 879a1514c3 #21992

Closes #21893
2026-06-12 23:37:37 +02:00
Viktor Szakats
879a1514c3
socket: introduce SOCK_EAGAIN() and use it
To contain the logic of checking for both `EWOULDBLOCK` and/or `EAGAIN`
depending on platform/availability. Also to avoid checking for both if
they mapp to the same value, and to avoid PP guards around use.

This also ensures `EAGAIN` is consistently not checked on Windows, where
headers defined it, but `SOCKERRNO` never returns it, because curl maps
it to `WSAGetLastError()`.

If they map to the same value, checking them both in an `if` expression
trips GCC warning `-Wlogical-op` (the same way it triggers duplicate
case value error in `switch`).

Also:
- replace two `switch()` statements with the new macro.
- tests/server/sws: make two outliers use the new macro that were only
  checking for `EWOULDBLOCK` before this patch, in `connect_to()`.
- move variables to the left-side of expressions, where missing.
- rustls: use a variant of this macro that uses raw `EWOULDBLOCK`.
  Tried tracing it back to the origins, but I couldn't figure out if
  this is working as expected on all supported Windows versions in
  Rust. It seems to be using `GetLastError()`, according to
  https://docs.rs/system_error/0.2.0/system_error/, which would be
  probably incorrect.

Notes:
- it's probably a good idea to assign `SOCKERRNO` to a variable before
  passing it to this macro.

Cherry-picked from #21893

Closes #21992
2026-06-12 23:27:23 +02:00
Viktor Szakats
7c51a33877
AmigaOS: fix build fallouts, re-add to CI
Fix build issues:
- src: adjust `toolx_ftruncate()`.
- libtests/cli_ftp_upload: make `struct timeval` initialization portable.
- libtests/lib1960: do unconst in local `inet_pton()` macro.
- tests/server/dnsd: make it stub instead of failing the build.
- tests/server: make them link AmiSSL for `SocketBase`.

Also:
- bump AmiSSL to the latest release.
- add download hash checks and toolchain cache.
- sync restored code with local updates made since last year.

It takes 30 seconds per job, 1 minute in total.

Thanks-to: Bebbo
Thanks-to: Darren Banfi
Ref: https://github.com/curl/curl/pull/21989#issuecomment-4691380623
Follow-up to 7a14898264 #17486

Closes #21993
2026-06-12 20:27:44 +02:00