| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-05-15 | 1.3 kB | |
| v0.45.0 source code.tar.gz | 2026-05-15 | 1.9 MB | |
| v0.45.0 source code.zip | 2026-05-15 | 2.1 MB | |
| Totals: 3 Items | 3.9 MB | 7 | |
What's Changed
Bug fixes
- Fix crash on empty / comma-only
X-Forwarded-Forwhenset_trusted_proxies()is configured.get_client_ip()previously calledfront()on a vector that was empty whenever the header tokenized to zero segments ("",",",", , ,"); it now returns an empty string soprocess_request()falls back to the connection-level remote address instead of crashing (5c92857) - Fix keep-alive corruption on requests without a framed body (#2450). The post-response drain ran for any request that
expect_content()accepted, so a method likeDELETE /items/1with noContent-Lengthand noTransfer-Encodingwould, on a persistent connection, letread_contentconsume bytes belonging to the next pipelined request — making the second request appear to vanish. The drain now only runs when the request actually has a framed body (Content-Lengthor chunked). The non-SSL "stray-bytes → 413" payload-limit check is likewise limited to non-persistent connections, since on keep-alive any pending bytes may be the next request rather than an unframed body (91271c0)
Internal
- Extract
detail::has_framed_body()anddetail::is_connection_persistent()helpers used by the keep-alive fix above (d755c43)