mirror of
https://github.com/curl/curl.git
synced 2026-07-22 11:07:16 +03:00
Use separate dns cache entries for addresses (A+AAAA) and HTTPS-RR results. That makes also "negative" results independent of each other. Dns cache entries, once in use, can no longer be modified safely, as concurrent use would require each access then to be done under lock. By using separate entries, we can update a HTTPS entry without needing to duplicate an existing address entry for the same host+port. Connection filters can now ask for DNS resolves. This works at any time during connection setup and while connect is going on. `Curl_conn_dns_add_addr_resolve()` and `Curl_conn_dns_add_https_resolve()` are used for that. They check if the resolve is already ongoing, can be added to a resolve not started yet or, as last resort, create a new filter instance and add it to the connection (it's easier to add more filters than making the same filter handle multiple resolves. Since DNS filters are removed once the connection is established, there is no later penalty). HTTPS-RR queries are added by the `HTTPS-CONNECT`, `SSL` and `QUIC` filters. The latter will only do that when ECH is configured and supported. That means we trigger HTTPS-RR queries only when the results matter. Add test_22_06 for ALPN influenced via HTTPS-RR when tunneling through a proxy. This did not work before. Adjust test2100 to use https: as the previous http: URL no longer triggers HTTPS-RR resolves. Closes #22216 |
||
|---|---|---|
| .. | ||
| capsule.c | ||
| capsule.h | ||
| cf-capsule.c | ||
| cf-capsule.h | ||
| cf-ngtcp2-cmn.c | ||
| cf-ngtcp2-cmn.h | ||
| cf-ngtcp2-proxy.c | ||
| cf-ngtcp2-proxy.h | ||
| cf-ngtcp2.c | ||
| cf-ngtcp2.h | ||
| cf-quiche.c | ||
| cf-quiche.h | ||
| vquic-tls.c | ||
| vquic-tls.h | ||
| vquic.c | ||
| vquic.h | ||
| vquic_int.h | ||