Skip to content

Commit 90a5096

Browse files
committed
Update libcurl to version 8.11.0.
1 parent b51195f commit 90a5096

File tree

220 files changed

+15855
-13964
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

220 files changed

+15855
-13964
lines changed

ChangeLog

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ dd.mm.yy hh:mm - smooth alpha 0.9.11
99
- upgraded fribidi to version 1.0.16
1010
- upgraded libcpuid to version 0.6.4
1111
- upgraded libxml2 to version 2.13.5
12-
- upgraded libcurl to version 8.9.1
12+
- upgraded libcurl to version 8.11.0
1313
- upgraded libpng to version 1.6.44
1414
- upgraded libwebp to version 1.4.0
1515
- upgraded zlib to version 1.3.1

include/support/curl/curl.h

+29-27
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,15 @@
3030
*/
3131

3232
#ifdef CURL_NO_OLDIES
33-
#define CURL_STRICTER
33+
#define CURL_STRICTER /* not used since 8.11.0 */
3434
#endif
3535

3636
/* Compile-time deprecation macros. */
37-
#if (defined(__GNUC__) && \
38-
((__GNUC__ > 12) || ((__GNUC__ == 12) && (__GNUC_MINOR__ >= 1 ))) || \
39-
defined(__IAR_SYSTEMS_ICC__)) && \
40-
!defined(__INTEL_COMPILER) && \
37+
#if (defined(__GNUC__) && \
38+
((__GNUC__ > 12) || ((__GNUC__ == 12) && (__GNUC_MINOR__ >= 1))) || \
39+
(defined(__clang__) && __clang_major__ >= 3) || \
40+
defined(__IAR_SYSTEMS_ICC__)) && \
41+
!defined(__INTEL_COMPILER) && \
4142
!defined(CURL_DISABLE_DEPRECATION) && !defined(BUILDING_LIBCURL)
4243
#define CURL_DEPRECATED(version, message) \
4344
__attribute__((deprecated("since " # version ". " message)))
@@ -76,7 +77,7 @@
7677
#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__)
7778
#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || \
7879
defined(__LWIP_OPT_H__) || defined(LWIP_HDR_OPT_H))
79-
/* The check above prevents the winsock2 inclusion if winsock.h already was
80+
/* The check above prevents the winsock2.h inclusion if winsock.h already was
8081
included, since they cannot co-exist without problems */
8182
#include <winsock2.h>
8283
#include <ws2tcpip.h>
@@ -113,13 +114,8 @@
113114
extern "C" {
114115
#endif
115116

116-
#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER)
117-
typedef struct Curl_easy CURL;
118-
typedef struct Curl_share CURLSH;
119-
#else
120117
typedef void CURL;
121118
typedef void CURLSH;
122-
#endif
123119

124120
/*
125121
* libcurl external API function linkage decorations.
@@ -253,12 +249,12 @@ typedef int (*curl_xferinfo_callback)(void *clientp,
253249
#endif
254250

255251
#ifndef CURL_MAX_WRITE_SIZE
256-
/* Tests have proven that 20K is a very bad buffer size for uploads on
257-
Windows, while 16K for some odd reason performed a lot better.
258-
We do the ifndef check to allow this value to easier be changed at build
259-
time for those who feel adventurous. The practical minimum is about
260-
400 bytes since libcurl uses a buffer of this size as a scratch area
261-
(unrelated to network send operations). */
252+
/* Tests have proven that 20K is a bad buffer size for uploads on Windows,
253+
while 16K for some odd reason performed a lot better. We do the ifndef
254+
check to allow this value to easier be changed at build time for those
255+
who feel adventurous. The practical minimum is about 400 bytes since
256+
libcurl uses a buffer of this size as a scratch area (unrelated to
257+
network send operations). */
262258
#define CURL_MAX_WRITE_SIZE 16384
263259
#endif
264260

@@ -721,6 +717,8 @@ typedef enum {
721717
with them. */
722718
#define CURLOPT_WRITEINFO CURLOPT_OBSOLETE40
723719
#define CURLOPT_CLOSEPOLICY CURLOPT_OBSOLETE72
720+
#define CURLOPT_OBSOLETE72 9999
721+
#define CURLOPT_OBSOLETE40 9999
724722

725723
#endif /* !CURL_NO_OLDIES */
726724

@@ -940,6 +938,9 @@ typedef enum {
940938
a client certificate for authentication. (Schannel) */
941939
#define CURLSSLOPT_AUTO_CLIENT_CERT (1<<5)
942940

941+
/* If possible, send data using TLS 1.3 early data */
942+
#define CURLSSLOPT_EARLYDATA (1<<6)
943+
943944
/* The default connection attempt delay in milliseconds for happy eyeballs.
944945
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 and happy-eyeballs-timeout-ms.d document
945946
this value, keep them in sync. */
@@ -1250,8 +1251,7 @@ typedef enum {
12501251
/* send linked-list of post-transfer QUOTE commands */
12511252
CURLOPT(CURLOPT_POSTQUOTE, CURLOPTTYPE_SLISTPOINT, 39),
12521253

1253-
/* OBSOLETE, do not use! */
1254-
CURLOPT(CURLOPT_OBSOLETE40, CURLOPTTYPE_OBJECTPOINT, 40),
1254+
/* 40 is not used */
12551255

12561256
/* talk a lot */
12571257
CURLOPT(CURLOPT_VERBOSE, CURLOPTTYPE_LONG, 41),
@@ -1352,9 +1352,7 @@ typedef enum {
13521352
/* Max amount of cached alive connections */
13531353
CURLOPT(CURLOPT_MAXCONNECTS, CURLOPTTYPE_LONG, 71),
13541354

1355-
/* OBSOLETE, do not use! */
1356-
CURLOPT(CURLOPT_OBSOLETE72, CURLOPTTYPE_LONG, 72),
1357-
1355+
/* 72 = OBSOLETE */
13581356
/* 73 = OBSOLETE */
13591357

13601358
/* Set to explicitly use a new connection for the upcoming transfer.
@@ -1398,7 +1396,7 @@ typedef enum {
13981396
operation. Set filename to "-" (dash) to make it go to stdout. */
13991397
CURLOPT(CURLOPT_COOKIEJAR, CURLOPTTYPE_STRINGPOINT, 82),
14001398

1401-
/* Specify which SSL ciphers to use */
1399+
/* Specify which TLS 1.2 (1.1, 1.0) ciphers to use */
14021400
CURLOPT(CURLOPT_SSL_CIPHER_LIST, CURLOPTTYPE_STRINGPOINT, 83),
14031401

14041402
/* Specify which HTTP version to use! This must be set to one of the
@@ -2022,7 +2020,7 @@ typedef enum {
20222020
/* password for the SSL private key for proxy */
20232021
CURLOPT(CURLOPT_PROXY_KEYPASSWD, CURLOPTTYPE_STRINGPOINT, 258),
20242022

2025-
/* Specify which SSL ciphers to use for proxy */
2023+
/* Specify which TLS 1.2 (1.1, 1.0) ciphers to use for proxy */
20262024
CURLOPT(CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPTTYPE_STRINGPOINT, 259),
20272025

20282026
/* CRL file for proxy */
@@ -2203,7 +2201,7 @@ typedef enum {
22032201
/* specify which protocols that libcurl is allowed to follow directs to */
22042202
CURLOPT(CURLOPT_REDIR_PROTOCOLS_STR, CURLOPTTYPE_STRINGPOINT, 319),
22052203

2206-
/* websockets options */
2204+
/* WebSockets options */
22072205
CURLOPT(CURLOPT_WS_OPTIONS, CURLOPTTYPE_LONG, 320),
22082206

22092207
/* CA cache timeout */
@@ -2645,7 +2643,7 @@ CURL_EXTERN char *curl_getenv(const char *variable);
26452643
*
26462644
* DESCRIPTION
26472645
*
2648-
* Returns a static ascii string of the libcurl version.
2646+
* Returns a static ASCII string of the libcurl version.
26492647
*/
26502648
CURL_EXTERN char *curl_version(void);
26512649

@@ -2953,7 +2951,9 @@ typedef enum {
29532951
CURLINFO_CONN_ID = CURLINFO_OFF_T + 64,
29542952
CURLINFO_QUEUE_TIME_T = CURLINFO_OFF_T + 65,
29552953
CURLINFO_USED_PROXY = CURLINFO_LONG + 66,
2956-
CURLINFO_LASTONE = 66
2954+
CURLINFO_POSTTRANSFER_TIME_T = CURLINFO_OFF_T + 67,
2955+
CURLINFO_EARLYDATA_SENT_T = CURLINFO_OFF_T + 68,
2956+
CURLINFO_LASTONE = 68
29572957
} CURLINFO;
29582958

29592959
/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as
@@ -3236,7 +3236,9 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask);
32363236
#include "options.h"
32373237
#include "header.h"
32383238
#include "websockets.h"
3239+
#ifndef CURL_SKIP_INCLUDE_MPRINTF
32393240
#include "mprintf.h"
3241+
#endif
32403242

32413243
/* the typechecker does not work in C++ (yet) */
32423244
#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \

include/support/curl/curlver.h

+5-5
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@
3232

3333
/* This is the version number of the libcurl package from which this header
3434
file origins: */
35-
#define LIBCURL_VERSION "8.9.1"
35+
#define LIBCURL_VERSION "8.11.0"
3636

3737
/* The numeric version number is also available "in parts" by using these
3838
defines: */
3939
#define LIBCURL_VERSION_MAJOR 8
40-
#define LIBCURL_VERSION_MINOR 9
41-
#define LIBCURL_VERSION_PATCH 1
40+
#define LIBCURL_VERSION_MINOR 11
41+
#define LIBCURL_VERSION_PATCH 0
4242

4343
/* This is the numeric version of the libcurl version number, meant for easier
4444
parsing and comparisons by programs. The LIBCURL_VERSION_NUM define will
@@ -59,7 +59,7 @@
5959
CURL_VERSION_BITS() macro since curl's own configure script greps for it
6060
and needs it to contain the full number.
6161
*/
62-
#define LIBCURL_VERSION_NUM 0x080901
62+
#define LIBCURL_VERSION_NUM 0x080b00
6363

6464
/*
6565
* This is the date and time when the full source package was created. The
@@ -70,7 +70,7 @@
7070
*
7171
* "2007-11-23"
7272
*/
73-
#define LIBCURL_TIMESTAMP "2024-07-31"
73+
#define LIBCURL_TIMESTAMP "2024-11-06"
7474

7575
#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|(z))
7676
#define CURL_AT_LEAST_VERSION(x,y,z) \

include/support/curl/mprintf.h

+7-1
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,26 @@
3232
extern "C" {
3333
#endif
3434

35+
#ifndef CURL_TEMP_PRINTF
3536
#if (defined(__GNUC__) || defined(__clang__) || \
3637
defined(__IAR_SYSTEMS_ICC__)) && \
3738
defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \
3839
!defined(CURL_NO_FMT_CHECKS)
3940
#if defined(__MINGW32__) && !defined(__clang__)
41+
#if defined(__MINGW_PRINTF_FORMAT) /* mingw-w64 3.0.0+. Needs stdio.h. */
4042
#define CURL_TEMP_PRINTF(fmt, arg) \
41-
__attribute__((format(gnu_printf, fmt, arg)))
43+
__attribute__((format(__MINGW_PRINTF_FORMAT, fmt, arg)))
44+
#else
45+
#define CURL_TEMP_PRINTF(fmt, arg)
46+
#endif
4247
#else
4348
#define CURL_TEMP_PRINTF(fmt, arg) \
4449
__attribute__((format(printf, fmt, arg)))
4550
#endif
4651
#else
4752
#define CURL_TEMP_PRINTF(fmt, arg)
4853
#endif
54+
#endif
4955

5056
CURL_EXTERN int curl_mprintf(const char *format, ...)
5157
CURL_TEMP_PRINTF(1, 2);

include/support/curl/multi.h

+7-11
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,7 @@
5454
extern "C" {
5555
#endif
5656

57-
#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER)
58-
typedef struct Curl_multi CURLM;
59-
#else
6057
typedef void CURLM;
61-
#endif
6258

6359
typedef enum {
6460
CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or
@@ -248,13 +244,13 @@ CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle);
248244
* The data the returned pointer points to will not survive calling
249245
* curl_multi_cleanup().
250246
*
251-
* The 'CURLMsg' struct is meant to be very simple and only contain
252-
* very basic information. If more involved information is wanted,
253-
* we will provide the particular "transfer handle" in that struct
254-
* and that should/could/would be used in subsequent
255-
* curl_easy_getinfo() calls (or similar). The point being that we
256-
* must never expose complex structs to applications, as then we will
257-
* undoubtably get backwards compatibility problems in the future.
247+
* The 'CURLMsg' struct is meant to be simple and only contain basic
248+
* information. If more involved information is wanted, we will
249+
* provide the particular "transfer handle" in that struct and that
250+
* should/could/would be used in subsequent curl_easy_getinfo() calls
251+
* (or similar). The point being that we must never expose complex
252+
* structs to applications, as then we will undoubtably get backwards
253+
* compatibility problems in the future.
258254
*
259255
* Returns: A pointer to a filled-in struct, or NULL if it failed or ran out
260256
* of structs. It also writes the number of messages left in the

include/support/curl/system.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
* changed.
3232
*
3333
* In order to differentiate between platforms/compilers/architectures use
34-
* only compiler built in predefined preprocessor symbols.
34+
* only compiler built-in predefined preprocessor symbols.
3535
*
3636
* curl_off_t
3737
* ----------

libraries/libcurl/Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ifeq ($(BUILD_OSX),True)
1818
endif
1919

2020
# Enter object files here:
21-
OBJECTS = altsvc.o asyn-ares.o asyn-thread.o base64.o bufq.o bufref.o c-hyper.o cf-h1-proxy.o cf-h2-proxy.o cf-haproxy.o cf-https-connect.o cf-socket.o cfilters.o conncache.o connect.o content_encoding.o cookie.o curl_addrinfo.o curl_des.o curl_endian.o curl_fnmatch.o curl_get_line.o curl_gethostname.o curl_gssapi.o curl_memrchr.o curl_multibyte.o curl_ntlm_core.o curl_path.o curl_range.o curl_rtmp.o curl_sasl.o curl_sha512_256.o curl_sspi.o curl_threads.o curl_trc.o cw-out.o dict.o doh.o dynbuf.o dynhds.o easy.o easygetopt.o easyoptions.o escape.o file.o fileinfo.o fopen.o formdata.o ftp.o ftplistparser.o getenv.o getinfo.o gopher.o hash.o headers.o hmac.o hostasyn.o hostip.o hostip4.o hostip6.o hostsyn.o hsts.o http.o http_aws_sigv4.o http_chunks.o http_digest.o http_negotiate.o http_ntlm.o http_proxy.o http1.o http2.o idn.o if2ip.o imap.o inet_ntop.o inet_pton.o krb5.o ldap.o llist.o md4.o md5.o memdebug.o mime.o mprintf.o mqtt.o multi.o netrc.o nonblock.o noproxy.o openldap.o parsedate.o pingpong.o pop3.o progress.o psl.o rand.o rename.o request.o rtsp.o select.o sendf.o setopt.o sha256.o share.o slist.o smb.o smtp.o socks.o socks_gssapi.o socks_sspi.o speedcheck.o socketpair.o splay.o strcase.o strdup.o strerror.o strtok.o strtoofft.o telnet.o tftp.o timediff.o timeval.o transfer.o url.o urlapi.o version.o warnless.o ws.o
21+
OBJECTS = altsvc.o asyn-ares.o asyn-thread.o base64.o bufq.o bufref.o c-hyper.o cf-h1-proxy.o cf-h2-proxy.o cf-haproxy.o cf-https-connect.o cf-socket.o cfilters.o conncache.o connect.o content_encoding.o cookie.o curl_addrinfo.o curl_des.o curl_endian.o curl_fnmatch.o curl_get_line.o curl_gethostname.o curl_gssapi.o curl_memrchr.o curl_multibyte.o curl_ntlm_core.o curl_range.o curl_rtmp.o curl_sasl.o curl_sha512_256.o curl_sspi.o curl_threads.o curl_trc.o cw-out.o dict.o doh.o dynbuf.o dynhds.o easy.o easygetopt.o easyoptions.o escape.o file.o fileinfo.o fopen.o formdata.o ftp.o ftplistparser.o getenv.o getinfo.o gopher.o hash.o headers.o hmac.o hostasyn.o hostip.o hostip4.o hostip6.o hostsyn.o hsts.o http.o http_aws_sigv4.o http_chunks.o http_digest.o http_negotiate.o http_ntlm.o http_proxy.o http1.o http2.o idn.o if2ip.o imap.o inet_ntop.o inet_pton.o krb5.o ldap.o llist.o md4.o md5.o memdebug.o mime.o mprintf.o mqtt.o multi.o netrc.o nonblock.o noproxy.o openldap.o parsedate.o pingpong.o pop3.o progress.o psl.o rand.o rename.o request.o rtsp.o select.o sendf.o setopt.o sha256.o share.o slist.o smb.o smtp.o socks.o socks_gssapi.o socks_sspi.o speedcheck.o socketpair.o splay.o strcase.o strdup.o strerror.o strtok.o strtoofft.o telnet.o tftp.o timediff.o timeval.o transfer.o url.o urlapi.o version.o warnless.o ws.o
2222

2323
ifeq ($(BUILD_WIN32),True)
2424
OBJECTS += system_win32.o version_win32.o
@@ -30,7 +30,7 @@ endif
3030

3131
OBJECTS += vauth/cleartext.o vauth/cram.o vauth/digest.o vauth/digest_sspi.o vauth/gsasl.o vauth/krb5_gssapi.o vauth/krb5_sspi.o vauth/ntlm.o vauth/ntlm_sspi.o vauth/oauth2.o vauth/spnego_gssapi.o vauth/spnego_sspi.o vauth/vauth.o
3232
OBJECTS += vquic/curl_msh3.o vquic/curl_ngtcp2.o vquic/curl_osslq.o vquic/curl_quiche.o vquic/vquic.o vquic/vquic-tls.o
33-
OBJECTS += vssh/libssh.o vssh/libssh2.o vssh/wolfssh.o
33+
OBJECTS += vssh/curl_path.o vssh/libssh.o vssh/libssh2.o vssh/wolfssh.o
3434
OBJECTS += vtls/bearssl.o vtls/cipher_suite.o vtls/gtls.o vtls/hostcheck.o vtls/keylog.o vtls/mbedtls.o vtls/mbedtls_threadlock.o vtls/openssl.o vtls/rustls.o vtls/vtls.o vtls/wolfssl.o vtls/x509asn1.o
3535

3636
ifeq ($(BUILD_WIN32),True)

0 commit comments

Comments
 (0)