From: Daniel Stenberg Date: Tue, 20 Jan 2026 10:01:31 +0000 (+0100) Subject: libcurl docs: reduce 'since ...' in descriptions X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c6f13093ec024eb55a141817fc7ff99c952888f;p=thirdparty%2Fcurl.git libcurl docs: reduce 'since ...' in descriptions Reduce mentions of libcurl versions like "since 7.xx ..." in option descriptions to reduce clutter and make the texts easier to read. Keep them in, or move them to, the HISTORY or DEPRECATED sections The last version 7 release (7.88.1) shipped on Februrary 20, 2023. Closes #20369 --- diff --git a/docs/libcurl/opts/CURLINFO_COOKIELIST.md b/docs/libcurl/opts/CURLINFO_COOKIELIST.md index d3c4a6590e..7d0925500d 100644 --- a/docs/libcurl/opts/CURLINFO_COOKIELIST.md +++ b/docs/libcurl/opts/CURLINFO_COOKIELIST.md @@ -34,8 +34,8 @@ curl_slist_free_all(3) on the list after it has been used. If there are no cookies (cookies for the handle have not been enabled or simply none have been received) the 'struct curl_slist *' is made a NULL pointer. -Since 7.43.0 cookies that were imported in the Set-Cookie format without a -domain name are not exported by this option. +Cookies that were imported in the Set-Cookie format without a domain name are +not exported by this option. # %PROTOCOLS% diff --git a/docs/libcurl/opts/CURLINFO_LASTSOCKET.md b/docs/libcurl/opts/CURLINFO_LASTSOCKET.md index 8aa80f9fc5..62bc425125 100644 --- a/docs/libcurl/opts/CURLINFO_LASTSOCKET.md +++ b/docs/libcurl/opts/CURLINFO_LASTSOCKET.md @@ -28,7 +28,7 @@ CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_LASTSOCKET, long *socket); # DESCRIPTION -Deprecated since 7.45.0. Use CURLINFO_ACTIVESOCKET(3) instead. +Deprecated. 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 no longer valid, -1 is returned. When you finish @@ -74,6 +74,10 @@ int main(void) } ~~~ +# DEPRECATED + +Deprecated since 7.45.0. + # %AVAILABILITY% # RETURN VALUE diff --git a/docs/libcurl/opts/CURLINFO_REDIRECT_URL.md b/docs/libcurl/opts/CURLINFO_REDIRECT_URL.md index 32ec6c3355..6d25a66e76 100644 --- a/docs/libcurl/opts/CURLINFO_REDIRECT_URL.md +++ b/docs/libcurl/opts/CURLINFO_REDIRECT_URL.md @@ -36,7 +36,7 @@ but you would still prefer to avoid implementing all the magic of figuring out the new URL. This URL is also set if the CURLOPT_MAXREDIRS(3) limit prevented a redirect to -happen (since 7.54.1). +happen. # %PROTOCOLS% diff --git a/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.md b/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.md index db1a41325b..75016a421a 100644 --- a/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.md +++ b/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.md @@ -68,8 +68,6 @@ the active ("in use") SSL connection, with the following underlying types: CURLINFO_TLS_SESSION(3): **SSL_CTX *** CURLINFO_TLS_SSL_PTR(3): **SSL *** -Since 7.48.0 the *internals* member can point to these other SSL backends -as well: ## mbedTLS @@ -161,6 +159,8 @@ int main(int argc, char **argv) This option supersedes CURLINFO_TLS_SESSION(3) which was added in 7.34.0. This option is exactly the same as that option except in the case of OpenSSL. +Non-OpenSSL support was added in 7.48.0. + # %AVAILABILITY% # RETURN VALUE diff --git a/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.md b/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.md index 765e0de232..a3c1833bd1 100644 --- a/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.md +++ b/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.md @@ -38,10 +38,9 @@ curl_easy_getinfo(3) as the library can set up the connection and then the application can obtain the most recently used socket for special data transfers. -Since 7.86.0, this option can be set to '2' and if WebSocket is used, -libcurl performs the request and reads all response headers before handing -over control to the application. For other protocols the behavior of '2' -is undefined. +This option can be set to '2' and if WebSocket is used, libcurl performs the +request and reads all response headers before handing over control to the +application. For other protocols the behavior of '2' is undefined. Transfers marked connect only do not reuse any existing connections and connections marked connect only are not allowed to get reused. diff --git a/docs/libcurl/opts/CURLOPT_ERRORBUFFER.md b/docs/libcurl/opts/CURLOPT_ERRORBUFFER.md index 6083662aac..497a8fab8b 100644 --- a/docs/libcurl/opts/CURLOPT_ERRORBUFFER.md +++ b/docs/libcurl/opts/CURLOPT_ERRORBUFFER.md @@ -40,10 +40,8 @@ it. Failing to do so might cause odd behavior or even crashes. libcurl might need it until you call curl_easy_cleanup(3) or you set the same option again to use a different pointer. -Do not rely on the contents of the buffer unless an error code was returned. -Since 7.60.0 libcurl initializes the contents of the error buffer to an empty -string before performing the transfer. For earlier versions if an error code -was returned but there was no error detail then the buffer was untouched. +libcurl initializes the contents of the error buffer to an empty string before +performing a transfer. Do not attempt to set the contents of the buffer yourself, including in any callbacks you write that may be called by libcurl. The library may overwrite @@ -100,6 +98,11 @@ int main(void) } ~~~ +# HISTORY + +Before curl 7.60.0, if an error code was returned but there was no error +detail the buffer was untouched: not initialized. + # %AVAILABILITY% # RETURN VALUE diff --git a/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.md b/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.md index 0f529b25d6..97e6ff6611 100644 --- a/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.md +++ b/docs/libcurl/opts/CURLOPT_FTP_SKIP_PASV_IP.md @@ -41,7 +41,7 @@ This option has no effect if PORT, EPRT or EPSV is used instead of PASV. # DEFAULT -1 since 7.74.0, was 0 before then. +1, enabled. # %PROTOCOLS% @@ -64,6 +64,10 @@ int main(void) } ~~~ +# HISTORY + +Before curl 7.74.0, this option was disabled by default. + # %AVAILABILITY% # RETURN VALUE diff --git a/docs/libcurl/opts/CURLOPT_NOPROXY.md b/docs/libcurl/opts/CURLOPT_NOPROXY.md index 8c0b45edcd..5e8fdb1959 100644 --- a/docs/libcurl/opts/CURLOPT_NOPROXY.md +++ b/docs/libcurl/opts/CURLOPT_NOPROXY.md @@ -43,10 +43,10 @@ brackets: "example.com,::1,localhost" -Since 7.86.0, IP addresses specified to this option can be provided using CIDR -notation: an appended slash and number specifies the number of "network bits" -out of the address to use in the comparison. For example "192.168.0.0/16" -would match all addresses starting with "192.168". +IP addresses specified to this option can be provided using CIDR notation: an +appended slash and number specifies the number of "network bits" out of the +address to use in the comparison. For example "192.168.0.0/16" would match all +addresses starting with "192.168". The application does not have to keep the string around after setting this option. @@ -84,6 +84,10 @@ int main(void) } ~~~ +# HISTORY + +CIDR format support was added in 7.86.0. + # %AVAILABILITY% # RETURN VALUE diff --git a/docs/libcurl/opts/CURLOPT_POST.md b/docs/libcurl/opts/CURLOPT_POST.md index 1678b50e6b..4012e1f5ea 100644 --- a/docs/libcurl/opts/CURLOPT_POST.md +++ b/docs/libcurl/opts/CURLOPT_POST.md @@ -52,10 +52,10 @@ You can disable this header with CURLOPT_HTTPHEADER(3) as usual. If you use POST to an HTTP 1.1 server, you can send data without knowing the size before starting the POST if you use chunked encoding. You enable this by -adding a header like "Transfer-Encoding: chunked" with -CURLOPT_HTTPHEADER(3). With HTTP 1.0 or without chunked transfer, you -must specify the size in the request. (Since 7.66.0, libcurl automatically -uses chunked encoding for POSTs if the size is unknown.) +adding a header like "Transfer-Encoding: chunked" with CURLOPT_HTTPHEADER(3). +With HTTP 1.0 or without chunked transfer, you must specify the size in the +request. libcurl automatically uses chunked encoding for POSTs if the size is +unknown. When setting CURLOPT_POST(3) to 1, libcurl automatically sets CURLOPT_NOBODY(3) and CURLOPT_HTTPGET(3) to 0. diff --git a/docs/libcurl/opts/CURLOPT_PROXY.md b/docs/libcurl/opts/CURLOPT_PROXY.md index 2d9d456dba..dd42878deb 100644 --- a/docs/libcurl/opts/CURLOPT_PROXY.md +++ b/docs/libcurl/opts/CURLOPT_PROXY.md @@ -53,8 +53,7 @@ HTTP Proxy. Default when no scheme or proxy type is specified. ## https:// -HTTPS Proxy. (Added in 7.52.0 for OpenSSL and GnuTLS Since 7.87.0, it also -works for mbedTLS, Rustls, Schannel and wolfSSL.) +HTTPS Proxy. (with OpenSSL, GnuTLS, mbedTLS, Rustls, Schannel or wolfSSL.) This uses HTTP/1 by default. Setting CURLOPT_PROXYTYPE(3) to **CURLPROXY_HTTPS2** allows libcurl to negotiate using HTTP/2 with proxy. @@ -154,6 +153,11 @@ Since 7.21.7 the proxy string supports the socks protocols as "schemes". Since 7.50.2, unsupported schemes in proxy strings cause libcurl to return error. +Since 7.52.0, it supports HTTPS proxy for OpenSSL. + +Since 7.87.0, it supports HTTPS proxy for GnuTLS, for mbedTLS, Rustls, +Schannel and wolfSSL. + # %AVAILABILITY% # RETURN VALUE diff --git a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.md b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.md index fcafb30588..b7340b00c2 100644 --- a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.md +++ b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS.md @@ -81,10 +81,7 @@ CURLPROTO_TFTP # DEFAULT -HTTP, HTTPS, FTP and FTPS (Added in 7.65.2). - -Older versions defaulted to all protocols except FILE, SCP and since 7.40.0 -SMB and SMBS. +HTTP, HTTPS, FTP and FTPS # %PROTOCOLS% diff --git a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS_STR.md b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS_STR.md index c2d8db8bb2..2323829408 100644 --- a/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS_STR.md +++ b/docs/libcurl/opts/CURLOPT_REDIR_PROTOCOLS_STR.md @@ -64,10 +64,7 @@ option. # DEFAULT -HTTP, HTTPS, FTP and FTPS (Added in 7.65.2). - -Older versions defaulted to all protocols except FILE, SCP and since 7.40.0 -SMB and SMBS. +HTTP, HTTPS, FTP and FTPS # %PROTOCOLS% diff --git a/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.md b/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.md index b20a387b12..c73bdcadf9 100644 --- a/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.md +++ b/docs/libcurl/opts/CURLOPT_SOCKOPTFUNCTION.md @@ -50,9 +50,9 @@ been created, but before the connect call to allow applications to change specific socket options. The callback's *purpose* argument identifies the exact purpose for this particular socket: -*CURLSOCKTYPE_IPCXN* for actively created connections or since 7.28.0 -*CURLSOCKTYPE_ACCEPT* for FTP when the connection was setup with PORT/EPSV -(in earlier versions these sockets were not passed to this callback). +*CURLSOCKTYPE_IPCXN* for actively created connections or *CURLSOCKTYPE_ACCEPT* +for FTP when the connection was setup with PORT/EPSV (in earlier versions +these sockets were not passed to this callback). Future versions of libcurl may support more purposes. libcurl passes the newly created socket descriptor to the callback in the *curlfd* parameter so diff --git a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.md b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.md index 673112cf32..51ae347a2d 100644 --- a/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.md +++ b/docs/libcurl/opts/CURLOPT_SOCKS5_GSSAPI_SERVICE.md @@ -27,7 +27,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SOCKS5_GSSAPI_SERVICE, # DESCRIPTION -Deprecated since 7.49.0. Use CURLOPT_PROXY_SERVICE_NAME(3) instead. +Deprecated. Use CURLOPT_PROXY_SERVICE_NAME(3) instead. Pass a char pointer as parameter to a string holding the *name* of the service. The default service name for a SOCKS5 server is *rcmd*. This option diff --git a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.md b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.md index 46b8c9dbb4..849791e9e3 100644 --- a/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.md +++ b/docs/libcurl/opts/CURLOPT_SSL_ENABLE_NPN.md @@ -28,7 +28,7 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_ENABLE_NPN, long npn); # DESCRIPTION -Deprecated since 7.86.0 Setting this option has no function. +Deprecated. Setting this option has no function. 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 diff --git a/docs/libcurl/opts/CURLOPT_URL.md b/docs/libcurl/opts/CURLOPT_URL.md index d167fa972e..cc1f5366c9 100644 --- a/docs/libcurl/opts/CURLOPT_URL.md +++ b/docs/libcurl/opts/CURLOPT_URL.md @@ -33,23 +33,22 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_URL, char *URL); # DESCRIPTION -Pass in a pointer to the *URL* to work with. The parameter should be a -char * to a null-terminated string which must be URL-encoded in the following -format: +Pass in a pointer to the *URL* to work with. The parameter should be a char * +to a null-terminated string which must be URL-encoded in the following format: scheme://host:port/path For a greater explanation of the format please see RFC 3986. libcurl does not validate the syntax or use the URL until the transfer is -started. Even if you set a crazy value here, curl_easy_setopt(3) might -still return *CURLE_OK*. +started. Even if you set a crazy value here, curl_easy_setopt(3) might still +return *CURLE_OK*. If the given URL is missing a scheme name (such as "http://" or "ftp://" etc) then libcurl guesses based on the host. If the outermost subdomain name matches DICT, FTP, IMAP, LDAP, POP3 or SMTP then that protocol gets used, -otherwise HTTP is used. Since 7.45.0 guessing can be disabled by setting a -default protocol, see CURLOPT_DEFAULT_PROTOCOL(3) for details. +otherwise HTTP is used. Scheme guessing can be disabled by setting a default +protocol, see CURLOPT_DEFAULT_PROTOCOL(3) for details. Should the protocol, either as specified by the URL scheme or deduced by libcurl from the hostname, not be supported by libcurl then @@ -58,15 +57,15 @@ or curl_multi_perform(3) functions when you call them. Use curl_version_info(3) for detailed information of which protocols are supported by the build of libcurl you are using. -CURLOPT_PROTOCOLS_STR(3) can be used to limit what protocols libcurl may -use for this transfer, independent of what libcurl has been compiled to -support. That may be useful if you accept the URL from an external source and -want to limit the accessibility. +CURLOPT_PROTOCOLS_STR(3) can be used to limit what protocols libcurl may use +for this transfer, independent of what libcurl has been compiled to support. +That may be useful if you accept the URL from an external source and want to +limit the accessibility. The CURLOPT_URL(3) string is ignored if CURLOPT_CURLU(3) is set. -Either CURLOPT_URL(3) or CURLOPT_CURLU(3) must be set before a -transfer is started. +Either CURLOPT_URL(3) or CURLOPT_CURLU(3) must be set before a transfer is +started. The application does not have to keep the string around after setting this option. @@ -75,13 +74,13 @@ Using this option multiple times makes the last set string override the previous ones. Set it to NULL to disable its use again. Note however that libcurl needs a URL set to be able to performed a transfer. -The parser used for handling the URL set with CURLOPT_URL(3) is the same -that curl_url_set(3) uses. +The parser used for handling the URL set with CURLOPT_URL(3) is the same that +curl_url_set(3) uses. # ENCODING -The string pointed to in the CURLOPT_URL(3) argument is generally -expected to be a sequence of characters using an ASCII compatible encoding. +The string pointed to in the CURLOPT_URL(3) argument is generally expected to +be a sequence of characters using an ASCII compatible encoding. If libcurl is built with IDN support, the server name part of the URL can use an "international name" by using the current encoding (according to locale) or