aboutsummaryrefslogtreecommitdiff
path: root/docs/libcurl/libcurl-env.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/libcurl/libcurl-env.md')
-rw-r--r--docs/libcurl/libcurl-env.md99
1 files changed, 99 insertions, 0 deletions
diff --git a/docs/libcurl/libcurl-env.md b/docs/libcurl/libcurl-env.md
new file mode 100644
index 000000000..bd3e29c73
--- /dev/null
+++ b/docs/libcurl/libcurl-env.md
@@ -0,0 +1,99 @@
+---
+c: Copyright (C) Daniel Stenberg, <daniel.se>, et al.
+SPDX-License-Identifier: curl
+Title: libcurl-env
+Section: 3
+Source: libcurl
+See-also:
+ - 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 hostname 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 filename. 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).