libcurl-env.3 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. .\" **************************************************************************
  2. .\" * _ _ ____ _
  3. .\" * Project ___| | | | _ \| |
  4. .\" * / __| | | | |_) | |
  5. .\" * | (__| |_| | _ <| |___
  6. .\" * \___|\___/|_| \_\_____|
  7. .\" *
  8. .\" * Copyright (C) 2018 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al.
  9. .\" *
  10. .\" * This software is licensed as described in the file COPYING, which
  11. .\" * you should have received as part of this distribution. The terms
  12. .\" * are also available at https://curl.se/docs/copyright.html.
  13. .\" *
  14. .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
  15. .\" * copies of the Software, and permit persons to whom the Software is
  16. .\" * furnished to do so, under the terms of the COPYING file.
  17. .\" *
  18. .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
  19. .\" * KIND, either express or implied.
  20. .\" *
  21. .\" * SPDX-License-Identifier: curl
  22. .\" *
  23. .\" **************************************************************************
  24. .TH libcurl-env 3 "20 January 2018" "libcurl 7.58.0" "libcurl environment variables"
  25. .SH NAME
  26. libcurl-env \- environment variables libcurl understands
  27. .SH DESCRIPTION
  28. libcurl reads and understands a set of environment variables that if set will
  29. control and change behaviors. This is the full list of variables to set and
  30. description of what they do. Also note that curl, the command line tool,
  31. supports a set of additional environment variables independently of this.
  32. .IP "[scheme]_proxy"
  33. When libcurl is given a URL to use in a transfer, it first extracts the
  34. "scheme" part from the URL and checks if there is a given proxy set for that
  35. in its corresponding environment variable. A URL like "https://example.com"
  36. will hence use the "http_proxy" variable, while a URL like "ftp://example.com"
  37. will use the "ftp_proxy" variable.
  38. These proxy variables are also checked for in their uppercase versions, except
  39. the "http_proxy" one which is only used lowercase. Note also that some systems
  40. actually have a case insensitive handling of environment variables and then of
  41. course "HTTP_PROXY" will still work...
  42. .IP ALL_PROXY
  43. This is a setting to set proxy for all URLs, independently of what scheme is
  44. being used. Note that the scheme specific variables will override this one if
  45. set.
  46. .IP CURL_SSL_BACKEND
  47. When libcurl is built to support multiple SSL backends, it will select a
  48. specific backend at first use. If no selection is done by the program using
  49. libcurl, this variable's selection will be used. Setting a name that is not a
  50. built-in alternative will make libcurl stay with the default.
  51. SSL backend names (case-insensitive): BearSSL, GnuTLS, gskit, mbedTLS,
  52. nss, OpenSSL, rustls, Schannel, Secure-Transport, wolfSSL
  53. .IP HOME
  54. When the netrc feature is used (\fICURLOPT_NETRC(3)\fP), this variable is
  55. checked as the primary way to find the "current" home directory in which
  56. the .netrc file is likely to exist.
  57. .IP USERPROFILE
  58. When the netrc feature is used (\fICURLOPT_NETRC(3)\fP), this variable is
  59. checked as the secondary way to find the "current" home directory (on Windows
  60. only) in which the .netrc file is likely to exist.
  61. .IP LOGNAME
  62. User name to use when invoking the \fIntlm-wb\fP tool, if \fINTLMUSER\fP was
  63. not set.
  64. .IP NO_PROXY
  65. This has the same functionality as the \fICURLOPT_NOPROXY(3)\fP option: it
  66. gives libcurl a comma-separated list of host name patterns for which libcurl
  67. should not use a proxy.
  68. .IP NTLMUSER
  69. User name to use when invoking the \fIntlm-wb\fP tool.
  70. .IP SSLKEYLOGFILE
  71. When set and libcurl runs with a SSL backend that supports this feature,
  72. libcurl will save SSL secrets into the given file name. Using those SSL
  73. secrets, other tools (such as Wireshark) can decrypt the SSL communication and
  74. analyze/view the traffic.
  75. .IP SSL_DIR
  76. When libcurl runs with the NSS backends for TLS features, this variable is
  77. used to find the directory for NSS PKI database instead of the built-in.
  78. .IP USER
  79. User name to use when invoking the \fIntlm-wb\fP tool, if \fINTLMUSER\fP and
  80. \fILOGNAME\fP were not set.
  81. .SH "Debug Variables"
  82. There's a set of variables only recognized and used if libcurl was built
  83. "debug enabled", which should never be true for a library used in production.
  84. .IP "CURL_GETHOSTNAME"
  85. Debug-only variable.
  86. .IP "CURL_FORCETIME"
  87. Debug-only variable.
  88. .IP "CURL_ENTROPY"
  89. Debug-only variable. Used to set a fixed faked value to use instead of a
  90. proper random number so that functions in libcurl that are otherwise getting
  91. random outputs can be tested for what they generate.
  92. .IP "CURL_TRACE"
  93. Debug-only variable. Used for debugging the lib/ldap implementation.
  94. .IP "CURL_NTLM_WB_FILE"
  95. Debug-only variable. Used to set to a debug-version of the \fIntlm-wb\fP
  96. executable.
  97. .IP "CURL_OPENLDAP_TRACE"
  98. Debug-only variable. Used for debugging the OpenLDAP implementation.