curl and libcurl 8.21.0

 Public curl releases:         275
 Command line options:         273
 curl_easy_setopt() options:   308
 Public functions in libcurl:  100
 Authors:                      1464
 Contributors:                 3665

This release includes the following changes:


This release includes the following bugfixes:

 o asyn-thrdd: fix result processing without wakeup socketpair [2]
 o gtls: fix some typos [15]
 o lib: two minor typos [16]
 o libcurl-easy.md: minor clarifications [19]
 o mqtt: validate PINGRESP and DISCONNECT have remaining_length == 0 [7]
 o setopt: changing the proxy port is also a proxy change [23]
 o show-headers.md: mention bold headers and --no-styled-output [17]
 o tool_formparse.c: fix two minor comment typos [25]
 o tool_formparse: polish error message + make two functions static [1]
 o user-agent.md: mention double quotes too [3]

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 local crypto implementations
 o NTLM
 o SMB
 o TLS-SRP 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:

  Daniel Stenberg, dependabot[bot], Jeremy Nicoll, Raymond Steen,
  Sollace on github, Stefan Eissing, Viktor Szakats
  (7 contributors)

References to bug reports and discussions on issues:

 [1] = https://curl.se/bug/?i=21510
 [2] = https://curl.se/bug/?i=21476
 [3] = https://curl.se/mail/archive-2026-04/0029.html
 [7] = https://hackerone.com/reports/3702718
 [15] = https://curl.se/bug/?i=21498
 [16] = https://curl.se/bug/?i=21496
 [17] = https://curl.se/bug/?i=21495
 [19] = https://curl.se/bug/?i=21491
 [23] = https://curl.se/bug/?i=21485
 [25] = https://curl.se/bug/?i=21480
