1
0
mirror of synced 2025-06-10 20:21:41 +03:00
Commit Graph

869 Commits

Author SHA1 Message Date
4f8fcdbaf7 Allow to specify server IP address (#1067)
* Allow to specify server IP address

* Reimplement in set_hostname_addr_map

* Add tests for set_hostname_addr_map

* Fix tests after implement set_hostname_addr_map

* SpecifyServerIPAddressTest.RealHostname typo
2021-10-16 15:05:55 -04:00
b80aa7fee3 support custom ssl ctx configuration for SSLServer (#1073) 2021-10-15 07:13:16 -04:00
d17ac3bb40 Fix "Issue 39922 in oss-fuzz: cpp-httplib:server_fuzzer: Timeout in server_fuzzer" 2021-10-14 08:55:29 -04:00
c7554ccac2 Fix #1069 (#1070) 2021-10-09 20:35:58 -04:00
3da42fd1e8 Avoid min/max macro expansion on Windows (#1057) 2021-09-25 08:53:15 -04:00
503aa61325 Fix problem with an empty parameter in set_base_dir 2021-09-20 17:40:05 -04:00
e1efa337a2 Make Client move-constructible (#1051) 2021-09-16 14:05:42 -04:00
3c522386e9 Fix "Issue 38551 in oss-fuzz: cpp-httplib:server_fuzzer: Timeout in server_fuzze" 2021-09-12 19:24:48 -04:00
c202aa9ce9 Read buffer support. (Fix #1023) (#1046) 2021-09-12 00:26:02 -04:00
4e05368086 Fix #1054 2021-09-11 14:13:49 -04:00
e1afe74fe2 Fix #1037 2021-09-10 22:42:14 -04:00
415edc237c Set error variable for failed write_data (#1036) 2021-09-05 16:15:46 -04:00
ab477b5631 Fix "Issue 37742 in oss-fuzz: cpp-httplib:server_fuzzer: Timeout in server_fuzzer" 2021-09-02 22:57:57 -04:00
0823d5c7f2 Fixed #1031 2021-08-30 17:16:31 -04:00
4297500928 Fix #1024 2021-08-17 09:28:17 -04:00
a58f042614 Don't define INVALID_SOCKET if it has been defined already (i.e. by libpcap) (#1021)
Co-authored-by: Thomas Behn <Thomas.Behn@meinberg.de>
2021-08-10 08:29:27 -04:00
887074efd2 Add test of httplib.h split into .h + .cc (#1015)
In order to test the split version (.h + .cc via split.py):

- Added a test_split program in the test directory whose main purpose is
  to verify that it works to compile and link the test case code against
  the split httplib.h version.
- Moved types needed for test cases to the “header part” of httplib.h.
  Also added forward declarations of functions needed by test cases.
- Added an include_httplib.cc file which is linked together with test.cc
  to verify that inline keywords have not been forgotten.

The changes to httplib.h just move code around (or add forward
declarations), with one exception: detail::split and
detail::process_client_socket have been converted to non-template
functions (taking an std::function instead of using a type parameter for
the function) and forward-declared instead. This avoids having to move
the templates to the “header part”.
2021-07-31 09:53:30 -04:00
9c2c15ca45 Add missing template method implementations (#1013)
When using the split version of httplib.h the templated implementation
of e.g. Client::set_connection_timeout ends up in httplib.cc and
therefore results in a linker error since the needed template
specialization has not been instantiated. Fix this by moving the
implementation of template methods into the part that ends up in
httplib.h after the split.

Fixes #1008.
2021-07-30 10:05:49 -04:00
879dd261c2 Fix gzip compression/decompression over 4 GiB data size (#1002)
* Fix gzip compression/decompression over 4 GiB data size

* Add gzip test for large random data
2021-07-22 22:07:40 -04:00
52f5eb5980 [Fix] ca_cert_path/ce_cert_store lose (#1004)
When redirect from http to https, user setting for ca_cert will lose

issue: #1003
2021-07-22 21:41:41 -04:00
ea2f69a0d7 Add httplib::Error to std::string function (#999)
Fixes: #978
2021-07-19 21:17:44 -04:00
e3750d9ddf Simplefied server APIs 2021-07-17 18:09:30 -04:00
c1eee3012e Fix #998 2021-07-17 17:18:56 -04:00
06bfa7e08b Fix #979 2021-07-14 22:49:49 -04:00
3d83cbb872 Improve string compare performance 2021-07-12 23:51:56 -04:00
8a803b30f6 Fix #990 2021-07-12 23:46:25 -04:00
80be649de7 Fix #961 2021-06-26 18:26:33 -04:00
6b9ffc8bec Remove dead code (#965) 2021-06-18 07:20:34 -04:00
d903053faf Update httplib.h (#964)
operator""_ replaced by operator""_t
2021-06-17 10:57:25 -04:00
676f1b5a26 Updated the user agent string 2021-06-14 08:43:12 -04:00
b8dec12f15 Limit SSL_ERROR_WANT_READ retries to 1 sec (#957)
retry with 1ms delays to prevent CPU hoggin
2021-06-14 08:41:20 -04:00
fc9b223acc Updated copyright year 2021-06-11 14:45:35 -04:00
ba824089d7 Fix code err code 401 when the password is empty in base_auth. (#958) 2021-06-11 14:39:33 -04:00
5a43bb8149 Implemented #946 in a different way 2021-06-02 13:45:47 -04:00
0104614656 Code refactoring 2021-06-02 08:11:31 -04:00
77a77f6d2d Added set_default_headers on Server 2021-05-23 19:06:28 -04:00
089b9daa1c Fix virtual call in ClientImpl::~ClientImpl() (#942)
* Fix virtual call in ClientImpl::~ClientImpl()

This fixes a warning in clang tidy:

> Call to virtual method 'ClientImpl::shutdown_ssl' during
> destruction bypasses virtual dispatch

ClientImpl::~ClientImpl() calls lock_socket_and_shutdown_and_close()
that itself calls shutdown_ssl().  However, shutdown_ssl() is virtual
and C++ does not perform virtual dispatch in destructors, which results
in the wrong overload being called.

This change adds a non-virtual shutdown_ssl_impl() function that is
called from ~SSLClient().  We also inline sock_socket_and_shutdown_and_close()
and removes the virtual call in ~ClientImpl().

* Inline and remove lock_socket_and_shutdown_and_close()

The function only has one caller.
2021-05-22 20:15:20 -04:00
ba34ea4ee8 Fix #944 2021-05-22 19:24:50 -04:00
2917b8a005 Explicit cast from size_t to uInt (#941)
* Explicit cast from size_t to uInt

* static_cast<uInt> instead of C style cast
2021-05-19 18:03:59 -04:00
75fdb06696 Added a missing member in copy_settings. 2021-05-15 09:14:44 -04:00
e00ad37580 Add option to bypass URL encode of path (#934) 2021-05-15 08:48:25 -04:00
5cfb70c2b4 Fix some shadowed variable warnings (#935) 2021-05-15 08:46:16 -04:00
2a70c45697 Fix client.cc code, since res.error() without operator overloading… (#921)
* Fix client.cc code, since res.error() without operator overloading causing error in Xcode

* Add unit test to check new error to string with operator overloading

* Add inline as requested in code review comment
2021-05-01 13:29:23 -04:00
c58b00580e reserving before encoding (#912) 2021-04-24 16:19:14 -04:00
7c60e69c33 Remove redunant call to close_socket (#911) 2021-04-23 17:07:19 -04:00
73e0729f63 Change sink.write() to return boolean 2021-04-22 07:14:08 -04:00
21c529229c Fixed timeout issues 2021-04-22 07:14:08 -04:00
63643e6386 Code format 2021-04-13 20:52:49 -04:00
6cc2edce99 Added set_address_family 2021-04-13 20:49:52 -04:00
d122ff3ca8 Code formatting 2021-04-13 12:38:45 -04:00