curl/docs
Stefan Eissing c31041b17e
connection: shutdown TLS (for FTP) better
This adds connection shutdown infrastructure and first use for FTP. FTP
data connections, when not encountering an error, are now shut down in a
blocking way with a 2sec timeout.

    - add cfilter `Curl_cft_shutdown` callback
    - keep a shutdown start timestamp and timeout at connectdata
    - provide shutdown timeout default and member in
      `data->set.shutdowntimeout`.
    - provide methods for starting, interrogating and clearing
      shutdown timers
    - provide `Curl_conn_shutdown_blocking()` to shutdown the
      `sockindex` filter chain in a blocking way. Use that in FTP.
    - add `Curl_conn_cf_poll()` to wait for socket events during
      shutdown of a connection filter chain.
      This gets the monitoring sockets and events via the filters
      "adjust_pollset()" methods. This gives correct behaviour when
      shutting down a TLS connection through a HTTP/2 proxy.
    - Implement shutdown for all socket filters
      - for HTTP/2 and h2 proxying to send GOAWAY
      - for TLS backends to the best of their capabilities
      - for tcp socket filter to make a final, nonblocking
        receive to avoid unwanted RST states
    - add shutdown forwarding to happy eyeballers and
      https connect ballers when applicable.

Closes #13904
2024-06-10 13:08:12 +02:00
..
cmdline-opts cmdline-opts: tidy up --ip-tos and --mptcp 2024-06-07 14:07:11 +02:00
examples examples/threaded-ssl: remove locking callback code 2024-06-04 13:00:21 -04:00
libcurl CURLOPT_CONNECTTIMEOUT*: clarify, document the milliseond version 2024-06-07 14:47:40 +02:00
.gitignore docs: introduce "curldown" for libcurl man page format 2024-01-23 00:29:02 +01:00
ALTSVC.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
BINDINGS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
BUFQ.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
BUFREF.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
BUG-BOUNTY.md BUG-BOUNTY.md: clarify the third party situation 2024-05-14 16:23:42 +02:00
BUGS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CHECKSRC.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CIPHERS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CLIENT-READERS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CLIENT-WRITERS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CMakeLists.txt cmake: whitespace, formatting/tidy-up in comments 2024-05-27 18:07:10 +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 reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CODE_STYLE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CONNECTION-FILTERS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CONTRIBUTE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
curl-config.md curldown: Fix email address in Copyright 2024-02-28 11:28:10 +01:00
CURL-DISABLE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CURLDOWN.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
DEPRECATE.md noproxy: patterns need to be comma separated 2024-06-01 12:25:13 +02:00
DISTROS.md DISTROS: add a link to the list archive 2024-06-01 00:24:06 +02:00
DYNBUF.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +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 docs/ECH: typo/clarification 2024-05-21 15:09:24 +02:00
EXPERIMENTAL.md EXPERIMENTAL: add graduation requirements for each feature 2024-05-06 17:05:04 +02:00
FAQ misc: fix typos 2024-04-11 15:44:22 +02:00
FEATURES.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +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 reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HSTS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HTTP2.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HTTP3.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HTTP-COOKIES.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HYPER.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
INSTALL
INSTALL-CMAKE.md INSTALL-CMAKE.md: explain cmake -G <generator-name> 2024-04-01 18:51:06 -04:00
INSTALL.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
INTERNALS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
IPFS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
KNOWN_BUGS connection: shutdown TLS (for FTP) better 2024-06-10 13:08:12 +02:00
MAIL-ETIQUETTE.md docs/MAIL-ETIQUETTE: convert to markdown 2024-03-31 15:32:27 +02:00
Makefile.am docs/Makefile.am: make curl-config.1 install 2024-05-22 09:26:55 +02:00
MANUAL.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
mk-ca-bundle.md curldown: Fix email address in Copyright 2024-02-28 11:28:10 +01:00
MQTT.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
NEW-PROTOCOL.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
options-in-versions curl: (on linux) add MPTCP support 2024-06-07 10:54:19 +02:00
PARALLEL-TRANSFERS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +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 dmaketgz: release tarball generation using docker 2024-04-16 23:38:55 +02:00
ROADMAP.md ROADMAP: remove completed entries, mention websocket 2024-04-17 10:35:12 +02:00
RUSTLS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
SECURITY-ADVISORY.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
SPONSORS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
SSL-PROBLEMS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
SSLCERTS.md tidy-up: use consistent casing for Windows directories 2024-05-30 14:40:12 +02:00
THANKS THANKS: add contributors from 8.8.0 2024-05-22 07:54:25 +02:00
THANKS-filter THANKS-filter: name fixes 2024-04-17 09:48:45 +02:00
TheArtOfHttpScripting.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
TODO TODO: remove some old, clarify, add something 2024-05-27 10:58:28 +02:00
URL-SYNTAX.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
VERSIONS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
VULN-DISCLOSURE-POLICY.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
WEBSOCKET.md docs: use present tense 2024-02-27 09:47:21 +01: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.