libcurl-env - environment variables libcurl understands
libcurl reads and understands a set of environment variables that
if set will control and change 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" will hence use the "http_proxy"
variable, while a URL like "ftp://example.com" will use 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" will still work...
- 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 will override this
one if set.
- CURL_SSL_BACKEND
- When libcurl is built to support multiple SSL backends, it will select a
specific backend at first use. If no selection is done by the program
using libcurl, this variable's selection will be used. Setting a name that
is not a built-in alternative will make libcurl stay with the default.
SSL backend names (case-insensitive): BearSSL, GnuTLS, gskit,
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 will save 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.
- SSL_DIR
- When libcurl runs with the NSS backends for TLS features, this variable is
used to find the directory for NSS PKI database instead of the
built-in.
- USER
- User name to use when invoking the ntlm-wb tool, if NTLMUSER
and LOGNAME were not set.
There's a set of variables only recognized and used if libcurl was
built "debug enabled", which should never be true for a library
used in production.
- CURL_GETHOSTNAME
- Debug-only variable.
- CURL_FORCETIME
- Debug-only variable.
- CURL_ENTROPY
- Debug-only variable. Used to set a fixed faked value to use instead of a
proper random number so that functions in libcurl that are otherwise
getting random outputs can be tested for what they generate.
- CURL_TRACE
- Debug-only variable. Used for debugging the lib/ldap implementation.
- CURL_NTLM_WB_FILE
- Debug-only variable. Used to set to a debug-version of the ntlm-wb
executable.
- CURL_OPENLDAP_TRACE
- Debug-only variable. Used for debugging the OpenLDAP implementation.