1libcurl-env(3) libcurl environment variables libcurl-env(3)
2
3
4
6 libcurl-env - environment variables libcurl understands
7
9 libcurl reads and understands a set of environment variables that if
10 set will control and change behaviors. This is the full list of vari‐
11 ables to set and description of what they do. Also note that curl, the
12 command line tool, supports a set of additional environment variables
13 independently of this.
14
15 [scheme]_proxy
16 When libcurl is given a URL to use in a transfer, it first ex‐
17 tracts the "scheme" part from the URL and checks if there is a
18 given proxy set for that in its corresponding environment vari‐
19 able. A URL like "https://example.com" will hence use the
20 "http_proxy" variable, while a URL like "ftp://example.com" will
21 use the "ftp_proxy" variable.
22
23 These proxy variables are also checked for in their uppercase
24 versions, except the "http_proxy" one which is only used lower‐
25 case. Note also that some systems actually have a case insensi‐
26 tive handling of environment variables and then of course
27 "HTTP_PROXY" will still work...
28
29 ALL_PROXY
30 This is a setting to set proxy for all URLs, independently of
31 what scheme is being used. Note that the scheme specific vari‐
32 ables will override this one if set.
33
34 CURL_SSL_BACKEND
35 When libcurl is built to support multiple SSL backends, it will
36 select a specific backend at first use. If no selection is done
37 by the program using libcurl, this variable's selection will be
38 used. Setting a name that is not a built-in alternative will
39 make libcurl stay with the default.
40
41 SSL backend names (case-insensitive): bearssl, gnutls, gskit,
42 mbedtls, nss, openssl, rustls, schannel, secure-transport, wolf‐
43 ssl
44
45 HOME When the netrc feature is used (CURLOPT_NETRC(3)), this variable
46 is checked as the primary way to find the "current" home direc‐
47 tory in which the .netrc file is likely to exist.
48
49 LOGNAME
50 User name to use when invoking the ntlm-wb tool, if NTLMUSER was
51 not set.
52
53 NO_PROXY
54 This has the same functionality as the CURLOPT_NOPROXY(3) op‐
55 tion: it gives libcurl a comma-separated list of host name pat‐
56 terns for which libcurl should not use a proxy.
57
58 NTLMUSER
59 User name to use when invoking the ntlm-wb tool.
60
61 SSLKEYLOGFILE
62 When set and libcurl runs with a SSL backend that supports this
63 feature, libcurl will save SSL secrets into the given file name.
64 Using those SSL secrets, other tools (such as Wireshark) can de‐
65 crypt the SSL communication and analyze/view the traffic.
66
67 SSL_DIR
68 When libcurl runs with the NSS backends for TLS features, this
69 variable is used to find the directory for NSS PKI database in‐
70 stead of the built-in.
71
72 USER User name to use when invoking the ntlm-wb tool, if NTLMUSER and
73 LOGNAME were not set.
74
76 There's a set of variables only recognized and used if libcurl was
77 built "debug enabled", which should never be true for a library used in
78 production.
79
80 CURL_GETHOSTNAME
81 Debug-only variable.
82
83 CURL_FORCETIME
84 Debug-only variable.
85
86 CURL_ENTROPY
87 Debug-only variable. Used to set a fixed faked value to use in‐
88 stead of a proper random number so that functions in libcurl
89 that are otherwise getting random outputs can be tested for what
90 they generate.
91
92 CURL_TRACE
93 Debug-only variable. Used for debugging the lib/ldap implementa‐
94 tion.
95
96 CURL_NTLM_WB_FILE
97 Debug-only variable. Used to set to a debug-version of the ntlm-
98 wb executable.
99
100 CURL_OPENLDAP_TRACE
101 Debug-only variable. Used for debugging the lib/openldap.c im‐
102 plementation.
103
104
105
106libcurl 7.82.0 January 09, 2022 libcurl-env(3)