mirror of
https://github.com/curl/curl.git
synced 2026-04-11 12:01:42 +08:00
- allow to specify when they are wanted on starting a resolve - match dns cache entries accordingly. An entry which never tried to get HTTPS-RRs is no answer for a resolve that wants it. - fix late arrivals of resolve answers to match the "async" records that started them - if it still exists. - provide for multiple "async" resolves in a transfer at the same time. We may need to resolve an IP interface while the main connection resolve has not finished yet. - allow lookup of HTTPS-RR information as soon as it is available, even if A/AAAA queries are still ongoing. For this, the "async" infrastructure is changed: - Defined bits for DNS queries `CURL_DNSQ_A`, `CURL_DNSQ_AAAA` and `CURL_DNSQ_HTTPS`. These replace `ip_version` which says nothing about HTTPS. Use them in dns cache entries for matching. - enhance the `async->id` to be a unique `uint32_t` for resolves inside one multi. This is weak, as the id may wrap around. However it is combined with the `mid` of the easy handle, making collisions highly unlikely. `data->state.async` is only accessed in few places where the mid/async-id match is performed. - vtls: for ECH supporting TLS backends (openssl, rustls, wolfssl), retrieve the HTTPS-RR information from the dns connection filter. Delay the connect if the HTTPS-RR is needed, but has not been resolved yet. The implementation of all this is complete for the threaded resolver. c-ares resolver and DoH do not take advantage of all new async features yet. To be done in separate PRs. Details: c-ares: cleanup settings and initialisation. Any ares channel is only being created on starting a resolve and propagating operations in setopt.c to the channel are not helpful. Changed threaded+ares pollset handling so that they do not overwrite each others `ASYNC_NAME` timeouts. Add trace name 'threads' for tracing thread queue and pool used by threaded resolver. Closes #21175 |
||
|---|---|---|
| .. | ||
| cmdline-opts | ||
| examples | ||
| internals | ||
| libcurl | ||
| tests | ||
| .gitignore | ||
| ALTSVC.md | ||
| BINDINGS.md | ||
| BUG-BOUNTY.md | ||
| BUGS.md | ||
| CIPHERS-TLS12.md | ||
| CIPHERS.md | ||
| CMakeLists.txt | ||
| CODE_OF_CONDUCT.md | ||
| CODE_REVIEW.md | ||
| CONTRIBUTE.md | ||
| curl-config.md | ||
| CURL-DISABLE.md | ||
| CURLDOWN.md | ||
| DEPRECATE.md | ||
| DISTROS.md | ||
| EARLY-RELEASE.md | ||
| ECH.md | ||
| EXPERIMENTAL.md | ||
| FAQ.md | ||
| FEATURES.md | ||
| GOVERNANCE.md | ||
| HELP-US.md | ||
| HISTORY.md | ||
| HSTS.md | ||
| HTTP3.md | ||
| HTTP-COOKIES.md | ||
| HTTPSRR.md | ||
| INFRASTRUCTURE.md | ||
| INSTALL | ||
| INSTALL-CMAKE.md | ||
| INSTALL.md | ||
| INTERNALS.md | ||
| IPFS.md | ||
| KNOWN_BUGS.md | ||
| KNOWN_RISKS.md | ||
| MAIL-ETIQUETTE.md | ||
| Makefile.am | ||
| MANUAL.md | ||
| mk-ca-bundle.md | ||
| options-in-versions | ||
| README.md | ||
| RELEASE-PROCEDURE.md | ||
| ROADMAP.md | ||
| runtests.md | ||
| RUSTLS.md | ||
| SECURITY-ADVISORY.md | ||
| SPONSORS.md | ||
| SSL-PROBLEMS.md | ||
| SSLCERTS.md | ||
| testcurl.md | ||
| THANKS | ||
| THANKS-filter | ||
| TheArtOfHttpScripting.md | ||
| TODO.md | ||
| URL-SYNTAX.md | ||
| VERIFY.md | ||
| VERSIONS.md | ||
| VULN-DISCLOSURE-POLICY.md | ||
| wcurl.md | ||
Documentation
You find a mix of various documentation in this directory and subdirectories, using several different formats. Some of them are not ideal for reading directly in your browser.
If you would rather see the rendered version of the documentation, check out the curl website's documentation section for general curl stuff or the libcurl section for libcurl related documentation.