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

305 Commits

Author SHA1 Message Date
bc4a613b6d Fix suffix-byte-range issue (#711) 2020-10-20 11:11:27 -04:00
4bb001351c Fix #705 2020-10-19 22:13:24 -04:00
5292142046 Add cpp-httplib to oss-fuzz (#684)
* *Add server fuzzer target  and seed corpus
* Add fuzz_test option to Makefile

* Fix #685

* Try to fix Github actions on Ubuntu

* Added ReadTimeoutSSL test

* Comment out `-fsanitize=address`

* Rebase upstream changes

* remove address sanitizer temporarily

* Add separate Makefile for fuzzing

* 1. Remove special char from dictionary
2. Clean fuzzing/Makefile

* Use specific path to avoid accidently linking openssl version brought in by oss-fuzz

* remove addition of flags

* Refactor Makefile

* Add missing newline

* Add fuzztest to github workflow

* Fix

Co-authored-by: yhirose <yuji.hirose.bug@gmail.com>
2020-10-15 08:11:40 -04:00
7e8db1dc68 Comment out -fsanitize=address 2020-10-08 23:14:53 -04:00
316add860b Added ReadTimeoutSSL test 2020-10-08 22:55:09 -04:00
143b2dd15a Fix memory leak due caused due to X509_STORE (#671)
* Fix memory leak due caused due to X509_STORE

* Add test for repro and address sanitizer to compiler flags

* Add comment

* Sync

* Associate ca_store with ssl context within set_ca_cert_store()

* Split SlowPost test

* Fix #674

Co-authored-by: yhirose <yuji.hirose.bug@gmail.com>
2020-10-02 13:17:37 -04:00
d87082f04b Split SlowPost test 2020-09-29 19:17:34 -04:00
559c407552 Adjusted SlowRequest test 2020-09-25 18:13:10 -04:00
e9575bcb78 don't replace plus with space in headers (#649)
* don't replace plus with space in headers

* fixed forward handling with changed header parsing

* add test for boundaries containing plus chars
2020-09-10 20:27:01 -04:00
9d12b3f20e Fixed warnings and refactoring 2020-09-03 20:33:30 -04:00
852a374748 Fix server crash caused due to regex complexity while matching headers. (#632)
* Fix parsing to parse query string with single space char.

When passed ' ' as a query string, the server crashes cause of illegal memory access done in httplib::detail::split. Have added checks to make sure the split function has a valid string with length > 0.

* Fix parsing to parse query string with single space char.

* Fix server crash caused due to regex complexity while matching headers.

While parsing content-type header in multipart form request the server crashes due to the exhaustion of max iterations performed while matching the input string with content-type regex.
Have removed the regex which might use backtracking while matching and replaced it with manual string processing. Have added tests as well.

* Remove magic number

Co-authored-by: Ivan Fefer <fefer.ivan@gmail.com>

Co-authored-by: yhirose <yhirose@users.noreply.github.com>
Co-authored-by: Ivan Fefer <fefer.ivan@gmail.com>
2020-09-03 13:17:52 -04:00
3b5bab3308 Fix gzip_decompressor in case of one chunk being exactly equal to buffer size (#636)
* add larget chunks test

* revert test

* Fix gzip decoder in case of chunk being equal to buffer size

* add test
2020-09-03 12:20:02 -04:00
b0fd4befb1 Fix query parsing issues (#629)
* Fix parsing to parse query string with single space char.

When passed ' ' as a query string, the server crashes cause of illegal memory access done in httplib::detail::split. Have added checks to make sure the split function has a valid string with length > 0.

* Fix parsing to parse query string with single space char.
2020-08-28 09:43:28 -04:00
e5dd410256 Added set_content_provider without content length 2020-08-15 05:53:49 -04:00
dc5f9ba164 Better error handling on client (#601) 2020-08-08 20:50:24 -04:00
04002d57bd Added set_default_headers (Fix #600) 2020-08-03 22:05:37 -04:00
ae54e833ea Code cleanup 2020-07-31 23:48:42 -04:00
a5b4cfadb9 Brotli suport on server. Fix #578 2020-07-31 10:23:57 -04:00
3e906a9b8c Fix #591 2020-07-30 18:26:18 -04:00
ef65f09608 OpenSSL support on Visual Studio project 2020-07-30 17:19:12 -04:00
8a348f17fd Resolved #192 2020-07-30 01:47:54 -04:00
797d1f27e8 Fix #357 2020-07-29 23:12:05 -04:00
12540fe8d3 Brotli support on client 2020-07-25 20:44:02 -04:00
9ca1fa8b18 Fix #576 2020-07-25 09:37:57 -04:00
15c4106a36 Added a unit test 2020-07-22 08:07:59 -04:00
b476b55771 Fix #557 2020-07-20 17:04:50 -04:00
c4f3f9529b Fix #534 (#546) 2020-07-02 21:57:50 -04:00
ce502a73e1 Fix #531 2020-06-22 14:56:18 -04:00
010e4479f4 Fixed test errors due to httpbin.org 2020-06-22 14:53:20 -04:00
7cd25fbd63 Fix #499 2020-06-16 17:46:23 -04:00
0cc108d45e Updated ClientStop test 2020-06-13 23:18:59 -04:00
e022b8b80b Refactoring to make it ready for KeepAlive connection on Client 2020-06-13 21:42:23 -04:00
34282c79a9 Changd thread count in ClientStop 2020-06-13 01:45:08 -04:00
f80b6bd980 Added Endpoint structure in Client 2020-06-13 01:26:57 -04:00
5af7222217 Fixed Client::stop problem with more than one requests on threads 2020-06-12 11:04:37 -04:00
24bdb736f0 Fix #506 2020-06-09 19:58:01 -04:00
3eaa769a2d Fix #481, #483, #487 2020-05-26 18:34:32 -04:00
630f3465a9 Deprecated set_timeout_sec, added set_connection_timeout. 2020-05-23 18:00:24 -04:00
29fd136afd Code cleanup and format 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
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
63a96aeb20 Improved Client2 interface 2020-05-14 12:51:34 -04:00
2d4b42b70b Removed url 2020-05-14 01:43:06 -04:00
1919d08f71 Added Client2 2020-05-14 01:36:56 -04:00
2c0613f211 Fix #472 2020-05-13 21:48:14 -04:00
58909f5917 Fix #466 2020-05-10 15:58:53 -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