Skip to content

Commit 21d7f82

Browse files
author
Git for Windows Build Agent
committed
Update 4 packages
curl (8.16.0-1 -> 8.17.0-1) libcurl (8.16.0-1 -> 8.17.0-1) mingw-w64-i686-curl-openssl-alternate (8.16.0-2 -> 8.17.0-1) mingw-w64-i686-curl-winssl (8.16.0-2 -> 8.17.0-1) Signed-off-by: Git for Windows Build Agent <[email protected]>
1 parent 3e3e380 commit 21d7f82

File tree

1,083 files changed

+355
-284
lines changed

Some content is hidden

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

1,083 files changed

+355
-284
lines changed

etc/rebase.db.i386

0 Bytes
Binary file not shown.

mingw32/bin/curl-config

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ while test "$#" -gt 0; do
9595
;;
9696

9797
--version)
98-
echo 'libcurl 8.16.0'
98+
echo 'libcurl 8.17.0'
9999
exit 0
100100
;;
101101

@@ -107,11 +107,11 @@ while test "$#" -gt 0; do
107107
# dash as that's used for things like version 1.2.3-pre1
108108
cpatch=`echo "$checkfor" | cut -d. -f3 | cut -d- -f1`
109109

110-
vmajor=`echo '8.16.0' | cut -d. -f1`
111-
vminor=`echo '8.16.0' | cut -d. -f2`
110+
vmajor=`echo '8.17.0' | cut -d. -f1`
111+
vminor=`echo '8.17.0' | cut -d. -f2`
112112
# when extracting the patch part we strip off everything after a
113113
# dash as that's used for things like version 1.2.3-pre1
114-
vpatch=`echo '8.16.0' | cut -d. -f3 | cut -d- -f1`
114+
vpatch=`echo '8.17.0' | cut -d. -f3 | cut -d- -f1`
115115

116116
if test "$vmajor" -gt "$cmajor"; then
117117
exit 0
@@ -127,12 +127,12 @@ while test "$#" -gt 0; do
127127
fi
128128
fi
129129

130-
echo "requested version $checkfor is newer than existing 8.16.0"
130+
echo "requested version $checkfor is newer than existing 8.17.0"
131131
exit 1
132132
;;
133133

134134
--vernum)
135-
echo '081000'
135+
echo '081100'
136136
exit 0
137137
;;
138138

mingw32/bin/curl.exe

12 KB
Binary file not shown.

mingw32/bin/libcurl-4.dll

10 KB
Binary file not shown.

mingw32/bin/libcurl-openssl-4.dll

10.5 KB
Binary file not shown.

mingw32/bin/wcurl

Lines changed: 53 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
# Stop on errors and on usage of unset variables.
3030
set -eu
3131

32-
VERSION="2025.05.26"
32+
VERSION="2025.11.04"
3333

3434
PROGRAM_NAME="$(basename "$0")"
3535
readonly PROGRAM_NAME
@@ -65,7 +65,7 @@ Options:
6565
multiple times, only the last value is considered.
6666
6767
--no-decode-filename: Don't percent-decode the output filename, even if the percent-encoding in
68-
the URL was done by wcurl, e.g.: The URL contained whitespaces.
68+
the URL was done by wcurl, e.g.: The URL contained whitespace.
6969
7070
--dry-run: Don't actually execute curl, just print what would be invoked.
7171
@@ -77,7 +77,7 @@ Options:
7777
instead forwarded to the curl invocation.
7878
7979
<URL>: URL to be downloaded. Anything that is not a parameter is considered
80-
an URL. Whitespaces are percent-encoded and the URL is passed to curl, which
80+
an URL. Whitespace is percent-encoded and the URL is passed to curl, which
8181
then performs the parsing. May be specified more than once.
8282
_EOF_
8383
}
@@ -91,7 +91,7 @@ error()
9191

9292
# Extra curl options provided by the user.
9393
# This is set per-URL for every URL provided.
94-
# Some options are global, but we are erroring on the side of needlesly setting
94+
# Some options are global, but we are erroring on the side of needlessly setting
9595
# them multiple times instead of causing issues with parameters that needs to
9696
# be set per-URL.
9797
CURL_OPTIONS=""
@@ -113,6 +113,13 @@ readonly PER_URL_PARAMETERS="\
113113
--remote-time \
114114
--retry 5 "
115115

116+
# Valid percent-encode codes that are considered unsafe to be decoded.
117+
# This is a list of space-separated percent-encoded uppercase
118+
# characters.
119+
# 2F = /
120+
# 5C = \
121+
readonly UNSAFE_PERCENT_ENCODE="2F 5C"
122+
116123
# Whether to invoke curl or not.
117124
DRY_RUN="false"
118125

@@ -133,10 +140,24 @@ sanitize()
133140
is_subset_of()
134141
{
135142
case "${1}" in
136-
*[!${2}]*|'') return 1;;
143+
*[!${2}]* | '') return 1 ;;
137144
esac
138145
}
139146

147+
# Indicate via exit code whether the HTML code given in the first
148+
# parameter is safe to be decoded.
149+
is_safe_percent_encode()
150+
{
151+
upper_str=$(printf "%s" "${1}" | tr "[:lower:]" "[:upper:]")
152+
for unsafe in ${UNSAFE_PERCENT_ENCODE}; do
153+
if [ "${unsafe}" = "${upper_str}" ]; then
154+
return 1
155+
fi
156+
done
157+
158+
return 0
159+
}
160+
140161
# Print the given string percent-decoded.
141162
percent_decode()
142163
{
@@ -151,9 +172,10 @@ percent_decode()
151172
decode_out="${decode_out}${decode_hex2}"
152173
# Skip decoding if this is a control character (00-1F).
153174
# Skip decoding if DECODE_FILENAME is not "true".
154-
if is_subset_of "${decode_hex1}" "23456789abcdefABCDEF" && \
155-
is_subset_of "${decode_hex2}" "0123456789abcdefABCDEF" && \
156-
[ "${DECODE_FILENAME}" = "true" ]; then
175+
if [ "${DECODE_FILENAME}" = "true" ] \
176+
&& is_subset_of "${decode_hex1}" "23456789abcdefABCDEF" \
177+
&& is_subset_of "${decode_hex2}" "0123456789abcdefABCDEF" \
178+
&& is_safe_percent_encode "${decode_out}"; then
157179
# Use printf to decode it into octal and then decode it to the final format.
158180
decode_out="$(printf "%b" "\\$(printf %o "0x${decode_hex1}${decode_hex2}")")"
159181
fi
@@ -171,7 +193,7 @@ get_url_filename()
171193
# If what remains contains a slash, there's a path; return it percent-decoded.
172194
case "${hostname_and_path}" in
173195
# sed to remove everything preceding the last '/', e.g.: "example/something" becomes "something"
174-
*/*) percent_decode "$(printf %s "${hostname_and_path}" | sed -e 's,^.*/,,')";;
196+
*/*) percent_decode "$(printf %s "${hostname_and_path}" | sed -e 's,^.*/,,')" ;;
175197
esac
176198
# No slash means there was just a hostname and no path; return empty string.
177199
}
@@ -181,35 +203,38 @@ exec_curl()
181203
{
182204
CMD="curl "
183205

184-
# Store version to check if it supports --no-clobber and --parallel.
206+
# Store version to check if it supports --no-clobber, --parallel and --parallel-max-host.
185207
curl_version=$($CMD --version | cut -f2 -d' ' | head -n1)
186208
curl_version_major=$(echo "$curl_version" | cut -f1 -d.)
187209
curl_version_minor=$(echo "$curl_version" | cut -f2 -d.)
188210

189-
CURL_HAS_NO_CLOBBER=""
190-
CURL_HAS_PARALLEL=""
211+
CURL_NO_CLOBBER=""
212+
CURL_PARALLEL=""
191213
# --no-clobber is only supported since 7.83.0.
192214
# --parallel is only supported since 7.66.0.
215+
# --parallel-max-host is only supported since 8.16.0.
193216
if [ "${curl_version_major}" -ge 8 ]; then
194-
CURL_HAS_NO_CLOBBER="--no-clobber"
195-
CURL_HAS_PARALLEL="--parallel"
196-
elif [ "${curl_version_major}" -eq 7 ];then
217+
CURL_NO_CLOBBER="--no-clobber"
218+
CURL_PARALLEL="--parallel"
219+
if [ "${curl_version_minor}" -ge 16 ]; then
220+
CURL_PARALLEL="--parallel --parallel-max-host 5"
221+
fi
222+
elif [ "${curl_version_major}" -eq 7 ]; then
197223
if [ "${curl_version_minor}" -ge 83 ]; then
198-
CURL_HAS_NO_CLOBBER="--no-clobber"
224+
CURL_NO_CLOBBER="--no-clobber"
199225
fi
200226
if [ "${curl_version_minor}" -ge 66 ]; then
201-
CURL_HAS_PARALLEL="--parallel"
227+
CURL_PARALLEL="--parallel"
202228
fi
203229
fi
204230

205-
# Detecting whether we need --parallel. It's easier to rely on
231+
# Detecting whether we need --parallel. It's easier to rely on
206232
# the shell's argument parsing.
207233
# shellcheck disable=SC2086
208234
set -- $URLS
209235

210-
if [ "$#" -gt 1 ]; then
211-
CURL_PARALLEL="$CURL_HAS_PARALLEL"
212-
else
236+
# If there are less than two URLs, don't set the parallel flag.
237+
if [ "$#" -lt 2 ]; then
213238
CURL_PARALLEL=""
214239
fi
215240

@@ -231,7 +256,7 @@ exec_curl()
231256
[ -z "${OUTPUT_PATH}" ] && OUTPUT_PATH=index.html
232257
fi
233258
# shellcheck disable=SC2086
234-
set -- "$@" ${NEXT_PARAMETER} ${PER_URL_PARAMETERS} ${CURL_HAS_NO_CLOBBER} ${CURL_OPTIONS} --output "${OUTPUT_PATH}" "${url}"
259+
set -- "$@" ${NEXT_PARAMETER} ${PER_URL_PARAMETERS} ${CURL_NO_CLOBBER} --output "${OUTPUT_PATH}" ${CURL_OPTIONS} "${url}"
235260
NEXT_PARAMETER="--next"
236261
done
237262

@@ -268,13 +293,13 @@ while [ -n "${1-}" ]; do
268293
OUTPUT_PATH="${opt}"
269294
;;
270295

271-
-o|-O|--output)
296+
-o | -O | --output)
272297
shift
273298
HAS_USER_SET_OUTPUT="true"
274299
OUTPUT_PATH="${1}"
275300
;;
276301

277-
-o*|-O*)
302+
-o* | -O*)
278303
opt=$(printf "%s\n" "${1}" | sed 's/^-[oO]//')
279304
HAS_USER_SET_OUTPUT="true"
280305
OUTPUT_PATH="${opt}"
@@ -284,12 +309,12 @@ while [ -n "${1-}" ]; do
284309
DECODE_FILENAME="false"
285310
;;
286311

287-
-h|--help)
312+
-h | --help)
288313
usage
289314
exit 0
290315
;;
291316

292-
-V|--version)
317+
-V | --version)
293318
print_version
294319
exit 0
295320
;;
@@ -298,7 +323,7 @@ while [ -n "${1-}" ]; do
298323
# This is the start of the list of URLs.
299324
shift
300325
for url in "$@"; do
301-
# Encode whitespaces into %20, since wget supports those URLs.
326+
# Encode whitespace into %20, since wget supports those URLs.
302327
newurl=$(printf "%s\n" "${url}" | sed 's/ /%20/g')
303328
URLS="${URLS} ${newurl}"
304329
done
@@ -311,7 +336,7 @@ while [ -n "${1-}" ]; do
311336

312337
*)
313338
# This must be a URL.
314-
# Encode whitespaces into %20, since wget supports those URLs.
339+
# Encode whitespace into %20, since wget supports those URLs.
315340
newurl=$(printf "%s\n" "${1}" | sed 's/ /%20/g')
316341
URLS="${URLS} ${newurl}"
317342
;;

mingw32/include/curl/curl.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -401,12 +401,12 @@ typedef int (*curl_seek_callback)(void *instream,
401401
#define CURL_TRAILERFUNC_ABORT 1
402402

403403
typedef size_t (*curl_read_callback)(char *buffer,
404-
size_t size,
405-
size_t nitems,
406-
void *instream);
404+
size_t size,
405+
size_t nitems,
406+
void *instream);
407407

408408
typedef int (*curl_trailer_callback)(struct curl_slist **list,
409-
void *userdata);
409+
void *userdata);
410410

411411
typedef enum {
412412
CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */
@@ -1357,7 +1357,8 @@ typedef enum {
13571357
/* Set the krb4/5 security level, this also enables krb4/5 awareness. This
13581358
* is a string, 'clear', 'safe', 'confidential' or 'private'. If the string
13591359
* is set but does not match one of these, 'private' will be used. */
1360-
CURLOPT(CURLOPT_KRBLEVEL, CURLOPTTYPE_STRINGPOINT, 63),
1360+
CURLOPTDEPRECATED(CURLOPT_KRBLEVEL, CURLOPTTYPE_STRINGPOINT, 63,
1361+
8.17.0, "removed"),
13611362

13621363
/* Set if we should verify the peer in ssl handshake, set 1 to verify. */
13631364
CURLOPT(CURLOPT_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 64),
@@ -1952,8 +1953,7 @@ typedef enum {
19521953
/* Pass in a bitmask of "header options" */
19531954
CURLOPT(CURLOPT_HEADEROPT, CURLOPTTYPE_VALUES, 229),
19541955

1955-
/* The public key in DER form used to validate the peer public key
1956-
this option is used only if SSL_VERIFYPEER is true */
1956+
/* The public key used to validate the peer public key */
19571957
CURLOPT(CURLOPT_PINNEDPUBLICKEY, CURLOPTTYPE_STRINGPOINT, 230),
19581958

19591959
/* Path to Unix domain socket */

mingw32/include/curl/curlver.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@
3232

3333
/* This is the version number of the libcurl package from which this header
3434
file origins: */
35-
#define LIBCURL_VERSION "8.16.0"
35+
#define LIBCURL_VERSION "8.17.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 16
40+
#define LIBCURL_VERSION_MINOR 17
4141
#define LIBCURL_VERSION_PATCH 0
4242
/* This is the numeric version of the libcurl version number, meant for easier
4343
parsing and comparisons by programs. The LIBCURL_VERSION_NUM define will
@@ -58,7 +58,7 @@
5858
CURL_VERSION_BITS() macro since curl's own configure script greps for it
5959
and needs it to contain the full number.
6060
*/
61-
#define LIBCURL_VERSION_NUM 0x081000
61+
#define LIBCURL_VERSION_NUM 0x081100
6262

6363
/*
6464
* This is the date and time when the full source package was created. The
@@ -69,7 +69,7 @@
6969
*
7070
* "2007-11-23"
7171
*/
72-
#define LIBCURL_TIMESTAMP "2025-09-10"
72+
#define LIBCURL_TIMESTAMP "2025-11-05"
7373

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

mingw32/include/curl/multi.h

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,12 @@ typedef enum {
398398
/* network has changed, adjust caches/connection reuse */
399399
CURLOPT(CURLMOPT_NETWORK_CHANGED, CURLOPTTYPE_LONG, 17),
400400

401+
/* This is the notify callback function pointer */
402+
CURLOPT(CURLMOPT_NOTIFYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 18),
403+
404+
/* This is the argument passed to the notify callback */
405+
CURLOPT(CURLMOPT_NOTIFYDATA, CURLOPTTYPE_OBJECTPOINT, 19),
406+
401407
CURLMOPT_LASTENTRY /* the last unused */
402408
} CURLMoption;
403409

@@ -464,7 +470,9 @@ typedef enum {
464470
* be read via `curl_multi_info_read()`. */
465471
CURLMINFO_XFERS_DONE = 4,
466472
/* The total number of easy handles added to the multi handle, ever. */
467-
CURLMINFO_XFERS_ADDED = 5
473+
CURLMINFO_XFERS_ADDED = 5,
474+
475+
CURLMINFO_LASTENTRY /* the last unused */
468476
} CURLMinfo_offt;
469477

470478
/*
@@ -518,6 +526,26 @@ CURL_EXTERN CURLMcode curl_multi_waitfds(CURLM *multi,
518526
unsigned int size,
519527
unsigned int *fd_count);
520528

529+
/*
530+
* Notifications dispatched by a multi handle, when enabled.
531+
*/
532+
#define CURLMNOTIFY_INFO_READ 0
533+
#define CURLMNOTIFY_EASY_DONE 1
534+
535+
/*
536+
* Callback to install via CURLMOPT_NOTIFYFUNCTION.
537+
*/
538+
typedef void (*curl_notify_callback)(CURLM *multi,
539+
unsigned int notification,
540+
CURL *easy,
541+
void *user_data);
542+
543+
CURL_EXTERN CURLMcode curl_multi_notify_disable(CURLM *multi,
544+
unsigned int notification);
545+
546+
CURL_EXTERN CURLMcode curl_multi_notify_enable(CURLM *multi,
547+
unsigned int notification);
548+
521549
#ifdef __cplusplus
522550
} /* end of extern "C" */
523551
#endif

0 commit comments

Comments
 (0)