1
0
mirror of synced 2025-06-12 07:41:53 +03:00
Commit Graph

868 Commits

Author SHA1 Message Date
9505a76491 Bringing Cmake back (#470)
* Revert "Removed CMakeLists.txt. (Fix #421)"

This reverts commit 8674555b88.

* Fail if cmake version too old

Previous behaviour is just a warning.

* Improve CMakeLists

Adds automatic dependency finding (if they were used).
Adds a way to require a specific version in the find_package(httplib) call.

You should link against the httplib::httplib IMPORTED target, which is
created automatically.

Add options to allow for strictly requiring OpenSSL/ZLIB

HTTPLIB_REQUIRE_OPENSSL & HTTPLIB_REQUIRE_ZLIB require the libs be found, or the build fails.

HTTPLIB_USE_OPENSSL_IF_AVAILABLE & HTTPLIB_USE_ZLIB_IF_AVAILABLE silently search for the libs.
If they aren't found, the build still continues, but shuts off support for those features.

* Add documentation to CMakeLists.txt

Has info on all the available options and what targets are produced.

Also put some things about installation on certain platforms.
2020-05-19 19:07:18 -04:00
29fd136afd Code cleanup and format v0.6.3 2020-05-16 17:35:04 -04:00
f5598237b2 Fixed many redirects problem on Proxy 2020-05-16 17:34:03 -04:00
01058659ab make write timeout configurable (like the read timeout already is) (#477)
In case we want to send a lot of data,
and the receiver is slower than the sender.

This will first fill up the receivers queues and after this
eventually also the senders queues,
until the socket is temporarily unable to accept more data to send.

select_write is done with an timeout of zero,
which makes the select call used always return immediately:
(see http://man7.org/linux/man-pages/man2/select.2.html)

This means that every marginal unavailability will make it return false
for is_writable and therefore httplib will immediately abort the transfer.

Therefore make this values configurable in the same way
as the read timeout already is.

Set the default write timeout to 5 seconds,
the same default value used for the read timeout.
2020-05-16 17:31:46 -04:00
66f698fab6 Fixed build errors with some examples v0.6.2 2020-05-16 00:50:52 -04:00
b9a9df4d73 Fixed problem with writing large data 2020-05-15 22:21:58 -04:00
25aa3ca982 Added std::ostream os in DataSink. 2020-05-15 21:26:13 -04:00
2d67211183 Added more unit tests for the simple interface 2020-05-14 18:25:18 -04:00
f4c5d94d74 Updated version in the User Agent string v0.6.1 2020-05-14 18:07:02 -04:00
63a96aeb20 Improved Client2 interface 2020-05-14 12:51:34 -04:00
bbb83d12c1 Removed default parameter values in Client and SSLClient constructors 2020-05-14 08:51:32 -04:00
2d4b42b70b Removed url 2020-05-14 01:43:06 -04:00
1919d08f71 Added Client2 2020-05-14 01:36:56 -04:00
824c02fcd3 Code cleanup 2020-05-14 01:08:36 -04:00
2c0613f211 Fix #472 v0.6.0 2020-05-13 21:48:14 -04:00
be45ff1ff1 A detail about Gzip support (#475)
* Typos fixed

* README.md edited.libz should be linked for GZIP support.
2020-05-12 17:38:51 -04:00
803ebe1e20 Typos fixed (#474) 2020-05-12 13:18:58 -04:00
ba685dbe48 Fixed potential infinite loop with content receiver v0.5.13 2020-05-10 20:45:57 -04:00
49c4c2f9c1 Fix #459 2020-05-10 20:39:16 -04:00
58909f5917 Fix #466 2020-05-10 15:58:53 -04:00
5982b5c360 Fix #471 2020-05-10 14:18:03 -04:00
eb1fe5b191 Fixed warnings 2020-05-09 15:08:49 -04:00
5e01587ed6 Fixed problem created in the previous commit 2020-05-09 13:43:06 -04:00
5935d9fa59 Commented out the unit test for digest auth. 2020-05-09 13:32:51 -04:00
5bb4c12c6b Fix #465 (#467)
update digest header username to use username parameter instead of "hello" test value
2020-05-09 08:29:08 -04:00
85637844c9 Updated README 2020-05-07 21:13:45 -04:00
d043b18097 keepalive: support multiple post using content provider (#461) 2020-05-07 08:31:14 -04:00
31bb13abd2 Removed TravisCI badge from README 2020-05-04 22:19:17 -04:00
8728db7477 Apply IPV6_V6ONLY only when socket is AF_INET6 2020-05-04 22:16:43 -04:00
1c50ac3667 Stop using TravisCI anymore due to IPv6 issue 2020-05-04 22:14:03 -04:00
cf386f97fd Merge branch 'master' of https://github.com/yhirose/cpp-httplib 2020-05-04 22:13:17 -04:00
b2203bb05a server: support dual-stack server socket (#450)
According to RFC 3493 the socket option IPV6_V6ONLY
should be off by default, see
https://tools.ietf.org/html/rfc3493#page-22 (chapter 5.3).

However this does not seem to be the case on all systems.
For instance on any Windows OS, the option is on by default.

Therefore clear this option in order to allow
an server socket which can support IPv6 and IPv4 at the same time.
2020-05-04 22:13:12 -04:00
f5b806d995 Added a test case for #396. 2020-05-04 21:26:14 -04:00
3895210f19 Code format 2020-05-04 21:25:59 -04:00
d45250fd88 Appled HANDLE_EINTR to send and select system calls v0.5.12 2020-05-01 21:38:23 -04:00
528cacdc0d Changed CPPHTTPLIB_THREAD_POOL_COUNT back to 8. (#454) 2020-05-01 21:23:02 -04:00
ed1b6afa10 Fix crash caused by header field regex complexity (#457) 2020-05-01 12:44:13 -04:00
08fc7085e5 Fixed #456 2020-04-30 19:40:23 -04:00
8333340e2c Chagned to use inline function instead of macro 2020-04-27 12:36:39 -04:00
98a0887571 Merge branch 'je-ik-sketch-eintr-handling' 2020-04-27 12:33:21 -04:00
b0a189e50e Sketch handling EINTR errors 2020-04-27 17:36:44 +02:00
776b3ffbf9 Code format v0.5.11 2020-04-25 18:01:48 -04:00
a061b97677 Adjust appveyor.yml 2020-04-25 18:01:12 -04:00
d359e3a5f7 Renave queue_adjust to on_idle (#442) 2020-04-25 17:56:55 -04:00
5928e0af1a TaskQueue method to internal size adjust (#442)
I use a custom TaskQueue, with variable number of workers, adding workers on demand is an easy task when new connection arrive (in enqueue function) however i need another funtion to be called even (or better) went no new connections arrives to reduce workers count. I only added a new virtual method in TaskQueue class to allow custom class to adjust workers size over time. Even if this methods is called frequenlty custom class can keep a "last_update" counter to check if need to adjust worker count or any other internal task. Without this function i need an external thread to make this adjust task.
2020-04-25 17:55:20 -04:00
a5005789ff Fixed Visual Studio compiler warnings with x64 platform (Resolve #440 and #446) (#448) 2020-04-25 17:13:14 -04:00
fae30af47d Updated appveyor.yml 2020-04-25 15:48:19 -04:00
2feea0c9ab Fixed error: ‘ULONG_MAX’ was not declared in this scope on line 1921 (#445)
* Fixed error:
ULONG_MAX is defined in the limits.h header file. Putting #include <climits>
```
httplib.h: In function ‘bool httplib::detail::read_content_chunked(httplib::Stream&, httplib::ContentReceiver)’:
httplib.h:1921:22: error: ‘ULONG_MAX’ was not declared in this scope
     if (chunk_len == ULONG_MAX) { return false; }
                      ^~~~~~~~~
httplib.h:1921:22: note: suggested alternative: ‘_SC_ULONG_MAX’
     if (chunk_len == ULONG_MAX) { return false; }
                      ^~~~~~~~~
                      _SC_ULONG_MAX
```

* Move #include <climits> to after #include <cassert>
2020-04-24 12:02:19 -04:00
a2e4af54b7 Fix #399 2020-04-23 23:09:04 -04:00
d0b123be26 Support remote_addr and remote_port REMOTE_PORT header in client Request (#433) 2020-04-23 22:12:12 -04:00