curl-curl/docs
Stefan Eissing 88fc6c491f
threaded-resolver: fix shutdown
Changed strategy to start up and terminate resolver thread.

When starting up:

Start the thread with mutex acquired, wait for signal from thread that
it started and has incremented the ref counter. Thread set
pthread_cancel() to disabled before that and only enables cancelling
during resolving itself. This assure that the ref counter is correct and
the unlinking of the resolve context always happens.

When shutting down resolving:

If ref counting shows thread has finished, join it, free everything. If
thread has not finished, try pthread_cancel() (non Windows), but keep
the thread handle around.

When destroying resolving:

Shutdown first, then, if the thread is still there and 'quick_exit' is
not set, join it and free everything. This might occur a delay if
getaddrinfo() hangs and cannot be interrupted by pthread_cancel().

Destroying resolving happens when another resolve is started on an
easy handle or when the easy handle is closed.

Add test795 to check that connect timeout triggers correctly
when resolving is delayed. Add debug env var `CURL_DNS_DELAY_MS`
to simulate delays in resolving.

Fix test1557 to set `quick_exit` and use `xxx.invalid` as domain
instead of `nothing` that was leading to hangers in CI.

Closes #18263
2025-08-21 09:26:49 +02:00
..
cmdline-opts tool_writeout: check strftime() return code 2025-08-07 16:19:22 +02:00
examples docs/examples: remove spurious trailing backslashes 2025-08-15 09:37:14 +02:00
internals pytest: use dante-server in CI 2025-07-29 15:02:30 +02:00
libcurl threaded-resolver: fix shutdown 2025-08-21 09:26:49 +02:00
tests hostip: cache negative name resolves 2025-08-05 08:05:31 +02:00
.gitignore docs: add RELEASE-TOOLS.md.dist to .gitignore 2024-07-01 22:49:55 +02:00
ALTSVC.md docs: bring back ALTSVC.md and HSTS.md 2024-12-09 09:32:19 +01:00
BINDINGS.md BINDINGS.md: add LibQurl 2025-08-06 08:40:04 +02:00
BUG-BOUNTY.md BUG-BOUNTY.md. mention the medium bounty amount in 2025 2025-05-28 08:47:26 +02:00
BUGS.md docs: fix two typos 2025-07-01 22:53:04 +02:00
CIPHERS-TLS12.md docs: update CIPHERS.md 2024-08-12 23:35:56 +02:00
CIPHERS.md TLS: remove support for Secure Transport and BearSSL 2025-06-11 07:54:19 +02:00
CMakeLists.txt tests: move test docs into /docs 2025-05-28 15:00:03 +02:00
CODE_OF_CONDUCT.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CODE_REVIEW.md docs: fix broken link in CODE_REVIEW.md 2025-06-21 10:32:06 +02:00
CONTRIBUTE.md docs/CONTRIBUTE: fix broken link 2025-06-30 13:47:06 +02:00
curl-config.md docs: minor edits to please the new spellchecker regime 2025-02-27 13:15:21 +01:00
CURL-DISABLE.md cmake: document -D and env build options 2024-10-24 23:06:40 +02:00
CURLDOWN.md misc: fix typos 2025-07-12 08:59:44 +02:00
DEPRECATE.md DEPRECATE.md: remove leftover "nothing" 2025-07-28 08:42:34 +02:00
DISTROS.md DISTROS.md: add Haiku 2025-07-18 00:54:34 +02:00
EARLY-RELEASE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
ECH.md ECH: reference the OpenSSL ECH feature branch 2025-05-06 09:02:24 +02:00
EXPERIMENTAL.md docs/EXPERIMENTAL.md: add a mention of HTTPSRR as experimental 2025-01-16 19:41:42 +01:00
FAQ TLS: remove support for Secure Transport and BearSSL 2025-06-11 07:54:19 +02:00
FEATURES.md FEATURES.md: fix typo 2024-08-23 08:46:09 +02:00
GOVERNANCE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HELP-US.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HISTORY.md docs/HISTORY: add some events from the last year 2025-03-06 16:06:17 +01:00
HSTS.md docs: bring back ALTSVC.md and HSTS.md 2024-12-09 09:32:19 +01:00
HTTP3.md vquic: drop msh3 2025-07-27 17:57:17 +02:00
HTTP-COOKIES.md docs/HTTP-COOKIES.md: link to more information 2025-01-01 22:45:48 +01:00
HTTPSRR.md HTTPSRR.md: clarify somewhat 2025-04-28 09:11:48 +02:00
INFRASTRUCTURE.md docs: fix two typos 2025-07-01 22:53:04 +02:00
INSTALL INSTALL: converted to markdown => INSTALL.md 2016-10-21 15:57:29 +02:00
INSTALL-CMAKE.md pytest: use dante-server in CI 2025-07-29 15:02:30 +02:00
INSTALL.md build: bump minimum required mingw-w64 to v3.0 (from v1.0) 2025-07-28 12:43:02 +02:00
INTERNALS.md mbedtls: bump minimum version required to 3.2.0 2025-08-13 09:09:45 +02:00
IPFS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
KNOWN_BUGS misc: fix typos 2025-07-12 08:59:44 +02:00
MAIL-ETIQUETTE.md GHA: silence proselint warnings and an error 2024-10-15 16:44:17 +02:00
Makefile.am scorecard: flame graphs and documentation 2025-07-07 09:04:22 +02:00
MANUAL.md docs: use valid example domain names 2025-02-09 00:17:05 +01:00
mk-ca-bundle.md curldown: make 'added-in:' a mandatory header field 2024-07-18 18:04:09 +02:00
options-in-versions curl: add --follow 2025-08-04 17:12:14 +02:00
README.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
RELEASE-PROCEDURE.md RELEASE-PROCEDURE.md: update docs/VERSIONS 2025-06-11 09:21:44 +02:00
ROADMAP.md CI: add whitespace checker 2024-06-27 13:33:30 +02:00
runtests.md runtests: add --ci option, show Env: only when non-empty 2025-08-04 14:55:10 +02:00
RUSTLS.md docs: rework RUSTLS install instructions 2025-03-27 08:47:43 +01:00
SECURITY-ADVISORY.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
SPONSORS.md SPONSORS.md: clarify that we don't promise goods or services 2025-02-05 23:40:24 +01:00
SSL-PROBLEMS.md spelling: 'a' vs 'an' 2025-05-30 11:38:35 +02:00
SSLCERTS.md TLS: remove support for Secure Transport and BearSSL 2025-06-11 07:54:19 +02:00
testcurl.md scripts: fix to quote the copyright email address 2025-07-12 08:59:44 +02:00
THANKS THANKS: new contributors in 8.15.0 2025-07-16 08:19:39 +02:00
THANKS-filter docs/THANKS: updated from the 8.14.0 release 2025-05-28 07:40:54 +02:00
TheArtOfHttpScripting.md docs: use lowercase curl and libcurl 2025-01-02 17:15:54 +01:00
TODO TODO: remove session export item 2025-08-11 12:04:57 -07:00
URL-SYNTAX.md URL-SYNTAX.md: drop link to codepoints.net to pass linkcheck 2025-08-12 10:26:21 +02:00
VERSIONS.md RELEASE-NOTES: synced 2025-07-16 08:21:07 +02:00
VULN-DISCLOSURE-POLICY.md VULN-DISCLOSURE-POLICY.md: 7 days embargo is max 2025-07-14 09:08:47 +02:00
wcurl.md wcurl: import v2025.04.20 script + docs 2025-04-21 11:06:44 +02:00

curl logo

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.