curl/docs/libcurl/libcurl-env.md
Daniel Stenberg eefcc1bda4
docs: introduce "curldown" for libcurl man page format
curldown is this new file format for libcurl man pages. It is markdown
inspired with differences:

- Each file has a set of leading headers with meta-data
- Supports a small subset of markdown
- Uses .md file extensions for editors/IDE/GitHub to treat them nicely
- Generates man pages very similar to the previous ones
- Generates man pages that still convert nicely to HTML on the website
- Detects and highlights mentions of curl symbols automatically (when
  their man page section is specified)

tools:

- cd2nroff: converts from curldown to nroff man page
- nroff2cd: convert an (old) nroff man page to curldown
- cdall: convert many nroff pages to curldown versions
- cd2cd: verifies and updates a curldown to latest curldown

This setup generates .3 versions of all the curldown versions at build time.

CI:

Since the documentation is now technically markdown in the eyes of many
things, the CI runs many more tests and checks on this documentation,
including proselint, link checkers and tests that make sure we capitalize the
first letter after a period...

Closes #12730
2024-01-23 00:29:02 +01:00

3.3 KiB

c SPDX-License-Identifier Title Section Source See-also
Copyright (C) Daniel Stenberg, <daniel.se>, et al. curl libcurl-env 3 libcurl
libcurl-env-dbg (3)

NAME

libcurl-env - environment variables libcurl understands

DESCRIPTION

libcurl reads and understands a set of environment variables that if set controls and changes behaviors. This is the full list of variables to set and description of what they do. Also note that curl, the command line tool, supports a set of additional environment variables independently of this.

[scheme]_proxy

When libcurl is given a URL to use in a transfer, it first extracts the scheme part from the URL and checks if there is a given proxy set for that in its corresponding environment variable. A URL like https://example.com makes libcurl use the http_proxy variable, while a URL like ftp://example.com uses the ftp_proxy variable.

These proxy variables are also checked for in their uppercase versions, except the http_proxy one which is only used lowercase. Note also that some systems actually have a case insensitive handling of environment variables and then of course HTTP_PROXY still works.

An exception exists for the WebSocket ws and wss URL schemes, where libcurl first checks ws_proxy or wss_proxy but if they are not set, it will fall back and try the http and https versions instead if set.

ALL_PROXY

This is a setting to set proxy for all URLs, independently of what scheme is being used. Note that the scheme specific variables overrides this one if set.

CURL_SSL_BACKEND

When libcurl is built to support multiple SSL backends, it selects a specific backend at first use. If no selection is done by the program using libcurl, this variable's selection is used. Setting a name that is not a built-in alternative makes libcurl stay with the default.

SSL backend names (case-insensitive): BearSSL, GnuTLS, mbedTLS, nss, OpenSSL, rustls, Schannel, Secure-Transport, wolfSSL

HOME

When the netrc feature is used (CURLOPT_NETRC(3)), this variable is checked as the primary way to find the "current" home directory in which the .netrc file is likely to exist.

USERPROFILE

When the netrc feature is used (CURLOPT_NETRC(3)), this variable is checked as the secondary way to find the "current" home directory (on Windows only) in which the .netrc file is likely to exist.

LOGNAME

User name to use when invoking the ntlm-wb tool, if NTLMUSER was not set.

NO_PROXY

This has the same functionality as the CURLOPT_NOPROXY(3) option: it gives libcurl a comma-separated list of host name patterns for which libcurl should not use a proxy.

NTLMUSER

User name to use when invoking the ntlm-wb tool.

SSLKEYLOGFILE

When set and libcurl runs with a SSL backend that supports this feature, libcurl saves SSL secrets into the given file name. Using those SSL secrets, other tools (such as Wireshark) can decrypt the SSL communication and analyze/view the traffic.

These secrets and this file might be sensitive. Users are advised to take precautions so that they are not stolen or otherwise inadvertently revealed.

USER

User name to use when invoking the ntlm-wb tool, if NTLMUSER and LOGNAME were not set.

Debug Variables

Debug variables are intended for internal use and are documented in libcurl-env-dbg(3).