diff options
Diffstat (limited to 'docs/libcurl/curl_easy_setopt.md')
-rw-r--r-- | docs/libcurl/curl_easy_setopt.md | 1381 |
1 files changed, 1381 insertions, 0 deletions
diff --git a/docs/libcurl/curl_easy_setopt.md b/docs/libcurl/curl_easy_setopt.md new file mode 100644 index 000000000..5724b09cb --- /dev/null +++ b/docs/libcurl/curl_easy_setopt.md @@ -0,0 +1,1381 @@ +--- +c: Copyright (C) Daniel Stenberg, <daniel.se>, et al. +SPDX-License-Identifier: curl +Title: curl_easy_setopt +Section: 3 +Source: libcurl +See-also: + - curl_easy_cleanup (3) + - curl_easy_getinfo (3) + - curl_easy_init (3) + - curl_easy_option_by_id (3) + - curl_easy_option_by_name (3) + - curl_easy_option_next (3) + - curl_easy_reset (3) + - curl_multi_setopt (3) +--- + +# NAME + +curl_easy_setopt - set options for a curl easy handle + +# SYNOPSIS + +~~~c +#include <curl/curl.h> + +CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter); +~~~ + +# DESCRIPTION + +curl_easy_setopt(3) is used to tell libcurl how to behave. By setting the +appropriate options, the application can change libcurl's behavior. All +options are set with an *option* followed by a *parameter*. That parameter can +be a **long**, a **function pointer**, an **object pointer** or a +**curl_off_t**, depending on what the specific option expects. Read this +manual carefully as bad input values may cause libcurl to behave badly! You +can only set one option in each function call. A typical application uses many +curl_easy_setopt(3) calls in the setup phase. + +Options set with this function call are valid for all forthcoming transfers +performed using this *handle*. The options are not in any way reset between +transfers, so if you want subsequent transfers with different options, you +must change them between the transfers. You can optionally reset all options +back to internal default with curl_easy_reset(3). + +Strings passed to libcurl as 'char *' arguments, are copied by the library; +the string storage associated to the pointer argument may be discarded or +reused after curl_easy_setopt(3) returns. The only exception to this rule is +really CURLOPT_POSTFIELDS(3), but the alternative that copies the string +CURLOPT_COPYPOSTFIELDS(3) has some usage characteristics you need to read up +on. This function does not accept input strings longer than +**CURL_MAX_INPUT_LENGTH** (8 MB). + +The order in which the options are set does not matter. + +Before version 7.17.0, strings were not copied. Instead the user was forced +keep them available until libcurl no longer needed them. + +The *handle* is the return code from a curl_easy_init(3) or +curl_easy_duphandle(3) call. + +# BEHAVIOR OPTIONS + +## CURLOPT_VERBOSE + +Display verbose information. See CURLOPT_VERBOSE(3) + +## CURLOPT_HEADER + +Include the header in the body output. See CURLOPT_HEADER(3) + +## CURLOPT_NOPROGRESS + +Shut off the progress meter. See CURLOPT_NOPROGRESS(3) + +## CURLOPT_NOSIGNAL + +Do not install signal handlers. See CURLOPT_NOSIGNAL(3) + +## CURLOPT_WILDCARDMATCH + +Transfer multiple files according to a filename pattern. See +CURLOPT_WILDCARDMATCH(3) + +# CALLBACK OPTIONS + +## CURLOPT_WRITEFUNCTION + +Callback for writing data. See CURLOPT_WRITEFUNCTION(3) + +## CURLOPT_WRITEDATA + +Data pointer to pass to the write callback. See CURLOPT_WRITEDATA(3) + +## CURLOPT_READFUNCTION + +Callback for reading data. See CURLOPT_READFUNCTION(3) + +## CURLOPT_READDATA + +Data pointer to pass to the read callback. See CURLOPT_READDATA(3) + +## CURLOPT_IOCTLFUNCTION + +**Deprecated option** Callback for I/O operations. +See CURLOPT_IOCTLFUNCTION(3) + +## CURLOPT_IOCTLDATA + +**Deprecated option** Data pointer to pass to the I/O callback. +See CURLOPT_IOCTLDATA(3) + +## CURLOPT_SEEKFUNCTION + +Callback for seek operations. See CURLOPT_SEEKFUNCTION(3) + +## CURLOPT_SEEKDATA + +Data pointer to pass to the seek callback. See CURLOPT_SEEKDATA(3) + +## CURLOPT_SOCKOPTFUNCTION + +Callback for sockopt operations. See CURLOPT_SOCKOPTFUNCTION(3) + +## CURLOPT_SOCKOPTDATA + +Data pointer to pass to the sockopt callback. See CURLOPT_SOCKOPTDATA(3) + +## CURLOPT_OPENSOCKETFUNCTION + +Callback for socket creation. See CURLOPT_OPENSOCKETFUNCTION(3) + +## CURLOPT_OPENSOCKETDATA + +Data pointer to pass to the open socket callback. See CURLOPT_OPENSOCKETDATA(3) + +## CURLOPT_CLOSESOCKETFUNCTION + +Callback for closing socket. See CURLOPT_CLOSESOCKETFUNCTION(3) + +## CURLOPT_CLOSESOCKETDATA + +Data pointer to pass to the close socket callback. See CURLOPT_CLOSESOCKETDATA(3) + +## CURLOPT_PROGRESSFUNCTION + +**OBSOLETE** callback for progress meter. +See CURLOPT_PROGRESSFUNCTION(3) + +## CURLOPT_PROGRESSDATA + +Data pointer to pass to the progress meter callback. See CURLOPT_PROGRESSDATA(3) + +## CURLOPT_XFERINFOFUNCTION + +Callback for progress meter. See CURLOPT_XFERINFOFUNCTION(3) + +## CURLOPT_XFERINFODATA + +Data pointer to pass to the progress meter callback. See CURLOPT_XFERINFODATA(3) + +## CURLOPT_HEADERFUNCTION + +Callback for writing received headers. See CURLOPT_HEADERFUNCTION(3) + +## CURLOPT_HEADERDATA + +Data pointer to pass to the header callback. See CURLOPT_HEADERDATA(3) + +## CURLOPT_DEBUGFUNCTION + +Callback for debug information. See CURLOPT_DEBUGFUNCTION(3) + +## CURLOPT_DEBUGDATA + +Data pointer to pass to the debug callback. See CURLOPT_DEBUGDATA(3) + +## CURLOPT_SSL_CTX_FUNCTION + +Callback for SSL context logic. See CURLOPT_SSL_CTX_FUNCTION(3) + +## CURLOPT_SSL_CTX_DATA + +Data pointer to pass to the SSL context callback. See CURLOPT_SSL_CTX_DATA(3) + +## CURLOPT_CONV_TO_NETWORK_FUNCTION + +**OBSOLETE** Callback for code base conversion. +See CURLOPT_CONV_TO_NETWORK_FUNCTION(3) + +## CURLOPT_CONV_FROM_NETWORK_FUNCTION + +**OBSOLETE** Callback for code base conversion. +See CURLOPT_CONV_FROM_NETWORK_FUNCTION(3) + +## CURLOPT_CONV_FROM_UTF8_FUNCTION + +**OBSOLETE** Callback for code base conversion. +See CURLOPT_CONV_FROM_UTF8_FUNCTION(3) + +## CURLOPT_INTERLEAVEFUNCTION + +Callback for RTSP interleaved data. See CURLOPT_INTERLEAVEFUNCTION(3) + +## CURLOPT_INTERLEAVEDATA + +Data pointer to pass to the RTSP interleave callback. See CURLOPT_INTERLEAVEDATA(3) + +## CURLOPT_CHUNK_BGN_FUNCTION + +Callback for wildcard download start of chunk. See CURLOPT_CHUNK_BGN_FUNCTION(3) + +## CURLOPT_CHUNK_END_FUNCTION + +Callback for wildcard download end of chunk. See CURLOPT_CHUNK_END_FUNCTION(3) + +## CURLOPT_CHUNK_DATA + +Data pointer to pass to the chunk callbacks. See CURLOPT_CHUNK_DATA(3) + +## CURLOPT_FNMATCH_FUNCTION + +Callback for wildcard matching. See CURLOPT_FNMATCH_FUNCTION(3) + +## CURLOPT_FNMATCH_DATA + +Data pointer to pass to the wildcard matching callback. See CURLOPT_FNMATCH_DATA(3) + +## CURLOPT_SUPPRESS_CONNECT_HEADERS + +Suppress proxy CONNECT response headers from user callbacks. See +CURLOPT_SUPPRESS_CONNECT_HEADERS(3) + +## CURLOPT_RESOLVER_START_FUNCTION + +Callback to be called before a new resolve request is started. See +CURLOPT_RESOLVER_START_FUNCTION(3) + +## CURLOPT_RESOLVER_START_DATA + +Data pointer to pass to resolver start callback. See CURLOPT_RESOLVER_START_DATA(3) + +## CURLOPT_PREREQFUNCTION + +Callback to be called after a connection is established but before a request +is made on that connection. See CURLOPT_PREREQFUNCTION(3) + +## CURLOPT_PREREQDATA + +Data pointer to pass to the CURLOPT_PREREQFUNCTION callback. See +CURLOPT_PREREQDATA(3) + +# ERROR OPTIONS + +## CURLOPT_ERRORBUFFER + +Error message buffer. See CURLOPT_ERRORBUFFER(3) + +## CURLOPT_STDERR + +stderr replacement stream. See CURLOPT_STDERR(3) + +## CURLOPT_FAILONERROR + +Fail on HTTP 4xx errors. CURLOPT_FAILONERROR(3) + +## CURLOPT_KEEP_SENDING_ON_ERROR + +Keep sending on HTTP >= 300 errors. CURLOPT_KEEP_SENDING_ON_ERROR(3) + +# NETWORK OPTIONS + +## CURLOPT_URL + +URL to work on. See CURLOPT_URL(3) + +## CURLOPT_PATH_AS_IS + +Disable squashing /../ and /./ sequences in the path. See CURLOPT_PATH_AS_IS(3) + +## CURLOPT_PROTOCOLS + +**Deprecated option** Allowed protocols. See CURLOPT_PROTOCOLS(3) + +## CURLOPT_PROTOCOLS_STR + +Allowed protocols. See CURLOPT_PROTOCOLS_STR(3) + +## CURLOPT_REDIR_PROTOCOLS + +**Deprecated option** Protocols to allow redirects to. See +CURLOPT_REDIR_PROTOCOLS(3) + +## CURLOPT_REDIR_PROTOCOLS_STR + +Protocols to allow redirects to. See CURLOPT_REDIR_PROTOCOLS_STR(3) + +## CURLOPT_DEFAULT_PROTOCOL + +Default protocol. See CURLOPT_DEFAULT_PROTOCOL(3) + +## CURLOPT_PROXY + +Proxy to use. See CURLOPT_PROXY(3) + +## CURLOPT_PRE_PROXY + +Socks proxy to use. See CURLOPT_PRE_PROXY(3) + +## CURLOPT_PROXYPORT + +Proxy port to use. See CURLOPT_PROXYPORT(3) + +## CURLOPT_PROXYTYPE + +Proxy type. See CURLOPT_PROXYTYPE(3) + +## CURLOPT_NOPROXY + +Filter out hosts from proxy use. CURLOPT_NOPROXY(3) + +## CURLOPT_HTTPPROXYTUNNEL + +Tunnel through the HTTP proxy. CURLOPT_HTTPPROXYTUNNEL(3) + +## CURLOPT_CONNECT_TO + +Connect to a specific host and port. See CURLOPT_CONNECT_TO(3) + +## CURLOPT_SOCKS5_AUTH + +Socks5 authentication methods. See CURLOPT_SOCKS5_AUTH(3) + +## CURLOPT_SOCKS5_GSSAPI_SERVICE + +**Deprecated option** Socks5 GSSAPI service name. +See CURLOPT_SOCKS5_GSSAPI_SERVICE(3) + +## CURLOPT_SOCKS5_GSSAPI_NEC + +Socks5 GSSAPI NEC mode. See CURLOPT_SOCKS5_GSSAPI_NEC(3) + +## CURLOPT_PROXY_SERVICE_NAME + +Proxy authentication service name. CURLOPT_PROXY_SERVICE_NAME(3) + +## CURLOPT_HAPROXYPROTOCOL + +Send an HAProxy PROXY protocol v1 header. See CURLOPT_HAPROXYPROTOCOL(3) + +## CURLOPT_HAPROXY_CLIENT_IP + +Spoof the client IP in an HAProxy PROXY protocol v1 header. See +CURLOPT_HAPROXY_CLIENT_IP(3) + +## CURLOPT_SERVICE_NAME + +Authentication service name. CURLOPT_SERVICE_NAME(3) + +## CURLOPT_INTERFACE + +Bind connection locally to this. See CURLOPT_INTERFACE(3) + +## CURLOPT_LOCALPORT + +Bind connection locally to this port. See CURLOPT_LOCALPORT(3) + +## CURLOPT_LOCALPORTRANGE + +Bind connection locally to port range. See CURLOPT_LOCALPORTRANGE(3) + +## CURLOPT_DNS_CACHE_TIMEOUT + +Timeout for DNS cache. See CURLOPT_DNS_CACHE_TIMEOUT(3) + +## CURLOPT_DNS_USE_GLOBAL_CACHE + +**OBSOLETE** Enable global DNS cache. +See CURLOPT_DNS_USE_GLOBAL_CACHE(3) + +## CURLOPT_DOH_URL + +Use this DoH server for name resolves. See CURLOPT_DOH_URL(3) + +## CURLOPT_BUFFERSIZE + +Ask for alternate buffer size. See CURLOPT_BUFFERSIZE(3) + +## CURLOPT_PORT + +Port number to connect to. See CURLOPT_PORT(3) + +## CURLOPT_TCP_FASTOPEN + +Enable TCP Fast Open. See CURLOPT_TCP_FASTOPEN(3) + +## CURLOPT_TCP_NODELAY + +Disable the Nagle algorithm. See CURLOPT_TCP_NODELAY(3) + +## CURLOPT_ADDRESS_SCOPE + +IPv6 scope for local addresses. See CURLOPT_ADDRESS_SCOPE(3) + +## CURLOPT_TCP_KEEPALIVE + +Enable TCP keep-alive. See CURLOPT_TCP_KEEPALIVE(3) + +## CURLOPT_TCP_KEEPIDLE + +Idle time before sending keep-alive. See CURLOPT_TCP_KEEPIDLE(3) + +## CURLOPT_TCP_KEEPINTVL + +Interval between keep-alive probes. See CURLOPT_TCP_KEEPINTVL(3) + +## CURLOPT_UNIX_SOCKET_PATH + +Path to a Unix domain socket. See CURLOPT_UNIX_SOCKET_PATH(3) + +## CURLOPT_ABSTRACT_UNIX_SOCKET + +Path to an abstract Unix domain socket. See CURLOPT_ABSTRACT_UNIX_SOCKET(3) + +# NAMES and PASSWORDS OPTIONS (Authentication) + +## CURLOPT_NETRC + +Enable .netrc parsing. See CURLOPT_NETRC(3) + +## CURLOPT_NETRC_FILE + +.netrc filename. See CURLOPT_NETRC_FILE(3) + +## CURLOPT_USERPWD + +User name and password. See CURLOPT_USERPWD(3) + +## CURLOPT_PROXYUSERPWD + +Proxy user name and password. See CURLOPT_PROXYUSERPWD(3) + +## CURLOPT_USERNAME + +User name. See CURLOPT_USERNAME(3) + +## CURLOPT_PASSWORD + +Password. See CURLOPT_PASSWORD(3) + +## CURLOPT_LOGIN_OPTIONS + +Login options. See CURLOPT_LOGIN_OPTIONS(3) + +## CURLOPT_PROXYUSERNAME + +Proxy user name. See CURLOPT_PROXYUSERNAME(3) + +## CURLOPT_PROXYPASSWORD + +Proxy password. See CURLOPT_PROXYPASSWORD(3) + +## CURLOPT_HTTPAUTH + +HTTP server authentication methods. See CURLOPT_HTTPAUTH(3) + +## CURLOPT_TLSAUTH_USERNAME + +TLS authentication user name. See CURLOPT_TLSAUTH_USERNAME(3) + +## CURLOPT_PROXY_TLSAUTH_USERNAME + +Proxy TLS authentication user name. See CURLOPT_PROXY_TLSAUTH_USERNAME(3) + +## CURLOPT_TLSAUTH_PASSWORD + +TLS authentication password. See CURLOPT_TLSAUTH_PASSWORD(3) + +## CURLOPT_PROXY_TLSAUTH_PASSWORD + +Proxy TLS authentication password. See CURLOPT_PROXY_TLSAUTH_PASSWORD(3) + +## CURLOPT_TLSAUTH_TYPE + +TLS authentication methods. See CURLOPT_TLSAUTH_TYPE(3) + +## CURLOPT_PROXY_TLSAUTH_TYPE + +Proxy TLS authentication methods. See CURLOPT_PROXY_TLSAUTH_TYPE(3) + +## CURLOPT_PROXYAUTH + +HTTP proxy authentication methods. See CURLOPT_PROXYAUTH(3) + +## CURLOPT_SASL_AUTHZID + +SASL authorization identity (identity to act as). See CURLOPT_SASL_AUTHZID(3) + +## CURLOPT_SASL_IR + +Enable SASL initial response. See CURLOPT_SASL_IR(3) + +## CURLOPT_XOAUTH2_BEARER + +OAuth2 bearer token. See CURLOPT_XOAUTH2_BEARER(3) + +## CURLOPT_DISALLOW_USERNAME_IN_URL + +Do not allow username in URL. See CURLOPT_DISALLOW_USERNAME_IN_URL(3) + +# HTTP OPTIONS + +## CURLOPT_AUTOREFERER + +Automatically set Referer: header. See CURLOPT_AUTOREFERER(3) + +## CURLOPT_ACCEPT_ENCODING + +Accept-Encoding and automatic decompressing data. See CURLOPT_ACCEPT_ENCODING(3) + +## CURLOPT_TRANSFER_ENCODING + +Request Transfer-Encoding. See CURLOPT_TRANSFER_ENCODING(3) + +## CURLOPT_FOLLOWLOCATION + +Follow HTTP redirects. See CURLOPT_FOLLOWLOCATION(3) + +## CURLOPT_UNRESTRICTED_AUTH + +Do not restrict authentication to original host. CURLOPT_UNRESTRICTED_AUTH(3) + +## CURLOPT_MAXREDIRS + +Maximum number of redirects to follow. See CURLOPT_MAXREDIRS(3) + +## CURLOPT_POSTREDIR + +How to act on redirects after POST. See CURLOPT_POSTREDIR(3) + +## CURLOPT_PUT + +**Deprecated option** Issue an HTTP PUT request. See CURLOPT_PUT(3) + +## CURLOPT_POST + +Issue an HTTP POST request. See CURLOPT_POST(3) + +## CURLOPT_POSTFIELDS + +Send a POST with this data. See CURLOPT_POSTFIELDS(3) + +## CURLOPT_POSTFIELDSIZE + +The POST data is this big. See CURLOPT_POSTFIELDSIZE(3) + +## CURLOPT_POSTFIELDSIZE_LARGE + +The POST data is this big. See CURLOPT_POSTFIELDSIZE_LARGE(3) + +## CURLOPT_COPYPOSTFIELDS + +Send a POST with this data - and copy it. See CURLOPT_COPYPOSTFIELDS(3) + +## CURLOPT_HTTPPOST + +**Deprecated option** Multipart formpost HTTP POST. +See CURLOPT_HTTPPOST(3) + +## CURLOPT_REFERER + +Referer: header. See CURLOPT_REFERER(3) + +## CURLOPT_USERAGENT + +User-Agent: header. See CURLOPT_USERAGENT(3) + +## CURLOPT_HTTPHEADER + +Custom HTTP headers. See CURLOPT_HTTPHEADER(3) + +## CURLOPT_HEADEROPT + +Control custom headers. See CURLOPT_HEADEROPT(3) + +## CURLOPT_PROXYHEADER + +Custom HTTP headers sent to proxy. See CURLOPT_PROXYHEADER(3) + +## CURLOPT_HTTP200ALIASES + +Alternative versions of 200 OK. See CURLOPT_HTTP200ALIASES(3) + +## CURLOPT_COOKIE + +Cookie(s) to send. See CURLOPT_COOKIE(3) + +## CURLOPT_COOKIEFILE + +File to read cookies from. See CURLOPT_COOKIEFILE(3) + +## CURLOPT_COOKIEJAR + +File to write cookies to. See CURLOPT_COOKIEJAR(3) + +## CURLOPT_COOKIESESSION + +Start a new cookie session. See CURLOPT_COOKIESESSION(3) + +## CURLOPT_COOKIELIST + +Add or control cookies. See CURLOPT_COOKIELIST(3) + +## CURLOPT_ALTSVC + +Specify the Alt-Svc: cache filename. See CURLOPT_ALTSVC(3) + +## CURLOPT_ALTSVC_CTRL + +Enable and configure Alt-Svc: treatment. See CURLOPT_ALTSVC_CTRL(3) + +## CURLOPT_HSTS + +Set HSTS cache file. See CURLOPT_HSTS(3) + +## CURLOPT_HSTS_CTRL + +Enable HSTS. See CURLOPT_HSTS_CTRL(3) + +## CURLOPT_HSTSREADFUNCTION + +Set HSTS read callback. See CURLOPT_HSTSREADFUNCTION(3) + +## CURLOPT_HSTSREADDATA + +Pass pointer to the HSTS read callback. See CURLOPT_HSTSREADDATA(3) + +## CURLOPT_HSTSWRITEFUNCTION + +Set HSTS write callback. See CURLOPT_HSTSWRITEFUNCTION(3) + +## CURLOPT_HSTSWRITEDATA + +Pass pointer to the HSTS write callback. See CURLOPT_HSTSWRITEDATA(3) + +## CURLOPT_HTTPGET + +Do an HTTP GET request. See CURLOPT_HTTPGET(3) + +## CURLOPT_REQUEST_TARGET + +Set the request target. CURLOPT_REQUEST_TARGET(3) + +## CURLOPT_HTTP_VERSION + +HTTP version to use. CURLOPT_HTTP_VERSION(3) + +## CURLOPT_HTTP09_ALLOWED + +Allow HTTP/0.9 responses. CURLOPT_HTTP09_ALLOWED(3) + +## CURLOPT_IGNORE_CONTENT_LENGTH + +Ignore Content-Length. See CURLOPT_IGNORE_CONTENT_LENGTH(3) + +## CURLOPT_HTTP_CONTENT_DECODING + +Disable Content decoding. See CURLOPT_HTTP_CONTENT_DECODING(3) + +## CURLOPT_HTTP_TRANSFER_DECODING + +Disable Transfer decoding. See CURLOPT_HTTP_TRANSFER_DECODING(3) + +## CURLOPT_EXPECT_100_TIMEOUT_MS + +100-continue timeout. See CURLOPT_EXPECT_100_TIMEOUT_MS(3) + +## CURLOPT_TRAILERFUNCTION + +Set callback for sending trailing headers. See +CURLOPT_TRAILERFUNCTION(3) + +## CURLOPT_TRAILERDATA + +Custom pointer passed to the trailing headers callback. See +CURLOPT_TRAILERDATA(3) + +## CURLOPT_PIPEWAIT + +Wait on connection to pipeline on it. See CURLOPT_PIPEWAIT(3) + +## CURLOPT_STREAM_DEPENDS + +This HTTP/2 stream depends on another. See CURLOPT_STREAM_DEPENDS(3) + +## CURLOPT_STREAM_DEPENDS_E + +This HTTP/2 stream depends on another exclusively. See +CURLOPT_STREAM_DEPENDS_E(3) + +## CURLOPT_STREAM_WEIGHT + +Set this HTTP/2 stream's weight. See CURLOPT_STREAM_WEIGHT(3) + +# SMTP OPTIONS + +## CURLOPT_MAIL_FROM + +Address of the sender. See CURLOPT_MAIL_FROM(3) + +## CURLOPT_MAIL_RCPT + +Address of the recipients. See CURLOPT_MAIL_RCPT(3) + +## CURLOPT_MAIL_AUTH + +Authentication address. See CURLOPT_MAIL_AUTH(3) + +## CURLOPT_MAIL_RCPT_ALLOWFAILS + +Allow RCPT TO command to fail for some recipients. See +CURLOPT_MAIL_RCPT_ALLOWFAILS(3) + +# TFTP OPTIONS + +## CURLOPT_TFTP_BLKSIZE + +TFTP block size. See CURLOPT_TFTP_BLKSIZE(3) + +## CURLOPT_TFTP_NO_OPTIONS + +Do not send TFTP options requests. See CURLOPT_TFTP_NO_OPTIONS(3) + +# FTP OPTIONS + +## CURLOPT_FTPPORT + +Use active FTP. See CURLOPT_FTPPORT(3) + +## CURLOPT_QUOTE + +Commands to run before transfer. See CURLOPT_QUOTE(3) + +## CURLOPT_POSTQUOTE + +Commands to run after transfer. See CURLOPT_POSTQUOTE(3) + +## CURLOPT_PREQUOTE + +Commands to run just before transfer. See CURLOPT_PREQUOTE(3) + +## CURLOPT_APPEND + +Append to remote file. See CURLOPT_APPEND(3) + +## CURLOPT_FTP_USE_EPRT + +Use EPRT. See CURLOPT_FTP_USE_EPRT(3) + +## CURLOPT_FTP_USE_EPSV + +Use EPSV. See CURLOPT_FTP_USE_EPSV(3) + +## CURLOPT_FTP_USE_PRET + +Use PRET. See CURLOPT_FTP_USE_PRET(3) + +## CURLOPT_FTP_CREATE_MISSING_DIRS + +Create missing directories on the remote server. See CURLOPT_FTP_CREATE_MISSING_DIRS(3) + +## CURLOPT_SERVER_RESPONSE_TIMEOUT + +Timeout for server responses. See CURLOPT_SERVER_RESPONSE_TIMEOUT(3) + +## CURLOPT_SERVER_RESPONSE_TIMEOUT_MS + +Timeout for server responses. See CURLOPT_SERVER_RESPONSE_TIMEOUT_MS(3) + +## CURLOPT_FTP_ALTERNATIVE_TO_USER + +Alternative to USER. See CURLOPT_FTP_ALTERNATIVE_TO_USER(3) + +## CURLOPT_FTP_SKIP_PASV_IP + +Ignore the IP address in the PASV response. See CURLOPT_FTP_SKIP_PASV_IP(3) + +## CURLOPT_FTPSSLAUTH + +Control how to do TLS. See CURLOPT_FTPSSLAUTH(3) + +## CURLOPT_FTP_SSL_CCC + +Back to non-TLS again after authentication. See CURLOPT_FTP_SSL_CCC(3) + +## CURLOPT_FTP_ACCOUNT + +Send ACCT command. See CURLOPT_FTP_ACCOUNT(3) + +## CURLOPT_FTP_FILEMETHOD + +Specify how to reach files. See CURLOPT_FTP_FILEMETHOD(3) + +# RTSP OPTIONS + +## CURLOPT_RTSP_REQUEST + +RTSP request. See CURLOPT_RTSP_REQUEST(3) + +## CURLOPT_RTSP_SESSION_ID + +RTSP session-id. See CURLOPT_RTSP_SESSION_ID(3) + +## CURLOPT_RTSP_STREAM_URI + +RTSP stream URI. See CURLOPT_RTSP_STREAM_URI(3) + +## CURLOPT_RTSP_TRANSPORT + +RTSP Transport: header. See CURLOPT_RTSP_TRANSPORT(3) + +## CURLOPT_RTSP_CLIENT_CSEQ + +Client CSEQ number. See CURLOPT_RTSP_CLIENT_CSEQ(3) + +## CURLOPT_RTSP_SERVER_CSEQ + +CSEQ number for RTSP Server->Client request. See CURLOPT_RTSP_SERVER_CSEQ(3) + +## CURLOPT_AWS_SIGV4 + +AWS HTTP V4 Signature. See CURLOPT_AWS_SIGV4(3) + +# PROTOCOL OPTIONS + +## CURLOPT_TRANSFERTEXT + +Use text transfer. See CURLOPT_TRANSFERTEXT(3) + +## CURLOPT_PROXY_TRANSFER_MODE + +Add transfer mode to URL over proxy. See CURLOPT_PROXY_TRANSFER_MODE(3) + +## CURLOPT_CRLF + +Convert newlines. See CURLOPT_CRLF(3) + +## CURLOPT_RANGE + +Range requests. See CURLOPT_RANGE(3) + +## CURLOPT_RESUME_FROM + +Resume a transfer. See CURLOPT_RESUME_FROM(3) + +## CURLOPT_RESUME_FROM_LARGE + +Resume a transfer. See CURLOPT_RESUME_FROM_LARGE(3) + +## CURLOPT_CURLU + +Set URL to work on with a URL handle. See CURLOPT_CURLU(3) + +## CURLOPT_CUSTOMREQUEST + +Custom request/method. See CURLOPT_CUSTOMREQUEST(3) + +## CURLOPT_FILETIME + +Request file modification date and time. See CURLOPT_FILETIME(3) + +## CURLOPT_DIRLISTONLY + +List only. See CURLOPT_DIRLISTONLY(3) + +## CURLOPT_NOBODY + +Do not get the body contents. See CURLOPT_NOBODY(3) + +## CURLOPT_INFILESIZE + +Size of file to send. CURLOPT_INFILESIZE(3) + +## CURLOPT_INFILESIZE_LARGE + +Size of file to send. CURLOPT_INFILESIZE_LARGE(3) + +## CURLOPT_UPLOAD + +Upload data. See CURLOPT_UPLOAD(3) + +## CURLOPT_UPLOAD_BUFFERSIZE + +Set upload buffer size. See CURLOPT_UPLOAD_BUFFERSIZE(3) + +## CURLOPT_MIMEPOST + +Post/send MIME data. See CURLOPT_MIMEPOST(3) + +## CURLOPT_MIME_OPTIONS + +Set MIME option flags. See CURLOPT_MIME_OPTIONS(3) + +## CURLOPT_MAXFILESIZE + +Maximum file size to get. See CURLOPT_MAXFILESIZE(3) + +## CURLOPT_MAXFILESIZE_LARGE + +Maximum file size to get. See CURLOPT_MAXFILESIZE_LARGE(3) + +## CURLOPT_TIMECONDITION + +Make a time conditional request. See CURLOPT_TIMECONDITION(3) + +## CURLOPT_TIMEVALUE + +Time value for the time conditional request. See CURLOPT_TIMEVALUE(3) + +## CURLOPT_TIMEVALUE_LARGE + +Time value for the time conditional request. See CURLOPT_TIMEVALUE_LARGE(3) + +# CONNECTION OPTIONS + +## CURLOPT_TIMEOUT + +Timeout for the entire request. See CURLOPT_TIMEOUT(3) + +## CURLOPT_TIMEOUT_MS + +Millisecond timeout for the entire request. See CURLOPT_TIMEOUT_MS(3) + +## CURLOPT_LOW_SPEED_LIMIT + +Low speed limit to abort transfer. See CURLOPT_LOW_SPEED_LIMIT(3) + +## CURLOPT_LOW_SPEED_TIME + +Time to be below the speed to trigger low speed abort. See CURLOPT_LOW_SPEED_TIME(3) + +## CURLOPT_MAX_SEND_SPEED_LARGE + +Cap the upload speed to this. See CURLOPT_MAX_SEND_SPEED_LARGE(3) + +## CURLOPT_MAX_RECV_SPEED_LARGE + +Cap the download speed to this. See CURLOPT_MAX_RECV_SPEED_LARGE(3) + +## CURLOPT_MAXCONNECTS + +Maximum number of connections in the connection pool. See CURLOPT_MAXCONNECTS(3) + +## CURLOPT_FRESH_CONNECT + +Use a new connection. CURLOPT_FRESH_CONNECT(3) + +## CURLOPT_FORBID_REUSE + +Prevent subsequent connections from reusing this. See CURLOPT_FORBID_REUSE(3) + +## CURLOPT_MAXAGE_CONN + +Limit the age (idle time) of connections for reuse. See CURLOPT_MAXAGE_CONN(3) + +## CURLOPT_MAXLIFETIME_CONN + +Limit the age (since creation) of connections for reuse. See +CURLOPT_MAXLIFETIME_CONN(3) + +## CURLOPT_CONNECTTIMEOUT + +Timeout for the connection phase. See CURLOPT_CONNECTTIMEOUT(3) + +## CURLOPT_CONNECTTIMEOUT_MS + +Millisecond timeout for the connection phase. See CURLOPT_CONNECTTIMEOUT_MS(3) + +## CURLOPT_IPRESOLVE + +IP version to use. See CURLOPT_IPRESOLVE(3) + +## CURLOPT_CONNECT_ONLY + +Only connect, nothing else. See CURLOPT_CONNECT_ONLY(3) + +## CURLOPT_USE_SSL + +Use TLS/SSL. See CURLOPT_USE_SSL(3) + +## CURLOPT_RESOLVE + +Provide fixed/fake name resolves. See CURLOPT_RESOLVE(3) + +## CURLOPT_DNS_INTERFACE + +Bind name resolves to this interface. See CURLOPT_DNS_INTERFACE(3) + +## CURLOPT_DNS_LOCAL_IP4 + +Bind name resolves to this IP4 address. See CURLOPT_DNS_LOCAL_IP4(3) + +## CURLOPT_DNS_LOCAL_IP6 + +Bind name resolves to this IP6 address. See CURLOPT_DNS_LOCAL_IP6(3) + +## CURLOPT_DNS_SERVERS + +Preferred DNS servers. See CURLOPT_DNS_SERVERS(3) + +## CURLOPT_DNS_SHUFFLE_ADDRESSES + +Shuffle addresses before use. See CURLOPT_DNS_SHUFFLE_ADDRESSES(3) + +## CURLOPT_ACCEPTTIMEOUT_MS + +Timeout for waiting for the server's connect back to be accepted. See +CURLOPT_ACCEPTTIMEOUT_MS(3) + +## CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS + +Timeout for happy eyeballs. See CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS(3) + +## CURLOPT_UPKEEP_INTERVAL_MS + +Sets the interval at which connection upkeep are performed. See +CURLOPT_UPKEEP_INTERVAL_MS(3) + +# SSL and SECURITY OPTIONS + +## CURLOPT_SSLCERT + +Client cert. See CURLOPT_SSLCERT(3) + +## CURLOPT_SSLCERT_BLOB + +Client cert memory buffer. See CURLOPT_SSLCERT_BLOB(3) + +## CURLOPT_PROXY_SSLCERT + +Proxy client cert. See CURLOPT_PROXY_SSLCERT(3) + +## CURLOPT_PROXY_SSLCERT_BLOB + +Proxy client cert memory buffer. See CURLOPT_PROXY_SSLCERT_BLOB(3) + +## CURLOPT_SSLCERTTYPE + +Client cert type. See CURLOPT_SSLCERTTYPE(3) + +## CURLOPT_PROXY_SSLCERTTYPE + +Proxy client cert type. See CURLOPT_PROXY_SSLCERTTYPE(3) + +## CURLOPT_SSLKEY + +Client key. See CURLOPT_SSLKEY(3) + +## CURLOPT_SSLKEY_BLOB + +Client key memory buffer. See CURLOPT_SSLKEY_BLOB(3) + +## CURLOPT_PROXY_SSLKEY + +Proxy client key. See CURLOPT_PROXY_SSLKEY(3) + +## CURLOPT_PROXY_SSLKEY_BLOB + +Proxy client key. See CURLOPT_PROXY_SSLKEY_BLOB(3) + +## CURLOPT_SSLKEYTYPE + +Client key type. See CURLOPT_SSLKEYTYPE(3) + +## CURLOPT_PROXY_SSLKEYTYPE + +Proxy client key type. See CURLOPT_PROXY_SSLKEYTYPE(3) + +## CURLOPT_KEYPASSWD + +Client key password. See CURLOPT_KEYPASSWD(3) + +## CURLOPT_PROXY_KEYPASSWD + +Proxy client key password. See CURLOPT_PROXY_KEYPASSWD(3) + +## CURLOPT_SSL_EC_CURVES + +Set key exchange curves. See CURLOPT_SSL_EC_CURVES(3) + +## CURLOPT_SSL_ENABLE_ALPN + +Enable use of ALPN. See CURLOPT_SSL_ENABLE_ALPN(3) + +## CURLOPT_SSL_ENABLE_NPN + +**OBSOLETE** Enable use of NPN. See CURLOPT_SSL_ENABLE_NPN(3) + +## CURLOPT_SSLENGINE + +Use identifier with SSL engine. See CURLOPT_SSLENGINE(3) + +## CURLOPT_SSLENGINE_DEFAULT + +Default SSL engine. See CURLOPT_SSLENGINE_DEFAULT(3) + +## CURLOPT_SSL_FALSESTART + +Enable TLS False Start. See CURLOPT_SSL_FALSESTART(3) + +## CURLOPT_SSLVERSION + +SSL version to use. See CURLOPT_SSLVERSION(3) + +## CURLOPT_PROXY_SSLVERSION + +Proxy SSL version to use. See CURLOPT_PROXY_SSLVERSION(3) + +## CURLOPT_SSL_VERIFYHOST + +Verify the hostname in the SSL certificate. See CURLOPT_SSL_VERIFYHOST(3) + +## CURLOPT_DOH_SSL_VERIFYHOST + +Verify the hostname in the DoH (DNS-over-HTTPS) SSL certificate. See +CURLOPT_DOH_SSL_VERIFYHOST(3) + +## CURLOPT_PROXY_SSL_VERIFYHOST + +Verify the hostname in the proxy SSL certificate. See +CURLOPT_PROXY_SSL_VERIFYHOST(3) + +## CURLOPT_SSL_VERIFYPEER + +Verify the SSL certificate. See CURLOPT_SSL_VERIFYPEER(3) + +## CURLOPT_DOH_SSL_VERIFYPEER + +Verify the DoH (DNS-over-HTTPS) SSL certificate. See +CURLOPT_DOH_SSL_VERIFYPEER(3) + +## CURLOPT_PROXY_SSL_VERIFYPEER + +Verify the proxy SSL certificate. See CURLOPT_PROXY_SSL_VERIFYPEER(3) + +## CURLOPT_SSL_VERIFYSTATUS + +Verify the SSL certificate's status. See CURLOPT_SSL_VERIFYSTATUS(3) + +## CURLOPT_DOH_SSL_VERIFYSTATUS + +Verify the DoH (DNS-over-HTTPS) SSL certificate's status. See +CURLOPT_DOH_SSL_VERIFYSTATUS(3) + +## CURLOPT_CAINFO + +CA cert bundle. See CURLOPT_CAINFO(3) + +## CURLOPT_CAINFO_BLOB + +CA cert bundle memory buffer. See CURLOPT_CAINFO_BLOB(3) + +## CURLOPT_PROXY_CAINFO + +Proxy CA cert bundle. See CURLOPT_PROXY_CAINFO(3) + +## CURLOPT_PROXY_CAINFO_BLOB + +Proxy CA cert bundle memory buffer. See CURLOPT_PROXY_CAINFO_BLOB(3) + +## CURLOPT_ISSUERCERT + +Issuer certificate. See CURLOPT_ISSUERCERT(3) + +## CURLOPT_ISSUERCERT_BLOB + +Issuer certificate memory buffer. See CURLOPT_ISSUERCERT_BLOB(3) + +## CURLOPT_PROXY_ISSUERCERT + +Proxy issuer certificate. See CURLOPT_PROXY_ISSUERCERT(3) + +## CURLOPT_PROXY_ISSUERCERT_BLOB + +Proxy issuer certificate memory buffer. See CURLOPT_PROXY_ISSUERCERT_BLOB(3) + +## CURLOPT_CAPATH + +Path to CA cert bundle. See CURLOPT_CAPATH(3) + +## CURLOPT_PROXY_CAPATH + +Path to proxy CA cert bundle. See CURLOPT_PROXY_CAPATH(3) + +## CURLOPT_CRLFILE + +Certificate Revocation List. See CURLOPT_CRLFILE(3) + +## CURLOPT_PROXY_CRLFILE + +Proxy Certificate Revocation List. See CURLOPT_PROXY_CRLFILE(3) + +## CURLOPT_CA_CACHE_TIMEOUT + +Timeout for CA cache. See CURLOPT_CA_CACHE_TIMEOUT(3) + +## CURLOPT_CERTINFO + +Extract certificate info. See CURLOPT_CERTINFO(3) + +## CURLOPT_PINNEDPUBLICKEY + +Set pinned SSL public key . See CURLOPT_PINNEDPUBLICKEY(3) + +## CURLOPT_PROXY_PINNEDPUBLICKEY + +Set the proxy's pinned SSL public key. See +CURLOPT_PROXY_PINNEDPUBLICKEY(3) + +## CURLOPT_RANDOM_FILE + +**OBSOLETE** Provide source for entropy random data. +See CURLOPT_RANDOM_FILE(3) + +## CURLOPT_EGDSOCKET + +**OBSOLETE** Identify EGD socket for entropy. See CURLOPT_EGDSOCKET(3) + +## CURLOPT_SSL_CIPHER_LIST + +Ciphers to use. See CURLOPT_SSL_CIPHER_LIST(3) + +## CURLOPT_PROXY_SSL_CIPHER_LIST + +Proxy ciphers to use. See CURLOPT_PROXY_SSL_CIPHER_LIST(3) + +## CURLOPT_TLS13_CIPHERS + +TLS 1.3 cipher suites to use. See CURLOPT_TLS13_CIPHERS(3) + +## CURLOPT_PROXY_TLS13_CIPHERS + +Proxy TLS 1.3 cipher suites to use. See CURLOPT_PROXY_TLS13_CIPHERS(3) + +## CURLOPT_SSL_SESSIONID_CACHE + +Disable SSL session-id cache. See CURLOPT_SSL_SESSIONID_CACHE(3) + +## CURLOPT_SSL_OPTIONS + +Control SSL behavior. See CURLOPT_SSL_OPTIONS(3) + +## CURLOPT_PROXY_SSL_OPTIONS + +Control proxy SSL behavior. See CURLOPT_PROXY_SSL_OPTIONS(3) + +## CURLOPT_KRBLEVEL + +Kerberos security level. See CURLOPT_KRBLEVEL(3) + +## CURLOPT_GSSAPI_DELEGATION + +Disable GSS-API delegation. See CURLOPT_GSSAPI_DELEGATION(3) + +# SSH OPTIONS + +## CURLOPT_SSH_AUTH_TYPES + +SSH authentication types. See CURLOPT_SSH_AUTH_TYPES(3) + +## CURLOPT_SSH_COMPRESSION + +Enable SSH compression. See CURLOPT_SSH_COMPRESSION(3) + +## CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 + +MD5 of host's public key. See CURLOPT_SSH_HOST_PUBLIC_KEY_MD5(3) + +## CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 + +SHA256 of host's public key. See CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256(3) + +## CURLOPT_SSH_PUBLIC_KEYFILE + +Filename of the public key. See CURLOPT_SSH_PUBLIC_KEYFILE(3) + +## CURLOPT_SSH_PRIVATE_KEYFILE + +Filename of the private key. See CURLOPT_SSH_PRIVATE_KEYFILE(3) + +## CURLOPT_SSH_KNOWNHOSTS + +Filename with known hosts. See CURLOPT_SSH_KNOWNHOSTS(3) + +## CURLOPT_SSH_KEYFUNCTION + +Callback for known hosts handling. See CURLOPT_SSH_KEYFUNCTION(3) + +## CURLOPT_SSH_KEYDATA + +Custom pointer to pass to ssh key callback. See CURLOPT_SSH_KEYDATA(3) + +## CURLOPT_SSH_HOSTKEYFUNCTION + +Callback for checking host key handling. See CURLOPT_SSH_HOSTKEYFUNCTION(3) + +## CURLOPT_SSH_HOSTKEYDATA + +Custom pointer to pass to ssh host key callback. See CURLOPT_SSH_HOSTKEYDATA(3) + +# WEBSOCKET + +## CURLOPT_WS_OPTIONS + +Set WebSocket options. See CURLOPT_WS_OPTIONS(3) + +# OTHER OPTIONS + +## CURLOPT_PRIVATE + +Private pointer to store. See CURLOPT_PRIVATE(3) + +## CURLOPT_SHARE + +Share object to use. See CURLOPT_SHARE(3) + +## CURLOPT_NEW_FILE_PERMS + +Mode for creating new remote files. See CURLOPT_NEW_FILE_PERMS(3) + +## CURLOPT_NEW_DIRECTORY_PERMS + +Mode for creating new remote directories. See CURLOPT_NEW_DIRECTORY_PERMS(3) + +## CURLOPT_QUICK_EXIT + +To be set by toplevel tools like "curl" to skip lengthy cleanups when they are +about to call exit() anyway. See CURLOPT_QUICK_EXIT(3) + +# TELNET OPTIONS + +## CURLOPT_TELNETOPTIONS + +TELNET options. See CURLOPT_TELNETOPTIONS(3) + +# EXAMPLE + +~~~c +int main(void) +{ + CURL *curl = curl_easy_init(); + if(curl) { + CURLcode res; + curl_easy_setopt(curl, CURLOPT_URL, "https://example.com"); + res = curl_easy_perform(curl); + curl_easy_cleanup(curl); + } +} +~~~ + +# AVAILABILITY + +Always + +# RETURN VALUE + +*CURLE_OK* (zero) means that the option was set properly, non-zero means an +error occurred as *<curl/curl.h>* defines. See the libcurl-errors(3) man page +for the full list with descriptions. + +Strings passed on to libcurl must be shorter than 8000000 bytes, otherwise +curl_easy_setopt(3) returns **CURLE_BAD_FUNCTION_ARGUMENT** (added in 7.65.0). + +**CURLE_BAD_FUNCTION_ARGUMENT** is returned when the argument to an option is +invalid, like perhaps out of range. + +If you try to set an option that libcurl does not know about, perhaps because +the library is too old to support it or the option was removed in a recent +version, this function returns *CURLE_UNKNOWN_OPTION*. If support for the +option was disabled at compile-time, it returns *CURLE_NOT_BUILT_IN*. |