Removed multiple old-style (C) casts and replaced them with the
appropriate _cast's. This makes httplib a better citizen inside projects
that are compiled with all warnings enabled.
Unfortunately one warning remains as a result of invoking an
OpenSSL macro (at least on Linux), that would have to be fixed
upstream.
Also fixed a few casts for invocations of setsockopt.
setsockopt takes a const void* for the value pointer, not a char*.
Well, except on Windows ...
Co-authored-by: Andre Eisenbach <git@4ae.us>
This allows disabling the use of C++ exceptions at CMake configure time.
The value is encoded in the generated httplibTargets.cmake file and will
be used by CMake projects that import it.
* Explicitly #include <utility> for use of std::move
* Move not copy Logger arg from Client to ClientImpl
* Move not copy, set_error_handler Handler to lambda
* Remove null statement in non-empty if/else block
I guess it was a relic from a time before the other statement was added.
---------
Co-authored-by: Daniel Boles <daniel.boles@voltalis.com>
* Reuse gtest on the system
Try to use gtest on the system if found. Avoid using recent CMake
features.
* Set CMP0135 only when using FetchContent
* Add /bigobj option for MSVC
* Support also cmake between 3.14 and 3.20
Older versions provided only GTest::Main target, not currently used
gtest_main. Provide backward compatibility also to old cmake versions.
* Remove redundant variable checking
---------
Co-authored-by: Jiwoo Park <jiwoo_90@naver.com>
* Support loading system certs from Keychein on MacOS
* review improvements: add deps to meson.build and improve conditional expressions in cmake
* fix tabs
* fix tabs
* review improvements
* fix after review
* additionally load root certs from the system root keychain
* cmake fix
* fix
* small refactoring
* small refactoring
---------
Co-authored-by: Sergey Kazmin <sergey.kazmin@kaspersky.com>