Package libcurl-devel

Files needed for building applications with libcurl

http://curl.haxx.se/

The libcurl-devel package includes header files and libraries necessary for
developing programs which use the libcurl library. It contains the API
documentation of the library, too.

General Commands (Section 1)
curl-config
curl-config displays information about the curl and libcurl installation.
Library Functions (Section 3)
curl_easy_cleanup
This function must be the last function to call for an easy session. It is the opposite of the curl_easy_init(3) function and must be called with the same...
curl_easy_duphandle
This function will return a new curl handle, a duplicate, using all the options previously set in the input curl handle. Both handles can subsequently be used...
curl_easy_escape
This function converts the given input string to a URL encoded string and returns that as a new allocated string. All input characters that are not a-z, A-Z...
curl_easy_getinfo
Request internal information from the curl session with this function. The third argument MUST be a pointer to a long, a pointer to a char *, a pointer to a...
curl_easy_init
This function must be the first function to call, and it returns a CURL easy handle that you must use as input to other functions in the easy interface. This...
curl_easy_pause
Using this function, you can explicitly mark a running connection to get paused, and you can unpause a connection that was previously paused. A connection can...
curl_easy_perform
Invoke this function after curl_easy_init(3) and all the curl_easy_setopt(3) calls are made, and will perform the transfer as described in the options. It must...
curl_easy_recv
This function receives raw data from the established connection. You may use it together with curl_easy_send(3) to implement custom protocols using libcurl...
curl_easy_reset
Re-initializes all options previously set on a specified CURL handle to the default values. This puts back the handle to the same state as it was in when it was...
curl_easy_send
This function sends arbitrary data over the established connection. You may use it together with curl_easy_recv(3) to implement custom protocols using libcurl...
curl_easy_setopt
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...
curl_easy_strerror
The curl_easy_strerror(3) function returns a string describing the CURLcode error code passed in the argument errornum. Typically applications also appreciate...
curl_easy_unescape
This function converts the given URL encoded input string to a "plain string" and returns that in an allocated memory area. All input characters that are URL...
curl_escape
Obsolete function. Use curl_easy_escape(3) instead! This function will convert the given input string to an URL encoded string and return that as a new...
curl_formadd
curl_formadd() is used to append sections when building a multipart/formdata HTTP POST (sometimes referred to as RFC2388-style posts). Append one section at a...
curl_formfree
curl_formfree() is used to clean up data previously built/appended with curl_formadd(3). This must be called when the data has been used, which typically means...
curl_formget
curl_formget() is used to serialize data previously built/appended with curl_formadd(3). Accepts a void pointer as second argument named userp which will be...
curl_free
curl_free reclaims memory that has been obtained through a libcurl call. Use curl_free(3) instead of free() to avoid anomalies that can result from differences...
curl_getdate
curl_getdate(3) returns the number of seconds since the Epoch, January 1st 1970 00:00:00 in the UTC time zone, for the date and time that the datestring...
curl_getenv
curl_getenv() is a portable wrapper for the getenv() function, meant to emulate its behaviour and provide an identical interface for all operating systems...
curl_global_cleanup
This function releases resources acquired by curl_global_init(3). You should call curl_global_cleanup(3) once for each call you make to curl_global_init(3)...
curl_global_init
This function sets up the program environment that libcurl needs. Think of it as an extension of the library loader. This function must be called at least once...
curl_global_init_mem
This function works exactly as curl_global_init(3) with one addition: it allows the application to set callbacks to replace the otherwise used internal memory...
CURLINFO_ACTIVESOCKET
Pass a pointer to a curl_socket_t to receive the active socket used by this curl session. If the socket is no longer valid, CURL_SOCKET_BAD is returned. When...
CURLINFO_APPCONNECT_TIME
Pass a pointer to a double to receive the time, in seconds, it took from the start until the SSL/SSH connect/handshake to the remote host was completed. This...
CURLINFO_CERTINFO
Pass a pointer to a 'struct curl_certinfo *' and you'll get it set to point to struct that holds a number of linked lists with info about the certificate chain...
CURLINFO_CONDITION_UNMET
Pass a pointer to a long to receive the number 1 if the condition provided in the previous request didn't match (see CURLOPT_TIMECONDITION(3)). Alas, if this...
CURLINFO_CONNECT_TIME
Pass a pointer to a double to receive the total time in seconds from the start until the connection to the remote host (or proxy) was completed. See also the...
CURLINFO_CONTENT_LENGTH_DOWNLOAD
Pass a pointer to a double to receive the content-length of the download. This is the value read from the Content-Length: field. Since 7.19.4, this returns -1...
CURLINFO_CONTENT_LENGTH_UPLOAD
Pass a pointer to a double to receive the specified size of the upload. Since 7.19.4, this returns -1 if the size isn't known.
CURLINFO_CONTENT_TYPE
Pass a pointer to a char pointer to receive the content-type of the downloaded object. This is the value read from the Content-Type: field. If you get NULL, it...
CURLINFO_COOKIELIST
Pass a pointer to a 'struct curl_slist *' to receive a linked-list of all cookies curl knows (expired ones, too). Don't forget to call curl_slist_free_all(3) on...
CURLINFO_EFFECTIVE_URL
Pass in a pointer to a char pointer and get the last used effective URL. In cases when you've asked libcurl to follow redirects, it may very well not be the...
CURLINFO_FILETIME
Pass a pointer to a long to receive the remote time of the retrieved document (in number of seconds since 1 jan 1970 in the GMT/UTC time zone). If you get -1...
CURLINFO_FTP_ENTRY_PATH
Pass a pointer to a char pointer to receive a pointer to a string holding the path of the entry path. That is the initial path libcurl ended up in when logging...
CURLINFO_HEADER_SIZE
Pass a pointer to a long to receive the total size of all the headers received. Measured in number of bytes.
CURLINFO_HTTPAUTH_AVAIL
Pass a pointer to a long to receive a bitmask indicating the authentication method(s) available according to the previous response. The meaning of the bits is...
CURLINFO_HTTP_CONNECTCODE
Pass a pointer to a long to receive the last received HTTP proxy response code to a CONNECT request. The returned value will be zero if no such response code...
CURLINFO_HTTP_VERSION
Pass a pointer to a long to receive the version used in the last http connection. The returned value will be CURL_HTTP_VERSION_1_0, CURL_HTTP_VERSION_1_1, or...
CURLINFO_LASTSOCKET
Deprecated since 7.45.0. Use CURLINFO_ACTIVESOCKET(3) instead. Pass a pointer to a long to receive the last socket used by this curl session. If the socket is...
CURLINFO_LOCAL_IP
Pass a pointer to a char pointer to receive the pointer to a zero-terminated string holding the IP address of the local end of most recent connection done with...
CURLINFO_LOCAL_PORT
Pass a pointer to a long to receive the local port number of the most recent connection done with this curl handle.
CURLINFO_NAMELOOKUP_TIME
Pass a pointer to a double to receive the total time in seconds from the start until the name resolving was completed. See also the TIMES overview in the...
CURLINFO_NUM_CONNECTS
Pass a pointer to a long to receive how many new connections libcurl had to create to achieve the previous transfer (only the successful connects are counted)...
CURLINFO_OS_ERRNO
Pass a pointer to a long to receive the errno variable from a connect failure. Note that the value is only set on failure, it is not reset upon a successful...
CURLINFO_PRETRANSFER_TIME
Pass a pointer to a double to receive the time, in seconds, it took from the start until the file transfer is just about to begin. This includes all...
CURLINFO_PRIMARY_IP
Pass a pointer to a char pointer to receive the pointer to a zero-terminated string holding the IP address of the most recent connection done with this curl...
CURLINFO_PRIMARY_PORT
Pass a pointer to a long to receive the destination port of the most recent connection done with this curl handle.
CURLINFO_PRIVATE
Pass a pointer to a char pointer to receive the pointer to the private data associated with the curl handle (set with the CURLOPT_PRIVATE(3)). Please note that...
CURLINFO_PROXYAUTH_AVAIL
Pass a pointer to a long to receive a bitmask indicating the authentication method(s) available according to the previous response. The meaning of the bits is...
CURLINFO_REDIRECT_COUNT
Pass a pointer to a long to receive the total number of redirections that were actually followed.
CURLINFO_REDIRECT_TIME
Pass a pointer to a double to receive the total time, in seconds, it took for all redirection steps include name lookup, connect, pretransfer and transfer...
CURLINFO_REDIRECT_URL
Pass a pointer to a char pointer to receive the URL a redirect would take you to if you would enable CURLOPT_FOLLOWLOCATION(3). This can come very handy if you...
CURLINFO_REQUEST_SIZE
Pass a pointer to a long to receive the total size of the issued requests. This is so far only for HTTP requests. Note that this may be more than one request if...
CURLINFO_RESPONSE_CODE
Pass a pointer to a long to receive the last received HTTP, FTP or SMTP response code. This option was previously known as CURLINFO_HTTP_CODE in libcurl 7.10.7...
CURLINFO_RTSP_CLIENT_CSEQ
Pass a pointer to a long to receive the next CSeq that will be used by the application.
CURLINFO_RTSP_CSEQ_RECV
Pass a pointer to a long to receive the most recently received CSeq from the server. If your application encounters a CURLE_RTSP_CSEQ_ERROR then you may wish to...
CURLINFO_RTSP_SERVER_CSEQ
Pass a pointer to a long to receive the next CSeq that will be expected by the application. Llistening for server initiated requests is currently unimplemented!...
CURLINFO_RTSP_SESSION_ID
Pass a pointer to a char pointer to receive a pointer to a string holding the most recent RTSP Session ID. Applications wishing to resume an RTSP session on...
CURLINFO_SIZE_DOWNLOAD
Pass a pointer to a double to receive the total amount of bytes that were downloaded. The amount is only for the latest transfer and will be reset again for...
CURLINFO_SIZE_UPLOAD
Pass a pointer to a double to receive the total amount of bytes that were uploaded.
CURLINFO_SPEED_DOWNLOAD
Pass a pointer to a double to receive the average download speed that curl measured for the complete download. Measured in bytes/second.
CURLINFO_SPEED_UPLOAD
Pass a pointer to a double to receive the average upload speed that curl measured for the complete upload. Measured in bytes/second.
CURLINFO_SSL_ENGINES
Pass the address of a 'struct curl_slist *' to receive a linked-list of OpenSSL crypto-engines supported. Note that engines are normally implemented in separate...
CURLINFO_SSL_VERIFYRESULT
Pass a pointer to a long to receive the result of the certification verification that was requested (using the CURLOPT_SSL_VERIFYPEER(3) option.
CURLINFO_STARTTRANSFER_TIME
Pass a pointer to a double to receive the time, in seconds, it took from the start until the first byte is received by libcurl. This includes...
CURLINFO_TLS_SESSION
This option has been superseded by CURLINFO_TLS_SSL_PTR(3) which was added in 7.48.0. The only reason you would use this option instead is if you could be using...
CURLINFO_TLS_SSL_PTR
Pass a pointer to a 'struct curl_tlssessioninfo *'. The pointer will be initialized to refer to a 'struct curl_tlssessioninfo *' that will contain an enum...
CURLINFO_TOTAL_TIME
Pass a pointer to a double to receive the total time in seconds for the previous transfer, including name resolving, TCP connect etc. The double represents the...
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE
Pass a long with a size in bytes. If a pipelined connection is currently processing a chunked (Transfer-encoding: chunked) request with a current chunk length...
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE
Pass a long with a size in bytes. If a pipelined connection is currently processing a request with a Content-Length larger than this...
CURLMOPT_MAXCONNECTS
Pass a long indicating the max. The set number will be used as the maximum amount of simultaneously open connections that libcurl may keep in its connection...
CURLMOPT_MAX_HOST_CONNECTIONS
Pass a long to indicate max. The set number will be used as the maximum amount of simultaneously open connections to a single host (a host being the same as a...
CURLMOPT_MAX_PIPELINE_LENGTH
Pass a long. The set max number will be used as the maximum amount of outstanding requests in an HTTP/1.1 pipelined connection. This option is only used for...
CURLMOPT_MAX_TOTAL_CONNECTIONS
Pass a long for the amount. The set number will be used as the maximum number of simultaneously open connections in total using this multi handle. For each new...
CURLMOPT_PIPELINING
Pass in the bitmask parameter to instruct libcurl to enable HTTP pipelining and/or HTTP/2 multiplexing for this multi handle. When enabled, libcurl will attempt...
CURLMOPT_PIPELINING_SERVER_BL
Pass a servers array of char *, ending with a NULL entry. This is a list of server types prefixes (in the Server: HTTP header) that are blacklisted from...
CURLMOPT_PIPELINING_SITE_BL
Pass a hosts array of char *, ending with a NULL entry. This is a list of sites that are blacklisted from pipelining, i.e sites that are known to not support...
CURLMOPT_PUSHDATA
Set pointer to pass as the last argument to the CURLMOPT_PUSHFUNCTION(3) callback. The pointer will not be touched or used by libcurl itself, only passed on to...
CURLMOPT_PUSHFUNCTION
This callback gets called when a new HTTP/2 stream is being pushed by the server (using the PUSH_PROMISE frame). If no push callback is set, all offered pushes...
CURLMOPT_SOCKETDATA
A data pointer to pass to the socket callback set with the CURLMOPT_SOCKETFUNCTION(3) option. This pointer will not be touched by libcurl but will only be...
CURLMOPT_SOCKETFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. When the curl_multi_socket_action(3) function runs, it informs the...
CURLMOPT_TIMERDATA
A data pointer to pass to the timer callback set with the CURLMOPT_TIMERFUNCTION(3) option. This pointer will not be touched by libcurl but will only be passed...
CURLMOPT_TIMERFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. Certain features, such as timeouts and retries, require you to call...
curl_mprintf
These are all functions that produce output according to a format string and given arguments. These are mostly clones of the well-known C-style functions and...
curl_multi_add_handle
Adds a standard easy handle to the multi stack. This function call will make this multi_handle control the specified easy_handle. While an easy handle is added...
curl_multi_assign
This function creates an association in the multi handle between the given socket and a private pointer of the application. This is designed for...
curl_multi_cleanup
Cleans up and removes a whole multi stack. It does not free or touch any individual easy handles in any way - they still need to be closed individually, using...
curl_multi_fdset
This function extracts file descriptor information from a given multi_handle. libcurl returns its fd_set sets. The application can use these to select() on, but...
curl_multi_info_read
Ask the multi handle if there are any messages/informationals from the individual transfers. Messages may include informationals such as an error code from the...
curl_multi_init
This function returns a CURLM handle to be used as input to all the other multi-functions, sometimes referred to as a multi handle in some places in the...
curl_multi_perform
This function handles transfers on all the added handles that need attention in an non-blocking fashion. When an application has found out there's data...
curl_multi_remove_handle
Removes a given easy_handle from the multi_handle. This will make the specified easy handle be removed from this multi handle's control. When the easy handle...
curl_multi_setopt
curl_multi_setopt(3) is used to tell a libcurl multi handle how to behave. By using the appropriate options to curl_multi_setopt(3), you can change libcurl's...
curl_multi_socket
These functions are deprecated. Do not use! See curl_multi_socket_action(3) instead! At return, the integer running_handles points to will contain the number of...
curl_multi_socket_action
When the application has detected action on a socket handled by libcurl, it should call curl_multi_socket_action(3) with the sockfd argument set to the socket...
curl_multi_strerror
The curl_multi_strerror() function returns a string describing the CURLMcode error code passed in the argument errornum.
curl_multi_timeout
An application using the libcurl multi interface should call curl_multi_timeout(3) to figure out how long it should wait for socket actions - at most - before...
curl_multi_wait
curl_multi_wait(3) polls all file descriptors used by the curl easy handles contained in the given multi handle set. It will block until activity is detected on...
CURLOPT_ACCEPT_ENCODING
Pass a char * argument specifying what encoding you'd like. Sets the contents of the Accept-Encoding: header sent in a HTTP request, and enables decoding of a...
CURLOPT_ACCEPTTIMEOUT_MS
Pass a long telling libcurl the maximum number of milliseconds to wait for a server to connect back to libcurl when an active FTP connection is used.
CURLOPT_ADDRESS_SCOPE
Pass a long specifying the scope_id value to use when connecting to IPv6 link-local or site-local addresses.
CURLOPT_APPEND
A long parameter set to 1 tells the library to append to the remote file instead of overwrite it. This is only useful when uploading to an FTP site.
CURLOPT_AUTOREFERER
Pass a parameter set to 1 to enable this. When enabled, libcurl will automatically set the Referer: header field in HTTP requests where it follows a Location...
CURLOPT_BUFFERSIZE
Pass a long specifying your preferred size (in bytes) for the receive buffer in libcurl. The main point of this would be that the write callback gets called...
CURLOPT_CAINFO
Pass a char * to a zero terminated string naming a file holding one or more certificates to verify the peer with. If CURLOPT_SSL_VERIFYPEER(3) is zero and you...
CURLOPT_CAPATH
Pass a char * to a zero terminated string naming a directory holding multiple CA certificates to verify the peer with. If libcurl is built against OpenSSL, the...
CURLOPT_CERTINFO
Pass a long set to 1 to enable libcurl's certificate chain info gatherer. With this enabled, libcurl will extract lots of information and data about the...
CURLOPT_CHUNK_BGN_FUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. This callback function gets called by libcurl before a part of the...
CURLOPT_CHUNK_DATA
Pass a pointer that will be untouched by libcurl and passed as the ptr argument to the CURLOPT_CHUNK_BGN_FUNCTION(3) and CURLOPT_CHUNK_END_FUNCTION(3).
CURLOPT_CHUNK_END_FUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. This function gets called by libcurl as soon as a part of the stream has...
CURLOPT_CLOSESOCKETDATA
Pass a pointer that will be untouched by libcurl and passed as the first argument in the closesocket callback set with CURLOPT_CLOSESOCKETFUNCTION(3).
CURLOPT_CLOSESOCKETFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. This callback function gets called by libcurl instead of the close(3) or...
CURLOPT_CONNECT_ONLY
Pass a long. If the parameter equals 1, it tells the library to perform all the required proxy authentication and connection setup, but no data transfer, and...
CURLOPT_CONNECTTIMEOUT
Pass a long. It should contain the maximum time in seconds that you allow the connection phase to the server to take. This only limits the connection phase, it...
CURLOPT_CONNECTTIMEOUT_MS
Pass a long. It should contain the maximum time in milliseconds that you allow the connection phase to the server to take. This only limits the connection...
CURLOPT_CONNECT_TO
Pass a pointer to a linked list of strings with "connect to" information to use for establishing network connections with this handle. The linked list should be...
CURLOPT_CONV_FROM_NETWORK_FUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. Applies to non-ASCII platforms. curl_version_info(3) will return the...
CURLOPT_CONV_FROM_UTF8_FUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. Applies to non-ASCII platforms. curl_version_info(3) will return the...
CURLOPT_CONV_TO_NETWORK_FUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. Applies to non-ASCII platforms. curl_version_info(3) will return the...
CURLOPT_COOKIE
Pass a pointer to a zero terminated string as parameter. It will be used to set a cookie in the HTTP request. The format of the string should be NAME=CONTENTS...
CURLOPT_COOKIEFILE
Pass a pointer to a zero terminated string as parameter. It should point to the file name of your file holding cookie data to read. The cookie data can be in...
CURLOPT_COOKIEJAR
Pass a filename as char *, zero terminated. This will make libcurl write all internally known cookies to the specified file when curl_easy_cleanup(3) is called...
CURLOPT_COOKIELIST
Pass a char * to a cookie string. Such a cookie can be either a single line in Netscape / Mozilla format or just regular HTTP-style header (Set-Cookie: ...)...
CURLOPT_COOKIESESSION
Pass a long set to 1 to mark this as a new cookie "session". It will force libcurl to ignore all cookies it is about to load that are "session cookies" from the...
CURLOPT_COPYPOSTFIELDS
Pass a char * as parameter, which should be the full data to post in a HTTP POST operation. It behaves as the CURLOPT_POSTFIELDS(3) option, but the original...
CURLOPT_CRLF
Pass a long. If the value is set to 1 (one), libcurl converts Unix newlines to CRLF newlines on transfers. Disable this option again by setting the value to 0...
CURLOPT_CRLFILE
Pass a char * to a zero terminated string naming a file with the concatenation of CRL (in PEM format) to use in the certificate validation that occurs during...
CURLOPT_CUSTOMREQUEST
Pass a pointer to a zero terminated string as parameter. When you change the request method by setting CURLOPT_CUSTOMREQUEST(3) to something, you don't actually...
CURLOPT_DEBUGDATA
Pass a pointer to whatever you want passed in to your CURLOPT_DEBUGFUNCTION(3) in the last void * argument. This pointer is not used by libcurl, it is only...
CURLOPT_DEBUGFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. CURLOPT_DEBUGFUNCTION(3) replaces the standard debug function used when...
CURLOPT_DEFAULT_PROTOCOL
This option tells libcurl to use protocol if the URL is missing a scheme name. Use one of these protocol (scheme) names: dict, file, ftp, ftps, gopher, http...
CURLOPT_DIRLISTONLY
For FTP and SFTP based URLs a parameter set to 1 tells the library to list the names of files in a directory, rather than performing a full directory listing...
CURLOPT_DNS_CACHE_TIMEOUT
Pass a long, this sets the timeout in seconds. Name resolves will be kept in memory and used for this number of seconds. Set to zero to completely disable...
CURLOPT_DNS_INTERFACE
Pass a char * as parameter. Set the name of the network interface that the DNS resolver should bind to. This must be an interface name (not an address). Set...
CURLOPT_DNS_LOCAL_IP4
Set the local IPv4 address that the resolver should bind to. The argument should be of type char * and contain a single numerical IPv4 address as a string. Set...
CURLOPT_DNS_LOCAL_IP6
Set the local IPv6 address that the resolver should bind to. The argument should be of type char * and contain a single IPv6 address as a string. Set this...
CURLOPT_DNS_SERVERS
Pass a char * that is the list of DNS servers to be used instead of the system default. The format of the dns servers option is: host[:port][,host[:port]]...
CURLOPT_DNS_USE_GLOBAL_CACHE
Pass a long. If the enable value is 1, it tells curl to use a global DNS cache that will survive between easy handle creations and deletions. This is not...
CURLOPT_EGDSOCKET
Pass a char * to the zero terminated path name to the Entropy Gathering Daemon socket. It will be used to seed the random engine for SSL.
CURLOPT_ERRORBUFFER
Pass a char * to a buffer that the libcurl may store human readable error messages in on failures or problems. This may be more helpful than just the return...
CURLOPT_EXPECT_100_TIMEOUT_MS
Pass a long to tell libcurl the number of milliseconds to wait for a server response with the HTTP status 100 (Continue), 417 (Expectation Failed) or similar...
CURLOPT_FAILONERROR
A long parameter set to 1 tells the library to fail the request if the HTTP code returned is equal to or larger than 400. The default action would be to return...
CURLOPT_FILETIME
Pass a long. If it is 1, libcurl will attempt to get the modification time of the remote document in this operation. This requires that the remote server sends...
CURLOPT_FNMATCH_DATA
Pass a pointer that will be untouched by libcurl and passed as the ptr argument to the CURLOPT_FNMATCH_FUNCTION(3).
CURLOPT_FNMATCH_FUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. This callback is used for wildcard matching. Return...
CURLOPT_FOLLOWLOCATION
A long parameter set to 1 tells the library to follow any Location: header that the server sends as part of a HTTP header in a 3xx response. The Location...
CURLOPT_FORBID_REUSE
Pass a long. Set close to 1 to make libcurl explicitly close the connection when done with the transfer. Normally, libcurl keeps all connections alive when done...
CURLOPT_FRESH_CONNECT
Pass a long. Set to 1 to make the next transfer use a new (fresh) connection by force instead of trying to re-use an existing one. This option should be used...
CURLOPT_FTP_ACCOUNT
Pass a pointer to a zero terminated string (or NULL to disable). When an FTP server asks for "account data" after user name and password has been provided, this...
CURLOPT_FTP_ALTERNATIVE_TO_USER
Pass a char * as parameter, pointing to a string which will be used to authenticate if the usual FTP "USER user" and "PASS password" negotiation fails. This is...
CURLOPT_FTP_CREATE_MISSING_DIRS
Pass a long telling libcurl to create the dir. If the value is CURLFTP_CREATE_DIR (1), libcurl will attempt to create any remote directory that it fails to...
CURLOPT_FTP_FILEMETHOD
Pass a long telling libcurl which method to use to reach a file on a FTP(S) server. This option exists because some server implementations aren't compliant to...
CURLOPT_FTPPORT
Pass a pointer to a zero terminated string as parameter. It specifies that the FTP transfer will be made actively and the given string will be used to get the...
CURLOPT_FTP_RESPONSE_TIMEOUT
Pass a long. Causes libcurl to set a timeout period (in seconds) on the amount of time that the server is allowed to take in order to send a response message...
CURLOPT_FTP_SKIP_PASV_IP
Pass a long. If skip is set to 1, it instructs libcurl to not use the IP address the server suggests in its 227-response to libcurl's PASV command when libcurl...
CURLOPT_FTPSSLAUTH
Pass a long using one of the values from below, to alter how libcurl issues "AUTH TLS" or "AUTH SSL" when FTP over SSL is activated. This is only interesting if...
CURLOPT_FTP_SSL_CCC
If enabled, this option makes libcurl use CCC (Clear Command Channel). It shuts down the SSL/TLS layer after authenticating. The rest of the control channel...
CURLOPT_FTP_USE_EPRT
Pass a long. If the value is 1, it tells curl to use the EPRT command when doing active FTP downloads (which is enabled by CURLOPT_FTPPORT(3)). Using EPRT means...
CURLOPT_FTP_USE_EPSV
Pass epsv as a long. If the value is 1, it tells curl to use the EPSV command when doing passive FTP downloads (which it does by default). Using EPSV means that...
CURLOPT_FTP_USE_PRET
Pass a long. If the value is 1, it tells curl to send a PRET command before PASV (and EPSV). Certain FTP servers, mainly drftpd, require this non-standard...
CURLOPT_GSSAPI_DELEGATION
Set the long parameter level to CURLGSSAPI_DELEGATION_FLAG to allow unconditional GSSAPI credential delegation. The delegation is disabled by default since...
CURLOPT_HEADER
Pass in onoff set to 1 to tell the library to include the header in the body output for requests with this handle. This option is relevant for protocols that...
CURLOPT_HEADERDATA
Pass a pointer to be used to write the header part of the received data to. If CURLOPT_WRITEFUNCTION(3) or CURLOPT_HEADERFUNCTION(3) is used, pointer will be...
CURLOPT_HEADERFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. This function gets called by libcurl as soon as it has received header...
CURLOPT_HEADEROPT
Pass a long that is a bitmask of options of how to deal with headers. The two mutually exclusive options are: CURLHEADER_UNIFIED - the headers specified in...
CURLOPT_HTTP200ALIASES
Pass a pointer to a linked list of aliases to be treated as valid HTTP 200 responses. Some servers respond with a custom header response line. For example...
CURLOPT_HTTPAUTH
Pass a long as parameter, which is set to a bitmask, to tell libcurl which authentication method(s) you want it to use speaking to the remote server. The...
CURLOPT_HTTP_CONTENT_DECODING
Pass a long to tell libcurl how to act on content decoding. If set to zero, content decoding will be disabled. If set to 1 it is enabled. Libcurl has no default...
CURLOPT_HTTPGET
Pass a long. If useget is 1, this forces the HTTP request to get back to using GET. Usable if a POST, HEAD, PUT, etc has been used previously using the same...
CURLOPT_HTTPHEADER
Pass a pointer to a linked list of HTTP headers to pass to the server and/or proxy in your HTTP request. The same list can be used for both host and proxy...
CURLOPT_HTTPPOST
Tells libcurl you want a multipart/formdata HTTP POST to be made and you instruct what data to pass on to the server in the formpost argument. Pass a pointer to...
CURLOPT_HTTPPROXYTUNNEL
Set the parameter to 1 to make libcurl tunnel all operations through the HTTP proxy. There is a big difference between using a proxy and to tunnel through it...
CURLOPT_HTTP_TRANSFER_DECODING
Pass a long to tell libcurl how to act on transfer decoding. If set to zero, transfer decoding will be disabled, if set to 1 it is enabled (default). libcurl...
CURLOPT_HTTP_VERSION
Pass version a long, set to one of the values described below. They ask libcurl to use the specific HTTP versions. This is not sensible to do unless you have a...
CURLOPT_IGNORE_CONTENT_LENGTH
If ignore is set to 1L, ignore the Content-Length header in the HTTP response and ignore asking for or relying on it for FTP transfers. This is useful for HTTP...
CURLOPT_INFILESIZE
When uploading a file to a remote site, filesize should be used to tell libcurl what the expected size of the input file is. This value must be passed as a...
CURLOPT_INFILESIZE_LARGE
When uploading a file to a remote site, filesize should be used to tell libcurl what the expected size of the input file is. This value must be passed as a...
CURLOPT_INTERFACE
Pass a char * as parameter. This sets the interface name to use as outgoing network interface. The name can be an interface name, an IP address, or a host name...
CURLOPT_INTERLEAVEDATA
This is the userdata pointer that will be passed to CURLOPT_INTERLEAVEFUNCTION(3) when interleaved RTP data is received.
CURLOPT_INTERLEAVEFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. This callback function gets called by libcurl as soon as it has received...
CURLOPT_IOCTLDATA
Pass the pointer that will be untouched by libcurl and passed as the 3rd argument in the ioctl callback set with CURLOPT_IOCTLFUNCTION(3).
CURLOPT_IOCTLFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. This callback function gets called by libcurl when something special...
CURLOPT_IPRESOLVE
Allows an application to select what kind of IP addresses to use when resolving host names. This is only interesting when using host names that resolve...
CURLOPT_ISSUERCERT
Pass a char * to a zero terminated string naming a file holding a CA certificate in PEM format. If the option is set, an additional check against the peer...
CURLOPT_KEEP_SENDING_ON_ERROR
A long parameter set to 1 tells the library to keep sending the request body if the HTTP code returned is equal to or larger than 300. The default action would...
CURLOPT_KEYPASSWD
Pass a pointer to a zero terminated string as parameter. It will be used as the password required to use the CURLOPT_SSLKEY(3) or CURLOPT_SSH_PRIVATE_KEYFILE(3)...
CURLOPT_KRBLEVEL
Pass a char * as parameter. Set the kerberos security level for FTP; this also enables kerberos awareness. This is a string that should match one of the...
CURLOPT_LOCALPORT
Pass a long. This sets the local port number of the socket used for the connection. This can be used in combination with CURLOPT_INTERFACE(3) and you are...
CURLOPT_LOCALPORTRANGE
Pass a long. The range argument is the number of attempts libcurl will make to find a working local port number. It starts with the given CURLOPT_LOCALPORT(3)...
CURLOPT_LOGIN_OPTIONS
Pass a char * as parameter, which should be pointing to the zero terminated options string to use for the transfer. For more information about the login options...
CURLOPT_LOW_SPEED_LIMIT
Pass a long as parameter. It contains the average transfer speed in bytes per second that the transfer should be below during CURLOPT_LOW_SPEED_TIME(3) seconds...
CURLOPT_LOW_SPEED_TIME
Pass a long as parameter. It contains the time in number seconds that the transfer speed should be below the CURLOPT_LOW_SPEED_LIMIT(3) for the library to...
CURLOPT_MAIL_AUTH
Pass a pointer to a zero terminated string as parameter. This will be used to specify the authentication address (identity) of a submitted message that is being...
CURLOPT_MAIL_FROM
Pass a pointer to a zero terminated string as parameter. This should be used to specify the sender's email address when sending SMTP mail with libcurl. An...
CURLOPT_MAIL_RCPT
Pass a pointer to a linked list of recipients to pass to the server in your SMTP mail request. The linked list should be a fully valid list of struct curl_slist...
CURLOPT_MAXCONNECTS
Pass a long. The set amount will be the maximum number of simultaneously open persistent connections that libcurl may cache in the pool associated with this...
CURLOPT_MAXFILESIZE
Pass a long as parameter. This allows you to specify the maximum size (in bytes) of a file to download. If the file requested is found larger than this value...
CURLOPT_MAXFILESIZE_LARGE
Pass a curl_off_t as parameter. This allows you to specify the maximum size (in bytes) of a file to download. If the file requested is found larger than this...
CURLOPT_MAX_RECV_SPEED_LARGE
Pass a curl_off_t as parameter. If a download exceeds this speed (counted in bytes per second) the transfer will pause to keep the speed less than or equal to...
CURLOPT_MAXREDIRS
Pass a long. The set number will be the redirection limit amount. If that many redirections have been followed, the next redirect will cause an error...
CURLOPT_MAX_SEND_SPEED_LARGE
Pass a curl_off_t as parameter with the maxspeed. If an upload exceeds this speed (counted in bytes per second) the transfer will pause to keep the speed less...
CURLOPT_NETRC
This parameter controls the preference level of libcurl between using user names and passwords from your ~/.netrc file, relative to user names and passwords in...
CURLOPT_NETRC_FILE
Pass a char * as parameter, pointing to a zero terminated string containing the full path name to the file you want libcurl to use as .netrc file. If this...
CURLOPT_NEW_DIRECTORY_PERMS
Pass a long as a parameter, containing the value of the permissions that will be assigned to newly created directories on the remote server. The default value...
CURLOPT_NEW_FILE_PERMS
Pass a long as a parameter, containing the value of the permissions that will be assigned to newly created files on the remote server. The default value is...
CURLOPT_NOBODY
A long parameter set to 1 tells libcurl to not include the body-part in the output when doing what would otherwise be a download. For HTTP(S), this makes...
CURLOPT_NOPROGRESS
If onoff is to 1, it tells the library to shut off the progress meter completely for requests done with this handle. It will also prevent the...
CURLOPT_NOPROXY
Pass a pointer to a zero terminated string. The string consists of a comma separated list of host names that do not require a proxy to get reached, even if one...
CURLOPT_NOSIGNAL
If onoff is 1, libcurl will not use any functions that install signal handlers or any functions that cause signals to be sent to the process. This option is...
CURLOPT_OPENSOCKETDATA
Pass a pointer that will be untouched by libcurl and passed as the first argument in the opensocket callback set with CURLOPT_OPENSOCKETFUNCTION(3).
CURLOPT_OPENSOCKETFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. This callback function gets called by libcurl instead of the socket(2)...
CURLOPT_PASSWORD
Pass a char * as parameter, which should be pointing to the zero terminated password to use for the transfer. The CURLOPT_PASSWORD(3) option should be used in...
CURLOPT_PATH_AS_IS
Set the long leaveit to 1, to explicitly tell libcurl to not alter the given path before passing it on to the server. This instructs libcurl to NOT squash...
CURLOPT_PINNEDPUBLICKEY
Pass a pointer to a zero terminated string as parameter. The string can be the file name of your pinned public key. The file format expected is "PEM" or "DER"...
CURLOPT_PIPEWAIT
Set wait to 1L to tell libcurl to prefer to wait for a connection to confirm or deny that it can do pipelining or multiplexing before continuing. When about to...
CURLOPT_PORT
This option sets number to be the remote port number to connect to, instead of the one specified in the URL or the default port for the used protocol. Usually...
CURLOPT_POST
A parameter set to 1 tells libcurl to do a regular HTTP post. This will also make the library use a "Content-Type: application/x-www-form-urlencoded" header...
CURLOPT_POSTFIELDS
Pass a char * as parameter, pointing to the full data to send in a HTTP POST operation. You must make sure that the data is formatted the way you want the...
CURLOPT_POSTFIELDSIZE
If you want to post data to the server without having libcurl do a strlen() to measure the data size, this option must be used. When this option is used you can...
CURLOPT_POSTFIELDSIZE_LARGE
If you want to post data to the server without having libcurl do a strlen() to measure the data size, this option must be used. When this option is used you can...
CURLOPT_POSTQUOTE
Pass a pointer to a linked list of FTP or SFTP commands to pass to the server after your FTP transfer request. The commands will only be run if no error...
CURLOPT_POSTREDIR
Pass a bitmask to control how libcurl acts on redirects after POSTs that get a 301, 302 or 303 response back. A parameter with bit 0 set (value...
CURLOPT_PREQUOTE
Pass a pointer to a linked list of FTP or SFTP commands to pass to the server after the transfer type is set. The linked list should be a fully valid list of...
CURLOPT_PRIVATE
Pass a void * as parameter, pointing to data that should be associated with this curl handle. The pointer can subsequently be retrieved using...
CURLOPT_PROGRESSDATA
Pass a pointer that will be untouched by libcurl and passed as the first argument in the progress callback set with CURLOPT_PROGRESSFUNCTION(3).
CURLOPT_PROGRESSFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. We encourage users to use the newer CURLOPT_XFERINFOFUNCTION(3) instead...
CURLOPT_PROTOCOLS
Pass a long that holds a bitmask of CURLPROTO_* defines. If used, this bitmask limits what protocols libcurl may use in the transfer. This allows you to have a...
CURLOPT_PROXY
Set the proxy to use for the upcoming request. The parameter should be a char * to a zero terminated string holding the host name or dotted numerical IP...
CURLOPT_PROXYAUTH
Pass a long as parameter, which is set to a bitmask, to tell libcurl which HTTP authentication method(s) you want it to use for your proxy authentication. If...
CURLOPT_PROXYHEADER
Pass a pointer to a linked list of HTTP headers to pass in your HTTP request sent to a proxy. The rules for this list is identical to the CURLOPT_HTTPHEADER(3)...
CURLOPT_PROXYPASSWORD
Pass a char * as parameter, which should be pointing to the zero terminated password to use for authentication with the proxy. The CURLOPT_PROXYPASSWORD(3)...
CURLOPT_PROXYPORT
Pass a long with this option to set the proxy port to connect to unless it is specified in the proxy string CURLOPT_PROXY(3) or uses the default one. While this...
CURLOPT_PROXY_SERVICE_NAME
Pass a char * as parameter to a string holding the name of the service. The default service name is "HTTP" for HTTP based proxies and "rcmd" for SOCKS5. This...
CURLOPT_PROXY_TRANSFER_MODE
Pass a long. If the value is set to 1 (one), it tells libcurl to set the transfer mode (binary or ASCII) for FTP transfers done via a HTTP proxy, by appending...
CURLOPT_PROXYTYPE
Pass a long with this option to set type of the proxy. Available options for this are CURLPROXY_HTTP, CURLPROXY_HTTP_1_0 CURLPROXY_SOCKS4, CURLPROXY_SOCKS5...
CURLOPT_PROXYUSERNAME
Pass a char * as parameter, which should be pointing to the zero terminated user name to use for the transfer. CURLOPT_PROXYUSERNAME(3) sets the user name to be...
CURLOPT_PROXYUSERPWD
Pass a char * as parameter, which should be [user name]:[password] to use for the connection to the HTTP proxy. Both the name and the password will be URL...
CURLOPT_PUT
A parameter set to 1 tells the library to use HTTP PUT to transfer data. The data should be set with CURLOPT_READDATA(3) and CURLOPT_INFILESIZE(3). This option...
CURLOPT_QUOTE
Pass a pointer to a linked list of FTP or SFTP commands to pass to the server prior to your request. This will be done before any other commands are issued...
CURLOPT_RANDOM_FILE
Pass a char * to a zero terminated file name. The file will be used to read from to seed the random engine for SSL and more.
CURLOPT_RANGE
Pass a char * as parameter, which should contain the specified range you want to retrieve. It should be in the format "X-Y", where either X or Y may be left out...
CURLOPT_READDATA
Data pointer to pass to the file read function. If you use the CURLOPT_READFUNCTION(3) option, this is the pointer you'll get as input in the 4th argument to...
CURLOPT_READFUNCTION
Pass a pointer to your callback function, as the prototype shows above. This callback function gets called by libcurl as soon as it needs to read data in order...
CURLOPT_REDIR_PROTOCOLS
Pass a long that holds a bitmask of CURLPROTO_* defines. If used, this bitmask limits what protocols libcurl may use in a transfer that it follows to in a...
CURLOPT_REFERER
Pass a pointer to a zero terminated string as parameter. It will be used to set the Referer: header in the http request sent to the remote server. This can be...
CURLOPT_RESOLVE
Pass a pointer to a linked list of strings with host name resolve information to use for requests with this handle. The linked list should be a fully valid list...
CURLOPT_RESUME_FROM
Pass a long as parameter. It contains the offset in number of bytes that you want the transfer to start from. Set this option to 0 to make the transfer start...
CURLOPT_RESUME_FROM_LARGE
Pass a curl_off_t as parameter. It contains the offset in number of bytes that you want the transfer to start from. Set this option to 0 to make the transfer...
CURLOPT_RTSP_CLIENT_CSEQ
Pass a long to set the the CSEQ number to issue for the next RTSP request. Useful if the application is resuming a previously broken connection. The CSEQ will...
CURLOPT_RTSP_REQUEST
Tell libcurl what kind of RTSP request to make. Pass one of the following RTSP enum values as a long in the request argument. Unless noted otherwise, commands...
CURLOPT_RTSP_SERVER_CSEQ
Pass a long to set the CSEQ number to expect for the next RTSP Server->Client request. NOTE: this feature (listening for Server requests) is unimplemented.
CURLOPT_RTSP_SESSION_ID
Pass a char * as a parameter to set the value of the current RTSP Session ID for the handle. Useful for resuming an in-progress session. Once this value is set...
CURLOPT_RTSP_STREAM_URI
Set the stream URI to operate on by passing a char * . For example, a single session may be controlling rtsp://foo/twister/audio and rtsp://foo/twister/video...
CURLOPT_RTSP_TRANSPORT
Pass a char * to tell libcurl what to pass for the Transport: header for this RTSP session. This is mainly a convenience method to avoid needing to set a custom...
CURLOPT_SASL_IR
Pass a long. If the value is 1, curl will send the initial response to the server in the first authentication packet in order to reduce the number of ping pong...
CURLOPT_SEEKDATA
Data pointer to pass to the seek callback function. If you use the CURLOPT_SEEKFUNCTION(3) option, this is the pointer you'll get as input.
CURLOPT_SEEKFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. This function gets called by libcurl to seek to a certain position in...
CURLOPT_SERVICE_NAME
Pass a char * as parameter to a string holding the name of the service for DIGEST-MD5, SPNEGO and Kerberos 5 authentication mechanisms. The default service...
CURLOPT_SHARE
Pass a share handle as a parameter. The share handle must have been created by a previous call to curl_share_init(3). Setting this option, will make this curl...
CURLOPT_SOCKOPTDATA
Pass a pointer that will be untouched by libcurl and passed as the first argument in the sockopt callback set with CURLOPT_SOCKOPTFUNCTION(3).
CURLOPT_SOCKOPTFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. When set, this callback function gets called by libcurl when the socket...
CURLOPT_SOCKS5_GSSAPI_NEC
Pass a long set to 1 to enable or 0 to disable. As part of the gssapi negotiation a protection mode is negotiated. The RFC1961 says in section 4.3/4.4 it should...
CURLOPT_SOCKS5_GSSAPI_SERVICE
Deprecated since 7.49.0. Use CURLOPT_PROXY_SERVICE_NAME(3) instead. Pass a char * as parameter to a string holding the name of the service. The default service...
CURLOPT_SSH_AUTH_TYPES
Pass a long set to a bitmask consisting of one or more of CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD and...
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
Pass a char * pointing to a string containing 32 hexadecimal digits. The string should be the 128 bit MD5 checksum of the remote host's public key, and libcurl...
CURLOPT_SSH_KEYDATA
Pass a void * as parameter. This pointer will be passed along verbatim to the callback set with CURLOPT_SSH_KEYFUNCTION(3).
CURLOPT_SSH_KEYFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. It gets called when the known_host matching has been done, to allow the...
CURLOPT_SSH_KNOWNHOSTS
Pass a pointer to a zero terminated string holding the file name of the known_host file to use. The known_hosts file should use the OpenSSH file format as...
CURLOPT_SSH_PRIVATE_KEYFILE
Pass a char * pointing to a filename for your private key. If not used, libcurl defaults to $HOME/.ssh/id_dsa if the HOME environment variable is set, and just...
CURLOPT_SSH_PUBLIC_KEYFILE
Pass a char * pointing to a filename for your public key. If not used, libcurl defaults to $HOME/.ssh/id_dsa.pub if the HOME environment variable is set, and...
CURLOPT_SSLCERT
Pass a pointer to a zero terminated string as parameter. The string should be the file name of your client certificate. The default format is "P12" on Secure...
CURLOPT_SSLCERTTYPE
Pass a pointer to a zero terminated string as parameter. The string should be the format of your certificate. Supported formats are "PEM" and "DER", except with...
CURLOPT_SSL_CIPHER_LIST
Pass a char *, pointing to a zero terminated string holding the list of ciphers to use for the SSL connection. The list must be syntactically correct, it...
CURLOPT_SSL_CTX_DATA
Data pointer to pass to the ssl context callback set by the option CURLOPT_SSL_CTX_FUNCTION(3), this is the pointer you'll get as third parameter.
CURLOPT_SSL_CTX_FUNCTION
This option only works for libcurl powered by OpenSSL or wolfSSL/CyaSSL. If libcurl was built against another SSL library this functionality is absent. Pass a...
CURLOPT_SSL_ENABLE_ALPN
Pass a long as parameter, 0 or 1 where 1 is for enable and 0 for disable. This option enables/disables ALPN in the SSL handshake (if the SSL backend libcurl is...
CURLOPT_SSL_ENABLE_NPN
Pass a long as parameter, 0 or 1 where 1 is for enable and 0 for disable. This option enables/disables NPN in the SSL handshake (if the SSL backend libcurl is...
CURLOPT_SSLENGINE
Pass a pointer to a zero terminated string as parameter. It will be used as the identifier for the crypto engine you want to use for your private key.
CURLOPT_SSLENGINE_DEFAULT
Pass a long set to 1 to make the already specified crypto engine the default for (asymmetric) crypto operations. This option has no effect unless set after...
CURLOPT_SSL_FALSESTART
Pass a long as parameter set to 1 to enable or 0 to disable. This option determines whether libcurl should use false start during the TLS handshake. False start...
CURLOPT_SSLKEY
Pass a pointer to a zero terminated string as parameter. The string should be the file name of your private key. The default format is "PEM" and can be changed...
CURLOPT_SSLKEYTYPE
Pass a pointer to a zero terminated string as parameter. The string should be the format of your private key. Supported formats are "PEM", "DER" and "ENG". The...
CURLOPT_SSL_OPTIONS
Pass a long with a bitmask to tell libcurl about specific SSL behaviors. CURLSSLOPT_ALLOW_BEAST tells libcurl to not attempt to use any workarounds for a...
CURLOPT_SSL_SESSIONID_CACHE
Pass a long set to 0 to disable libcurl's use of SSL session-ID caching. Set this to 1 to enable it. By default all transfers are done using the cache enabled...
CURLOPT_SSL_VERIFYHOST
Pass a long as parameter specifying what to verify. This option determines whether libcurl verifies that the server cert is for the server it is known as. When...
CURLOPT_SSL_VERIFYPEER
Pass a long as parameter to enable or disable. This option determines whether curl verifies the authenticity of the peer's certificate. A value of 1 means curl...
CURLOPT_SSL_VERIFYSTATUS
Pass a long as parameter set to 1 to enable or 0 to disable. This option determines whether libcurl verifies the status of the server cert using the...
CURLOPT_SSLVERSION
Pass a long as parameter to control which version of SSL/TLS to attempt to use. Use one of the available defines for this purpose.
CURLOPT_STDERR
Pass a FILE * as parameter. Tell libcurl to use this stream instead of stderr when showing the progress meter and displaying CURLOPT_VERBOSE(3) data.
CURLOPT_STREAM_DEPENDS
Pass a CURL * pointer in dephandle to identify the stream within the same connection that this stream is depending upon. This option clears the exclusive it and...
CURLOPT_STREAM_DEPENDS_E
Pass a CURL * pointer in dephandle to identify the stream within the same connection that this stream is depending upon exclusively. That means it depends on it...
CURLOPT_STREAM_WEIGHT
Set the long weight to a number between 1 and 256. When using HTTP/2, this option sets the individual weight for this particular stream used by the easy handle...
CURLOPT_TCP_FASTOPEN
Pass a long as parameter set to 1 to enable or 0 to disable. TCP Fast Open (RFC7413) is a mechanism that allows data to be carried in the SYN and SYN-ACK...
CURLOPT_TCP_KEEPALIVE
Pass a long. If set to 1, TCP keepalive probes will be sent. The delay and frequency of these probes can be controlled by the CURLOPT_TCP_KEEPIDLE(3) and...
CURLOPT_TCP_KEEPIDLE
Pass a long. Sets the delay, in seconds, that the operating system will wait while the connection is idle before sending keepalive probes. Not all operating...
CURLOPT_TCP_KEEPINTVL
Pass a long. Sets the interval, in seconds, that the operating system will wait between sending keepalive probes. Not all operating systems support this option...
CURLOPT_TCP_NODELAY
Pass a long specifying whether the TCP_NODELAY option is to be set or cleared (1 = set, 0 = clear). The option is set by default. This will have no effect after...
CURLOPT_TELNETOPTIONS
Provide a pointer to a curl_slist with variables to pass to the telnet negotiations. The variables should be in the format <option=value>. libcurl supports the...
CURLOPT_TFTP_BLKSIZE
Specify blocksize to use for TFTP data transmission. Valid range as per RFC2348 is 8-65464 bytes. The default of 512 bytes will be used if this option is not...
CURLOPT_TFTP_NO_OPTIONS
Set onoff to 1L to exclude all TFTP options defined in RFC2347, RFC2348 and RFC2349 from read and write requests (RRQs/WRQs). This option improves interop with...
CURLOPT_TIMECONDITION
Pass a long as parameter. This defines how the CURLOPT_TIMEVALUE(3) time value is treated. You can set this parameter to CURL_TIMECOND_IFMODSINCE or...
CURLOPT_TIMEOUT
Pass a long as parameter containing timeout - the maximum time in seconds that you allow the libcurl transfer operation to take. Normally, name lookups can take...
CURLOPT_TIMEOUT_MS
Pass a long as parameter containing timeout - the maximum time in milliseconds that you allow the libcurl transfer operation to take. Normally, name lookups can...
CURLOPT_TIMEVALUE
Pass a long val as parameter. This should be the time counted as seconds since 1 Jan 1970, and the time will be used in a condition as specified with...
CURLOPT_TLSAUTH_PASSWORD
Pass a char * as parameter, which should point to the zero terminated password to use for the TLS authentication method specified with the...
CURLOPT_TLSAUTH_TYPE
Pass a pointer to a zero terminated string as parameter. The string should be the method of the TLS authentication. Supported method is "SRP".
CURLOPT_TLSAUTH_USERNAME
Pass a char * as parameter, which should point to the zero terminated username to use for the TLS authentication method specified with the...
CURLOPT_TRANSFER_ENCODING
Pass a long set to 1 to enable or 0 to disable. Adds a request for compressed Transfer Encoding in the outgoing HTTP request. If the server supports this and so...
CURLOPT_TRANSFERTEXT
A parameter set to 1 tells the library to use ASCII mode for FTP transfers, instead of the default binary transfer. For win32 systems it does not set the stdout...
CURLOPT_UNIX_SOCKET_PATH
Enables the use of Unix domain sockets as connection endpoint and sets the path to path. If path is NULL, then Unix domain sockets are disabled. An empty string...
CURLOPT_UNRESTRICTED_AUTH
A long parameter set to 1 tells libcurl it can continue to send authentication (user+password) credentials when following locations, even when hostname changed...
CURLOPT_UPLOAD
The long parameter upload set to 1 tells the library to prepare for and perform an upload. The CURLOPT_READDATA(3) and CURLOPT_INFILESIZE(3) or...
CURLOPT_URL
Pass in a pointer to the URL to work with. The parameter should be a char * to a zero terminated string which must be URL-encoded in the following format...
CURLOPT_USERAGENT
Pass a pointer to a zero terminated string as parameter. It will be used to set the User-Agent: header in the HTTP request sent to the remote server. This can...
CURLOPT_USERNAME
Pass a char * as parameter, which should be pointing to the zero terminated user name to use for the transfer. CURLOPT_USERNAME(3) sets the user name to be used...
CURLOPT_USERPWD
Pass a char * as parameter, pointing to a zero terminated login details string for the connection. The format of which is: [user name]:[password]. When using...
CURLOPT_USE_SSL
Pass a long using one of the values from below, to make libcurl use your desired level of SSL for the transfer. These are all protocols that start out plain...
CURLOPT_VERBOSE
Set the onoff parameter to 1 to make the library display a lot of verbose information about its operations on this handle. Very useful for libcurl and/or...
CURLOPT_WILDCARDMATCH
Set onoff to 1 if you want to transfer multiple files according to a file name pattern. The pattern can be specified as part of the CURLOPT_URL(3) option, using...
CURLOPT_WRITEDATA
A data pointer to pass to the write callback. If you use the CURLOPT_WRITEFUNCTION(3) option, this is the pointer you'll get in that callback's 4th argument. If...
CURLOPT_WRITEFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. This callback function gets called by libcurl as soon as there is data...
CURLOPT_XFERINFODATA
Pass a pointer that will be untouched by libcurl and passed as the first argument in the progress callback set with CURLOPT_XFERINFOFUNCTION(3). This is an...
CURLOPT_XFERINFOFUNCTION
Pass a pointer to your callback function, which should match the prototype shown above. This function gets called by libcurl instead of its internal equivalent...
CURLOPT_XOAUTH2_BEARER
Pass a char * as parameter, which should point to the zero terminated OAuth 2.0 Bearer Access Token for use with IMAP, POP3 and SMTP servers that support the...
curl_share_cleanup
This function deletes a shared object. The share handle cannot be used anymore when this function has been called.
curl_share_init
This function returns a CURLSH handle to be used as input to all the other share-functions, sometimes referred to as a share handle in some places in the...
curl_share_setopt
Set the option to parameter for the given share.
curl_share_strerror
The curl_share_strerror() function returns a string describing the CURLSHcode error code passed in the argument errornum.
curl_slist_append
curl_slist_append() appends a specified string to a linked list of strings. The existing list should be passed as the first argument while the new list is...
curl_slist_free_all
curl_slist_free_all() removes all traces of a previously built curl_slist linked list.
curl_strequal
The curl_strequal() function compares the two strings str1 and str2, ignoring the case of the characters. It returns a non-zero (TRUE) integer if the strings...
curl_unescape
Obsolete function. Use curl_easy_unescape(3) instead! This function will convert the given URL encoded input string to a "plain string" and return that as a new...
curl_version
Returns a human readable string with the version number of libcurl and some of its important components (like OpenSSL version). We recommend using...
curl_version_info
Returns a pointer to a filled in static struct with information about various features in the running version of libcurl. type should be set to the version of...
libcurl
This is a short overview on how to use libcurl in your C programs. There are specific man pages for each function mentioned in here. There are also the...
libcurl-easy
When using libcurl's "easy" interface you init your session and get a handle (often referred to as an "easy handle"), which you use as input to the easy...
libcurl-errors
This man page includes most, if not all, available error codes in libcurl. Why they occur and possibly what you can do to fix the problem are also included.
libcurl-multi
This is an overview on how to use the libcurl multi interface in your C programs. There are specific man pages for each function mentioned in here. There's also...
libcurl-share
This is an overview on how to use the libcurl share interface in your C programs. There are specific man pages for each function mentioned in here. All...
libcurl-symbols
This man page details version information for public symbols provided in the libcurl header files. This lists the first version in which the symbol was...
libcurl-thread
libcurl is thread safe but has no internal thread synchronization. You may have to provide your own locking should you meet any of the thread safety exceptions...
libcurl-tutorial
This document attempts to describe the general principles and some basic approaches to consider when programming with libcurl. The text will focus mainly on the...