curl/docs
Viktor Szakats fabfa8e402
clang-tidy: add to CI, add cmake support, fix fallouts
build:
- autotools: fix to build generated sources for the `tidy` target.
- autotools: allow passing custom clang-tidy options via
  `CURL_CLANG_TIDYFLAGS` env.
- cmake: add `CURL_CLANG_TIDY` option to configure for `clang-tidy`.
  Also add:
  - `CLANG_TIDY` variable to customize the `clang-tidy` tool.
  - `CURL_CLANG_TIDYFLAGS` to pass custom options to `clang-tidy`.
- apply `--enable-werror` and `-DCURL_WERROR=ON` to `clang-tidy`.

CI/GHA:
- add clang-tidy job for Linux, using autotools and clang-tidy v18.
  This one needs to disable `clang-analyzer-valist.Uninitialized`
  to avoid false positives:
  https://github.com/llvm/llvm-project/issues/40656
  Duration: 5.5 minutes
- add clang-tidy job for macOS, using cmake and clang-tidy v19.
  This one also covers tests and examples, and doesn't hit the false
  positives seen with llvm v18 and earlier.
  Duration: 4.5 minutes
- Linux/macOS: skip installing test dependencies when not building or
  running tests.

fix fallouts reported by `clang-tidy`:
- lib:
  - cf-h2-proxy: unused assignment in non-debug builds.
  - cf-socket: silence warning.
    FIXME: https://github.com/curl/curl/pull/15825#issuecomment-2561867769
  - ftp: NULL passed to `strncmp()`.
  - http2: NULL-ptr deref.
  - mprintf: silence warning.
- src/tool_writeout: NULL passed to `fputs()`.
- examples:
  - invalid file pointers.
  - missing `fclose()`.
- tests:
  - http/clients/hx-download: memory leaks on error.
  - http/clients/hx-download: memory leak on repeat `-r` option.
  - server: double `fclose()`.
    https://www.man7.org/linux/man-pages/man3/fclose.3.html
  - server: invalid file pointer/handle.
  - server/getpart: unused assignments.
  - server/mqttd: leak on failed `realloc()`.
  - server/tftpd: NULL passed to `strcmp()`.

Closes #15825
2024-12-27 13:42:32 +01:00
..
cmdline-opts curl: make --etag-save acknowledge --create-dirs 2024-12-21 14:12:16 +01:00
examples clang-tidy: add to CI, add cmake support, fix fallouts 2024-12-27 13:42:32 +01:00
internals hyper: drop support 2024-12-21 11:33:05 +01:00
libcurl curl_ws_recv.md: fix typo 2024-12-27 00:37:53 -05: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: add zig binding 2024-08-07 14:51:09 +02:00
BUG-BOUNTY.md BUG-BOUNTY.md: clarify the third party situation 2024-05-14 16:23:42 +02:00
BUGS.md docs/BUGS.md: remove leading space from a link 2024-12-14 14:22:38 +01:00
CIPHERS-TLS12.md docs: update CIPHERS.md 2024-08-12 23:35:56 +02:00
CIPHERS.md schannel: remove TLS 1.3 ciphersuite-list support 2024-11-21 17:09:24 -05:00
CMakeLists.txt cmake: replace CURL_*_DIR with {PROJECT,CMAKE_CURRENT}_*_DIR 2024-10-22 19:13:08 +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: misc language polish 2024-07-01 16:45:17 +02:00
CONTRIBUTE.md CONTRIBUTE: polished 2024-08-26 15:04:01 +02:00
curl-config.md curldown: make 'added-in:' a mandatory header field 2024-07-18 18:04:09 +02:00
CURL-DISABLE.md cmake: document -D and env build options 2024-10-24 23:06:40 +02:00
CURLDOWN.md curldown: fixups 2024-07-19 17:03:25 +02:00
DEPRECATE.md hyper: drop support 2024-12-21 11:33:05 +01:00
DISTROS.md DISTROS: update Alt Linux links 2024-11-29 00:54:47 -08:00
EARLY-RELEASE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
ECH.md build: fix ECH to always enable HTTPS RR 2024-11-28 11:55:05 +01:00
EXPERIMENTAL.md hyper: drop support 2024-12-21 11:33:05 +01:00
FAQ docs: suggest --ssl-reqd instead of --ftp-ssl 2024-12-02 09:07:50 +01: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 tidy-up: misc 2024-12-24 01:27:26 +01:00
HSTS.md docs: bring back ALTSVC.md and HSTS.md 2024-12-09 09:32:19 +01:00
HTTP3.md GHA: silence proselint warnings and an error 2024-10-15 16:44:17 +02:00
HTTP-COOKIES.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
INSTALL
INSTALL-CMAKE.md clang-tidy: add to CI, add cmake support, fix fallouts 2024-12-27 13:42:32 +01:00
INSTALL.md Makefile.mk: drop in favour of autotools and cmake (MS-DOS, AmigaOS3) 2024-12-16 23:20:55 +01:00
INTERNALS.md tidy-up: OS names 2024-08-04 19:17: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 KNOWN_BUGS: setting a disabled option should return CURLE_NOT_BUILT_IN 2024-12-04 07:07:43 +01:00
MAIL-ETIQUETTE.md GHA: silence proselint warnings and an error 2024-10-15 16:44:17 +02:00
Makefile.am hyper: drop support 2024-12-21 11:33:05 +01:00
MANUAL.md docs: suggest --ssl-reqd instead of --ftp-ssl 2024-12-02 09:07:50 +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 TLS: TLSv1.3 earlydata support for curl 2024-10-11 12:28:22 +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: mention how to publish security advisories 2024-12-11 11:11:32 +01:00
ROADMAP.md CI: add whitespace checker 2024-06-27 13:33:30 +02:00
RUSTLS.md vtls/rustls: support strong CSRNG data 2024-09-13 14:11:56 +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 GHA: silence proselint warnings and an error 2024-10-15 16:44:17 +02:00
SSL-PROBLEMS.md GHA: silence proselint warnings and an error 2024-10-15 16:44:17 +02:00
SSLCERTS.md curl: add options for safe/no CA bundle search (Windows) 2024-09-22 18:17:25 +02:00
THANKS THANKS: contributors from 8.11.1 2024-12-11 08:05:13 +01:00
THANKS-filter RELEASE-NOTES: synced 2024-12-03 17:21:42 +01:00
TheArtOfHttpScripting.md docs: document default User-Agent 2024-11-18 00:03:10 +01:00
TODO TODO: sending only part of --data is now possible 2024-12-21 12:30:39 +01:00
URL-SYNTAX.md GHA: silence proselint warnings and an error 2024-10-15 16:44:17 +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 VULN-DISCLOSURE-POLICY.md: mention the not setting CVSS 2024-12-19 22:59:54 +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.