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 USERPROFILE
50 When the netrc feature is used (CURLOPT_NETRC(3)), this variable
51 is checked as the secondary way to find the "current" home di‐
52 rectory (on Windows only) in which the .netrc file is likely to
53 exist.
54
55 LOGNAME
56 User name to use when invoking the ntlm-wb tool, if NTLMUSER was
57 not set.
58
59 NO_PROXY
60 This has the same functionality as the CURLOPT_NOPROXY(3) op‐
61 tion: it gives libcurl a comma-separated list of host name pat‐
62 terns for which libcurl should not use a proxy.
63
64 NTLMUSER
65 User name to use when invoking the ntlm-wb tool.
66
67 SSLKEYLOGFILE
68 When set and libcurl runs with a SSL backend that supports this
69 feature, libcurl will save SSL secrets into the given file name.
70 Using those SSL secrets, other tools (such as Wireshark) can de‐
71 crypt the SSL communication and analyze/view the traffic.
72
73 SSL_DIR
74 When libcurl runs with the NSS backends for TLS features, this
75 variable is used to find the directory for NSS PKI database in‐
76 stead of the built-in.
77
78 USER User name to use when invoking the ntlm-wb tool, if NTLMUSER and
79 LOGNAME were not set.
80
82 There's a set of variables only recognized and used if libcurl was
83 built "debug enabled", which should never be true for a library used in
84 production.
85
86 CURL_GETHOSTNAME
87 Debug-only variable.
88
89 CURL_FORCETIME
90 Debug-only variable.
91
92 CURL_ENTROPY
93 Debug-only variable. Used to set a fixed faked value to use in‐
94 stead of a proper random number so that functions in libcurl
95 that are otherwise getting random outputs can be tested for what
96 they generate.
97
98 CURL_TRACE
99 Debug-only variable. Used for debugging the lib/ldap implementa‐
100 tion.
101
102 CURL_NTLM_WB_FILE
103 Debug-only variable. Used to set to a debug-version of the ntlm-
104 wb executable.
105
106 CURL_OPENLDAP_TRACE
107 Debug-only variable. Used for debugging the lib/openldap.c im‐
108 plementation.
109
110
111
112libcurl 7.85.0 May 17, 2022 libcurl-env(3)