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

868 Commits

Author SHA1 Message Date
df138366e4 Fail to read a chunk if its length is >= ULONG_MAX (#444)
We cannot trivially support such large chunks, and the maximum value
std::strtoul can parse accurately is ULONG_MAX-1. Error out early if the
length is longer than that.
2020-04-23 10:59:15 -04:00
c49441ae64 Do not throw exceptions when parsing request chunks (#441)
detail::read_content_chunked was using std::stoul to parse the
hexadecimal chunk lengths for "Transfer-Encoding: chunked" requests.
This throws an exception if the string does not begin with any valid
digits. read_content_chunked is not called in the context of a try block
so this caused the process to terminate.

Rather than use exceptions, I opted for std::stroul, which is similar to
std::stoul but does not throw exceptions. Since malformed user input is
not particularly exceptional, and some projects are compiled without
exception support, this approach seems both more portable and more
correct.
2020-04-23 09:05:45 -04:00
e1506fa186 Code cleanup 2020-04-22 21:43:16 -04:00
ad9fd3bd93 Fix #436 2020-04-22 21:42:58 -04:00
05e0253195 Fixed test error 2020-04-21 23:07:51 -04:00
da26b517a3 Added url::Get interface 2020-04-21 23:00:39 -04:00
2b7a968468 Added a unit test for URL interface 2020-04-21 21:21:31 -04:00
240cc85ccb Fixed regex problem for recirect location 2020-04-21 21:18:29 -04:00
129e2f00b8 Removed unnecessary noexcept 2020-04-20 19:42:05 -04:00
da746c6e67 SSLClient::set_ca_cert_store: mark as inline (#435) v0.5.10 2020-04-20 12:53:39 -04:00
3451da940d Code format 2020-04-19 22:05:04 -04:00
38a6b3e69f Fixed warning 2020-04-19 22:04:29 -04:00
d1037ee9fd Close #433 2020-04-18 16:38:15 -04:00
2ece5f116b Pass certs and keys from memory (#432)
* SSLServer: add constructor to pass ssl-certificates and key from memory

* SSLClient: add constructor to pass ssl-certificates and key from memory

* add TestCase for passing certificates from memory to SSLClient/SSLServer
2020-04-18 16:26:06 -04:00
c2b6e4ac04 Fix #431 2020-04-17 21:48:16 -04:00
8674555b88 Removed CMakeLists.txt. (Fix #421) 2020-04-13 20:56:21 -04:00
85327e19ae Fix #425 v0.5.9 2020-04-12 15:33:08 -04:00
ed8efea98b Added support for DELETE request body (#418)
* Added support for DELETE request body

* Fixed DELETE request body test case typo

Co-authored-by: Alexandre Taillefer <alexandre.taillefer@pwc.ca>
2020-04-07 15:51:52 -04:00
Max
1ccddd1b0b SSL_shutdown() only if not already closed by remote (#413) 2020-04-06 10:30:21 -04:00
992f3dc690 Code cleanup 2020-04-03 09:33:29 -04:00
402d47e2cd Fix #407 v0.5.8 2020-03-31 19:42:53 -04:00
171fc2e353 Fix #403. Added more status codes based on MDN document 2020-03-26 20:50:40 -04:00
ced4160d05 add http status code 201 to show the right status message in return headers (#402) 2020-03-26 12:20:32 -04:00
5b51aa6851 Revert "Add 1000-concurrency-result report"
This reverts commit b0af78e340.
2020-03-24 17:30:32 -04:00
dc13cde820 Minor improvements in httplib classes (#395) 2020-03-23 06:54:13 -04:00
b0af78e340 Add 1000-concurrency-result report 2020-03-21 15:49:26 +00:00
914c8860e8 Accept content by value to allow moving
Previously, calling set_content always resulted in 's' being copied. With this change, there will still be the same number of copies made (1) when doing `set_content(my_value, ...)`, but there will be no copies if a caller elects to do `set_content(std::move(value), ...)` or `set_content(some_function_that_returns_a_temporary(), ...)` instead.
2020-03-21 00:39:07 -04:00
dc6a72a0fd Fix #387 2020-03-17 18:03:52 -04:00
685533ba50 Fixed warnings on Windows due to max/min macro 2020-03-16 13:58:09 -04:00
6e46ccb37c Updated README 2020-03-15 12:05:12 -04:00
ac18b70a0f Update calculation formula for progress percentage (#386) 2020-03-15 08:29:27 -04:00
e1acb949e7 Fix #382 2020-03-13 18:43:29 -04:00
ab96f49766 Fixed problem that line end char is missing on start messagein simple
server example
2020-03-13 16:36:33 -04:00
7b3cea5317 Prevent an implicit capture of 'this' via '[=]' (#381) 2020-03-12 12:31:22 -04:00
26deffe0c6 Not to send 'EXCEPTION_WHAT' header to client 2020-03-10 17:44:36 -04:00
e07c5fec01 simplest way to catch handler exceptions 2020-03-10 17:44:36 -04:00
6e473a7c5c Fix conversion to ‘int’ from ‘long int’ warning (#377)
Co-authored-by: Michael Tseitlin <michael.tseitlin@concertio.com>
2020-03-10 14:48:14 -04:00
c74129a1c2 Fix #372 (#374) 2020-03-09 23:59:00 -04:00
18e750b4e7 Code cleanup 2020-03-09 19:47:28 -04:00
bf7700d192 Fix exception that occurs with libc++ regex engine (#368)
The regex that parses header lines potentially causes an unlimited
amount of backtracking, which can cause an exception in the libc++ regex
engine.

The exception that occurs looks like this and is identical to the
message of the exception fixed in
https://github.com/yhirose/cpp-httplib/pull/280:

	libc++abi.dylib: terminating with uncaught exception of type
	std::__1::regex_error: The complexity of an attempted match
	against a regular expression exceeded a pre-set level.

This commit eliminates the problematic backtracking.
v0.5.7
2020-02-28 06:31:39 -05:00
3da925d6fe Adjusted a unit test. 2020-02-25 08:29:29 -05:00
319417f26d Updated README 2020-02-24 21:50:07 -05:00
4c3b119dde Code format 2020-02-24 21:17:02 -05:00
6de8684328 Merge branch 'hyperxor-remove_code_duplication_in_getting_query' 2020-02-24 21:15:01 -05:00
ccc9a9b3f4 Remove code duplication in converting params to query 2020-02-25 02:30:34 +03:00
f2bb9c45d6 Support for deflate compression (#360) v0.5.6 2020-02-24 11:48:00 -05:00
9a663aa94e Added a unit test. 2020-02-21 11:48:47 -05:00
d0d744d520 Fixed compiler warning with Visual C++. Close #358 2020-02-20 17:30:04 -05:00
fce8e6fefd Merge pull request #356 from samhocevar/fix-shadow-declarations
Fix a few shadowed variable compilation warnings.
2020-02-17 09:01:47 -05:00
180aa32ebf Fix a few shadowed variable compilation warnings. 2020-02-17 06:58:30 +01:00