Commit graph

789 commits

Author SHA1 Message Date
Ivan Fefer
3da4a0ac69
Add compression buffer size customization ()
* add compression buffer size customization and small brotli refactor

* allocat brotli buffer once

* add init to brotli decoder buffer
2020-09-08 12:18:14 -04:00
yhirose
9d12b3f20e Fixed warnings and refactoring 2020-09-03 20:33:30 -04:00
Omkar Jadhav
852a374748
Fix server crash caused due to regex complexity while matching headers. ()
* 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
Ivan Fefer
3b5bab3308
Fix gzip_decompressor in case of one chunk being exactly equal to buffer size ()
* 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
yhirose
69e75f4a67
Fix . HTTPS request stucked with proxy () 2020-09-03 12:17:53 -04:00
Omkar Jadhav
b0fd4befb1
Fix query parsing issues ()
* 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
yhirose
3e80666a74 Fix 2020-08-27 19:45:28 -04:00
yhirose
3e4567bae8 Updated Repl.it examples 2020-08-27 14:16:35 -04:00
yhirose
db075d8cf9 Added Repl.it examples 2020-08-27 14:06:57 -04:00
yhirose
16df0ef37e Code cleanup 2020-08-26 12:18:49 -04:00
Ivan Fefer
f1a2ac5108
Avoid copying of content provider if possible () 2020-08-26 08:56:51 -04:00
yhirose
e5743b358d Updated README 2020-08-25 20:26:53 -04:00
Ivan Fefer
1184bbe4cb
Fix typo in README () 2020-08-25 06:38:16 -04:00
Felix Kästner
9dcffda7ae
Fix cmake execute_process working directory ()
Correct the working directory of the execute_process call, to get the version from git tags.
The working directory should be the the directory of this libary. Otherwise, if you include httplib
as a git submodule and call add_subdirectory, the execute_process command will be run in a wrong
directory leading to error.
2020-08-24 17:23:01 -04:00
yhirose
e5903635e2 Fix 2020-08-22 12:54:43 -04:00
yhirose
510b4eaaae Fix 2020-08-17 13:40:06 -04:00
yhirose
d7e63b4316 Update README 2020-08-16 20:49:54 -04:00
yhirose
e5dd410256 Added set_content_provider without content length 2020-08-15 05:53:49 -04:00
yhirose
951e46929e Fix 2020-08-14 15:01:09 -04:00
yhirose
c8adac30f4 Fix again 2020-08-13 08:07:25 -04:00
yhirose
b2b4f7635f Fix 2020-08-11 12:11:05 -04:00
R Edgar
649b1d2172
Fix nullptr_t issue ()
Clang complains that `nullptr_t` should be `std::nullptr_t
2020-08-09 16:45:53 -04:00
yhirose
dc5f9ba164
Better error handling on client () 2020-08-08 20:50:24 -04:00
yhirose
cf084e1db1 Fixed example build errors 2020-08-08 00:10:08 -04:00
KTGH
e0e5898601
Overhaul FindBrotli to fix weird issues ()
Should get rid of the issue about not being able to create an ALIAS on
MinGW, as well as the "No REQUIRED_VARS" issue.

Fixes  (hopefully)
2020-08-06 07:08:29 -04:00
yhirose
dfec2de5b5
Update README 2020-08-03 23:37:05 -04:00
yhirose
04002d57bd Added set_default_headers (Fix ) 2020-08-03 22:05:37 -04:00
yhirose
38a7706c8b Removed old Keep-Alive functions 2020-08-03 22:04:40 -04:00
KTGH
abaf875c42
Fix FindBrotli when no Brotli installed ()
Woops.

Ref https://github.com/yhirose/cpp-httplib/issues/582#issuecomment-667537002
2020-08-01 17:08:49 -04:00
PixlRainbow
5f76cb01c7
fix -- add check for static-linked OpenSSL () 2020-08-01 08:10:42 -04:00
yhirose
ae54e833ea Code cleanup 2020-07-31 23:48:42 -04:00
yhirose
0dd3659de5 Updated README 2020-07-31 18:54:53 -04:00
KTGH
999f6abd2c
Fix for Cmake on systems without Git ()
If you didn't have Git installed, execute_process never declared the
error variable, which led to it never parsing the header for a version.
So if Git wasn't installed, the version variable never got declared,
which caused errors.

This fixes that.
2020-07-31 13:46:12 -04:00
KTGH
48da75dd35
Fix FindBrotli for static libs ()
It wasn't linking them.
2020-07-31 13:45:21 -04:00
yhirose
4f84eeb298 Bearer Token auth support. Fix 2020-07-31 12:37:14 -04:00
yhirose
a5b4cfadb9 Brotli suport on server. Fix 2020-07-31 10:23:57 -04:00
yhirose
3e906a9b8c Fix 2020-07-30 18:26:18 -04:00
yhirose
110393eadb Class name change 2020-07-30 17:27:07 -04:00
yhirose
98caa8c058 Updated README 2020-07-30 17:21:49 -04:00
yhirose
ef65f09608 OpenSSL support on Visual Studio project 2020-07-30 17:19:12 -04:00
ThePiso
e130cf3a3b
The piso patch 1 ()
* Update httplib.h

When you disconnect and reconnect from the network, your network stack rewrites and updates /etc/resolv.conf accordingly. This configuration file is needed by the DNS resolver in the C library. The C library reads the DNS configuration from /etc/resolv.conf the first time, and caches it. It doesn't check, with every lookup, if the contents of /etc/resolv.conf have changed.
the solution is to add a call to res_init(), defined in resolv.h

* Update httplib.h
2020-07-30 10:11:02 -04:00
yhirose
8a348f17fd Resolved 2020-07-30 01:47:54 -04:00
yhirose
797d1f27e8 Fix 2020-07-29 23:12:05 -04:00
yhirose
6cde600922 Simplified simplecli.cc 2020-07-29 16:04:28 -04:00
KTGH
342c3ab293
Add Brotli Cmake support ()
Had to create a custom FindBrotli package, as not all users have
PkgConfig installed (which Brotli uses). This file gets installed
alongside httplibConfig.cmake for the end-users convenience.

Set BROTLI_USE_STATIC_LIBS to ON if you want to find the static libs
instead of default shared.

Adds the HTTPLIB_REQUIRE_BROTLI (default off) and HTTPLIB_USE_BROTLI_IF_AVAILABLE
(default on) options, which work in the same manner as the other optional/required
dependency options.

Moved the scattered linking and definitions to a single call.

Updated some documentation about the new options.

Improved the in-tree support by setting the HTTPLIB_IS_USING_XYZ
variables in the main CMakeLists (as well as having them in the
httplibConfig.cmake file).

Fixes 
2020-07-28 17:04:29 -04:00
yhirose
6cce7951fc Fixed build error on non Windows environments with OpenSSL 2020-07-27 22:34:35 -04:00
yhirose
e9058e5639 Fixed build error on Windows with OpenSSL 2020-07-27 22:32:31 -04:00
yhirose
2538a85486 Fix 2020-07-27 22:07:04 -04:00
KTGH
8c501022b3
Fix Cmake build for MinGW ()
Seems certain targets/hosts failed without these, as "_MSC_VER" is
undefined on MinGW, which caused the 'pragma comment(lib "libname")' to
fail.

Fixes 
2020-07-26 12:27:03 -04:00
yhirose
9f5db2d1aa Updated README 2020-07-25 20:53:38 -04:00