curl and libcurl 8.15.1

 Public curl releases:         270
 Command line options:         271
 curl_easy_setopt() options:   308
 Public functions in libcurl:  96
 Contributors:                 3474

This release includes the following changes:

 o build: bump minimum required mingw-w64 to v3.0 (from v1.0) [33]
 o curl: add --parallel-max-host to limit concurrent connections per host [81]
 o curl: add long option '--out-null' [101]
 o curl: make --retry-delay and --retry-max-time accept decimal seconds [112]
 o ip happy eyeballing: keep attempts running [80]
 o multi: add CURLMOPT_NETWORK_CHANGED to signal network changed [84]
 o netrc: use the NETRC environment variable (first) if set [70]
 o smtp: allow suffix behind a mail address for RFC 3461 [127]
 o tls: make default TLS version be minimum 1.2 [71]
 o tool_getparam: add support for `--longopt=value` [69]
 o vquic: drop msh3 [8]

This release includes the following bugfixes:

 o _PROTOCOLS.md: mention file:// is only for absolute paths [102]
 o alpn: query filter [104]
 o bufq: add integer overflow checks before chunk allocations [108]
 o build: allow libtests/clients to use libcurl dependencies directly [87]
 o build: enable _GNU_SOURCE on GNU/Hurd [27]
 o build: extend GNU C guards to clang where applicable, fix fallouts [61]
 o build: fix build errors/warnings in rare configurations [7]
 o build: fix disable-verbose [48]
 o build: fix mingw-w64 version guard for mingw32ce [124]
 o build: link to Apple frameworks required by static wolfSSL [40]
 o build: tidy up compiler definition for tests [37]
 o cf-https-connect: delete unused declaration [15]
 o cmake: capitalize 'Rustls' in the config summary
 o cmake: defer building `unitprotos.h` till a test target needs it [75]
 o cmake: fix `ENABLE_UNIX_SOCKETS=OFF` with pre-fill enabled on unix
 o cmake: fix to disable Schannel and SSPI for non-Windows targets
 o cmake: keep websockets disabled if HTTP is disabled
 o cmake: make `runtests` targets build the curl tool [32]
 o cmake: omit linking duplicate/unnecessary libs to tests & examples [45]
 o CODE_STYLE: sync with recent `checksrc.pl` updates [49]
 o config-win32.h: do not use winsock2 `inet_ntop()`/`inet_pton()` [58]
 o connectdata: remove primary+secondary ip_quadruple [126]
 o connection: terminate after goaway [62]
 o contrithanks: fix for BSD `sed` tool [98]
 o curl/system.h: fix for GCC 3.3.x and older [38]
 o curl: make the URL indexes 64 bit [117]
 o curl: tool_read_cb fix of segfault [18]
 o curl_addrinfo: drop workaround for old-mingw [14]
 o curl_easy_ssls_export: make the example more clear [78]
 o curl_fnmatch, servers: drop local macros in favour of `sizeof()` [21]
 o curl_mime_data_cb.md: mention what datasize is for [107]
 o curl_ossl: extend callback table for nghttp3 1.11.0 [46]
 o curl_setup.h: move UWP detection after `config-win32.h` (revert) [51]
 o curl_setup.h: move UWP detection after `config-win32.h` [23]
 o CURLOPT: bump `CURL_REDIR_*` macros to `long` [110]
 o CURLOPT: bump `CURLALTSVC_*` macros to `long` [96]
 o CURLOPT: bump `CURLFTP*` enums to `long`, drop casts [54]
 o CURLOPT: bump `CURLHEADER_*` macros to `long`, drop casts [94]
 o CURLOPT: bump `CURLPROXY_*` enums to `long`, drop casts [95]
 o CURLOPT: drop redundant `long` casts [55]
 o delta: fix warnings, fix for non-GNU `date` tool [99]
 o DEPRECATE.md: drop support for Windows XP/2003 [31]
 o DEPRECATE.md: remove leftover "nothing" [57]
 o DISTROS.md: add Haiku [39]
 o docs/cmdline-opts: the auth types are not mutually exclusive [103]
 o docs: fix name in curl_easy_ssls_export man page [12]
 o doh: rename symbols to avoid collision with mingw-w64 headers [66]
 o easy handle: check validity on external calls [28]
 o gnutls: some small cleanups [41]
 o hmac: return error if init fails [2]
 o http: const up readonly H2_NON_FIELD [10]
 o http: silence `-Warray-bounds` with gcc 13+ [44]
 o inet_pton, inet_ntop: drop declarations when unused [59]
 o lib1560: fix memory leak when run without UTF-8 support [17]
 o lib1560: replace an `int` with `bool` [97]
 o lib517: use `LL` 64-bit literals & re-enable a test case (`time_t`) [100]
 o libssh: Use sftp_aio instead of sftp_async for sftp_recv [92]
 o libtests: update format strings to avoid casts, drop some macros [109]
 o memanalyze: fix warnings [22]
 o memory: make function overrides work reliably in unity builds [93]
 o multi event: remove only announced [25]
 o multi: don't insert a node into the splay tree twice [68]
 o multi: fix assert in multi_getsock() [53]
 o multi: process pending, one by one [90]
 o multi: replace remaining EXPIRE_RUN_NOW [67]
 o multissl: initialize when requesting a random number [30]
 o ngtcp2: extend callback tables for nghttp3 1.11.0 and ngtcp2 1.14.0 [47]
 o openssl: some small cleanups [42]
 o openssl: split cert_stuff into smaller sub functions [72]
 o parallel-max: bump the max value to 65535 [86]
 o pytest: add SOCKS tests and scoring [9]
 o pytest: increase server KeepAliveTimeout [26]
 o pytest: relax error check on test_07_22 [16]
 o schannel: assume `CERT_CHAIN_REVOCATION_CHECK_CHAIN` [114]
 o schannel: drop fallbacks for 4 macros [121]
 o schannel: drop fallbacks for unused `BCRYPT_*` macros [122]
 o schannel: drop old-mingw special case [77]
 o schannel: fix recent update for mingw32ce [123]
 o schannel: not supported with UWP, drop redundant code [105]
 o schannel: use if(result) like the code style says [125]
 o scripts: enable strict warnings in Perl where missing, fix fallouts [63]
 o scripts: fix two Perl uninitialized value warnings [60]
 o servers: convert two macros to scoped static const strings [89]
 o setopt: refactor out the booleans from setopt_long to setopt_bool [83]
 o socks: do_SOCKS5: Fix invalid buffer content on short send [43]
 o spacecheck.pl: when detecting unicode, mention line number [85]
 o test1148: drop redundant `LC_NUMBER=` env setting [13]
 o test1560: set locale/codeset with `LC_ALL` (was: `LANG`), test in CI [19]
 o test1560: skip some URLs if UTF-8 is not supported [34]
 o test1: raise alloc limits [11]
 o test428: re-enable for Windows [5]
 o tests: constify command-line arguments [82]
 o tests: drop unused `CURL_FORCEHOST` envs [36]
 o tests: fix perl warnings in http2-server, http3-server [119]
 o tests: fix prechecks to call the bundle libtest tool [120]
 o tests: fix UTF-8 detection, per-test `LC_*` settings, CI coverage [6]
 o tests: merge clients into libtests, drop duplicate code [76]
 o tests: set `CURL_ENTROPY` per test, not globally [35]
 o tests: unset some envs instead of blanking them [4]
 o tidy-up: `Curl_thread_create()` callback return type [20]
 o tidy-up: move literal to the right side of comparisons [65]
 o tidy-up: prefer `ifdef`/`ifndef` for single checks [64]
 o tls: CURLINFO_TLS_SSL_PTR testing [79]
 o tool_operate: avoid superfluous strdup'ing output [1]
 o unit-tests: build the unitprotos.h from here [73]
 o vquic-tls: fix SSL backend type for QUIC connections using gnutls [29]
 o windows: assume `ADDRESS_FAMILY`, drop feature checks [88]
 o windows: document toolchain support for `CERT_NAME_SEARCH_ALL_NAMES_FLAG`
 o windows: document toolchain support for some macros (cont.) [111]
 o windows: document toolchain support for some macros [113]
 o windows: drop `CRYPT_E_*` macro fallbacks, limit one to mingw32ce [118]
 o windows: drop two interim, single-use macros [106]
 o windows: drop unused `curlx/version_win32.h` includes [52]
 o windows: fix `if_nametoindex()` detection with autotools, improve with cmake [24]
 o windows: include `wincrypt.h` before `iphlpapi.h` for mingw-w64 <6 [50]
 o windows: target version macro tidy-ups [3]
 o ws: avoid NULL pointer deref in curl_ws_recv [91]

This release includes the following known bugs:

 See https://curl.se/docs/knownbugs.html

For all changes ever done in curl:

 See https://curl.se/changes.html

Planned upcoming removals include:

 o Supporting curl builds using VS2008
 o The winbuild build system
 o Windows CE support

 See https://curl.se/dev/deprecate.html

This release would not have looked like this without help, code, reports and
advice from friends like these:

  Ahmad Gani, Alice Lee Poetics, Ammar Faizi, Berthin Torres Callañaupa,
  Caolán McNamara, Cole Leavitt, d1r3ct0r, Dan Fandrich, Daniel Stenberg,
  David Zhuang, Dominik Tomecki, Eshan Kelkar, Harry Sintonen, Kai Pastor,
  LoRd_MuldeR, nevakrien on github, Paul Gilmartin, Philippe Antoine,
  Pino Toscano, Qriist on github, Ray Satiro, renovate[bot],
  rm-rmonaghan on github, Schrijvers Luc, Sergio Durigan Junior,
  Stefan Eissing, Tal Regev, Todd Gamblin, Viktor Szakats, yaoy6 on github,
  ウさん
  (31 contributors)

References to bug reports and discussions on issues:

 [1] = https://curl.se/bug/?i=17946
 [2] = https://curl.se/bug/?i=18008
 [3] = https://curl.se/bug/?i=17981
 [4] = https://curl.se/bug/?i=17994
 [5] = https://curl.se/bug/?i=17991
 [6] = https://curl.se/bug/?i=17988
 [7] = https://curl.se/bug/?i=17962
 [8] = https://curl.se/bug/?i=17729
 [9] = https://curl.se/bug/?i=17986
 [10] = https://curl.se/bug/?i=17996
 [11] = https://curl.se/bug/?i=18004
 [12] = https://curl.se/bug/?i=17995
 [13] = https://curl.se/bug/?i=17993
 [14] = https://curl.se/bug/?i=18038
 [15] = https://curl.se/bug/?i=18036
 [16] = https://curl.se/bug/?i=18050
 [17] = https://curl.se/bug/?i=17998
 [18] = https://curl.se/bug/?i=17978
 [19] = https://curl.se/bug/?i=17938
 [20] = https://curl.se/bug/?i=17889
 [21] = https://curl.se/bug/?i=17898
 [22] = https://curl.se/bug/?i=18049
 [23] = https://curl.se/bug/?i=17980
 [24] = https://curl.se/bug/?i=17982
 [25] = https://curl.se/bug/?i=17949
 [26] = https://curl.se/bug/?i=17968
 [27] = https://curl.se/bug/?i=17975
 [28] = https://curl.se/bug/?i=17958
 [29] = https://curl.se/bug/?i=17976
 [30] = https://curl.se/bug/?i=17963
 [31] = https://curl.se/bug/?i=18016
 [32] = https://curl.se/bug/?i=17967
 [33] = https://curl.se/bug/?i=17984
 [34] = https://curl.se/bug/?i=17933
 [35] = https://curl.se/bug/?i=17971
 [36] = https://curl.se/bug/?i=17972
 [37] = https://curl.se/bug/?i=17768
 [38] = https://curl.se/bug/?i=17951
 [39] = https://curl.se/bug/?i=17953
 [40] = https://github.com/microsoft/vcpkg/pull/46444#pullrequestreview-3026575393
 [41] = https://curl.se/bug/?i=17941
 [42] = https://curl.se/bug/?i=17940
 [43] = https://curl.se/bug/?i=17942
 [44] = https://curl.se/bug/?i=18030
 [45] = https://curl.se/bug/?i=17696
 [46] = https://curl.se/bug/?i=18026
 [47] = https://curl.se/bug/?i=18019
 [48] = https://curl.se/bug/?i=18053
 [49] = https://curl.se/bug/?i=18015
 [50] = https://curl.se/bug/?i=18012
 [51] = https://curl.se/bug/?i=18014
 [52] = https://curl.se/bug/?i=18011
 [53] = https://curl.se/bug/?i=18046
 [54] = https://curl.se/bug/?i=17797
 [55] = https://curl.se/bug/?i=17791
 [57] = https://curl.se/bug/?i=18044
 [58] = https://curl.se/bug/?i=18045
 [59] = https://curl.se/bug/?i=18043
 [60] = https://curl.se/bug/?i=18047
 [61] = https://curl.se/bug/?i=17955
 [62] = https://curl.se/bug/?i=17884
 [63] = https://curl.se/bug/?i=17877
 [64] = https://curl.se/bug/?i=18018
 [65] = https://curl.se/bug/?i=17876
 [66] = https://curl.se/bug/?i=18041
 [67] = https://curl.se/bug/?i=17883
 [68] = https://curl.se/bug/?i=18005
 [69] = https://curl.se/bug/?i=17789
 [70] = https://curl.se/bug/?i=17712
 [71] = https://curl.se/bug/?i=17894
 [72] = https://curl.se/bug/?i=18081
 [73] = https://curl.se/bug/?i=18088
 [75] = https://curl.se/bug/?i=18086
 [76] = https://curl.se/bug/?i=18079
 [77] = https://curl.se/bug/?i=18084
 [78] = https://curl.se/bug/?i=18117
 [79] = https://curl.se/bug/?i=18066
 [80] = https://curl.se/bug/?i=18105
 [81] = https://curl.se/bug/?i=18052
 [82] = https://curl.se/bug/?i=18076
 [83] = https://curl.se/bug/?i=17887
 [84] = https://curl.se/bug/?i=17225
 [85] = https://curl.se/bug/?i=18120
 [86] = https://curl.se/bug/?i=18068
 [87] = https://curl.se/bug/?i=18069
 [88] = https://curl.se/bug/?i=18057
 [89] = https://curl.se/bug/?i=18067
 [90] = https://curl.se/bug/?i=18017
 [91] = https://curl.se/bug/?i=18065
 [92] = https://curl.se/bug/?i=17440
 [93] = https://curl.se/bug/?i=17827
 [94] = https://curl.se/bug/?i=18055
 [95] = https://curl.se/bug/?i=18054
 [96] = https://curl.se/bug/?i=18063
 [97] = https://curl.se/bug/?i=18064
 [98] = https://curl.se/bug/?i=18062
 [99] = https://curl.se/bug/?i=18061
 [100] = https://curl.se/bug/?i=18032
 [101] = https://curl.se/bug/?i=17800
 [102] = https://curl.se/bug/?i=18060
 [103] = https://curl.se/bug/?i=18059
 [104] = https://curl.se/bug/?i=17947
 [105] = https://curl.se/bug/?i=18116
 [106] = https://curl.se/bug/?i=18114
 [107] = https://curl.se/bug/?i=18115
 [108] = https://curl.se/bug/?i=18112
 [109] = https://curl.se/bug/?i=18106
 [110] = https://curl.se/bug/?i=18110
 [111] = https://curl.se/bug/?i=18113
 [112] = https://curl.se/bug/?i=18109
 [113] = https://curl.se/bug/?i=18085
 [114] = https://curl.se/bug/?i=18108
 [117] = https://curl.se/bug/?i=18096
 [118] = https://curl.se/bug/?i=18092
 [119] = https://curl.se/bug/?i=18100
 [120] = https://curl.se/bug/?i=18099
 [121] = https://curl.se/bug/?i=18093
 [122] = https://curl.se/bug/?i=18091
 [123] = https://curl.se/bug/?i=18097
 [124] = https://curl.se/bug/?i=18095
 [125] = https://curl.se/bug/?i=18094
 [126] = https://curl.se/bug/?i=17960
 [127] = https://curl.se/bug/?i=16643
