blob: 8584406b9bd6963f07a756bb3c5def93be804f56 [file] [log] [blame]
#include "tool_setup.h"
#ifndef HAVE_LIBZ
/*
* NEVER EVER edit this manually, fix the mkhelp.pl script instead!
* Generation time: Wed Nov 2 07:33:11 2016
*/
#ifdef USE_MANUAL
#include "tool_hugehelp.h"
void hugehelp(void)
{
fputs(
" _ _ ____ _\n"
" Project ___| | | | _ \\| |\n"
" / __| | | | |_) | |\n"
" | (__| |_| | _ <| |___\n"
" \\___|\\___/|_| \\_\\_____|\n"
"\n"
"NAME\n"
" curl - transfer a URL\n"
"\n"
"SYNOPSIS\n"
" curl [options] [URL...]\n"
"\n"
"DESCRIPTION\n"
" curl is a tool to transfer data from or to a server, using one of the\n"
" supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP,\n"
, stdout);
fputs(
" IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS,\n"
" SMTP, SMTPS, TELNET and TFTP). The command is designed to work without\n"
" user interaction.\n"
"\n"
" curl offers a busload of useful tricks like proxy support, user authen-\n"
" tication, FTP upload, HTTP post, SSL connections, cookies, file trans-\n"
" fer resume, Metalink, and more. As you will see below, the number of\n"
" features will make your head spin!\n"
"\n"
, stdout);
fputs(
" curl is powered by libcurl for all transfer-related features. See\n"
" libcurl(3) for details.\n"
"\n"
"URL\n"
" The URL syntax is protocol-dependent. You'll find a detailed descrip-\n"
" tion in RFC 3986.\n"
"\n"
" You can specify multiple URLs or parts of URLs by writing part sets\n"
" within braces as in:\n"
"\n"
" http://site.{one,two,three}.com\n"
"\n"
" or you can get sequences of alphanumeric series by using [] as in:\n"
"\n"
" ftp://ftp.example.com/file[1-100].txt\n"
"\n"
, stdout);
fputs(
" ftp://ftp.example.com/file[001-100].txt (with leading zeros)\n"
"\n"
" ftp://ftp.example.com/file[a-z].txt\n"
"\n"
" Nested sequences are not supported, but you can use several ones next\n"
" to each other:\n"
"\n"
" http://example.com/archive[1996-1999]/vol[1-4]/part{a,b,c}.html\n"
"\n"
" You can specify any amount of URLs on the command line. They will be\n"
" fetched in a sequential manner in the specified order.\n"
"\n"
, stdout);
fputs(
" You can specify a step counter for the ranges to get every Nth number\n"
" or letter:\n"
"\n"
" http://example.com/file[1-100:10].txt\n"
"\n"
" http://example.com/file[a-z:2].txt\n"
"\n"
" When using [] or {} sequences when invoked from a command line prompt,\n"
" you probably have to put the full URL within double quotes to avoid the\n"
" shell from interfering with it. This also goes for other characters\n"
" treated special, like for example '&', '?' and '*'.\n"
"\n"
, stdout);
fputs(
" Provide the IPv6 zone index in the URL with an escaped percentage sign\n"
" and the interface name. Like in\n"
"\n"
" http://[fe80::3%25eth0]/\n"
"\n"
" If you specify URL without protocol:// prefix, curl will attempt to\n"
" guess what protocol you might want. It will then default to HTTP but\n"
" try other protocols based on often-used host name prefixes. For exam-\n"
" ple, for host names starting with \"ftp.\" curl will assume you want to\n"
" speak FTP.\n"
"\n"
, stdout);
fputs(
" curl will do its best to use what you pass to it as a URL. It is not\n"
" trying to validate it as a syntactically correct URL by any means but\n"
" is instead very liberal with what it accepts.\n"
"\n"
" curl will attempt to re-use connections for multiple file transfers, so\n"
" that getting many files from the same server will not do multiple con-\n"
" nects / handshakes. This improves speed. Of course this is only done on\n"
, stdout);
fputs(
" files specified on a single command line and cannot be used between\n"
" separate curl invokes.\n"
"\n"
"PROGRESS METER\n"
" curl normally displays a progress meter during operations, indicating\n"
" the amount of transferred data, transfer speeds and estimated time\n"
" left, etc. The progress meter displays number of bytes and the speeds\n"
" are in bytes per second. The suffixes (k, M, G, T, P) are 1024 based.\n"
" For example 1k is 1024 bytes. 1M is 1048576 bytes.\n"
"\n"
, stdout);
fputs(
" curl displays this data to the terminal by default, so if you invoke\n"
" curl to do an operation and it is about to write data to the terminal,\n"
" it disables the progress meter as otherwise it would mess up the output\n"
" mixing progress meter and response data.\n"
"\n"
" If you want a progress meter for HTTP POST or PUT requests, you need to\n"
" redirect the response output to a file, using shell redirect (>), -o\n"
" [file] or similar.\n"
"\n"
, stdout);
fputs(
" It is not the same case for FTP upload as that operation does not spit\n"
" out any response data to the terminal.\n"
"\n"
" If you prefer a progress \"bar\" instead of the regular meter, -# is your\n"
" friend.\n"
"OPTIONS\n"
" Options start with one or two dashes. Many of the options require an\n"
" additional value next to them.\n"
"\n"
" The short \"single-dash\" form of the options, -d for example, may be\n"
, stdout);
fputs(
" used with or without a space between it and its value, although a space\n"
" is a recommended separator. The long \"double-dash\" form, --data for\n"
" example, requires a space between it and its value.\n"
"\n"
" Short version options that don't need any additional values can be used\n"
" immediately next to each other, like for example you can specify all\n"
" the options -O, -L and -v at once as -OLv.\n"
"\n"
, stdout);
fputs(
" In general, all boolean options are enabled with --option and yet again\n"
" disabled with --no-option. That is, you use the exact same option name\n"
" but prefix it with \"no-\". However, in this list we mostly only list and\n"
" show the --option version of them. (This concept with --no options was\n"
" added in 7.19.0. Previously most options were toggled on/off on\n"
" repeated use of the same command line option.)\n"
"\n"
" -#, --progress-bar\n"
, stdout);
fputs(
" Make curl display progress as a simple progress bar instead of\n"
" the standard, more informational, meter.\n"
"\n"
" -:, --next\n"
" Tells curl to use a separate operation for the following URL and\n"
" associated options. This allows you to send several URL\n"
" requests, each with their own specific options, for example,\n"
" such as different user names or custom requests for each. (Added\n"
" in 7.36.0)\n"
"\n"
, stdout);
fputs(
" -0, --http1.0\n"
" (HTTP) Tells curl to use HTTP version 1.0 instead of using its\n"
" internally preferred: HTTP 1.1.\n"
"\n"
" --http1.1\n"
" (HTTP) Tells curl to use HTTP version 1.1. This is the internal\n"
" default version. (Added in 7.33.0)\n"
"\n"
" --http2\n"
" (HTTP) Tells curl to issue its requests using HTTP 2. This\n"
" requires that the underlying libcurl was built to support it.\n"
" (Added in 7.33.0)\n"
"\n"
, stdout);
fputs(
" --http2-prior-knowledge\n"
" (HTTP) Tells curl to issue its non-TLS HTTP requests using\n"
" HTTP/2 without HTTP/1.1 Upgrade. It requires prior knowledge\n"
" that the server supports HTTP/2 straight away. HTTPS requests\n"
" will still do HTTP/2 the standard way with negotiated protocol\n"
" version in the TLS handshake.\n"
"\n"
" HTTP/2 support in general also requires that the underlying\n"
, stdout);
fputs(
" libcurl was built to support it. (Added in 7.49.0)\n"
"\n"
" --no-npn\n"
" Disable the NPN TLS extension. NPN is enabled by default if\n"
" libcurl was built with an SSL library that supports NPN. NPN is\n"
" used by a libcurl that supports HTTP 2 to negotiate HTTP 2 sup-\n"
" port with the server during https sessions.\n"
"\n"
" (Added in 7.36.0)\n"
"\n"
" --no-alpn\n"
, stdout);
fputs(
" Disable the ALPN TLS extension. ALPN is enabled by default if\n"
" libcurl was built with an SSL library that supports ALPN. ALPN\n"
" is used by a libcurl that supports HTTP 2 to negotiate HTTP 2\n"
" support with the server during https sessions.\n"
"\n"
" (Added in 7.36.0)\n"
"\n"
" -1, --tlsv1\n"
" (SSL) Forces curl to use TLS version 1.x when negotiating with a\n"
, stdout);
fputs(
" remote TLS server. You can use options --tlsv1.0, --tlsv1.1,\n"
" and --tlsv1.2 to control the TLS version more precisely (if the\n"
" SSL backend in use supports such a level of control).\n"
"\n"
" -2, --sslv2\n"
" (SSL) Forces curl to use SSL version 2 when negotiating with a\n"
" remote SSL server. Sometimes curl is built without SSLv2 sup-\n"
" port. SSLv2 is widely considered insecure (see RFC 6176).\n"
"\n"
" -3, --sslv3\n"
, stdout);
fputs(
" (SSL) Forces curl to use SSL version 3 when negotiating with a\n"
" remote SSL server. Sometimes curl is built without SSLv3 sup-\n"
" port. SSLv3 is widely considered insecure (see RFC 7568).\n"
"\n"
" -4, --ipv4\n"
" This option tells curl to resolve names to IPv4 addresses only,\n"
" and not for example try IPv6.\n"
"\n"
" -6, --ipv6\n"
" This option tells curl to resolve names to IPv6 addresses only,\n"
, stdout);
fputs(
" and not for example try IPv4.\n"
"\n"
" -a, --append\n"
" (FTP/SFTP) When used in an upload, this makes curl append to the\n"
" target file instead of overwriting it. If the remote file\n"
" doesn't exist, it will be created. Note that this flag is\n"
" ignored by some SFTP servers (including OpenSSH).\n"
"\n"
" -A, --user-agent <agent string>\n"
" (HTTP) Specify the User-Agent string to send to the HTTP server.\n"
, stdout);
fputs(
" Some badly done CGIs fail if this field isn't set to\n"
" \"Mozilla/4.0\". To encode blanks in the string, surround the\n"
" string with single quote marks. This can also be set with the\n"
" -H, --header option of course.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --anyauth\n"
" (HTTP) Tells curl to figure out authentication method by itself,\n"
, stdout);
fputs(
" and use the most secure one the remote site claims to support.\n"
" This is done by first doing a request and checking the response-\n"
" headers, thus possibly inducing an extra network round-trip.\n"
" This is used instead of setting a specific authentication\n"
" method, which you can do with --basic, --digest, --ntlm, and\n"
" --negotiate.\n"
"\n"
, stdout);
fputs(
" Note that using --anyauth is not recommended if you do uploads\n"
" from stdin, since it may require data to be sent twice and then\n"
" the client must be able to rewind. If the need should arise when\n"
" uploading from stdin, the upload operation will fail.\n"
"\n"
" -b, --cookie <name=data>\n"
" (HTTP) Pass the data to the HTTP server as a cookie. It is sup-\n"
" posedly the data previously received from the server in a \"Set-\n"
, stdout);
fputs(
" Cookie:\" line. The data should be in the format \"NAME1=VALUE1;\n"
" NAME2=VALUE2\".\n"
"\n"
" If no '=' symbol is used in the line, it is treated as a file-\n"
" name to use to read previously stored cookie lines from, which\n"
" should be used in this session if they match. Using this method\n"
" also activates the cookie engine which will make curl record\n"
, stdout);
fputs(
" incoming cookies too, which may be handy if you're using this in\n"
" combination with the -L, --location option. The file format of\n"
" the file to read cookies from should be plain HTTP headers (Set-\n"
" Cookie style) or the Netscape/Mozilla cookie file format.\n"
"\n"
" The file specified with -b, --cookie is only used as input. No\n"
" cookies will be written to the file. To store cookies, use the\n"
, stdout);
fputs(
" -c, --cookie-jar option.\n"
"\n"
" Exercise caution if you are using this option and multiple\n"
" transfers may occur. If you use the NAME1=VALUE1; format, or in\n"
" a file use the Set-Cookie format and don't specify a domain,\n"
" then the cookie is sent for any domain (even after redirects are\n"
" followed) and cannot be modified by a server-set cookie. If the\n"
, stdout);
fputs(
" cookie engine is enabled and a server sets a cookie of the same\n"
" name then both will be sent on a future transfer to that server,\n"
" likely not what you intended. To address these issues set a\n"
" domain in Set-Cookie (doing that will include sub-domains) or\n"
" use the Netscape format.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -B, --use-ascii\n"
, stdout);
fputs(
" (FTP/LDAP) Enable ASCII transfer. For FTP, this can also be\n"
" enforced by using an URL that ends with \";type=A\". This option\n"
" causes data sent to stdout to be in text mode for win32 systems.\n"
"\n"
" --basic\n"
" (HTTP) Tells curl to use HTTP Basic authentication with the\n"
" remote host. This is the default and this option is usually\n"
" pointless, unless you use it to override a previously set option\n"
, stdout);
fputs(
" that sets a different authentication method (such as --ntlm,\n"
" --digest, or --negotiate).\n"
"\n"
" Used together with -u, --user and -x, --proxy.\n"
"\n"
" See also --proxy-basic.\n"
"\n"
" -c, --cookie-jar <file name>\n"
" (HTTP) Specify to which file you want curl to write all cookies\n"
" after a completed operation. Curl writes all cookies previously\n"
" read from a specified file as well as all cookies received from\n"
, stdout);
fputs(
" remote server(s). If no cookies are known, no data will be writ-\n"
" ten. The file will be written using the Netscape cookie file\n"
" format. If you set the file name to a single dash, \"-\", the\n"
" cookies will be written to stdout.\n"
"\n"
" This command line option will activate the cookie engine that\n"
" makes curl record and use cookies. Another way to activate it is\n"
" to use the -b, --cookie option.\n"
"\n"
, stdout);
fputs(
" If the cookie jar can't be created or written to, the whole curl\n"
" operation won't fail or even report an error clearly. Using -v\n"
" will get a warning displayed, but that is the only visible feed-\n"
" back you get about this possibly lethal situation.\n"
"\n"
" Since 7.43.0 cookies that were imported in the Set-Cookie format\n"
" without a domain name are not exported by this option.\n"
"\n"
, stdout);
fputs(
" If this option is used several times, the last specified file\n"
" name will be used.\n"
"\n"
" -C, --continue-at <offset>\n"
" Continue/Resume a previous file transfer at the given offset.\n"
" The given offset is the exact number of bytes that will be\n"
" skipped, counting from the beginning of the source file before\n"
" it is transferred to the destination. If used with uploads, the\n"
, stdout);
fputs(
" FTP server command SIZE will not be used by curl.\n"
"\n"
" Use \"-C -\" to tell curl to automatically find out where/how to\n"
" resume the transfer. It then uses the given output/input files\n"
" to figure that out.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --ciphers <list of ciphers>\n"
" (SSL) Specifies which ciphers to use in the connection. The list\n"
, stdout);
fputs(
" of ciphers must specify valid ciphers. Read up on SSL cipher\n"
" list details on this URL:\n"
" https://www.openssl.org/docs/apps/ciphers.html\n"
"\n"
" NSS ciphers are done differently than OpenSSL and GnuTLS. The\n"
" full list of NSS ciphers is in the NSSCipherSuite entry at this\n"
" URL: https://git.fedora-\n"
, stdout);
fputs(
" hosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html#Directives\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --compressed\n"
" (HTTP) Request a compressed response using one of the algorithms\n"
" curl supports, and save the uncompressed document. If this\n"
" option is used and the server sends an unsupported encoding,\n"
" curl will report an error.\n"
"\n"
" --connect-timeout <seconds>\n"
, stdout);
fputs(
" Maximum time in seconds that you allow curl's connection to\n"
" take. This only limits the connection phase, so if curl con-\n"
" nects within the given period it will continue - if not it will\n"
" exit. Since version 7.32.0, this option accepts decimal values.\n"
"\n"
" See also the -m, --max-time option.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --create-dirs\n"
, stdout);
fputs(
" When used in conjunction with the -o option, curl will create\n"
" the necessary local directory hierarchy as needed. This option\n"
" creates the dirs mentioned with the -o option, nothing else. If\n"
" the -o file name uses no dir or if the dirs it mentions already\n"
" exist, no dir will be created.\n"
"\n"
" To create remote directories when using FTP or SFTP, try --ftp-\n"
" create-dirs.\n"
"\n"
, stdout);
fputs(
" --crlf Convert LF to CRLF in upload. Useful for MVS (OS/390).\n"
"\n"
" (SMTP added in 7.40.0)\n"
"\n"
" --crlfile <file>\n"
" (HTTPS/FTPS) Provide a file using PEM format with a Certificate\n"
" Revocation List that may specify peer certificates that are to\n"
" be considered revoked.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" (Added in 7.19.7)\n"
" -d, --data <data>\n"
, stdout);
fputs(
" (HTTP) Sends the specified data in a POST request to the HTTP\n"
" server, in the same way that a browser does when a user has\n"
" filled in an HTML form and presses the submit button. This will\n"
" cause curl to pass the data to the server using the content-type\n"
" application/x-www-form-urlencoded. Compare to -F, --form.\n"
"\n"
" -d, --data is the same as --data-ascii. --data-raw is almost the\n"
, stdout);
fputs(
" same but does not have a special interpretation of the @ charac-\n"
" ter. To post data purely binary, you should instead use the\n"
" --data-binary option. To URL-encode the value of a form field\n"
" you may use --data-urlencode.\n"
"\n"
" If any of these options is used more than once on the same com-\n"
" mand line, the data pieces specified will be merged together\n"
, stdout);
fputs(
" with a separating &-symbol. Thus, using '-d name=daniel -d\n"
" skill=lousy' would generate a post chunk that looks like\n"
" 'name=daniel&skill=lousy'.\n"
"\n"
" If you start the data with the letter @, the rest should be a\n"
" file name to read the data from, or - if you want curl to read\n"
" the data from stdin. Multiple files can also be specified. Post-\n"
, stdout);
fputs(
" ing data from a file named 'foobar' would thus be done with\n"
" --data @foobar. When --data is told to read from a file like\n"
" that, carriage returns and newlines will be stripped out. If you\n"
" don't want the @ character to have a special interpretation use\n"
" --data-raw instead.\n"
"\n"
" -D, --dump-header <file>\n"
" Write the protocol headers to the specified file.\n"
"\n"
, stdout);
fputs(
" This option is handy to use when you want to store the headers\n"
" that an HTTP site sends to you. Cookies from the headers could\n"
" then be read in a second curl invocation by using the -b,\n"
" --cookie option! The -c, --cookie-jar option is a better way to\n"
" store cookies.\n"
"\n"
" When used in FTP, the FTP server response lines are considered\n"
" being \"headers\" and thus are saved there.\n"
"\n"
, stdout);
fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" --data-ascii <data>\n"
" See -d, --data.\n"
"\n"
" --data-binary <data>\n"
" (HTTP) This posts data exactly as specified with no extra pro-\n"
" cessing whatsoever.\n"
"\n"
" If you start the data with the letter @, the rest should be a\n"
" filename. Data is posted in a similar manner as --data-ascii\n"
, stdout);
fputs(
" does, except that newlines and carriage returns are preserved\n"
" and conversions are never done.\n"
"\n"
" If this option is used several times, the ones following the\n"
" first will append data as described in -d, --data.\n"
"\n"
" --data-raw <data>\n"
" (HTTP) This posts data similarly to --data but without the spe-\n"
" cial interpretation of the @ character. See -d, --data. (Added\n"
" in 7.43.0)\n"
"\n"
, stdout);
fputs(
" --data-urlencode <data>\n"
" (HTTP) This posts data, similar to the other --data options with\n"
" the exception that this performs URL-encoding. (Added in 7.18.0)\n"
" To be CGI-compliant, the <data> part should begin with a name\n"
" followed by a separator and a content specification. The <data>\n"
" part can be passed to curl using one of the following syntaxes:\n"
"\n"
" content\n"
, stdout);
fputs(
" This will make curl URL-encode the content and pass that\n"
" on. Just be careful so that the content doesn't contain\n"
" any = or @ symbols, as that will then make the syntax\n"
" match one of the other cases below!\n"
"\n"
" =content\n"
" This will make curl URL-encode the content and pass that\n"
" on. The preceding = symbol is not included in the data.\n"
"\n"
, stdout);
fputs(
" name=content\n"
" This will make curl URL-encode the content part and pass\n"
" that on. Note that the name part is expected to be URL-\n"
" encoded already.\n"
"\n"
" @filename\n"
" This will make curl load data from the given file\n"
" (including any newlines), URL-encode that data and pass\n"
" it on in the POST.\n"
"\n"
" name@filename\n"
, stdout);
fputs(
" This will make curl load data from the given file\n"
" (including any newlines), URL-encode that data and pass\n"
" it on in the POST. The name part gets an equal sign\n"
" appended, resulting in name=urlencoded-file-content. Note\n"
" that the name is expected to be URL-encoded already.\n"
"\n"
" --delegation LEVEL\n"
" Set LEVEL to tell the server what it is allowed to delegate when\n"
, stdout);
fputs(
" it comes to user credentials. Used with GSS/kerberos.\n"
"\n"
" none Don't allow any delegation.\n"
"\n"
" policy Delegates if and only if the OK-AS-DELEGATE flag is set\n"
" in the Kerberos service ticket, which is a matter of\n"
" realm policy.\n"
"\n"
" always Unconditionally allow the server to delegate.\n"
"\n"
" --digest\n"
" (HTTP) Enables HTTP Digest authentication. This is an authenti-\n"
, stdout);
fputs(
" cation scheme that prevents the password from being sent over\n"
" the wire in clear text. Use this in combination with the normal\n"
" -u, --user option to set user name and password. See also\n"
" --ntlm, --negotiate and --anyauth for related options.\n"
"\n"
" If this option is used several times, only the first one is\n"
" used.\n"
"\n"
" --disable-eprt\n"
, stdout);
fputs(
" (FTP) Tell curl to disable the use of the EPRT and LPRT commands\n"
" when doing active FTP transfers. Curl will normally always first\n"
" attempt to use EPRT, then LPRT before using PORT, but with this\n"
" option, it will use PORT right away. EPRT and LPRT are exten-\n"
" sions to the original FTP protocol, and may not work on all\n"
" servers, but they enable more functionality in a better way than\n"
, stdout);
fputs(
" the traditional PORT command.\n"
"\n"
" --eprt can be used to explicitly enable EPRT again and --no-eprt\n"
" is an alias for --disable-eprt.\n"
"\n"
" If the server is an IPv6 host, this option will have no effect\n"
" as EPRT is necessary then.\n"
"\n"
" Disabling EPRT only changes the active behavior. If you want to\n"
" switch to passive mode you need to not use -P, --ftp-port or\n"
" force it with --ftp-pasv.\n"
"\n"
, stdout);
fputs(
" --disable-epsv\n"
" (FTP) Tell curl to disable the use of the EPSV command when\n"
" doing passive FTP transfers. Curl will normally always first\n"
" attempt to use EPSV before PASV, but with this option, it will\n"
" not try using EPSV.\n"
"\n"
" --epsv can be used to explicitly enable EPSV again and --no-epsv\n"
" is an alias for --disable-epsv.\n"
"\n"
" If the server is an IPv6 host, this option will have no effect\n"
, stdout);
fputs(
" as EPSV is necessary then.\n"
"\n"
" Disabling EPSV only changes the passive behavior. If you want to\n"
" switch to active mode you need to use -P, --ftp-port.\n"
"\n"
" --dns-interface <interface>\n"
" Tell curl to send outgoing DNS requests through <interface>.\n"
" This option is a counterpart to --interface (which does not\n"
" affect DNS). The supplied string must be an interface name (not\n"
" an address).\n"
"\n"
, stdout);
fputs(
" This option requires that libcurl was built with a resolver\n"
" backend that supports this operation. The c-ares backend is the\n"
" only such one. (Added in 7.33.0)\n"
"\n"
" --dns-ipv4-addr <ip-address>\n"
" Tell curl to bind to <ip-address> when making IPv4 DNS requests,\n"
" so that the DNS requests originate from this address. The argu-\n"
" ment should be a single IPv4 address.\n"
"\n"
, stdout);
fputs(
" This option requires that libcurl was built with a resolver\n"
" backend that supports this operation. The c-ares backend is the\n"
" only such one. (Added in 7.33.0)\n"
"\n"
" --dns-ipv6-addr <ip-address>\n"
" Tell curl to bind to <ip-address> when making IPv6 DNS requests,\n"
" so that the DNS requests originate from this address. The argu-\n"
" ment should be a single IPv6 address.\n"
"\n"
, stdout);
fputs(
" This option requires that libcurl was built with a resolver\n"
" backend that supports this operation. The c-ares backend is the\n"
" only such one. (Added in 7.33.0)\n"
"\n"
" --dns-servers <ip-address,ip-address>\n"
" Set the list of DNS servers to be used instead of the system\n"
" default. The list of IP addresses should be separated with com-\n"
" mas. Port numbers may also optionally be given as :<port-number>\n"
, stdout);
fputs(
" after each IP address.\n"
"\n"
" This option requires that libcurl was built with a resolver\n"
" backend that supports this operation. The c-ares backend is the\n"
" only such one. (Added in 7.33.0)\n"
"\n"
" -e, --referer <URL>\n"
" (HTTP) Sends the \"Referrer Page\" information to the HTTP server.\n"
" This can also be set with the -H, --header flag of course. When\n"
, stdout);
fputs(
" used with -L, --location you can append \";auto\" to the --referer\n"
" URL to make curl automatically set the previous URL when it fol-\n"
" lows a Location: header. The \";auto\" string can be used alone,\n"
" even if you don't set an initial --referer.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -E, --cert <certificate[:password]>\n"
" (SSL) Tells curl to use the specified client certificate file\n"
, stdout);
fputs(
" when getting a file with HTTPS, FTPS or another SSL-based proto-\n"
" col. The certificate must be in PKCS#12 format if using Secure\n"
" Transport, or PEM format if using any other engine. If the\n"
" optional password isn't specified, it will be queried for on the\n"
" terminal. Note that this option assumes a \"certificate\" file\n"
" that is the private key and the client certificate concatenated!\n"
, stdout);
fputs(
" See --cert and --key to specify them independently.\n"
"\n"
" If curl is built against the NSS SSL library then this option\n"
" can tell curl the nickname of the certificate to use within the\n"
" NSS database defined by the environment variable SSL_DIR (or by\n"
" default /etc/pki/nssdb). If the NSS PEM PKCS#11 module (lib-\n"
" nsspem.so) is available then PEM files may be loaded. If you\n"
, stdout);
fputs(
" want to use a file from the current directory, please precede it\n"
" with \"./\" prefix, in order to avoid confusion with a nickname.\n"
" If the nickname contains \":\", it needs to be preceded by \"\\\" so\n"
" that it is not recognized as password delimiter. If the nick-\n"
" name contains \"\\\", it needs to be escaped as \"\\\\\" so that it is\n"
" not recognized as an escape character.\n"
"\n"
, stdout);
fputs(
" (iOS and macOS only) If curl is built against Secure Transport,\n"
" then the certificate string can either be the name of a certifi-\n"
" cate/private key in the system or user keychain, or the path to\n"
" a PKCS#12-encoded certificate and private key. If you want to\n"
" use a file from the current directory, please precede it with\n"
" \"./\" prefix, in order to avoid confusion with a nickname.\n"
"\n"
, stdout);
fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" --engine <name>\n"
" Select the OpenSSL crypto engine to use for cipher operations.\n"
" Use --engine list to print a list of build-time supported\n"
" engines. Note that not all (or none) of the engines may be\n"
" available at run-time.\n"
"\n"
" --environment\n"
" (RISC OS ONLY) Sets a range of environment variables, using the\n"
, stdout);
fputs(
" names the -w option supports, to allow easier extraction of use-\n"
" ful information after having run curl.\n"
"\n"
" --egd-file <file>\n"
" (SSL) Specify the path name to the Entropy Gathering Daemon\n"
" socket. The socket is used to seed the random engine for SSL\n"
" connections. See also the --random-file option.\n"
"\n"
" --expect100-timeout <seconds>\n"
" (HTTP) Maximum time in seconds that you allow curl to wait for a\n"
, stdout);
fputs(
" 100-continue response when curl emits an Expects: 100-continue\n"
" header in its request. By default curl will wait one second.\n"
" This option accepts decimal values! When curl stops waiting, it\n"
" will continue as if the response has been received.\n"
"\n"
" (Added in 7.47.0)\n"
"\n"
" --cert-type <type>\n"
" (SSL) Tells curl what certificate type the provided certificate\n"
, stdout);
fputs(
" is in. PEM, DER and ENG are recognized types. If not specified,\n"
" PEM is assumed.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --cacert <CA certificate>\n"
" (SSL) Tells curl to use the specified certificate file to verify\n"
" the peer. The file may contain multiple CA certificates. The\n"
" certificate(s) must be in PEM format. Normally curl is built to\n"
, stdout);
fputs(
" use a default file for this, so this option is typically used to\n"
" alter that default file.\n"
"\n"
" curl recognizes the environment variable named 'CURL_CA_BUNDLE'\n"
" if it is set, and uses the given path as a path to a CA cert\n"
" bundle. This option overrides that variable.\n"
"\n"
" The windows version of curl will automatically look for a CA\n"
" certs file named 'curl-ca-bundle.crt', either in the same direc-\n"
, stdout);
fputs(
" tory as curl.exe, or in the Current Working Directory, or in any\n"
" folder along your PATH.\n"
"\n"
" If curl is built against the NSS SSL library, the NSS PEM\n"
" PKCS#11 module (libnsspem.so) needs to be available for this\n"
" option to work properly.\n"
"\n"
" (iOS and macOS only) If curl is built against Secure Transport,\n"
" then this option is supported for backward compatibility with\n"
, stdout);
fputs(
" other SSL engines, but it should not be set. If the option is\n"
" not set, then curl will use the certificates in the system and\n"
" user Keychain to verify the peer, which is the preferred method\n"
" of verifying the peer's certificate chain.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --capath <CA certificate directory>\n"
" (SSL) Tells curl to use the specified certificate directory to\n"
, stdout);
fputs(
" verify the peer. Multiple paths can be provided by separating\n"
" them with \":\" (e.g. \"path1:path2:path3\"). The certificates must\n"
" be in PEM format, and if curl is built against OpenSSL, the\n"
" directory must have been processed using the c_rehash utility\n"
" supplied with OpenSSL. Using --capath can allow OpenSSL-powered\n"
" curl to make SSL-connections much more efficiently than using\n"
, stdout);
fputs(
" --cacert if the --cacert file contains many CA certificates.\n"
"\n"
" If this option is set, the default capath value will be ignored,\n"
" and if it is used several times, the last one will be used.\n"
"\n"
" --pinnedpubkey <pinned public key (hashes)>\n"
" (SSL) Tells curl to use the specified public key file (or\n"
" hashes) to verify the peer. This can be a path to a file which\n"
, stdout);
fputs(
" contains a single public key in PEM or DER format, or any number\n"
" of base64 encoded sha256 hashes preceded by 'sha256//' and sepa-\n"
" rated by ';'\n"
"\n"
" When negotiating a TLS or SSL connection, the server sends a\n"
" certificate indicating its identity. A public key is extracted\n"
" from this certificate and if it does not exactly match the pub-\n"
, stdout);
fputs(
" lic key provided to this option, curl will abort the connection\n"
" before sending or receiving any data.\n"
"\n"
" PEM/DER support:\n"
" 7.39.0: OpenSSL, GnuTLS and GSKit\n"
" 7.43.0: NSS and wolfSSL/CyaSSL\n"
" 7.47.0: mbedtls\n"
" 7.49.0: PolarSSL sha256 support:\n"
" 7.44.0: OpenSSL, GnuTLS, NSS and wolfSSL/CyaSSL.\n"
" 7.47.0: mbedtls\n"
, stdout);
fputs(
" 7.49.0: PolarSSL Other SSL backends not supported.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --cert-status\n"
" (SSL) Tells curl to verify the status of the server certificate\n"
" by using the Certificate Status Request (aka. OCSP stapling) TLS\n"
" extension.\n"
"\n"
" If this option is enabled and the server sends an invalid (e.g.\n"
, stdout);
fputs(
" expired) response, if the response suggests that the server cer-\n"
" tificate has been revoked, or no response at all is received,\n"
" the verification fails.\n"
"\n"
" This is currently only implemented in the OpenSSL, GnuTLS and\n"
" NSS backends. (Added in 7.41.0)\n"
"\n"
" --false-start\n"
"\n"
" (SSL) Tells curl to use false start during the TLS handshake.\n"
, stdout);
fputs(
" False start is a mode where a TLS client will start sending\n"
" application data before verifying the server's Finished message,\n"
" thus saving a round trip when performing a full handshake.\n"
"\n"
" This is currently only implemented in the NSS and Secure Trans-\n"
" port (on iOS 7.0 or later, or OS X 10.9 or later) backends.\n"
" (Added in 7.42.0)\n"
"\n"
" -f, --fail\n"
, stdout);
fputs(
" (HTTP) Fail silently (no output at all) on server errors. This\n"
" is mostly done to better enable scripts etc to better deal with\n"
" failed attempts. In normal cases when an HTTP server fails to\n"
" deliver a document, it returns an HTML document stating so\n"
" (which often also describes why and more). This flag will pre-\n"
" vent curl from outputting that and return error 22.\n"
"\n"
, stdout);
fputs(
" This method is not fail-safe and there are occasions where non-\n"
" successful response codes will slip through, especially when\n"
" authentication is involved (response codes 401 and 407).\n"
"\n"
" -F, --form <name=content>\n"
" (HTTP) This lets curl emulate a filled-in form in which a user\n"
" has pressed the submit button. This causes curl to POST data\n"
" using the Content-Type multipart/form-data according to RFC\n"
, stdout);
fputs(
" 2388. This enables uploading of binary files etc. To force the\n"
" 'content' part to be a file, prefix the file name with an @\n"
" sign. To just get the content part from a file, prefix the file\n"
" name with the symbol <. The difference between @ and < is then\n"
" that @ makes a file get attached in the post as a file upload,\n"
" while the < makes a text field and just get the contents for\n"
, stdout);
fputs(
" that text field from a file.\n"
"\n"
" Example: to send an image to a server, where 'profile' is the\n"
" name of the form-field to which portrait.jpg will be the input:\n"
"\n"
" curl -F profile=@portrait.jpg https://example.com/upload.cgi\n"
"\n"
" To read content from stdin instead of a file, use - as the file-\n"
" name. This goes for both @ and < constructs. Unfortunately it\n"
, stdout);
fputs(
" does not support reading the file from a named pipe or similar,\n"
" as it needs the full size before the transfer starts.\n"
"\n"
" You can also tell curl what Content-Type to use by using\n"
" 'type=', in a manner similar to:\n"
"\n"
" curl -F \"web=@index.html;type=text/html\" example.com\n"
"\n"
" or\n"
"\n"
" curl -F \"name=daniel;type=text/foo\" example.com\n"
"\n"
, stdout);
fputs(
" You can also explicitly change the name field of a file upload\n"
" part by setting filename=, like this:\n"
"\n"
" curl -F \"file=@localfile;filename=nameinpost\" example.com\n"
"\n"
" If filename/path contains ',' or ';', it must be quoted by dou-\n"
" ble-quotes like:\n"
"\n"
" curl -F \"file=@\\\"localfile\\\";filename=\\\"nameinpost\\\"\" exam-\n"
" ple.com\n"
"\n"
" or\n"
"\n"
, stdout);
fputs(
" curl -F 'file=@\"localfile\";filename=\"nameinpost\"' example.com\n"
"\n"
" Note that if a filename/path is quoted by double-quotes, any\n"
" double-quote or backslash within the filename must be escaped by\n"
" backslash.\n"
"\n"
" See further examples and details in the MANUAL.\n"
"\n"
" This option can be used multiple times.\n"
"\n"
" --ftp-account [data]\n"
" (FTP) When an FTP server asks for \"account data\" after user name\n"
, stdout);
fputs(
" and password has been provided, this data is sent off using the\n"
" ACCT command. (Added in 7.13.0)\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --ftp-alternative-to-user <command>\n"
" (FTP) If authenticating with the USER and PASS commands fails,\n"
" send this command. When connecting to Tumbleweed's Secure\n"
" Transport server over FTPS using a client certificate, using\n"
, stdout);
fputs(
" \"SITE AUTH\" will tell the server to retrieve the username from\n"
" the certificate. (Added in 7.15.5)\n"
"\n"
" --ftp-create-dirs\n"
" (FTP/SFTP) When an FTP or SFTP URL/operation uses a path that\n"
" doesn't currently exist on the server, the standard behavior of\n"
" curl is to fail. Using this option, curl will instead attempt to\n"
" create missing directories.\n"
"\n"
" --ftp-method [method]\n"
, stdout);
fputs(
" (FTP) Control what method curl should use to reach a file on an\n"
" FTP(S) server. The method argument should be one of the follow-\n"
" ing alternatives:\n"
"\n"
" multicwd\n"
" curl does a single CWD operation for each path part in\n"
" the given URL. For deep hierarchies this means very many\n"
" commands. This is how RFC 1738 says it should be done.\n"
, stdout);
fputs(
" This is the default but the slowest behavior.\n"
"\n"
" nocwd curl does no CWD at all. curl will do SIZE, RETR, STOR\n"
" etc and give a full path to the server for all these com-\n"
" mands. This is the fastest behavior.\n"
"\n"
" singlecwd\n"
" curl does one CWD with the full target directory and then\n"
" operates on the file \"normally\" (like in the multicwd\n"
, stdout);
fputs(
" case). This is somewhat more standards compliant than\n"
" 'nocwd' but without the full penalty of 'multicwd'.\n"
"\n"
" (Added in 7.15.1)\n"
"\n"
" --ftp-pasv\n"
" (FTP) Use passive mode for the data connection. Passive is the\n"
" internal default behavior, but using this option can be used to\n"
" override a previous -P/-ftp-port option. (Added in 7.11.0)\n"
"\n"
, stdout);
fputs(
" If this option is used several times, only the first one is\n"
" used. Undoing an enforced passive really isn't doable but you\n"
" must then instead enforce the correct -P, --ftp-port again.\n"
"\n"
" Passive mode means that curl will try the EPSV command first and\n"
" then PASV, unless --disable-epsv is used.\n"
"\n"
" --ftp-skip-pasv-ip\n"
" (FTP) Tell curl to not use the IP address the server suggests in\n"
, stdout);
fputs(
" its response to curl's PASV command when curl connects the data\n"
" connection. Instead curl will re-use the same IP address it\n"
" already uses for the control connection. (Added in 7.14.2)\n"
"\n"
" This option has no effect if PORT, EPRT or EPSV is used instead\n"
" of PASV.\n"
"\n"
" --ftp-pret\n"
" (FTP) Tell curl to send a PRET command before PASV (and EPSV).\n"
, stdout);
fputs(
" Certain FTP servers, mainly drftpd, require this non-standard\n"
" command for directory listings as well as up and downloads in\n"
" PASV mode. (Added in 7.20.x)\n"
"\n"
" --ftp-ssl-ccc\n"
" (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS\n"
" layer after authenticating. The rest of the control channel com-\n"
" munication will be unencrypted. This allows NAT routers to fol-\n"
, stdout);
fputs(
" low the FTP transaction. The default mode is passive. See --ftp-\n"
" ssl-ccc-mode for other modes. (Added in 7.16.1)\n"
"\n"
" --ftp-ssl-ccc-mode [active/passive]\n"
" (FTP) Use CCC (Clear Command Channel) Sets the CCC mode. The\n"
" passive mode will not initiate the shutdown, but instead wait\n"
" for the server to do it, and will not reply to the shutdown from\n"
, stdout);
fputs(
" the server. The active mode initiates the shutdown and waits for\n"
" a reply from the server. (Added in 7.16.2)\n"
"\n"
" --ftp-ssl-control\n"
" (FTP) Require SSL/TLS for the FTP login, clear for transfer.\n"
" Allows secure authentication, but non-encrypted data transfers\n"
" for efficiency. Fails the transfer if the server doesn't sup-\n"
" port SSL/TLS. (Added in 7.16.0) that can still be used but will\n"
, stdout);
fputs(
" be removed in a future version.\n"
"\n"
" --ftp-ssl\n"
" (FTP) This deprecated option is now known as --ssl.\n"
"\n"
" --ftp-ssl-reqd\n"
" (FTP) This deprecated option is now known as --ssl-reqd.\n"
"\n"
" --form-string <name=string>\n"
" (HTTP) Similar to --form except that the value string for the\n"
" named parameter is used literally. Leading '@' and '<' charac-\n"
" ters, and the ';type=' string in the value have no special mean-\n"
, stdout);
fputs(
" ing. Use this in preference to --form if there's any possibility\n"
" that the string value may accidentally trigger the '@' or '<'\n"
" features of --form.\n"
"\n"
" -g, --globoff\n"
" This option switches off the \"URL globbing parser\". When you set\n"
" this option, you can specify URLs that contain the letters {}[]\n"
" without having them being interpreted by curl itself. Note that\n"
, stdout);
fputs(
" these letters are not normal legal URL contents but they should\n"
" be encoded according to the URI standard.\n"
"\n"
" -G, --get\n"
" When used, this option will make all data specified with -d,\n"
" --data, --data-binary or --data-urlencode to be used in an HTTP\n"
" GET request instead of the POST request that otherwise would be\n"
" used. The data will be appended to the URL with a '?' separator.\n"
, stdout);
fputs(
" If used in combination with -I, the POST data will instead be\n"
" appended to the URL with a HEAD request.\n"
"\n"
" If this option is used several times, only the first one is\n"
" used. This is because undoing a GET doesn't make sense, but you\n"
" should then instead enforce the alternative method you prefer.\n"
"\n"
" -H, --header <header>\n"
" (HTTP) Extra header to include in the request when sending HTTP\n"
, stdout);
fputs(
" to a server. You may specify any number of extra headers. Note\n"
" that if you should add a custom header that has the same name as\n"
" one of the internal ones curl would use, your externally set\n"
" header will be used instead of the internal one. This allows you\n"
" to make even trickier stuff than curl would normally do. You\n"
" should not replace internally set headers without knowing per-\n"
, stdout);
fputs(
" fectly well what you're doing. Remove an internal header by giv-\n"
" ing a replacement without content on the right side of the\n"
" colon, as in: -H \"Host:\". If you send the custom header with no-\n"
" value then its header must be terminated with a semicolon, such\n"
" as -H \"X-Custom-Header;\" to send \"X-Custom-Header:\".\n"
"\n"
" curl will make sure that each header you add/replace is sent\n"
, stdout);
fputs(
" with the proper end-of-line marker, you should thus not add that\n"
" as a part of the header content: do not add newlines or carriage\n"
" returns, they will only mess things up for you.\n"
"\n"
" See also the -A, --user-agent and -e, --referer options.\n"
"\n"
" Starting in 7.37.0, you need --proxy-header to send custom head-\n"
" ers intended for a proxy.\n"
"\n"
" Example:\n"
"\n"
, stdout);
fputs(
" # curl -H \"X-First-Name: Joe\" http://example.com/\n"
"\n"
" WARNING: headers set with this option will be set in all\n"
" requests - even after redirects are followed, like when told\n"
" with -L, --location. This can lead to the header being sent to\n"
" other hosts than the original host, so sensitive headers should\n"
" be used with caution combined with following redirects.\n"
"\n"
, stdout);
fputs(
" This option can be used multiple times to add/replace/remove\n"
" multiple headers.\n"
"\n"
" --hostpubmd5 <md5>\n"
" (SCP/SFTP) Pass a string containing 32 hexadecimal digits. The\n"
" string should be the 128 bit MD5 checksum of the remote host's\n"
" public key, curl will refuse the connection with the host unless\n"
" the md5sums match. (Added in 7.17.1)\n"
"\n"
" --ignore-content-length\n"
, stdout);
fputs(
" For HTTP, Ignore the Content-Length header. This is particularly\n"
" useful for servers running Apache 1.x, which will report incor-\n"
" rect Content-Length for files larger than 2 gigabytes.\n"
"\n"
" For FTP (since 7.46.0), skip the RETR command to figure out the\n"
" size before downloading a file.\n"
"\n"
" -i, --include\n"
" (HTTP) Include the HTTP-header in the output. The HTTP-header\n"
, stdout);
fputs(
" includes things like server-name, date of the document, HTTP-\n"
" version and more...\n"
"\n"
" -I, --head\n"
" (HTTP/FTP/FILE) Fetch the HTTP-header only! HTTP-servers feature\n"
" the command HEAD which this uses to get nothing but the header\n"
" of a document. When used on an FTP or FILE file, curl displays\n"
" the file size and last modification time only.\n"
"\n"
" --interface <name>\n"
, stdout);
fputs(
" Perform an operation using a specified interface. You can enter\n"
" interface name, IP address or host name. An example could look\n"
" like:\n"
"\n"
" curl --interface eth0:1 https://www.example.com/\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -j, --junk-session-cookies\n"
" (HTTP) When curl is told to read cookies from a given file, this\n"
, stdout);
fputs(
" option will make it discard all \"session cookies\". This will\n"
" basically have the same effect as if a new session is started.\n"
" Typical browsers always discard session cookies when they're\n"
" closed down.\n"
"\n"
" -J, --remote-header-name\n"
" (HTTP) This option tells the -O, --remote-name option to use the\n"
" server-specified Content-Disposition filename instead of\n"
, stdout);
fputs(
" extracting a filename from the URL.\n"
"\n"
" If the server specifies a file name and a file with that name\n"
" already exists in the current working directory it will not be\n"
" overwritten and an error will occur. If the server doesn't spec-\n"
" ify a file name then this option has no effect.\n"
"\n"
" There's no attempt to decode %-sequences (yet) in the provided\n"
, stdout);
fputs(
" file name, so this option may provide you with rather unexpected\n"
" file names.\n"
"\n"
" WARNING: Exercise judicious use of this option, especially on\n"
" Windows. A rogue server could send you the name of a DLL or\n"
" other file that could possibly be loaded automatically by Win-\n"
" dows or some third party software.\n"
"\n"
" -k, --insecure\n"
" (SSL) This option explicitly allows curl to perform \"insecure\"\n"
, stdout);
fputs(
" SSL connections and transfers. All SSL connections are attempted\n"
" to be made secure by using the CA certificate bundle installed\n"
" by default. This makes all connections considered \"insecure\"\n"
" fail unless -k, --insecure is used.\n"
"\n"
" See this online resource for further details:\n"
" https://curl.haxx.se/docs/sslcerts.html\n"
"\n"
" -K, --config <config file>\n"
, stdout);
fputs(
" Specify which config file to read curl arguments from. The con-\n"
" fig file is a text file in which command line arguments can be\n"
" written which then will be used as if they were written on the\n"
" actual command line.\n"
"\n"
" Options and their parameters must be specified on the same con-\n"
" fig file line, separated by whitespace, colon, or the equals\n"
, stdout);
fputs(
" sign. Long option names can optionally be given in the config\n"
" file without the initial double dashes and if so, the colon or\n"
" equals characters can be used as separators. If the option is\n"
" specified with one or two dashes, there can be no colon or\n"
" equals character between the option and its parameter.\n"
"\n"
" If the parameter is to contain whitespace, the parameter must be\n"
, stdout);
fputs(
" enclosed within quotes. Within double quotes, the following\n"
" escape sequences are available: \\\\, \\\", \\t, \\n, \\r and \\v. A\n"
" backslash preceding any other letter is ignored. If the first\n"
" column of a config line is a '#' character, the rest of the line\n"
" will be treated as a comment. Only write one option per physical\n"
" line in the config file.\n"
"\n"
, stdout);
fputs(
" Specify the filename to -K, --config as '-' to make curl read\n"
" the file from stdin.\n"
"\n"
" Note that to be able to specify a URL in the config file, you\n"
" need to specify it using the --url option, and not by simply\n"
" writing the URL on its own line. So, it could look similar to\n"
" this:\n"
"\n"
" url = \"https://curl.haxx.se/docs/\"\n"
"\n"
, stdout);
fputs(
" When curl is invoked, it always (unless -q is used) checks for a\n"
" default config file and uses it if found. The default config\n"
" file is checked for in the following places in this order:\n"
"\n"
" 1) curl tries to find the \"home dir\": It first checks for the\n"
" CURL_HOME and then the HOME environment variables. Failing that,\n"
" it uses getpwuid() on Unix-like systems (which returns the home\n"
, stdout);
fputs(
" dir given the current user in your system). On Windows, it then\n"
" checks for the APPDATA variable, or as a last resort the '%USER-\n"
" PROFILE%\\Application Data'.\n"
"\n"
" 2) On windows, if there is no _curlrc file in the home dir, it\n"
" checks for one in the same dir the curl executable is placed. On\n"
" Unix-like systems, it will simply try to load .curlrc from the\n"
" determined home dir.\n"
"\n"
, stdout);
fputs(
" # --- Example file ---\n"
" # this is a comment\n"
" url = \"example.com\"\n"
" output = \"curlhere.html\"\n"
" user-agent = \"superagent/1.0\"\n"
"\n"
" # and fetch another URL too\n"
" url = \"example.com/docs/manpage.html\"\n"
" -O\n"
" referer = \"http://nowhereatall.example.com/\"\n"
" # --- End of example file ---\n"
"\n"
" This option can be used multiple times to load multiple config\n"
, stdout);
fputs(
" files.\n"
"\n"
" --keepalive-time <seconds>\n"
" This option sets the time a connection needs to remain idle\n"
" before sending keepalive probes and the time between individual\n"
" keepalive probes. It is currently effective on operating systems\n"
" offering the TCP_KEEPIDLE and TCP_KEEPINTVL socket options\n"
" (meaning Linux, recent AIX, HP-UX and more). This option has no\n"
, stdout);
fputs(
" effect if --no-keepalive is used. (Added in 7.18.0)\n"
"\n"
" If this option is used several times, the last one will be used.\n"
" If unspecified, the option defaults to 60 seconds.\n"
"\n"
" --key <key>\n"
" (SSL/SSH) Private key file name. Allows you to provide your pri-\n"
" vate key in this separate file. For SSH, if not specified, curl\n"
" tries the following candidates in order: '~/.ssh/id_rsa',\n"
, stdout);
fputs(
" '~/.ssh/id_dsa', './id_rsa', './id_dsa'.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --key-type <type>\n"
" (SSL) Private key file type. Specify which type your --key pro-\n"
" vided private key is. DER, PEM, and ENG are supported. If not\n"
" specified, PEM is assumed.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --krb <level>\n"
, stdout);
fputs(
" (FTP) Enable Kerberos authentication and use. The level must be\n"
" entered and should be one of 'clear', 'safe', 'confidential', or\n"
" 'private'. Should you use a level that is not one of these,\n"
" 'private' will instead be used.\n"
"\n"
" This option requires a library built with kerberos4 support.\n"
" This is not very common. Use -V, --version to see if your curl\n"
" supports it.\n"
"\n"
, stdout);
fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" --krb4 <level>\n"
" (FTP) This is the former name for --krb. Do not use.\n"
"\n"
" -l, --list-only\n"
" (FTP) When listing an FTP directory, this switch forces a name-\n"
" only view. This is especially useful if the user wants to\n"
" machine-parse the contents of an FTP directory since the normal\n"
, stdout);
fputs(
" directory view doesn't use a standard look or format. When used\n"
" like this, the option causes a NLST command to be sent to the\n"
" server instead of LIST.\n"
"\n"
" Note: Some FTP servers list only files in their response to\n"
" NLST; they do not include sub-directories and symbolic links.\n"
"\n"
" (POP3) When retrieving a specific email from POP3, this switch\n"
, stdout);
fputs(
" forces a LIST command to be performed instead of RETR. This is\n"
" particularly useful if the user wants to see if a specific mes-\n"
" sage id exists on the server and what size it is.\n"
"\n"
" Note: When combined with -X, --request <command>, this option\n"
" can be used to send an UIDL command instead, so the user may use\n"
" the email's unique identifier rather than it's message id to\n"
, stdout);
fputs(
" make the request. (Added in 7.21.5)\n"
"\n"
" -L, --location\n"
" (HTTP/HTTPS) If the server reports that the requested page has\n"
" moved to a different location (indicated with a Location: header\n"
" and a 3XX response code), this option will make curl redo the\n"
" request on the new place. If used together with -i, --include or\n"
" -I, --head, headers from all requested pages will be shown. When\n"
, stdout);
fputs(
" authentication is used, curl only sends its credentials to the\n"
" initial host. If a redirect takes curl to a different host, it\n"
" won't be able to intercept the user+password. See also --loca-\n"
" tion-trusted on how to change this. You can limit the amount of\n"
" redirects to follow by using the --max-redirs option.\n"
"\n"
" When curl follows a redirect and the request is not a plain GET\n"
, stdout);
fputs(
" (for example POST or PUT), it will do the following request with\n"
" a GET if the HTTP response was 301, 302, or 303. If the response\n"
" code was any other 3xx code, curl will re-send the following\n"
" request using the same unmodified method.\n"
"\n"
" You can tell curl to not change the non-GET request method to\n"
" GET after a 30x response by using the dedicated options for\n"
, stdout);
fputs(
" that: --post301, --post302 and --post303.\n"
"\n"
" --libcurl <file>\n"
" Append this option to any ordinary curl command line, and you\n"
" will get a libcurl-using C source code written to the file that\n"
" does the equivalent of what your command-line operation does!\n"
"\n"
" If this option is used several times, the last given file name\n"
" will be used. (Added in 7.16.1)\n"
"\n"
" --limit-rate <speed>\n"
, stdout);
fputs(
" Specify the maximum transfer rate you want curl to use - for\n"
" both downloads and uploads. This feature is useful if you have a\n"
" limited pipe and you'd like your transfer not to use your entire\n"
" bandwidth. To make it slower than it otherwise would be.\n"
"\n"
" The given speed is measured in bytes/second, unless a suffix is\n"
" appended. Appending 'k' or 'K' will count the number as kilo-\n"
, stdout);
fputs(
" bytes, 'm' or M' makes it megabytes, while 'g' or 'G' makes it\n"
" gigabytes. Examples: 200K, 3m and 1G.\n"
"\n"
" If you also use the -Y, --speed-limit option, that option will\n"
" take precedence and might cripple the rate-limiting slightly, to\n"
" help keeping the speed-limit logic working.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --local-port <num>[-num]\n"
, stdout);
fputs(
" Set a preferred number or range of local port numbers to use for\n"
" the connection(s). Note that port numbers by nature are a\n"
" scarce resource that will be busy at times so setting this range\n"
" to something too narrow might cause unnecessary connection setup\n"
" failures. (Added in 7.15.2)\n"
"\n"
" --location-trusted\n"
" (HTTP/HTTPS) Like -L, --location, but will allow sending the\n"
, stdout);
fputs(
" name + password to all hosts that the site may redirect to. This\n"
" may or may not introduce a security breach if the site redirects\n"
" you to a site to which you'll send your authentication info\n"
" (which is plaintext in the case of HTTP Basic authentication).\n"
"\n"
" -m, --max-time <seconds>\n"
" Maximum time in seconds that you allow the whole operation to\n"
, stdout);
fputs(
" take. This is useful for preventing your batch jobs from hang-\n"
" ing for hours due to slow networks or links going down. Since\n"
" 7.32.0, this option accepts decimal values, but the actual time-\n"
" out will decrease in accuracy as the specified timeout increases\n"
" in decimal precision. See also the --connect-timeout option.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
, stdout);
fputs(
" --login-options <options>\n"
" Specify the login options to use during server authentication.\n"
"\n"
" You can use the login options to specify protocol specific\n"
" options that may be used during authentication. At present only\n"
" IMAP, POP3 and SMTP support login options. For more information\n"
" about the login options please see RFC 2384, RFC 5092 and IETF\n"
" draft draft-earhart-url-smtp-00.txt (Added in 7.34.0).\n"
"\n"
, stdout);
fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" --mail-auth <address>\n"
" (SMTP) Specify a single address. This will be used to specify\n"
" the authentication address (identity) of a submitted message\n"
" that is being relayed to another server.\n"
"\n"
" (Added in 7.25.0)\n"
"\n"
" --mail-from <address>\n"
" (SMTP) Specify a single address that the given mail should get\n"
" sent from.\n"
"\n"
, stdout);
fputs(
" (Added in 7.20.0)\n"
"\n"
" --max-filesize <bytes>\n"
" Specify the maximum size (in bytes) of a file to download. If\n"
" the file requested is larger than this value, the transfer will\n"
" not start and curl will return with exit code 63.\n"
"\n"
" NOTE: The file size is not always known prior to download, and\n"
" for such files this option has no effect even if the file trans-\n"
, stdout);
fputs(
" fer ends up being larger than this given limit. This concerns\n"
" both FTP and HTTP transfers.\n"
"\n"
" --mail-rcpt <address>\n"
" (SMTP) Specify a single address, user name or mailing list name.\n"
" Repeat this option several times to send to multiple recipients.\n"
" When performing a mail transfer, the recipient should specify a\n"
" valid email address to send the mail to. (Added in 7.20.0)\n"
"\n"
, stdout);
fputs(
" When performing an address verification (VRFY command), the\n"
" recipient should be specified as the user name or user name and\n"
" domain (as per Section 3.5 of RFC5321). (Added in 7.34.0)\n"
"\n"
" When performing a mailing list expand (EXPN command), the recip-\n"
" ient should be specified using the mailing list name, such as\n"
" \"Friends\" or \"London-Office\". (Added in 7.34.0)\n"
"\n"
" --max-redirs <num>\n"
, stdout);
fputs(
" Set maximum number of redirection-followings allowed. If -L,\n"
" --location is used, this option can be used to prevent curl from\n"
" following redirections \"in absurdum\". By default, the limit is\n"
" set to 50 redirections. Set this option to -1 to make it limit-\n"
" less.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --metalink\n"
, stdout);
fputs(
" This option can tell curl to parse and process a given URI as\n"
" Metalink file (both version 3 and 4 (RFC 5854) are supported)\n"
" and make use of the mirrors listed within for failover if there\n"
" are errors (such as the file or server not being available). It\n"
" will also verify the hash of the file after the download com-\n"
" pletes. The Metalink file itself is downloaded and processed in\n"
, stdout);
fputs(
" memory and not stored in the local file system.\n"
"\n"
" Example to use a remote Metalink file:\n"
"\n"
" curl --metalink http://www.example.com/example.metalink\n"
"\n"
" To use a Metalink file in the local file system, use FILE proto-\n"
" col (file://):\n"
"\n"
" curl --metalink file://example.metalink\n"
"\n"
" Please note that if FILE protocol is disabled, there is no way\n"
, stdout);
fputs(
" to use a local Metalink file at the time of this writing. Also\n"
" note that if --metalink and --include are used together,\n"
" --include will be ignored. This is because including headers in\n"
" the response will break Metalink parser and if the headers are\n"
" included in the file described in Metalink file, hash check will\n"
" fail.\n"
"\n"
" (Added in 7.27.0, if built against the libmetalink library.)\n"
"\n"
, stdout);
fputs(
" -n, --netrc\n"
" Makes curl scan the .netrc (_netrc on Windows) file in the\n"
" user's home directory for login name and password. This is typi-\n"
" cally used for FTP on Unix. If used with HTTP, curl will enable\n"
" user authentication. See netrc(5) ftp(1) for details on the file\n"
" format. Curl will not complain if that file doesn't have the\n"
" right permissions (it should not be either world- or group-read-\n"
, stdout);
fputs(
" able). The environment variable \"HOME\" is used to find the home\n"
" directory.\n"
"\n"
" A quick and very simple example of how to setup a .netrc to\n"
" allow curl to FTP to the machine host.domain.com with user name\n"
" 'myself' and password 'secret' should look similar to:\n"
"\n"
" machine host.domain.com login myself password secret\n"
"\n"
" -N, --no-buffer\n"
, stdout);
fputs(
" Disables the buffering of the output stream. In normal work sit-\n"
" uations, curl will use a standard buffered output stream that\n"
" will have the effect that it will output the data in chunks, not\n"
" necessarily exactly when the data arrives. Using this option\n"
" will disable that buffering.\n"
"\n"
" Note that this is the negated option name documented. You can\n"
" thus use --buffer to enforce the buffering.\n"
"\n"
, stdout);
fputs(
" --netrc-file\n"
" This option is similar to --netrc, except that you provide the\n"
" path (absolute or relative) to the netrc file that Curl should\n"
" use. You can only specify one netrc file per invocation. If\n"
" several --netrc-file options are provided, only the last one\n"
" will be used. (Added in 7.21.5)\n"
"\n"
" This option overrides any use of --netrc as they are mutually\n"
, stdout);
fputs(
" exclusive. It will also abide by --netrc-optional if specified.\n"
"\n"
" --netrc-optional\n"
" Very similar to --netrc, but this option makes the .netrc usage\n"
" optional and not mandatory as the --netrc option does.\n"
"\n"
" --negotiate\n"
" (HTTP) Enables Negotiate (SPNEGO) authentication.\n"
"\n"
" If you want to enable Negotiate (SPNEGO) for proxy authentica-\n"
" tion, then use --proxy-negotiate.\n"
"\n"
, stdout);
fputs(
" This option requires a library built with GSS-API or SSPI sup-\n"
" port. Use -V, --version to see if your curl supports GSS-\n"
" API/SSPI and SPNEGO.\n"
"\n"
" When using this option, you must also provide a fake -u, --user\n"
" option to activate the authentication code properly. Sending a\n"
" '-u :' is enough as the user name and password from the -u\n"
" option aren't actually used.\n"
"\n"
, stdout);
fputs(
" If this option is used several times, only the first one is\n"
" used.\n"
"\n"
" --no-keepalive\n"
" Disables the use of keepalive messages on the TCP connection, as\n"
" by default curl enables them.\n"
"\n"
" Note that this is the negated option name documented. You can\n"
" thus use --keepalive to enforce keepalive.\n"
"\n"
" --no-sessionid\n"
" (SSL) Disable curl's use of SSL session-ID caching. By default\n"
, stdout);
fputs(
" all transfers are done using the cache. Note that while nothing\n"
" should ever get hurt by attempting to reuse SSL session-IDs,\n"
" there seem to be broken SSL implementations in the wild that may\n"
" require you to disable this in order for you to succeed. (Added\n"
" in 7.16.0)\n"
"\n"
" Note that this is the negated option name documented. You can\n"
" thus use --sessionid to enforce session-ID caching.\n"
"\n"
, stdout);
fputs(
" --noproxy <no-proxy-list>\n"
" Comma-separated list of hosts which do not use a proxy, if one\n"
" is specified. The only wildcard is a single * character, which\n"
" matches all hosts, and effectively disables the proxy. Each name\n"
" in this list is matched as either a domain which contains the\n"
" hostname, or the hostname itself. For example, local.com would\n"
, stdout);
fputs(
" match local.com, local.com:80, and www.local.com, but not\n"
" www.notlocal.com. (Added in 7.19.4).\n"
"\n"
" --connect-to <host:port:connect-to-host:connect-to-port>\n"
" For a request to the given \"host:port\" pair, connect to \"con-\n"
" nect-to-host:connect-to-port\" instead. This is suitable to\n"
" direct the request at a specific server, e.g. at a specific\n"
, stdout);
fputs(
" cluster node in a cluster of servers. This option is only used\n"
" to establish the network connection. It does NOT affect the\n"
" hostname/port that is used for TLS/SSL (e.g. SNI, certificate\n"
" verification) or for the application protocols. \"host\" and\n"
" \"port\" may be the empty string, meaning \"any host/port\". \"con-\n"
" nect-to-host\" and \"connect-to-port\" may also be the empty\n"
, stdout);
fputs(
" string, meaning \"use the request's original host/port\". This\n"
" option can be used many times to add many connect rules. (Added\n"
" in 7.49.0).\n"
"\n"
" --ntlm (HTTP) Enables NTLM authentication. The NTLM authentication\n"
" method was designed by Microsoft and is used by IIS web servers.\n"
" It is a proprietary protocol, reverse-engineered by clever peo-\n"
, stdout);
fputs(
" ple and implemented in curl based on their efforts. This kind of\n"
" behavior should not be endorsed, you should encourage everyone\n"
" who uses NTLM to switch to a public and documented authentica-\n"
" tion method instead, such as Digest.\n"
"\n"
" If you want to enable NTLM for your proxy authentication, then\n"
" use --proxy-ntlm.\n"
"\n"
" This option requires a library built with SSL support. Use -V,\n"
, stdout);
fputs(
" --version to see if your curl supports NTLM.\n"
"\n"
" If this option is used several times, only the first one is\n"
" used.\n"
"\n"
" --ntlm-wb\n"
" (HTTP) Enables NTLM much in the style --ntlm does, but hand over\n"
" the authentication to the separate binary ntlmauth application\n"
" that is executed when needed.\n"
"\n"
" -o, --output <file>\n"
" Write output to <file> instead of stdout. If you are using {} or\n"
, stdout);
fputs(
" [] to fetch multiple documents, you can use '#' followed by a\n"
" number in the <file> specifier. That variable will be replaced\n"
" with the current string for the URL being fetched. Like in:\n"
"\n"
" curl http://{one,two}.example.com -o \"file_#1.txt\"\n"
"\n"
" or use several variables like:\n"
"\n"
" curl http://{site,host}.host[1-5].com -o \"#1_#2\"\n"
"\n"
" You may use this option as many times as the number of URLs you\n"
, stdout);
fputs(
" have. For example, if you specify two URLs on the same command\n"
" line, you can use it like this:\n"
"\n"
" curl -o aa example.com -o bb example.net\n"
"\n"
" and the order of the -o options and the URLs doesn't matter,\n"
" just that the first -o is for the first URL and so on, so the\n"
" above command line can also be written as\n"
"\n"
" curl example.com example.net -o aa -o bb\n"
"\n"
, stdout);
fputs(
" See also the --create-dirs option to create the local directo-\n"
" ries dynamically. Specifying the output as '-' (a single dash)\n"
" will force the output to be done to stdout.\n"
"\n"
" -O, --remote-name\n"
" Write output to a local file named like the remote file we get.\n"
" (Only the file part of the remote file is used, the path is cut\n"
" off.)\n"
"\n"
" The file will be saved in the current working directory. If you\n"
, stdout);
fputs(
" want the file saved in a different directory, make sure you\n"
" change the current working directory before invoking curl with\n"
" this option.\n"
"\n"
" The remote file name to use for saving is extracted from the\n"
" given URL, nothing else, and if it already exists it will be\n"
" overwritten. If you want the server to be able to choose the\n"
, stdout);
fputs(
" file name refer to -J, --remote-header-name which can be used in\n"
" addition to this option. If the server chooses a file name and\n"
" that name already exists it will not be overwritten.\n"
"\n"
" There is no URL decoding done on the file name. If it has %20 or\n"
" other URL encoded parts of the name, they will end up as-is as\n"
" file name.\n"
"\n"
" You may use this option as many times as the number of URLs you\n"
, stdout);
fputs(
" have.\n"
"\n"
" --oauth2-bearer\n"
" (IMAP, POP3, SMTP) Specify the Bearer Token for OAUTH 2.0 server\n"
" authentication. The Bearer Token is used in conjunction with the\n"
" user name which can be specified as part of the --url or -u,\n"
" --user options.\n"
"\n"
" The Bearer Token and user name are formatted according to RFC\n"
" 6750.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
, stdout);
fputs(
" --proxy-header <header>\n"
" (HTTP) Extra header to include in the request when sending HTTP\n"
" to a proxy. You may specify any number of extra headers. This is\n"
" the equivalent option to -H, --header but is for proxy communi-\n"
" cation only like in CONNECT requests when you want a separate\n"
" header sent to the proxy to what is sent to the actual remote\n"
" host.\n"
"\n"
, stdout);
fputs(
" curl will make sure that each header you add/replace is sent\n"
" with the proper end-of-line marker, you should thus not add that\n"
" as a part of the header content: do not add newlines or carriage\n"
" returns, they will only mess things up for you.\n"
"\n"
" Headers specified with this option will not be included in\n"
" requests that curl knows will not be sent to a proxy.\n"
"\n"
, stdout);
fputs(
" This option can be used multiple times to add/replace/remove\n"
" multiple headers.\n"
" (Added in 7.37.0)\n"
" -p, --proxytunnel\n"
" When an HTTP proxy is used (-x, --proxy), this option will cause\n"
" non-HTTP protocols to attempt to tunnel through the proxy\n"
" instead of merely using it to do HTTP-like operations. The tun-\n"
" nel approach is made with the HTTP proxy CONNECT request and\n"
, stdout);
fputs(
" requires that the proxy allows direct connect to the remote port\n"
" number curl wants to tunnel through to.\n"
"\n"
" -P, --ftp-port <address>\n"
" (FTP) Reverses the default initiator/listener roles when con-\n"
" necting with FTP. This switch makes curl use active mode. In\n"
" practice, curl then tells the server to connect back to the\n"
" client's specified address and port, while passive mode asks the\n"
, stdout);
fputs(
" server to setup an IP address and port for it to connect to.\n"
" <address> should be one of:\n"
"\n"
" interface\n"
" i.e \"eth0\" to specify which interface's IP address you\n"
" want to use (Unix only)\n"
"\n"
" IP address\n"
" i.e \"192.168.10.1\" to specify the exact IP address\n"
"\n"
" host name\n"
" i.e \"my.host.domain\" to specify the machine\n"
"\n"
, stdout);
fputs(
" - make curl pick the same IP address that is already used\n"
" for the control connection\n"
"\n"
" If this option is used several times, the last one will be used.\n"
" Disable the use of PORT with --ftp-pasv. Disable the attempt to\n"
" use the EPRT command instead of PORT by using --disable-eprt.\n"
" EPRT is really PORT++.\n"
"\n"
" Starting in 7.19.5, you can append \":[start]-[end]\" to the right\n"
, stdout);
fputs(
" of the address, to tell curl what TCP port range to use. That\n"
" means you specify a port range, from a lower to a higher number.\n"
" A single number works as well, but do note that it increases the\n"
" risk of failure since the port may not be available.\n"
"\n"
" --pass <phrase>\n"
" (SSL/SSH) Passphrase for the private key\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --path-as-is\n"
, stdout);
fputs(
" Tell curl to not handle sequences of /../ or /./ in the given\n"
" URL path. Normally curl will squash or merge them according to\n"
" standards but with this option set you tell it not to do that.\n"
"\n"
" (Added in 7.42.0)\n"
"\n"
" --post301\n"
" (HTTP) Tells curl to respect RFC 7230/6.4.2 and not convert POST\n"
" requests into GET requests when following a 301 redirection. The\n"
, stdout);
fputs(
" non-RFC behaviour is ubiquitous in web browsers, so curl does\n"
" the conversion by default to maintain consistency. However, a\n"
" server may require a POST to remain a POST after such a redi-\n"
" rection. This option is meaningful only when using -L, --loca-\n"
" tion (Added in 7.17.1)\n"
"\n"
" --post302\n"
" (HTTP) Tells curl to respect RFC 7230/6.4.3 and not convert POST\n"
, stdout);
fputs(
" requests into GET requests when following a 302 redirection. The\n"
" non-RFC behaviour is ubiquitous in web browsers, so curl does\n"
" the conversion by default to maintain consistency. However, a\n"
" server may require a POST to remain a POST after such a redi-\n"
" rection. This option is meaningful only when using -L, --loca-\n"
" tion (Added in 7.19.1)\n"
"\n"
" --post303\n"
, stdout);
fputs(
" (HTTP) Tells curl to respect RFC 7230/6.4.4 and not convert POST\n"
" requests into GET requests when following a 303 redirection. The\n"
" non-RFC behaviour is ubiquitous in web browsers, so curl does\n"
" the conversion by default to maintain consistency. However, a\n"
" server may require a POST to remain a POST after such a redi-\n"
" rection. This option is meaningful only when using -L, --loca-\n"
, stdout);
fputs(
" tion (Added in 7.26.0)\n"
"\n"
" --proto <protocols>\n"
" Tells curl to limit what protocols it may use in the transfer.\n"
" Protocols are evaluated left to right, are comma separated, and\n"
" are each a protocol name or\n"
"\n"
" + Permit this protocol in addition to protocols already permit-\n"
" ted (this is the default if no modifier is used).\n"
"\n"
" - Deny this protocol, removing it from the list of protocols\n"
, stdout);
fputs(
" already permitted.\n"
"\n"
" = Permit only this protocol (ignoring the list already permit-\n"
" ted), though subject to later modification by subsequent\n"
" entries in the comma separated list.\n"
"\n"
" For example:\n"
"\n"
" --proto -ftps uses the default protocols, but disables ftps\n"
"\n"
" --proto -all,https,+http\n"
" only enables http and https\n"
"\n"
" --proto =http,https\n"
, stdout);
fputs(
" also only enables http and https\n"
"\n"
" Unknown protocols produce a warning. This allows scripts to\n"
" safely rely on being able to disable potentially dangerous pro-\n"
" tocols, without relying upon support for that protocol being\n"
" built into curl to avoid an error.\n"
"\n"
" This option can be used multiple times, in which case the effect\n"
, stdout);
fputs(
" is the same as concatenating the protocols into one instance of\n"
" the option.\n"
"\n"
" (Added in 7.20.2)\n"
"\n"
" --proto-default <protocol>\n"
" Tells curl to use protocol for any URL missing a scheme name.\n"
"\n"
" Example:\n"
"\n"
" --proto-default https ftp.mozilla.org\n"
" https://ftp.mozilla.org\n"
"\n"
" An unknown or unsupported protocol causes error CURLE_UNSUPPORTED_PRO-\n"
" TOCOL.\n"
"\n"
, stdout);
fputs(
" This option does not change the default proxy protocol (http).\n"
"\n"
" Without this option curl would make a guess based on the host, see\n"
" --url for details.\n"
"\n"
" (Added in 7.45.0)\n"
"\n"
" --proto-redir <protocols>\n"
" Tells curl to limit what protocols it may use on redirect. Pro-\n"
" tocols denied by --proto are not overridden by this option. See\n"
" --proto for how protocols are represented.\n"
"\n"
" Example:\n"
"\n"
, stdout);
fputs(
" --proto-redir -all,http,https\n"
" Allow only HTTP and HTTPS on redirect.\n"
"\n"
" By default curl will allow all protocols on redirect except several\n"
" disabled for security reasons: Since 7.19.4 FILE and SCP are disabled,\n"
" and since 7.40.0 SMB and SMBS are also disabled. Specifying all or +all\n"
" enables all protocols on redirect, including those disabled for secu-\n"
" rity.\n"
"\n"
" (Added in 7.20.2)\n"
"\n"
" --proxy-anyauth\n"
, stdout);
fputs(
" Tells curl to pick a suitable authentication method when commu-\n"
" nicating with the given proxy. This might cause an extra\n"
" request/response round-trip. (Added in 7.13.2)\n"
"\n"
" --proxy-basic\n"
" Tells curl to use HTTP Basic authentication when communicating\n"
" with the given proxy. Use --basic for enabling HTTP Basic with a\n"
" remote host. Basic is the default authentication method curl\n"
, stdout);
fputs(
" uses with proxies.\n"
"\n"
" --proxy-digest\n"
" Tells curl to use HTTP Digest authentication when communicating\n"
" with the given proxy. Use --digest for enabling HTTP Digest with\n"
" a remote host.\n"
"\n"
" --proxy-negotiate\n"
" Tells curl to use HTTP Negotiate (SPNEGO) authentication when\n"
" communicating with the given proxy. Use --negotiate for enabling\n"
, stdout);
fputs(
" HTTP Negotiate (SPNEGO) with a remote host. (Added in 7.17.1)\n"
"\n"
" --proxy-ntlm\n"
" Tells curl to use HTTP NTLM authentication when communicating\n"
" with the given proxy. Use --ntlm for enabling NTLM with a remote\n"
" host.\n"
"\n"
" --proxy-service-name <servicename>\n"
" This option allows you to change the service name for proxy\n"
" negotiation.\n"
"\n"
, stdout);
fputs(
" Examples: --proxy-negotiate proxy-name --proxy-service-name\n"
" sockd would use sockd/proxy-name. (Added in 7.43.0).\n"
"\n"
" --proxy1.0 <proxyhost[:port]>\n"
" Use the specified HTTP 1.0 proxy. If the port number is not\n"
" specified, it is assumed at port 1080.\n"
"\n"
" The only difference between this and the HTTP proxy option (-x,\n"
" --proxy), is that attempts to use CONNECT through the proxy will\n"
, stdout);
fputs(
" specify an HTTP 1.0 protocol instead of the default HTTP 1.1.\n"
"\n"
" --pubkey <key>\n"
" (SSH) Public key file name. Allows you to provide your public\n"
" key in this separate file.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
" (As of 7.39.0, curl attempts to automatically extract the public\n"
" key from the private key file, so passing this option is gener-\n"
, stdout);
fputs(
" ally not required. Note that this public key extraction requires\n"
" libcurl to be linked against a copy of libssh2 1.2.8 or higher\n"
" that is itself linked against OpenSSL.)\n"
"\n"
" -q, --disable\n"
" If used as the first parameter on the command line, the curlrc\n"
" config file will not be read and used. See the -K, --config for\n"
" details on the default config file search path.\n"
"\n"
" -Q, --quote <command>\n"
, stdout);
fputs(
" (FTP/SFTP) Send an arbitrary command to the remote FTP or SFTP\n"
" server. Quote commands are sent BEFORE the transfer takes place\n"
" (just after the initial PWD command in an FTP transfer, to be\n"
" exact). To make commands take place after a successful transfer,\n"
" prefix them with a dash '-'. To make commands be sent after\n"
" curl has changed the working directory, just before the transfer\n"
, stdout);
fputs(
" command(s), prefix the command with a '+' (this is only sup-\n"
" ported for FTP). You may specify any number of commands. If the\n"
" server returns failure for one of the commands, the entire oper-\n"
" ation will be aborted. You must send syntactically correct FTP\n"
" commands as RFC 959 defines to FTP servers, or one of the com-\n"
" mands listed below to SFTP servers. This option can be used\n"
, stdout);
fputs(
" multiple times. When speaking to an FTP server, prefix the com-\n"
" mand with an asterisk (*) to make curl continue even if the com-\n"
" mand fails as by default curl will stop at first failure.\n"
"\n"
" SFTP is a binary protocol. Unlike for FTP, curl interprets SFTP\n"
" quote commands itself before sending them to the server. File\n"
" names may be quoted shell-style to embed spaces or special char-\n"
, stdout);
fputs(
" acters. Following is the list of all supported SFTP quote com-\n"
" mands:\n"
"\n"
" chgrp group file\n"
" The chgrp command sets the group ID of the file named by\n"
" the file operand to the group ID specified by the group\n"
" operand. The group operand is a decimal integer group ID.\n"
"\n"
" chmod mode file\n"
" The chmod command modifies the file mode bits of the\n"
, stdout);
fputs(
" specified file. The mode operand is an octal integer mode\n"
" number.\n"
"\n"
" chown user file\n"
" The chown command sets the owner of the file named by the\n"
" file operand to the user ID specified by the user oper-\n"
" and. The user operand is a decimal integer user ID.\n"
"\n"
" ln source_file target_file\n"
" The ln and symlink commands create a symbolic link at the\n"
, stdout);
fputs(
" target_file location pointing to the source_file loca-\n"
" tion.\n"
"\n"
" mkdir directory_name\n"
" The mkdir command creates the directory named by the\n"
" directory_name operand.\n"
"\n"
" pwd The pwd command returns the absolute pathname of the cur-\n"
" rent working directory.\n"
"\n"
" rename source target\n"
, stdout);
fputs(
" The rename command renames the file or directory named by\n"
" the source operand to the destination path named by the\n"
" target operand.\n"
"\n"
" rm file\n"
" The rm command removes the file specified by the file op-\n"
" erand.\n"
"\n"
" rmdir directory\n"
" The rmdir command removes the directory entry specified\n"
, stdout);
fputs(
" by the directory operand, provided it is empty.\n"
"\n"
" symlink source_file target_file\n"
" See ln.\n"
"\n"
" -r, --range <range>\n"
" (HTTP/FTP/SFTP/FILE) Retrieve a byte range (i.e a partial docu-\n"
" ment) from a HTTP/1.1, FTP or SFTP server or a local FILE.\n"
" Ranges can be specified in a number of ways.\n"
"\n"
" 0-499 specifies the first 500 bytes\n"
"\n"
, stdout);
fputs(
" 500-999 specifies the second 500 bytes\n"
"\n"
" -500 specifies the last 500 bytes\n"
"\n"
" 9500- specifies the bytes from offset 9500 and forward\n"
"\n"
" 0-0,-1 specifies the first and last byte only(*)(HTTP)\n"
"\n"
" 100-199,500-599\n"
" specifies two separate 100-byte ranges(*) (HTTP)\n"
"\n"
" (*) = NOTE that this will cause the server to reply with a mul-\n"
" tipart response!\n"
"\n"
, stdout);
fputs(
" Only digit characters (0-9) are valid in the 'start' and 'stop'\n"
" fields of the 'start-stop' range syntax. If a non-digit charac-\n"
" ter is given in the range, the server's response will be unspec-\n"
" ified, depending on the server's configuration.\n"
"\n"
" You should also be aware that many HTTP/1.1 servers do not have\n"
" this feature enabled, so that when you attempt to get a range,\n"
, stdout);
fputs(
" you'll instead get the whole document.\n"
"\n"
" FTP and SFTP range downloads only support the simple 'start-\n"
" stop' syntax (optionally with one of the numbers omitted). FTP\n"
" use depends on the extended FTP command SIZE.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -R, --remote-time\n"
" When used, this will make curl attempt to figure out the time-\n"
, stdout);
fputs(
" stamp of the remote file, and if that is available make the\n"
" local file get that same timestamp.\n"
"\n"
" --random-file <file>\n"
" (SSL) Specify the path name to file containing what will be con-\n"
" sidered as random data. The data is used to seed the random\n"
" engine for SSL connections. See also the --egd-file option.\n"
"\n"
" --raw (HTTP) When used, it disables all internal HTTP decoding of con-\n"
, stdout);
fputs(
" tent or transfer encodings and instead makes them passed on\n"
" unaltered, raw. (Added in 7.16.2)\n"
"\n"
" --remote-name-all\n"
" This option changes the default action for all given URLs to be\n"
" dealt with as if -O, --remote-name were used for each one. So if\n"
" you want to disable that for a specific URL after --remote-name-\n"
" all has been used, you must use \"-o -\" or --no-remote-name.\n"
, stdout);
fputs(
" (Added in 7.19.0)\n"
"\n"
" --resolve <host:port:address>\n"
" Provide a custom address for a specific host and port pair.\n"
" Using this, you can make the curl requests(s) use a specified\n"
" address and prevent the otherwise normally resolved address to\n"
" be used. Consider it a sort of /etc/hosts alternative provided\n"
" on the command line. The port number should be the number used\n"
, stdout);
fputs(
" for the specific protocol the host will be used for. It means\n"
" you need several entries if you want to provide address for the\n"
" same host but different ports.\n"
"\n"
" The provided address set by this option will be used even if -4,\n"
" --ipv4 or -6, --ipv6 is set to make curl use another IP version.\n"
" This option can be used many times to add many host names to\n"
" resolve.\n"
"\n"
" (Added in 7.21.3)\n"
"\n"
, stdout);
fputs(
" --retry <num>\n"
" If a transient error is returned when curl tries to perform a\n"
" transfer, it will retry this number of times before giving up.\n"
" Setting the number to 0 makes curl do no retries (which is the\n"
" default). Transient error means either: a timeout, an FTP 4xx\n"
" response code or an HTTP 5xx response code.\n"
"\n"
" When curl is about to retry a transfer, it will first wait one\n"
, stdout);
fputs(
" second and then for all forthcoming retries it will double the\n"
" waiting time until it reaches 10 minutes which then will be the\n"
" delay between the rest of the retries. By using --retry-delay\n"
" you disable this exponential backoff algorithm. See also\n"
" --retry-max-time to limit the total time allowed for retries.\n"
" (Added in 7.12.3)\n"
"\n"
, stdout);
fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" --retry-delay <seconds>\n"
" Make curl sleep this amount of time before each retry when a\n"
" transfer has failed with a transient error (it changes the\n"
" default backoff time algorithm between retries). This option is\n"
" only interesting if --retry is also used. Setting this delay to\n"
, stdout);
fputs(
" zero will make curl use the default backoff time. (Added in\n"
" 7.12.3)\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --retry-max-time <seconds>\n"
" The retry timer is reset before the first transfer attempt.\n"
" Retries will be done as usual (see --retry) as long as the timer\n"
" hasn't reached this given limit. Notice that if the timer hasn't\n"
, stdout);
fputs(
" reached the limit, the request will be made and while perform-\n"
" ing, it may take longer than this given time period. To limit a\n"
" single request's maximum time, use -m, --max-time. Set this\n"
" option to zero to not timeout retries. (Added in 7.12.3)\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -s, --silent\n"
" Silent or quiet mode. Don't show progress meter or error mes-\n"
, stdout);
fputs(
" sages. Makes Curl mute. It will still output the data you ask\n"
" for, potentially even to the terminal/stdout unless you redirect\n"
" it.\n"
"\n"
" --sasl-ir\n"
" Enable initial response in SASL authentication. (Added in\n"
" 7.31.0)\n"
"\n"
" --service-name <servicename>\n"
" This option allows you to change the service name for SPNEGO.\n"
"\n"
" Examples: --negotiate --service-name sockd would use\n"
, stdout);
fputs(
" sockd/server-name. (Added in 7.43.0).\n"
"\n"
" -S, --show-error\n"
" When used with -s it makes curl show an error message if it\n"
" fails.\n"
"\n"
" --ssl (FTP, POP3, IMAP, SMTP) Try to use SSL/TLS for the connection.\n"
" Reverts to a non-secure connection if the server doesn't support\n"
" SSL/TLS. See also --ftp-ssl-control and --ssl-reqd for differ-\n"
" ent levels of encryption required. (Added in 7.20.0)\n"
"\n"
, stdout);
fputs(
" This option was formerly known as --ftp-ssl (Added in 7.11.0).\n"
" That option name can still be used but will be removed in a\n"
" future version.\n"
"\n"
" --ssl-reqd\n"
" (FTP, POP3, IMAP, SMTP) Require SSL/TLS for the connection.\n"
" Terminates the connection if the server doesn't support SSL/TLS.\n"
" (Added in 7.20.0)\n"
"\n"
" This option was formerly known as --ftp-ssl-reqd.\n"
"\n"
" --ssl-allow-beast\n"
, stdout);
fputs(
" (SSL) This option tells curl to not work around a security flaw\n"
" in the SSL3 and TLS1.0 protocols known as BEAST. If this option\n"
" isn't used, the SSL layer may use workarounds known to cause\n"
" interoperability problems with some older SSL implementations.\n"
" WARNING: this option loosens the SSL security, and by using this\n"
" flag you ask for exactly that. (Added in 7.25.0)\n"
"\n"
" --ssl-no-revoke\n"
, stdout);
fputs(
" (WinSSL) This option tells curl to disable certificate revoca-\n"
" tion checks. WARNING: this option loosens the SSL security, and\n"
" by using this flag you ask for exactly that. (Added in 7.44.0)\n"
"\n"
" --socks4 <host[:port]>\n"
" Use the specified SOCKS4 proxy. If the port number is not speci-\n"
" fied, it is assumed at port 1080. (Added in 7.15.2)\n"
"\n"
" This option overrides any previous use of -x, --proxy, as they\n"
, stdout);
fputs(
" are mutually exclusive.\n"
"\n"
" Since 7.21.7, this option is superfluous since you can specify a\n"
" socks4 proxy with -x, --proxy using a socks4:// protocol prefix.\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --socks4a <host[:port]>\n"
" Use the specified SOCKS4a proxy. If the port number is not spec-\n"
" ified, it is assumed at port 1080. (Added in 7.18.0)\n"
"\n"
, stdout);
fputs(
" This option overrides any previous use of -x, --proxy, as they\n"
" are mutually exclusive.\n"
"\n"
" Since 7.21.7, this option is superfluous since you can specify a\n"
" socks4a proxy with -x, --proxy using a socks4a:// protocol pre-\n"
" fix.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --socks5-hostname <host[:port]>\n"
" Use the specified SOCKS5 proxy (and let the proxy resolve the\n"
, stdout);
fputs(
" host name). If the port number is not specified, it is assumed\n"
" at port 1080. (Added in 7.18.0)\n"
"\n"
" This option overrides any previous use of -x, --proxy, as they\n"
" are mutually exclusive.\n"
"\n"
" Since 7.21.7, this option is superfluous since you can specify a\n"
" socks5 hostname proxy with -x, --proxy using a socks5h:// proto-\n"
" col prefix.\n"
"\n"
, stdout);
fputs(
" If this option is used several times, the last one will be used.\n"
" (This option was previously wrongly documented and used as\n"
" --socks without the number appended.)\n"
"\n"
" --socks5 <host[:port]>\n"
" Use the specified SOCKS5 proxy - but resolve the host name\n"
" locally. If the port number is not specified, it is assumed at\n"
" port 1080.\n"
"\n"
, stdout);
fputs(
" This option overrides any previous use of -x, --proxy, as they\n"
" are mutually exclusive.\n"
"\n"
" Since 7.21.7, this option is superfluous since you can specify a\n"
" socks5 proxy with -x, --proxy using a socks5:// protocol prefix.\n"
" If this option is used several times, the last one will be used.\n"
" (This option was previously wrongly documented and used as\n"
" --socks without the number appended.)\n"
"\n"
, stdout);
fputs(
" This option (as well as --socks4) does not work with IPV6, FTPS\n"
" or LDAP.\n"
"\n"
" --socks5-gssapi-service <servicename>\n"
" The default service name for a socks server is rcmd/server-fqdn.\n"
" This option allows you to change it.\n"
"\n"
" Examples: --socks5 proxy-name --socks5-gssapi-service sockd\n"
" would use sockd/proxy-name --socks5 proxy-name --socks5-gssapi-\n"
, stdout);
fputs(
" service sockd/real-name would use sockd/real-name for cases\n"
" where the proxy-name does not match the principal name. (Added\n"
" in 7.19.4).\n"
"\n"
" --socks5-gssapi-nec\n"
" As part of the GSS-API negotiation a protection mode is negoti-\n"
" ated. RFC 1961 says in section 4.3/4.4 it should be protected,\n"
" but the NEC reference implementation does not. The option\n"
, stdout);
fputs(
" --socks5-gssapi-nec allows the unprotected exchange of the pro-\n"
" tection mode negotiation. (Added in 7.19.4).\n"
"\n"
" --stderr <file>\n"
" Redirect all writes to stderr to the specified file instead. If\n"
" the file name is a plain '-', it is instead written to stdout.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -t, --telnet-option <OPT=val>\n"
, stdout);
fputs(
" Pass options to the telnet protocol. Supported options are:\n"
"\n"
" TTYPE=<term> Sets the terminal type.\n"
"\n"
" XDISPLOC=<X display> Sets the X display location.\n"
"\n"
" NEW_ENV=<var,val> Sets an environment variable.\n"
"\n"
" -T, --upload-file <file>\n"
" This transfers the specified local file to the remote URL. If\n"
" there is no file part in the specified URL, Curl will append the\n"
, stdout);
fputs(
" local file name. NOTE that you must use a trailing / on the last\n"
" directory to really prove to Curl that there is no file name or\n"
" curl will think that your last directory name is the remote file\n"
" name to use. That will most likely cause the upload operation to\n"
" fail. If this is used on an HTTP(S) server, the PUT command will\n"
" be used.\n"
"\n"
" Use the file name \"-\" (a single dash) to use stdin instead of a\n"
, stdout);
fputs(
" given file. Alternately, the file name \".\" (a single period)\n"
" may be specified instead of \"-\" to use stdin in non-blocking\n"
" mode to allow reading server output while stdin is being\n"
" uploaded.\n"
"\n"
" You can specify one -T for each URL on the command line. Each -T\n"
" + URL pair specifies what to upload and to where. curl also sup-\n"
, stdout);
fputs(
" ports \"globbing\" of the -T argument, meaning that you can upload\n"
" multiple files to a single URL by using the same URL globbing\n"
" style supported in the URL, like this:\n"
"\n"
" curl -T \"{file1,file2}\" http://www.example.com\n"
"\n"
" or even\n"
"\n"
" curl -T \"img[1-1000].png\" ftp://ftp.example.com/upload/\n"
"\n"
" --tcp-nodelay\n"
" Turn on the TCP_NODELAY option. See the curl_easy_setopt(3) man\n"
, stdout);
fputs(
" page for details about this option. (Added in 7.11.2)\n"
"\n"
" --tcp-fastopen\n"
" Enable use of TCP Fast Open (RFC7413). (Added in 7.49.0)\n"
"\n"
" --tftp-blksize <value>\n"
" (TFTP) Set TFTP BLKSIZE option (must be >512). This is the block\n"
" size that curl will try to use when transferring data to or from\n"
" a TFTP server. By default 512 bytes will be used.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
, stdout);
fputs(
" (Added in 7.20.0)\n"
" --tftp-no-options\n"
" (TFTP) Tells curl not to send TFTP options requests.\n"
"\n"
" This option improves interop with some legacy servers that do\n"
" not acknowledge or properly implement TFTP options. When this\n"
" option is used --tftp-blksize is ignored.\n"
"\n"
" (Added in 7.48.0)\n"
"\n"
" --tlsauthtype <authtype>\n"
" Set TLS authentication type. Currently, the only supported\n"
, stdout);
fputs(
" option is \"SRP\", for TLS-SRP (RFC 5054). If --tlsuser and\n"
" --tlspassword are specified but --tlsauthtype is not, then this\n"
" option defaults to \"SRP\". (Added in 7.21.4)\n"
"\n"
" --tlspassword <password>\n"
" Set password for use with the TLS authentication method speci-\n"
" fied with --tlsauthtype. Requires that --tlsuser also be set.\n"
" (Added in 7.21.4)\n"
"\n"
" --tlsuser <user>\n"
, stdout);
fputs(
" Set username for use with the TLS authentication method speci-\n"
" fied with --tlsauthtype. Requires that --tlspassword also be\n"
" set. (Added in 7.21.4)\n"
"\n"
" --tlsv1.0\n"
" (SSL) Forces curl to use TLS version 1.0 when negotiating with a\n"
" remote TLS server. (Added in 7.34.0)\n"
"\n"
" --tlsv1.1\n"
" (SSL) Forces curl to use TLS version 1.1 when negotiating with a\n"
" remote TLS server. (Added in 7.34.0)\n"
"\n"
, stdout);
fputs(
" --tlsv1.2\n"
" (SSL) Forces curl to use TLS version 1.2 when negotiating with a\n"
" remote TLS server. (Added in 7.34.0)\n"
"\n"
" --tr-encoding\n"
" (HTTP) Request a compressed Transfer-Encoding response using one\n"
" of the algorithms curl supports, and uncompress the data while\n"
" receiving it.\n"
"\n"
" (Added in 7.21.6)\n"
"\n"
" --trace <file>\n"
" Enables a full trace dump of all incoming and outgoing data,\n"
, stdout);
fputs(
" including descriptive information, to the given output file. Use\n"
" \"-\" as filename to have the output sent to stdout. Use \"%\" as\n"
" filename to have the output sent to stderr.\n"
"\n"
" This option overrides previous uses of -v, --verbose or --trace-\n"
" ascii.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --trace-ascii <file>\n"
, stdout);
fputs(
" Enables a full trace dump of all incoming and outgoing data,\n"
" including descriptive information, to the given output file. Use\n"
" \"-\" as filename to have the output sent to stdout.\n"
"\n"
" This is very similar to --trace, but leaves out the hex part and\n"
" only shows the ASCII part of the dump. It makes smaller output\n"
" that might be easier to read for untrained humans.\n"
"\n"
, stdout);
fputs(
" This option overrides previous uses of -v, --verbose or --trace.\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --trace-time\n"
" Prepends a time stamp to each trace or verbose line that curl\n"
" displays. (Added in 7.14.0)\n"
"\n"
" --unix-socket <path>\n"
" (HTTP) Connect through this Unix domain socket, instead of using\n"
" the network. (Added in 7.40.0)\n"
"\n"
" -u, --user <user:password>\n"
, stdout);
fputs(
" Specify the user name and password to use for server authentica-\n"
" tion. Overrides -n, --netrc and --netrc-optional.\n"
"\n"
" If you simply specify the user name, curl will prompt for a\n"
" password.\n"
"\n"
" The user name and passwords are split up on the first colon,\n"
" which makes it impossible to use a colon in the user name with\n"
" this option. The password can, still.\n"
"\n"
, stdout);
fputs(
" When using Kerberos V5 with a Windows based server you should\n"
" include the Windows domain name in the user name, in order for\n"
" the server to successfully obtain a Kerberos Ticket. If you\n"
" don't then the initial authentication handshake may fail.\n"
"\n"
" When using NTLM, the user name can be specified simply as the\n"
" user name, without the domain, if there is a single domain and\n"
, stdout);
fputs(
" forest in your setup for example.\n"
"\n"
" To specify the domain name use either Down-Level Logon Name or\n"
" UPN (User Principal Name) formats. For example, EXAMPLE\\user and\n"
" user@example.com respectively.\n"
"\n"
" If you use a Windows SSPI-enabled curl binary and perform Ker-\n"
" beros V5, Negotiate, NTLM or Digest authentication then you can\n"
" tell curl to select the user name and password from your envi-\n"
, stdout);
fputs(
" ronment by specifying a single colon with this option: \"-u :\".\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -U, --proxy-user <user:password>\n"
" Specify the user name and password to use for proxy authentica-\n"
" tion.\n"
"\n"
" If you use a Windows SSPI-enabled curl binary and do either\n"
" Negotiate or NTLM authentication then you can tell curl to\n"
, stdout);
fputs(
" select the user name and password from your environment by spec-\n"
" ifying a single colon with this option: \"-U :\".\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --url <URL>\n"
" Specify a URL to fetch. This option is mostly handy when you\n"
" want to specify URL(s) in a config file.\n"
"\n"
" If the given URL is missing a scheme name (such as \"http://\" or\n"
, stdout);
fputs(
" \"ftp://\" etc) then curl will make a guess based on the host. If\n"
" the outermost sub-domain name matches DICT, FTP, IMAP, LDAP,\n"
" POP3 or SMTP then that protocol will be used, otherwise HTTP\n"
" will be used. Since 7.45.0 guessing can be disabled by setting a\n"
" default protocol, see --proto-default for details.\n"
"\n"
" This option may be used any number of times. To control where\n"
, stdout);
fputs(
" this URL is written, use the -o, --output or the -O, --remote-\n"
" name options.\n"
" -v, --verbose\n"
" Be more verbose/talkative during the operation. Useful for\n"
" debugging and seeing what's going on \"under the hood\". A line\n"
" starting with '>' means \"header data\" sent by curl, '<' means\n"
" \"header data\" received by curl that is hidden in normal cases,\n"
, stdout);
fputs(
" and a line starting with '*' means additional info provided by\n"
" curl.\n"
"\n"
" Note that if you only want HTTP headers in the output, -i,\n"
" --include might be the option you're looking for.\n"
"\n"
" If you think this option still doesn't give you enough details,\n"
" consider using --trace or --trace-ascii instead.\n"
"\n"
" This option overrides previous uses of --trace-ascii or --trace.\n"
"\n"
, stdout);
fputs(
" Use -s, --silent to make curl quiet.\n"
"\n"
" -w, --write-out <format>\n"
" Make curl display information on stdout after a completed trans-\n"
" fer. The format is a string that may contain plain text mixed\n"
" with any number of variables. The format can be specified as a\n"
" literal \"string\", or you can have curl read the format from a\n"
" file with \"@filename\" and to tell curl to read the format from\n"
, stdout);
fputs(
" stdin you write \"@-\".\n"
"\n"
" The variables present in the output format will be substituted\n"
" by the value or text that curl thinks fit, as described below.\n"
" All variables are specified as %{variable_name} and to output a\n"
" normal % you just write them as %%. You can output a newline by\n"
" using \\n, a carriage return with \\r and a tab space with \\t.\n"
"\n"
, stdout);
fputs(
" NOTE: The %-symbol is a special symbol in the win32-environment,\n"
" where all occurrences of % must be doubled when using this\n"
" option.\n"
"\n"
" The variables available are:\n"
"\n"
" content_type The Content-Type of the requested document, if\n"
" there was any.\n"
"\n"
" filename_effective\n"
" The ultimate filename that curl writes out to.\n"
, stdout);
fputs(
" This is only meaningful if curl is told to write\n"
" to a file with the --remote-name or --output\n"
" option. It's most useful in combination with the\n"
" --remote-header-name option. (Added in 7.26.0)\n"
"\n"
" ftp_entry_path The initial path curl ended up in when logging on\n"
" to the remote FTP server. (Added in 7.15.4)\n"
"\n"
, stdout);
fputs(
" http_code The numerical response code that was found in the\n"
" last retrieved HTTP(S) or FTP(s) transfer. In\n"
" 7.18.2 the alias response_code was added to show\n"
" the same info.\n"
"\n"
" http_connect The numerical code that was found in the last\n"
" response (from a proxy) to a curl CONNECT\n"
" request. (Added in 7.12.4)\n"
"\n"
, stdout);
fputs(
" http_version The http version that was effectively used.\n"
" (Added in 7.50.0)\n"
"\n"
" local_ip The IP address of the local end of the most\n"
" recently done connection - can be either IPv4 or\n"
" IPv6 (Added in 7.29.0)\n"
"\n"
" local_port The local port number of the most recently done\n"
" connection (Added in 7.29.0)\n"
"\n"
, stdout);
fputs(
" num_connects Number of new connects made in the recent trans-\n"
" fer. (Added in 7.12.3)\n"
"\n"
" num_redirects Number of redirects that were followed in the\n"
" request. (Added in 7.12.3)\n"
"\n"
" redirect_url When an HTTP request was made without -L to fol-\n"
" low redirects, this variable will show the actual\n"
, stdout);
fputs(
" URL a redirect would take you to. (Added in\n"
" 7.18.2)\n"
"\n"
" remote_ip The remote IP address of the most recently done\n"
" connection - can be either IPv4 or IPv6 (Added in\n"
" 7.29.0)\n"
"\n"
" remote_port The remote port number of the most recently done\n"
" connection (Added in 7.29.0)\n"
"\n"
, stdout);
fputs(
" size_download The total amount of bytes that were downloaded.\n"
"\n"
" size_header The total amount of bytes of the downloaded head-\n"
" ers.\n"
"\n"
" size_request The total amount of bytes that were sent in the\n"
" HTTP request.\n"
"\n"
" size_upload The total amount of bytes that were uploaded.\n"
"\n"
" speed_download The average download speed that curl measured for\n"
, stdout);
fputs(
" the complete download. Bytes per second.\n"
"\n"
" speed_upload The average upload speed that curl measured for\n"
" the complete upload. Bytes per second.\n"
"\n"
" ssl_verify_result\n"
" The result of the SSL peer certificate verifica-\n"
" tion that was requested. 0 means the verification\n"
" was successful. (Added in 7.19.0)\n"
"\n"
, stdout);
fputs(
" time_appconnect\n"
" The time, in seconds, it took from the start\n"
" until the SSL/SSH/etc connect/handshake to the\n"
" remote host was completed. (Added in 7.19.0)\n"
"\n"
" time_connect The time, in seconds, it took from the start\n"
" until the TCP connect to the remote host (or\n"
" proxy) was completed.\n"
"\n"
, stdout);
fputs(
" time_namelookup\n"
" The time, in seconds, it took from the start\n"
" until the name resolving was completed.\n"
"\n"
" time_pretransfer\n"
" The time, in seconds, it took from the start\n"
" until the file transfer was just about to begin.\n"
" This includes all pre-transfer commands and nego-\n"
, stdout);
fputs(
" tiations that are specific to the particular pro-\n"
" tocol(s) involved.\n"
"\n"
" time_redirect The time, in seconds, it took for all redirection\n"
" steps include name lookup, connect, pretransfer\n"
" and transfer before the final transaction was\n"
" started. time_redirect shows the complete execu-\n"
, stdout);
fputs(
" tion time for multiple redirections. (Added in\n"
" 7.12.3)\n"
"\n"
" time_starttransfer\n"
" The time, in seconds, it took from the start\n"
" until the first byte was just about to be trans-\n"
" ferred. This includes time_pretransfer and also\n"
" the time the server needed to calculate the\n"
, stdout);
fputs(
" result.\n"
"\n"
" time_total The total time, in seconds, that the full opera-\n"
" tion lasted. The time will be displayed with mil-\n"
" lisecond resolution.\n"
"\n"
" url_effective The URL that was fetched last. This is most mean-\n"
" ingful if you've told curl to follow location:\n"
" headers.\n"
"\n"
, stdout);
fputs(
" If this option is used several times, the last one will be used.\n"
"\n"
" -x, --proxy <[protocol://][user:password@]proxyhost[:port]>\n"
" Use the specified proxy.\n"
"\n"
" The proxy string can be specified with a protocol:// prefix to\n"
" specify alternative proxy protocols. Use socks4://, socks4a://,\n"
" socks5:// or socks5h:// to request the specific SOCKS version to\n"
, stdout);
fputs(
" be used. No protocol specified, http:// and all others will be\n"
" treated as HTTP proxies. (The protocol support was added in curl\n"
" 7.21.7)\n"
"\n"
" If the port number is not specified in the proxy string, it is\n"
" assumed to be 1080.\n"
"\n"
" This option overrides existing environment variables that set\n"
" the proxy to use. If there's an environment variable setting a\n"
, stdout);
fputs(
" proxy, you can set proxy to \"\" to override it.\n"
"\n"
" All operations that are performed over an HTTP proxy will trans-\n"
" parently be converted to HTTP. It means that certain protocol\n"
" specific operations might not be available. This is not the case\n"
" if you can tunnel through the proxy, as one with the -p, --prox-\n"
" ytunnel option.\n"
"\n"
" User and password that might be provided in the proxy string are\n"
, stdout);
fputs(
" URL decoded by curl. This allows you to pass in special charac-\n"
" ters such as @ by using %40 or pass in a colon with %3a.\n"
"\n"
" The proxy host can be specified the exact same way as the proxy\n"
" environment variables, including the protocol prefix (http://)\n"
" and the embedded user + password.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -X, --request <command>\n"
, stdout);
fputs(
" (HTTP) Specifies a custom request method to use when communicat-\n"
" ing with the HTTP server. The specified request method will be\n"
" used instead of the method otherwise used (which defaults to\n"
" GET). Read the HTTP 1.1 specification for details and explana-\n"
" tions. Common additional HTTP requests include PUT and DELETE,\n"
" but related technologies like WebDAV offers PROPFIND, COPY, MOVE\n"
" and more.\n"
"\n"
, stdout);
fputs(
" Normally you don't need this option. All sorts of GET, HEAD,\n"
" POST and PUT requests are rather invoked by using dedicated com-\n"
" mand line options.\n"
"\n"
" This option only changes the actual word used in the HTTP\n"
" request, it does not alter the way curl behaves. So for example\n"
" if you want to make a proper HEAD request, using -X HEAD will\n"
" not suffice. You need to use the -I, --head option.\n"
"\n"
, stdout);
fputs(
" The method string you set with -X will be used for all requests,\n"
" which if you for example use -L, --location may cause unintended\n"
" side-effects when curl doesn't change request method according\n"
" to the HTTP 30x response codes - and similar.\n"
"\n"
" (FTP) Specifies a custom FTP command to use instead of LIST when\n"
" doing file lists with FTP.\n"
"\n"
" (POP3) Specifies a custom POP3 command to use instead of LIST or\n"
, stdout);
fputs(
" RETR. (Added in 7.26.0)\n"
"\n"
" (IMAP) Specifies a custom IMAP command to use instead of LIST.\n"
" (Added in 7.30.0)\n"
"\n"
" (SMTP) Specifies a custom SMTP command to use instead of HELP or\n"
" VRFY. (Added in 7.34.0)\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" --xattr\n"
" When saving output to a file, this option tells curl to store\n"
, stdout);
fputs(
" certain file metadata in extended file attributes. Currently,\n"
" the URL is stored in the xdg.origin.url attribute and, for HTTP,\n"
" the content type is stored in the mime_type attribute. If the\n"
" file system does not support extended attributes, a warning is\n"
" issued.\n"
"\n"
" -y, --speed-time <time>\n"
" If a download is slower than speed-limit bytes per second during\n"
, stdout);
fputs(
" a speed-time period, the download gets aborted. If speed-time is\n"
" used, the default speed-limit will be 1 unless set with -Y.\n"
"\n"
" This option controls transfers and thus will not affect slow\n"
" connects etc. If this is a concern for you, try the --connect-\n"
" timeout option.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -Y, --speed-limit <speed>\n"
, stdout);
fputs(
" If a download is slower than this given speed (in bytes per sec-\n"
" ond) for speed-time seconds it gets aborted. speed-time is set\n"
" with -y and is 30 if not set.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -z, --time-cond <date expression>|<file>\n"
" (HTTP/FTP) Request a file that has been modified later than the\n"
" given time and date, or one that has been modified before that\n"
, stdout);
fputs(
" time. The <date expression> can be all sorts of date strings or\n"
" if it doesn't match any internal ones, it is taken as a filename\n"
" and tries to get the modification date (mtime) from <file>\n"
" instead. See the curl_getdate(3) man pages for date expression\n"
" details.\n"
"\n"
" Start the date expression with a dash (-) to make it request for\n"
" a document that is older than the given date/time, default is a\n"
, stdout);
fputs(
" document that is newer than the specified date/time.\n"
"\n"
" If this option is used several times, the last one will be used.\n"
"\n"
" -h, --help\n"
" Usage help. This lists all current command line options with a\n"
" short description.\n"
"\n"
" -M, --manual\n"
" Manual. Display the huge help text.\n"
"\n"
" -V, --version\n"
" Displays information about curl and the libcurl version it uses.\n"
, stdout);
fputs(
" The first line includes the full version of curl, libcurl and\n"
" other 3rd party libraries linked with the executable.\n"
"\n"
" The second line (starts with \"Protocols:\") shows all protocols\n"
" that libcurl reports to support.\n"
"\n"
" The third line (starts with \"Features:\") shows specific features\n"
" libcurl reports to offer. Available features include:\n"
"\n"
" IPv6 You can use IPv6 with this.\n"
"\n"
, stdout);
fputs(
" krb4 Krb4 for FTP is supported.\n"
"\n"
" SSL SSL versions of various protocols are supported, such as\n"
" HTTPS, FTPS, POP3S and so on.\n"
"\n"
" libz Automatic decompression of compressed files over HTTP is\n"
" supported.\n"
"\n"
" NTLM NTLM authentication is supported.\n"
"\n"
" Debug This curl uses a libcurl built with Debug. This enables\n"
, stdout);
fputs(
" more error-tracking and memory debugging etc. For curl-\n"
" developers only!\n"
"\n"
" AsynchDNS\n"
" This curl uses asynchronous name resolves. Asynchronous\n"
" name resolves can be done using either the c-ares or the\n"
" threaded resolver backends.\n"
"\n"
" SPNEGO SPNEGO authentication is supported.\n"
"\n"
" Largefile\n"
, stdout);
fputs(
" This curl supports transfers of large files, files larger\n"
" than 2GB.\n"
"\n"
" IDN This curl supports IDN - international domain names.\n"
"\n"
" GSS-API\n"
" GSS-API is supported.\n"
"\n"
" SSPI SSPI is supported.\n"
"\n"
" TLS-SRP\n"
" SRP (Secure Remote Password) authentication is supported\n"
" for TLS.\n"
"\n"
" HTTP2 HTTP/2 support has been built-in.\n"
"\n"
, stdout);
fputs(
" Metalink\n"
" This curl supports Metalink (both version 3 and 4 (RFC\n"
" 5854)), which describes mirrors and hashes. curl will\n"
" use mirrors for failover if there are errors (such as the\n"
" file or server not being available).\n"
"\n"
"FILES\n"
" ~/.curlrc\n"
" Default config file, see -K, --config for details.\n"
"\n"
"ENVIRONMENT\n"
" The environment variables can be specified in lower case or upper case.\n"
, stdout);
fputs(
" The lower case version has precedence. http_proxy is an exception as it\n"
" is only available in lower case.\n"
"\n"
" Using an environment variable to set the proxy has the same effect as\n"
" using the --proxy option.\n"
"\n"
" http_proxy [protocol://]<host>[:port]\n"
" Sets the proxy server to use for HTTP.\n"
" HTTPS_PROXY [protocol://]<host>[:port]\n"
" Sets the proxy server to use for HTTPS.\n"
"\n"
" [url-protocol]_PROXY [protocol://]<host>[:port]\n"
, stdout);
fputs(
" Sets the proxy server to use for [url-protocol], where the pro-\n"
" tocol is a protocol that curl supports and as specified in a\n"
" URL. FTP, FTPS, POP3, IMAP, SMTP, LDAP etc.\n"
"\n"
" ALL_PROXY [protocol://]<host>[:port]\n"
" Sets the proxy server to use if no protocol-specific proxy is\n"
" set.\n"
"\n"
" NO_PROXY <comma-separated list of hosts>\n"
" list of host names that shouldn't go through any proxy. If set\n"
, stdout);
fputs(
" to a asterisk '*' only, it matches all hosts.\n"
"\n"
"PROXY PROTOCOL PREFIXES\n"
" Since curl version 7.21.7, the proxy string may be specified with a\n"
" protocol:// prefix to specify alternative proxy protocols.\n"
"\n"
" If no protocol is specified in the proxy string or if the string\n"
" doesn't match a supported one, the proxy will be treated as an HTTP\n"
" proxy.\n"
"\n"
" The supported proxy protocol prefixes are as follows:\n"
"\n"
" socks4://\n"
, stdout);
fputs(
" Makes it the equivalent of --socks4\n"
"\n"
" socks4a://\n"
" Makes it the equivalent of --socks4a\n"
"\n"
" socks5://\n"
" Makes it the equivalent of --socks5\n"
"\n"
" socks5h://\n"
" Makes it the equivalent of --socks5-hostname\n"
"\n"
"EXIT CODES\n"
" There are a bunch of different error codes and their corresponding\n"
" error messages that may appear during bad conditions. At the time of\n"
" this writing, the exit codes are:\n"
"\n"
, stdout);
fputs(
" 1 Unsupported protocol. This build of curl has no support for this\n"
" protocol.\n"
"\n"
" 2 Failed to initialize.\n"
"\n"
" 3 URL malformed. The syntax was not correct.\n"
"\n"
" 4 A feature or option that was needed to perform the desired\n"
" request was not enabled or was explicitly disabled at build-\n"
" time. To make curl able to do this, you probably need another\n"
" build of libcurl!\n"
"\n"
, stdout);
fputs(
" 5 Couldn't resolve proxy. The given proxy host could not be\n"
" resolved.\n"
"\n"
" 6 Couldn't resolve host. The given remote host was not resolved.\n"
"\n"
" 7 Failed to connect to host.\n"
"\n"
" 8 Weird server reply. The server sent data curl couldn't parse.\n"
"\n"
" 9 FTP access denied. The server denied login or denied access to\n"
" the particular resource or directory you wanted to reach. Most\n"
, stdout);
fputs(
" often you tried to change to a directory that doesn't exist on\n"
" the server.\n"
"\n"
" 11 FTP weird PASS reply. Curl couldn't parse the reply sent to the\n"
" PASS request.\n"
"\n"
" 13 FTP weird PASV reply, Curl couldn't parse the reply sent to the\n"
" PASV request.\n"
"\n"
" 14 FTP weird 227 format. Curl couldn't parse the 227-line the\n"
" server sent.\n"
"\n"
, stdout);
fputs(
" 15 FTP can't get host. Couldn't resolve the host IP we got in the\n"
" 227-line.\n"
"\n"
" 17 FTP couldn't set binary. Couldn't change transfer method to\n"
" binary.\n"
"\n"
" 18 Partial file. Only a part of the file was transferred.\n"
"\n"
" 19 FTP couldn't download/access the given file, the RETR (or simi-\n"
" lar) command failed.\n"
"\n"
" 21 FTP quote error. A quote command returned error from the server.\n"
, stdout);
fputs(
" 22 HTTP page not retrieved. The requested url was not found or\n"
" returned another error with the HTTP error code being 400 or\n"
" above. This return code only appears if -f, --fail is used.\n"
"\n"
" 23 Write error. Curl couldn't write data to a local filesystem or\n"
" similar.\n"
"\n"
" 25 FTP couldn't STOR file. The server denied the STOR operation,\n"
" used for FTP uploading.\n"
"\n"
, stdout);
fputs(
" 26 Read error. Various reading problems.\n"
"\n"
" 27 Out of memory. A memory allocation request failed.\n"
"\n"
" 28 Operation timeout. The specified time-out period was reached\n"
" according to the conditions.\n"
"\n"
" 30 FTP PORT failed. The PORT command failed. Not all FTP servers\n"
" support the PORT command, try doing a transfer using PASV\n"
" instead!\n"
"\n"
, stdout);
fputs(
" 31 FTP couldn't use REST. The REST command failed. This command is\n"
" used for resumed FTP transfers.\n"
"\n"
" 33 HTTP range error. The range \"command\" didn't work.\n"
"\n"
" 34 HTTP post error. Internal post-request generation error.\n"
"\n"
" 35 SSL connect error. The SSL handshaking failed.\n"
"\n"
" 36 FTP bad download resume. Couldn't continue an earlier aborted\n"
" download.\n"
"\n"
, stdout);
fputs(
" 37 FILE couldn't read file. Failed to open the file. Permissions?\n"
"\n"
" 38 LDAP cannot bind. LDAP bind operation failed.\n"
"\n"
" 39 LDAP search failed.\n"
"\n"
" 41 Function not found. A required LDAP function was not found.\n"
"\n"
" 42 Aborted by callback. An application told curl to abort the oper-\n"
" ation.\n"
"\n"
" 43 Internal error. A function was called with a bad parameter.\n"
"\n"
, stdout);
fputs(
" 45 Interface error. A specified outgoing interface could not be\n"
" used.\n"
"\n"
" 47 Too many redirects. When following redirects, curl hit the maxi-\n"
" mum amount.\n"
"\n"
" 48 Unknown option specified to libcurl. This indicates that you\n"
" passed a weird option to curl that was passed on to libcurl and\n"
" rejected. Read up in the manual!\n"
"\n"
" 49 Malformed telnet option.\n"
"\n"
, stdout);
fputs(
" 51 The peer's SSL certificate or SSH MD5 fingerprint was not OK.\n"
"\n"
" 52 The server didn't reply anything, which here is considered an\n"
" error.\n"
"\n"
" 53 SSL crypto engine not found.\n"
"\n"
" 54 Cannot set SSL crypto engine as default.\n"
"\n"
" 55 Failed sending network data.\n"
"\n"
" 56 Failure in receiving network data.\n"
"\n"
" 58 Problem with the local certificate.\n"
"\n"
" 59 Couldn't use specified SSL cipher.\n"
"\n"
, stdout);
fputs(
" 60 Peer certificate cannot be authenticated with known CA certifi-\n"
" cates.\n"
"\n"
" 61 Unrecognized transfer encoding.\n"
"\n"
" 62 Invalid LDAP URL.\n"
"\n"
" 63 Maximum file size exceeded.\n"
"\n"
" 64 Requested FTP SSL level failed.\n"
"\n"
" 65 Sending the data requires a rewind that failed.\n"
"\n"
" 66 Failed to initialise SSL Engine.\n"
"\n"
" 67 The user name, password, or similar was not accepted and curl\n"
" failed to log in.\n"
"\n"
, stdout);
fputs(
" 68 File not found on TFTP server.\n"
"\n"
" 69 Permission problem on TFTP server.\n"
"\n"
" 70 Out of disk space on TFTP server.\n"
"\n"
" 71 Illegal TFTP operation.\n"
"\n"
" 72 Unknown TFTP transfer ID.\n"
"\n"
" 73 File already exists (TFTP).\n"
"\n"
" 74 No such user (TFTP).\n"
"\n"
" 75 Character conversion failed.\n"
"\n"
" 76 Character conversion functions required.\n"
"\n"
" 77 Problem with reading the SSL CA cert (path? access rights?).\n"
"\n"
, stdout);
fputs(
" 78 The resource referenced in the URL does not exist.\n"
"\n"
" 79 An unspecified error occurred during the SSH session.\n"
"\n"
" 80 Failed to shut down the SSL connection.\n"
"\n"
" 82 Could not load CRL file, missing or wrong format (added in\n"
" 7.19.0).\n"
"\n"
" 83 Issuer check failed (added in 7.19.0).\n"
"\n"
" 84 The FTP PRET command failed\n"
"\n"
" 85 RTSP: mismatch of CSeq numbers\n"
"\n"
" 86 RTSP: mismatch of Session Identifiers\n"
"\n"
, stdout);
fputs(
" 87 unable to parse FTP file list\n"
"\n"
" 88 FTP chunk callback reported error\n"
"\n"
" 89 No connection available, the session will be queued\n"
"\n"
" 90 SSL public key does not matched pinned public key\n"
"\n"
" XX More error codes will appear here in future releases. The exist-\n"
" ing ones are meant to never change.\n"