curl/lib/vauth
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
..
cleartext.c creds: hold credentials 2026-05-12 16:05:15 +02:00
cram.c creds: hold credentials 2026-05-12 16:05:15 +02:00
digest.c lib: transfer origin and proxy handling 2026-06-12 23:52:00 +02:00
digest.h lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
digest_sspi.c lib: transfer origin and proxy handling 2026-06-12 23:52:00 +02:00
gsasl.c gsasl: fix potential double free 2026-05-15 11:49:06 +02:00
krb5_gssapi.c creds: add sasl service name 2026-05-13 14:04:17 +02:00
krb5_sspi.c tidy-up: use curlx_safefree() 2026-05-21 01:31:03 +02:00
ntlm.c tidy-up: drop stray comparisons with literal zero 2026-06-10 15:15:54 +02:00
ntlm_sspi.c build: enable -Wformat-signedness, fix issues found 2026-06-10 15:14:08 +02:00
oauth2.c creds: hold credentials 2026-05-12 16:05:15 +02:00
spnego_gssapi.c creds: add sasl service name 2026-05-13 14:04:17 +02:00
spnego_sspi.c tidy-up: use curlx_safefree() 2026-05-21 01:31:03 +02:00
vauth.c lib: transfer origin and proxy handling 2026-06-12 23:52:00 +02:00
vauth.h tidy-up: apply clang-format fixes 2026-05-28 00:05:47 +02:00