yhirose
129e2f00b8
Removed unnecessary noexcept
2020-04-20 19:42:05 -04:00
Daniel Ottiger
da746c6e67
SSLClient::set_ca_cert_store: mark as inline ( #435 )
2020-04-20 12:53:39 -04:00
yhirose
3451da940d
Code format
2020-04-19 22:05:04 -04:00
yhirose
38a6b3e69f
Fixed warning
2020-04-19 22:04:29 -04:00
Daniel Ottiger
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
yhirose
c2b6e4ac04
Fix #431
2020-04-17 21:48:16 -04:00
yhirose
85327e19ae
Fix #425
2020-04-12 15:33:08 -04:00
Alexandre Taillefer
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
yhirose
992f3dc690
Code cleanup
2020-04-03 09:33:29 -04:00
yhirose
402d47e2cd
Fix #407
2020-03-31 19:42:53 -04:00
yhirose
171fc2e353
Fix #403 . Added more status codes based on MDN document
2020-03-26 20:50:40 -04:00
SoenkeHeeren
ced4160d05
add http status code 201 to show the right status message in return headers ( #402 )
2020-03-26 12:20:32 -04:00
Igor [hyperxor]
dc13cde820
Minor improvements in httplib classes ( #395 )
2020-03-23 06:54:13 -04:00
Andrew Gasparovic
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
yhirose
685533ba50
Fixed warnings on Windows due to max/min macro
2020-03-16 13:58:09 -04:00
yhirose
e1acb949e7
Fix #382
2020-03-13 18:43:29 -04:00
Oleg Vorobiov
7b3cea5317
Prevent an implicit capture of 'this' via '[=]' ( #381 )
2020-03-12 12:31:22 -04:00
yhirose
26deffe0c6
Not to send 'EXCEPTION_WHAT' header to client
2020-03-10 17:44:36 -04:00
Rafael Leira
e07c5fec01
simplest way to catch handler exceptions
2020-03-10 17:44:36 -04:00
miketsts
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
yhirose
c74129a1c2
Fix #372 ( #374 )
2020-03-09 23:59:00 -04:00
yhirose
18e750b4e7
Code cleanup
2020-03-09 19:47:28 -04:00
Matthew DeVore
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.
2020-02-28 06:31:39 -05:00
yhirose
4c3b119dde
Code format
2020-02-24 21:17:02 -05:00
hyperxor
ccc9a9b3f4
Remove code duplication in converting params to query
2020-02-25 02:30:34 +03:00
rymis
f2bb9c45d6
Support for deflate compression ( #360 )
2020-02-24 11:48:00 -05:00
yhirose
d0d744d520
Fixed compiler warning with Visual C++. Close #358
2020-02-20 17:30:04 -05:00
yhirose
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
Sam Hocevar
180aa32ebf
Fix a few shadowed variable compilation warnings.
2020-02-17 06:58:30 +01:00
yhirose
064cc6810e
Fix #352
2020-02-13 17:40:06 -05:00
yhirose
464cc89b77
Fix #351
2020-02-12 22:35:52 -05:00
yhirose
ca5a50d2c9
Fix #349
2020-02-11 00:26:15 -05:00
yhirose
851edaf77f
Code format
2020-02-02 20:02:16 -05:00
yhirose
ac7742bb32
Changed the order of parameters of set_mounting_point.
2020-02-01 09:18:24 -05:00
yhirose
8801e51138
Fix #341
2020-01-31 20:35:20 -05:00
Vitaly Takmazov
5e43680486
HEAD support for static file server
2020-01-28 12:00:27 +03:00
yhirose
79df842cc5
Updated README
2020-01-26 18:34:50 -05:00
yhirose
2e360f9dd6
Improved Stream interface
2020-01-16 23:28:11 -05:00
Valentin Vanelslande
126f1d177e
Add status message: 503 Service Unavailable
2020-01-16 00:59:24 -05:00
yhirose
b557ac9328
Code format
2020-01-14 17:04:51 -05:00
yhirose
f6db19959f
Merge pull request #333 from stupedama/master
...
std:🧵 :hardware_concurrency
2020-01-14 17:04:17 -05:00
yhirose
6b4df41b30
Fix #330
2020-01-14 17:02:25 -05:00
yhirose
0d81e20129
Fix #332
2020-01-14 14:59:20 -05:00
Fredrik Fjeldvær
26cb83ed6c
if std: 🧵 :hardware_concurrency() is 0 use 2 threads. also -1 thread because we already have one thread from the main function
2020-01-14 17:48:51 +01:00
Valentin Vanelslande
db27812198
Add status message for 202 Accepted
2020-01-10 17:50:37 -05:00
yhirose
6fe6fd5dbe
Fixed build errors
2020-01-10 09:40:26 -05:00
yhirose
0ee9660f3d
Code format
2020-01-10 09:35:07 -05:00
yhirose
a15d16a9de
Moved Stream concrete classes into detail namespace
2020-01-10 09:33:14 -05:00
Tyler Rockwood
fcdaa24fc5
Properly implement BufferStream::read
...
The existing implementation did not advance the buffer at all.
2020-01-09 22:05:59 -06:00
hyperxor
b16905ec8b
Fix Response move
2020-01-08 23:13:04 +03:00
yhirose
2f72845008
Fix #319
2020-01-07 23:40:11 -05:00
hyperxor
568fda62b4
Tiny improvement in DataSink class
2020-01-07 13:25:04 +03:00
yhirose
96e9ec0663
Improved DataSink interface
2020-01-05 23:59:54 -05:00
yhirose
d2fae4031c
Fixed build errors
2020-01-03 01:36:59 -05:00
yhirose
de844e67ef
Proxy support for Keep-Alive requests
2020-01-03 01:24:07 -05:00
yhirose
6c0e021554
Fixed socket leak
2020-01-02 17:01:02 -05:00
yhirose
aa630e3062
Fix #311
2020-01-02 13:02:05 -05:00
yhirose
fcbcbd53bd
Fix #306
2019-12-26 18:48:22 -05:00
yhirose
1bf616d653
Fix #303
2019-12-26 17:50:53 -05:00
yhirose
2c6da365d9
Merge pull request #300 from vvanelslande/accpet
...
Change Accpet-Encoding to Accept-Encoding
2019-12-22 15:39:47 -05:00
yhirose
38adeaf02c
Fixed problem with proxy support and added unit tests
2019-12-22 15:37:01 -05:00
Valentin Vanelslande
b3814b2b80
Change Accpet-Encoding to Accept-Encoding
2019-12-22 13:02:20 -05:00
yhirose
a444b612af
V0.5.0
2019-12-22 12:52:08 -05:00
yhirose
ed6d949f42
Fix #299
2019-12-22 12:50:25 -05:00
yhirose
d28cd3f937
Code cleanup
2019-12-21 23:20:30 -05:00
yhirose
8cc3e6c434
Merge pull request #296 from yhirose/connect
...
CONNECT method support on client
2019-12-21 23:09:10 -05:00
hyperxor
0dc653f45a
Fix redundant Progress copy in Get methods
2019-12-21 10:57:06 +03:00
yhirose
a1cfc0f377
Fixed problem with redirect
2019-12-20 13:25:11 -05:00
yhirose
eb4fcb5003
CONNECT method support on client
2019-12-20 06:59:59 -05:00
yhirose
ae43c96984
Merge pull request #295 from yhirose/timeout
...
Fix #294
2019-12-18 17:57:23 -05:00
yhirose
9c81693801
Fix #294
2019-12-18 17:47:36 -05:00
yhirose
80202c9f62
Merge pull request #292 from Bendr0id/fix_socket_create_on_older_windows_systems
...
Adds workaround for socket creation on older Windows variants
2019-12-18 07:09:48 -05:00
Ben Gräf
094a6a614a
Adds workaround for socket creation on older Windows variants
...
Since the WSA_FLAG_NO_HANDLE_INHERIT is only supported on Windows 7 SP1 and above the socket creation fails on older Windows Systems.
Let's try to create a socket the old way in this case.
Reference:
https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsasocketa
WSA_FLAG_NO_HANDLE_INHERIT:
This flag is supported on Windows 7 with SP1, Windows Server 2008 R2 with SP1, and later
2019-12-18 07:49:36 +01:00
yhirose
39c7bba7b9
Code cleanup
2019-12-17 13:05:08 -05:00
yhirose
f2476f21fc
Fixed URL encoding problem when sending a request to proxy
2019-12-17 12:58:25 -05:00
yhirose
9a41b16cbb
Fix #285 . Added set_interface method on client
2019-12-15 17:44:00 -05:00
yhirose
260422b7d7
Format code
2019-12-14 23:46:11 -05:00
yhirose
d2c7b447d5
Fix #289 : Fixed build problem with Visual C++
2019-12-13 09:12:50 -05:00
yhirose
72b20c08da
Better API names
2019-12-13 06:56:00 -05:00
yhirose
afd6d5f9dc
Removed compress parameter and added compress method on client
2019-12-12 23:09:59 -05:00
yhirose
5324b3d661
Improved multipart form data interface
2019-12-12 22:48:09 -05:00
yhirose
151ccba57e
Code cleanup
2019-12-12 21:50:12 -05:00
yhirose
69a28d50f6
Fix #287
2019-12-12 12:50:45 -05:00
Yuji Hirose
3c2736bb2a
Fixed regex syntax error
2019-12-10 13:07:49 -05:00
Yuji Hirose
fd4e1b4112
Fix #266
2019-12-10 12:10:14 -05:00
yhirose
f6a2365ca5
Fix #282
2019-12-06 12:21:15 -05:00
yhirose
df1ff7510b
Made code more readable
2019-12-06 12:02:08 -05:00
yhirose
379905bd34
Merge branch 'whitespace-and-libcxx-compat' of https://github.com/matvore/cpp-httplib
2019-12-06 09:51:21 -05:00
Matthew DeVore
bc9251ea49
Work around incompatibility in <regex> in libc++
...
libc++ (the implementation of the C++ standard library usually used by
Clang) throws an exception for the regex used by parse_headers before
this patch for certain strings. Work around this by simplifying the
regex and parsing the header lines "by hand" partially. I have repro'd
this problem with Xcode 11.1 which I believe uses libc++ version 8.
This may be a bug in libc++ as I can't see why the regex would result in
asymptotic run-time complexity for any strings. However, it may take a
while for libc++ to be fixed and for everyone to migrate to it, so it
makes sense to work around it in this codebase for now.
2019-12-05 17:14:16 -08:00
Matthew DeVore
a9e942d755
Properly trim whitespace from headers
...
HTTP Whitespace and regex whitespace are not the same, so we can't use
\s in regexes when parsing HTTP headers. Instead, explicitly specify
what is considered whitespace in the regex.
2019-12-05 17:14:16 -08:00
Barry McNamara
e1785d6723
Remove use of exceptions.
2019-12-05 15:56:55 -08:00
yhirose
033bc35723
Improve multipart content reader interface
2019-12-02 07:11:12 -05:00
yhirose
b69c0a1dcb
Content receiver support for multipart content ( Fix #241 )
2019-12-01 22:04:26 -05:00
yhirose
295e4d58aa
Fix #276
2019-11-29 17:07:51 -05:00
yhirose
6f58dc728f
Fixed problem with requests with no content
2019-11-28 08:28:01 -05:00
yhirose
880f7fa62b
Fix #273
2019-11-27 12:54:01 -05:00
yhirose
8f3dbf7f21
Code cleanup
2019-11-27 08:01:25 -05:00
yhirose
924a557fa3
Changed to use 'using' instead of 'typedef'
2019-11-27 07:03:17 -05:00
yhirose
d8da740597
Fix #270
2019-11-26 08:48:17 -05:00