Android
Windows
OSX
websocket_client
pplx
http_client
json
Miscellaneous
Tests
- Fixed issue in CMakeLists.txt where parenthesis were incorrectly used instead of brackets.
- Fixed issue in CMakeLists.txt where pplxlinux.cpp source file was missing.
- Added Android TestRunner packing androidproj to build.
Windows
- Fixed several code analysis warnings.
- Updating NuGet package for missing OpenSSL license, also patched 2.4.0's NuGet package.
- Fixed not working on XP issue because of crypto API. #331, #334
- Fixed several functions missing an explicit calling convention. This caused problems if you changed the calling convention from the cdecl.
- Added support for Windows on Devices/Galileo. #217
- Added option to force using PPLX on Windows Threadpool instead of PPL on the Concurrency Runtime. Library can be rebuilt using CPPREST_FORCE_PPLX macro.
- Updated all binaries to use whole program optimizations, slightly decreasing binary size and small potential performance improvements.
- Merged pull request adding support for CMake for Windows desktop.
OSX
- Merged a pull request to work around a FindOpenSSL.cmake issue, enabling it to find Homebrew's copy.
- Added support for iOS 64bit simulator. #196
websocket_client
- Fixed a race condition in Websocket++ based implementation during websocket client destructor which would sometimes result in an AV/Segfault.
- Added proxy support for Websocket++ based implementation.
- Added support for Server Name Indication (SNI) to Websocket++ based implementation.
- Updated server certificate verification to accept SERVER_GATED_CRYPTO and SGC_NETSCAPE usage for Websocket++ based implementation on Windows.
pplx
- Merged a pull request lazy instantiating the underlying threadpool used. Allows for forking processes in certain circumstances. #68
http_client
- Make std::function parameter to http_client::add_handler passed by const reference.
- Fixed invalid check in WinHTTP based implementation causing autologon security level to be high if credentials are not provided.
- Added extract_utf8string and extract_utf16string to http_request and http_response classes. This allows uses either UTF-8 or UTF-16, instead of utility::string_t, more efficiently regardless of the platform.
- Implemented native handle API for non-Windows platforms exposing Boost.Asio structures. This allows for configuring additional options like client certificates for example. #168
- Fixed bug in Boost.Asio based implementation that incorrectly caused multiple handshakes to occur when reusing connections with HTTPS.
- Fixed bug incorrectly setting the Content-Length header when not using the "C" locale.
json
- Fixed issue where the JSON library assumes char is a signed type, however C++ doesn't guarantee this. On ARM with Clang for example char is an unsigned type. This lead to incorrect parsing.
Miscellaneous
- Merged pull request adding http_constants.dat to be installed with 'make install'.
- Deprecated utility function web::http::bind, this was an implementation detail and really never should have been part of the API.
- Added overloads that accept a std::locale for utility::conversions::print_string and utility::conversions::scan_string.
- Fixed several locations where a stringstream was being used and assumed the "C" locale was set.
- Merged pull request fixing bug with nullptr from SafeInt3.hpp with GCC. #340
- Moved internal safeint types to msl::safeint3 namespace to avoid conflicting with Visual Studio versions. #216
Tests
- Fixed race conditions in close_callback_client_from_server
- Added proper synchronization to test_websocket_server (preventing some race conditions). #305