Releases: libcpr/cpr
1.9.0 - Goodbye cpp11
This will be the last release where the minimum required C++ standard is cpp11. With the next major release (1.10.0) in ~late 2022/early 2023 we will increase the minimum C++ standard to cpp17 (Issue).
This release (1.9.0) will still receive bug fixes, at least until the end of 2023, but all new features require from now on a cpp17 compatible compiler.
Thanks to everyone who helped making this next release of cpr possible 🎉!
Especially I would like to thank @simon-berger, @saendigPhilip @leviliangtw .
In case everything goes like planed we will even offer a .deb package and a NuGet package soon.
So stay tuned!
What's Changed
- Improve usability for ResponseStringReserve by @WorkingRobot in #726
- Make sure mutex is properly initialized by @cordbleibaum in #728
- Only use CURLOPT_SSLKEY_BLOB on curl 7.71.0+ by @alebcay in #737
- Unified basic, digest and ntlm authentication into one authenticaton class by @simon-berger in #735
- Use UpdateHeader to allow header updates from different sources by @simon-berger in #738
- Added function to get the full request URL by @simon-berger in #741
- Improved range requests and added support for multiple ranges by @simon-berger in #742
- Use thread pool to instead of std::async (#633) by @ithewei in #734
- Add Interceptors by @simon-berger in #744
- Support for CURLOPT_LOCALPORT and CURLOPT_LOCALPORTRANGE by @jmhersc in #748
- Add CaBuffer to enable loading of CA certificates from buffers by @simon-berger in #750
- Add method SetAcceptEncoding for customized Accept-Encoding header (#683) by @leviliangtw in #746
- Add support of customized filename for Multipart (#642) by @leviliangtw in #755
- Added CI script for automatically building a debian package by @saendigPhilip in #760
- Add unit tests for file uploading using buffer of rvalue/lvalue reference (#216) by @leviliangtw in #764
- Add async methods to the Session object interface by @simon-berger in #756
- Add support of file and buffer for the POST Body (#581) by @leviliangtw in #763
- Securely remove sensitive data from memory by @Garfield96 in #776
secureStringClearFix for Empty Strings by @COM8 in #779- New certificates for HTTPS tests by @saendigPhilip in #773
- MacOS and Windows OpenSSL CI fixes by @COM8 in #783
- Refactor cpr::Cookies for storing more fields (#777) by @leviliangtw in #778
- Fix certificate information extraction from the response (#769) by @leviliangtw in #781
- Workaround for PUT requests with a read callback by @COM8 in #787
New Contributors
- @WorkingRobot made their first contribution in #726
- @cordbleibaum made their first contribution in #728
- @alebcay made their first contribution in #737
- @simon-berger made their first contribution in #735
- @ithewei made their first contribution in #734
- @jmhersc made their first contribution in #748
- @leviliangtw made their first contribution in #746
- @saendigPhilip made their first contribution in #760
Full Changelog: 1.8.4...1.9.0
Securely remove sensitive data from memory
This release addresses a security concern, where an attacker could extract sensitive information from cpr after the application had been exited.
Changes:
- Explicit removal of sensitive data from memory (@Garfield96)
Full Changelog: 1.8.3...1.8.4
`CURLOPT_SSLKEY_BLOB` and old curl Versions
This release disables setting SSL-Key blobs for older versions of curl below 7.71.0, since it was not available previously to that.
More information on that can be found here: #732
Full Changelog: 1.8.2...1.8.3
Windows and MacOS HTTPS fix
What's Changed
Full Changelog: 1.8.1...1.8.2
cpr v1.8.1
Changes
- Not including
curl.hin cpr header files #716
cpr v1.8.0
Changes
- Added
DownloadAsync(...)#696 - Added basic range support via
SetRange(...)#701 - Added support for setting the private key blob directly #699
- Added Mbed TLS support #714
- Added an option to reserve space before downloading the response string #712
- Updated the build in curl to 7.81.0
- Fixed CA-Path for Android #707
- Fix overwriting of ca bundle #717
- Fix build with OpenSSL on Ubuntu bionic #696
- Fixed installing DLLs to binary directory
cpr v1.7.2
Small bug fix release.
Changes
- Fixed version macro
cpr v1.7.1 - Header and cpr::Session::Download
Small bug fix release.
Changes
- Fixed setting headers when calling
cpr::Session::Download(...).
Now something like this should work:
cpr::Url url{server->GetBaseUrl() + "/download_gzip.html"};
cpr::Session session;
session.SetUrl(url);
session.SetHeader(cpr::Header{{"Accept-Encoding", "gzip"}}); // Works now
cpr::Response response = session.Download(cpr::WriteCallback{write_data, 0});cpr v1.7.0
- Added a Cppcheck CI run
- Fixed automated libcurl ca path detection
- Fixed missing
raw_headerincpr::Response - Fixed bugprone narrowing conversions
- Fixed
MaxRedirectsexceeded should be treated as error - Updated libcurl from
7.75.0to7.79.1 - Fixed
cprConfig.cmakewhen building cpr as a submodule - Added cpr version macros in
cprver.h - Fixed CMake paths for subprojects
- Updated zlib-ng from
2.0.0-RC2to2.0.5 - Fixed usage of
CPR_USE_SYSTEM_GTEST - Added CMake find-package support
- Added more redirect options:
cont_send_cred: Continue to send authentication (user+password) credentials when following locations, even when hostname changed.
- Added an option to specify the HTML version with
SetHttpVersion(...) - Fixed respecting system proxy configuration
- Added an option to select the outgoing interface with
SetInterface(...) - Added an option to get the file download length
GetDownloadFileLength(...) - Updated Google Tests from
1.10.0to1.11.0 - Added proxy authentication
- Don't forcibly override user setting for
FETCHCONTENT_QUIET
cpr v1.6.2
- Fix MSVC build; linker flags for sanitizer builds #558