🠰 8.7.1 all changes 8.9.0 🠲
Changes in 8.8.0 - May 22 2024
Changes:
- curl_version_info: provide librtmp version
- file: add support for directory listings
- idn: add native AppleIDN (icucore) support for macOS/iOS
- lib: add curl_multi_waitfds
- mbedTLS: implement CURLOPT_SSL_CIPHER_LIST option
- NTLM_WB: drop support
- TLS: add support for ECH (Encrypted Client Hello)
- urlapi: add CURLU_GET_EMPTY for empty queries and fragments
Bugfixes:
- appveyor: drop unnecessary `--clean-first` cmake option
- appveyor: guard against crash-build with VS2008
- appveyor: make gcc 6 mingw64 job build-only
- asyn-thread: fix curl_global_cleanup crash in Windows
- asyn-thread: fix Curl_thread_create result check
- autotools: delete unused functions
- autotools: fix `HAVE_IOCTLSOCKET_FIONBIO` test for gcc 14
- autotools: only probe for SGI MIPS compilers on IRIX
- bearssl: fix compiler warnings
- bearssl: use common code for cipher suite lookup
- bufq: remove duplicate word in comment
- BUG-BOUNTY.md: clarify the third party situation
- build: prefer `USE_IPV6` macro internally (was: `ENABLE_IPV6`)
- build: remove MacOSX-Framework script
- cd2nroff/manage: use UTC when SOURCE_DATE_EPOCH is set
- cf-https-connect: use timeouts as unsigned ints
- cf-socket: don't try getting local IP without socket
- cf-socket: remove references to l_ip, l_port
- ci: add curl-for-win builds: Linux MUSL, macOS, Windows
- cmake: add `BUILD_EXAMPLES` option to build examples
- cmake: add librtmp/rtmpdump option and detection
- cmake: check fseeko after detecting HAVE_FILE_OFFSET_BITS
- cmake: do not pass linker flags to the static library tool
- cmake: enable `-pedantic-errors` for clang when `CURL_WERROR=ON`
- cmake: FindNGHTTP2 add static lib name to find_library call
- cmake: fix `CURL_WERROR=ON` for old CMake and use it in GHA/linux-old
- cmake: fix `HAVE_IOCTLSOCKET_FIONBIO` test with gcc 14
- cmake: fixup `DEPENDS` filename
- cmake: forward `USE_LIBRTMP` option to C
- cmake: generate misc manpages and install `mk-ca-bundle.pl`
- cmake: initialize `BUILD_TESTING` before first use
- cmake: speed up libcurl doc building again
- cmake: tidy-up to use `WORKING_DIRECTORY`
- cmake: use namespaced custom target names
- cmdline-docs: fix make install with configure --disable-docs
- configure: error on missing perl if docs or manual is enabled
- configure: make --disable-docs imply --disable-manual
- content_encoding: brotli and others, pass through 0-length writes
- content_encoding: ignore duplicate chunked encoding
- content_encoding: reject transfer-encoding after chunked
- contrithanks: honor `CURLWWW` variable
- curl-confopts.m4: define CARES_NO_DEPRECATED when c-ares is used
- curl.h: change CURL_SSLVERSION_* from enum to defines
- curl: make --help adapt to the terminal width
- curl: use curl_getenv instead of the curlx_ version
- Curl_creader_read: init two variables to avoid using them uninited
- curl_easy_pause.md: use correct defines in example
- curl_getdate.md: document two-digit year handling
- curl_global_trace.md: shorten the description
- curl_multibyte: remove access() function wrapper for Windows
- curl_path: make Curl_get_pathname use dynbuf
- curl_setup.h: add support for IAR compiler
- curl_setup.h: detect 'inline' support
- curl_sha512_256: do not use workaround for NetBSD when not needed
- curl_sha512_256: fix detection of OpenSSL 1.1.1 or later
- curl_url_get.md: clarify queries and fragments and CURLU_GET_EMPTY
- CURLINFO_REQUEST_SIZE: fixed, add tests for transfer infos reported
- CURLOPT_WRITEFUNCTION.md: fix the callback proto in the example
- cw-out: improved error handling
- DEPRECATE.md: TLS libraries without 1.3 support
- digest: replace strcpy for empty string with simple assignment
- dist: `set -eu`, fix shellcheck, make reproducible and smaller tarballs
- dist: add files missing from release tarball
- dist: add reproducible dir entries to tarballs
- dist: do not require Perl in `maketgz`
- dist: remove the curl-config.1 from the tarball
- dist: verify tarball reproducibility in CI
- DISTROS: add patch and issues link for curl-for-win
- DISTROS: Cygwin updates
- dllmain: Call OpenSSL thread cleanup for Windows and Cygwin
- doc: pytest `--repeat` -> `--count`
- docs/cmdline-opts: invoke managen using a relative path
- docs/cmdline-opts: mention STARTTLS for --ssl and --ssl-reqd
- docs: add CURLOPT_NOPROGRESS to CURLOPT_XFERINFOFUNCTION example
- docs: clarify CURLOPT_MAXFILESIZE and CURLOPT_MAXFILESIZE_LARGE
- docs: fix some CURLINFO examples
- doh: fix typo in comment
- doh: remove unused function prototype
- dynbuf: fix returncode on memory error
- examples: fix/silence `-Wsign-conversion`
- EXPERIMENTAL: add graduation requirements for each feature
- file: remove useless assignment
- ftp: add tracing support
- ftp: fix build for CURL_DISABLE_VERBOSE_STRINGS
- ftp: fix socket leak on rare error
- GHA: add NetBSD, OpenBSD, FreeBSD/arm64 and OmniOS jobs
- GHA: add shellcheck job and fix warnings, shell tidy-ups
- GHA: add valgrind to a wolfSSL build
- GHA: on macOS remove $HOME/.curlrc
- GHA: pin dependencies
- gnutls: lazy init the trust settings
- h3/ngtcp2: improve error handling
- hash: change 'slots' to size_t from int
- hash: delete unused debug function
- hsts: explicitly skip blank lines
- hsts: remove single-use single-line function
- http tests: in CI skip test_02_23* for quiche
- http2 + ngtcp2: pass CURLcode errors from callbacks
- http2, http3: decouple stream state from easy handle
- http2: emit RST when client write fails
- http3: quiche+ngtcp2 improvements
- http: acknowledge a returned error code
- http: HEAD response body tolerance
- http: reject HTTP major version switch mid connection
- http: remove redundant check
- http: with chunked POST forced, disable length check on read callback
- http_aws_sigv4: remove useless assignment
- idn: make Curl_idnconvert_hostname() use Curl_idn_decode()
- if2ip: make the buf_size arg a size_t
- INSTALL-CMAKE.md: explain `cmake -G <generator-name>`
- krb5: use dynbuf
- ldap: fix unused variables (seen on OmniOS)
- lib/cf-h1-proxy: silence compiler warnings (gcc 14)
- lib: add trace support for client reads and writes
- lib: bump hash sizes to `size_t`
- lib: clear the easy handle's saved errno before transfer
- lib: fix compiler warnings (gcc)
- lib: make protocol handlers store scheme name lowercase
- lib: merge `ENABLE_QUIC` C macro into `USE_HTTP3`
- lib: remove two instances of "only only" messages
- lib: silence `-Wsign-conversion` in base64, strcase, mprintf
- lib: silence warnings on comma misuse
- lib: use `#error` instead of invalid syntax in `curl_setup_once.h`
- lib: use multi instead of multi_easy for the active multi
- libcurl-opts: mention pipelining less
- libssh2: delete redundant feature guard
- libssh2: replace `access()` with `stat()`
- libssh2: set length to 0 if strdup failed
- m4: fix rustls pkg-config codepath
- MAIL-ETIQUETTE: convert to markdown
- makefile: remove the sorting from the vc-ide action
- maketgz: put docs/RELEASE-TOOL.md into the tarball
- managen: fix the option sort order
- mbedtls: call mbedtls_ssl_setup() after RNG callback is set
- mbedtls: cut off trailing newlines from debug logs
- mbedtls: fix building with v3 in CMake Unity mode
- mbedtls: support TLS 1.3
- mime: avoid using access()
- misc: fix typos
- misc: fix typos, quoting and spelling
- mprintf: check fputc error rather than matching returned character
- mqtt: when Curl_xfer_recv returns error, don't use nread
- multi: avoid memory-leak risk
- multi: introduce SETUP state for better timeouts
- multi: multi_wait improvements
- multi: remove the unused Curl_preconnect function
- multi: remove useless assignment
- multi: timeout handles even without connection
- openldap: create ldap URLs correctly for IPv6 addresses
- openssl: do not set SSL_MODE_RELEASE_BUFFERS
- openssl: revert keylog_callback support for LibreSSL
- OS400: fix shellcheck warnings in scripts
- projects: drop MSVC project files for recent versions
- pytest: add DELETE tests, check server version
- pytest: fixes for recent python, add FTP tests
- quic: fixup duplicate static function name (for cmake unity)
- quiche: expire all active transfers on connection close
- quiche: trust its timeout handling
- RELEASE-PROCEDURE: mention an initial working build
- request: make Curl_req_init return void
- request: paused upload on completed download, assess connection
- reuse: add copyright + license info to individual docs/*.md files
- ROADMAP: remove completed entries, mention websocket
- rustls: fix handshake done handling
- rustls: fix partial send handling
- rustls: remove incorrect SSLSUPP_TLS13_CIPHERSUITES flag
- rustsls: fix error code on receive
- sendf: fix two typos in comments
- sendf: useless assignment in cr_lc_read()
- setopt: acknowledge errors proper for CURLOPT_COOKIEJAR
- setopt: make the setstropt_userpwd args compulsory
- setopt: remove check for 'option' that is always true
- setopt: warn on Curl_set*opt() uses not using the return value
- smtp: result of Curl_bufq_cread was not used
- socket: remove redundant call to getsockname
- socketpair: fix compilation when USE_UNIX_SOCKETS is not defined
- src: tidy up types, add necessary casts
- telnet: check return code from fileno()
- tests/http: fix compiler warning
- tests: add -q as first option when invoking curl for tests
- tests: check caddy server version to match test expectations
- tests: enable test 1117 for hyper
- tests: fix feature case in test1481
- tests: fix test 1167 to skip digit-only symbols
- tests: make the unit test result type `CURLcode`
- tests: Mark tftpd timer function as noreturn
- tests: tidy up types in server code
- tls: fix SecureTransport + BearSSL cmake unity builds
- tls: remove EXAMPLEs from deprecated options
- tls: use shared init code for TCP+QUIC
- tool: move tool_ftruncate64 to tool_util.c
- tool_cb_rea: limit rate unpause for -T . uploads
- tool_cfgable: free {proxy_}cipher13_list on exit
- tool_getparam: output warning for leading unicode quote character
- tool_getparam: remove two redundant conditions
- tool_operate: don't truncate the etag save file by default
- tool_operate: init vars unconditionally in post_per_transfer
- tool_paramhlp: remove duplicate assign
- tool_xattr: "guess" URL scheme if none is provided
- tool_xattr: in debug builds, act normally if CURL_FAKE_XATTR is not set
- transfer: remove useless assignment
- url: do not URL decode proxy crendentials
- url: fix use of an uninitialized variable
- url: make parse_login_details use memdup0
- url: remove duplicate call to Curl_conncache_remove_conn when pruning
- urlapi: allow setting port number zero
- urlapi: fix relative redirects to fragment-only
- urldata: remove fields not used depending on used features
- vauth: make two functions void that always just returned OK
- version: use msnprintf instead of strncpy
- vquic-tls: use correct cert name check API for wolfSSL
- vquic: use CURL_FORMAT_CURL_OFF_T for 64 bit printf output
- vtls: TLS session storage overhaul
- wakeup_create: use FD_CLOEXEC/SOCK_CLOEXEC
- warnless: delete orphan declarations
- websocket: avoid memory leak in error path
- winbuild: add ENABLE_WEBSOCKETS option
- winbuild: use $(RC) correctly
- wolfssl: plug memory leak in wolfssl_connect_step2()
- x509asn1: return error on missing OID