Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion DEPENDENCIES
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
vendorpull https://github.com/sourcemeta/vendorpull 1dcbac42809cf87cb5b045106b863e17ad84ba02
mbedtls https://github.com/Mbed-TLS/mbedtls v3.6.5
zlib https://github.com/madler/zlib v1.3.2
curl https://github.com/curl/curl curl-8_18_0
curl https://github.com/curl/curl curl-8_19_0
nghttp2 https://github.com/nghttp2/nghttp2 v1.67.1
cpr https://github.com/libcpr/cpr 1.14.2
c-ares https://github.com/c-ares/c-ares v1.34.5
Expand Down
13 changes: 6 additions & 7 deletions cmake/FindCURL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ if(NOT CURL_FOUND)
"${CURL_DIR}/lib/easygetopt.c"
"${CURL_DIR}/lib/cf-https-connect.c"
"${CURL_DIR}/lib/mime.h"
"${CURL_DIR}/lib/strdup.h"
"${CURL_DIR}/lib/curlx/strdup.h"
"${CURL_DIR}/lib/fileinfo.h"
"${CURL_DIR}/lib/curl_ldap.h"
"${CURL_DIR}/lib/amigaos.h"
Expand Down Expand Up @@ -99,7 +99,8 @@ if(NOT CURL_FOUND)
"${CURL_DIR}/lib/tftp.c"
"${CURL_DIR}/lib/curl_ntlm_core.h"
"${CURL_DIR}/lib/mqtt.c"
"${CURL_DIR}/lib/config-plan9.h"
"${CURL_DIR}/lib/curlx/basename.c"
"${CURL_DIR}/lib/curlx/basename.h"
"${CURL_DIR}/lib/noproxy.h"
"${CURL_DIR}/lib/gopher.h"
"${CURL_DIR}/lib/multihandle.h"
Expand Down Expand Up @@ -147,13 +148,11 @@ if(NOT CURL_FOUND)
"${CURL_DIR}/lib/vquic/curl_quiche.h"
"${CURL_DIR}/lib/vquic/vquic.c"
"${CURL_DIR}/lib/vquic/curl_ngtcp2.c"
"${CURL_DIR}/lib/vquic/curl_osslq.c"
"${CURL_DIR}/lib/vquic/vquic-tls.c"
"${CURL_DIR}/lib/vquic/curl_quiche.c"
"${CURL_DIR}/lib/vquic/curl_ngtcp2.h"
"${CURL_DIR}/lib/vquic/vquic.h"
"${CURL_DIR}/lib/vquic/vquic-tls.h"
"${CURL_DIR}/lib/vquic/curl_osslq.h"
"${CURL_DIR}/lib/vquic/vquic_int.h"
"${CURL_DIR}/lib/cookie.h"
"${CURL_DIR}/lib/uint-spbset.c"
Expand All @@ -168,7 +167,7 @@ if(NOT CURL_FOUND)
"${CURL_DIR}/lib/multiif.h"
"${CURL_DIR}/lib/curl_endian.h"
"${CURL_DIR}/lib/config-win32.h"
"${CURL_DIR}/lib/strdup.c"
"${CURL_DIR}/lib/curlx/strdup.c"
"${CURL_DIR}/lib/mime.c"
"${CURL_DIR}/lib/uint-bset.c"
"${CURL_DIR}/lib/strequal.c"
Expand All @@ -181,7 +180,7 @@ if(NOT CURL_FOUND)
"${CURL_DIR}/lib/multi_ev.h"
"${CURL_DIR}/lib/doh.h"
"${CURL_DIR}/lib/http_negotiate.h"
"${CURL_DIR}/lib/curl_setup_once.h"
"${CURL_DIR}/lib/curlx/snprintf.c"
"${CURL_DIR}/lib/curl_get_line.h"
"${CURL_DIR}/lib/http_aws_sigv4.c"
"${CURL_DIR}/lib/sockaddr.h"
Expand Down Expand Up @@ -250,7 +249,6 @@ if(NOT CURL_FOUND)
"${CURL_DIR}/lib/curlx/strcopy.c"
"${CURL_DIR}/lib/curlx/strcopy.h"
"${CURL_DIR}/lib/curlx/snprintf.h"
"${CURL_DIR}/lib/curlx/binmode.h"
"${CURL_DIR}/lib/setup-vms.h"
"${CURL_DIR}/lib/hostip.h"
"${CURL_DIR}/lib/content_encoding.h"
Expand Down Expand Up @@ -454,6 +452,7 @@ if(NOT CURL_FOUND)
target_link_libraries(curl PRIVATE ws2_32)
target_link_libraries(curl PRIVATE Crypt32)
target_link_libraries(curl PRIVATE Secur32)
target_link_libraries(curl PRIVATE Iphlpapi)
elseif(CMAKE_SYSTEM_NAME STREQUAL "MSYS")
set(CURL_OS "\"MSYS\"")
set(CURL_CA_BUNDLE "/usr/ssl/certs/ca-bundle.crt")
Expand Down
49 changes: 49 additions & 0 deletions patches/curl/0001-fix-schannel-alpn-init-order.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Juan Cruz Viotti <jv@jviotti.com>
Date: Thu, 13 Mar 2026 00:00:00 +0000
Subject: [PATCH] Fix Schannel ALPN init order on Windows

Curl_ssl_init() is called before Curl_win32_init() in global_init().
The new curlx_verify_windows_version() requires curlx_verify_windows_init()
to be called first (from Curl_win32_init), but schannel_init() (called via
Curl_ssl_init) uses curlx_verify_windows_version() to check ALPN support.
Without the init, it falls back to VerifyVersionInfoW which lies about the
OS version on Windows 10+ without a compatibility manifest, causing the
ALPN check for >= 6.3 to fail and disabling HTTP/2.

Move Curl_win32_init() before Curl_ssl_init() so the version function
pointer is set up before Schannel needs it.
---
lib/easy.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/easy.c b/lib/easy.c
index d05674e..a74d1da 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -140,6 +140,11 @@ static CURLcode global_init(long flags, bool memoryfuncs)
goto fail;
}

+ if(Curl_win32_init(flags)) {
+ DEBUGF(curl_mfprintf(stderr, "Error: win32_init failed\n"));
+ goto fail;
+ }
+
if(!Curl_ssl_init()) {
DEBUGF(curl_mfprintf(stderr, "Error: Curl_ssl_init failed\n"));
goto fail;
@@ -150,11 +155,6 @@ static CURLcode global_init(long flags, bool memoryfuncs)
goto fail;
}

- if(Curl_win32_init(flags)) {
- DEBUGF(curl_mfprintf(stderr, "Error: win32_init failed\n"));
- goto fail;
- }
-
if(Curl_amiga_init()) {
DEBUGF(curl_mfprintf(stderr, "Error: Curl_amiga_init failed\n"));
goto fail;
--
2.47.1
1 change: 1 addition & 0 deletions vendor/curl.mask

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion vendor/curl/COPYING

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

86 changes: 47 additions & 39 deletions vendor/curl/include/curl/curl.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading