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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# NEWS

unreleased
----------
4.8.0 - 2026-09-24
------------------

### Fixed

Expand Down Expand Up @@ -50,6 +50,20 @@ unreleased
option. It was handed to quic, which only takes DER `cacerts`, so it was
ignored and verification failed as `{error, timeout}`. `hackney:request/5`
was not affected.
- Connection-specific headers are dropped from HTTP/2 and HTTP/3 requests.
A caller's `Connection: keep-alive`, legal in HTTP/1.1 and banned by
RFC 9113 8.2.2 and RFC 9114 4.2, reached the header block and every request
failed before anything was written. hackney picks the protocol through ALPN,
so the caller cannot know which rules apply: `Connection`, `Keep-Alive`,
`Proxy-Connection`, `Transfer-Encoding` and `Upgrade` are stripped alongside
`Host`. `TE` is kept, being allowed with the value `trailers`
(#935, thanks @lennartschoch).
- A pooled HTTP/1.1 connection handed to a requester no longer closes itself
under the request. Checkout left the keepalive timer running, armed before
the readiness probe, so a connection could pass the probe and then fire the
timer, and the request that followed came back as `{error, invalid_state}`.
The timer is disarmed on checkout and re-armed when the connection returns
to the pool (#934, thanks @lennartschoch).
- A request that races a peer-initiated close now returns `{error, closed}`
instead of `{error, invalid_state}`. A connection that sees the peer close
stays alive briefly so late calls get an answer, and during that window every
Expand Down
3 changes: 2 additions & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

## Supported Versions

Security fixes are applied to the latest minor release on the `master` branch.
Security fixes are applied to the latest minor release on the `master` branch,
currently the 4.8.x line.

| Version | Supported |
| ------- | --------- |
Expand Down
2 changes: 1 addition & 1 deletion src/hackney.app.src
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
{application, hackney,
[
{description, "Simple HTTP client with HTTP/1.1, HTTP/2, and HTTP/3 support"},
{vsn, "4.7.4"},
{vsn, "4.8.0"},
{registered, [hackney_pool]},
{applications, [kernel,
stdlib,
Expand Down
Loading