| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-11-05 | 1.3 kB | |
| v0.65.0 source code.tar.gz | 2026-11-05 | 2.1 MB | |
| v0.65.0 source code.zip | 2026-11-05 | 2.3 MB | |
| Totals: 3 Items | 4.4 MB | 1 | |
What's Changed
Behavior changes
- Client: with
set_follow_location(true), the parameters inRequest::paramsare no longer sent again to a redirect target. The next request goes to theLocationas given, as it already did forGet(path, params, ...). - Server: a
Rangeheader with a unit other thanbytesis ignored and the whole response is sent (#2657), as RFC 9110 section 14.2 requires. It used to be answered with 416.
Security-relevant fixes
- Client:
- Do not carry
Request::paramsover to a redirect, as described above. They were appended to aLocationwith no query, so they could reach another origin. - Keep a relative
Locationon the current host when its resolved path starts with//(#2654). The path was read as an authority, and the redirect went to another host.
Bug fixes
- Client:
stop()interrupts a request waiting for a response on Windows too (#2653). The request used to wait until the server answered or the read timeout passed. - Windows: cap a single
send()atINT_MAXon 64-bit builds too (#2655). A write of 4 GiB or more could hang. - wolfSSL: cap a read at
INT_MAX(#2655). A read into a buffer larger than that failed.
Full Changelog: https://github.com/yhirose/cpp-httplib/compare/v0.64.0...v0.65.0