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
yhirose
d45676b064
Added NoThread task queue
2019-11-25 13:00:37 -05:00
Hirose Family
94d13e88a5
Fixed regex problem with Apple LLVM version 8.0.0
2019-11-03 19:27:12 -05:00
Johan Jansen
a62a48a7b5
Modernize some additional code
2019-10-31 21:49:04 +01:00
Johan Jansen
c652919954
Do not use shared_ptr where not required
2019-10-31 21:48:48 +01:00
Johan Jansen
58753ba33c
Fix some virtual override warnings
2019-10-31 21:38:37 +01:00
yhirose
5706828d2c
Replace C-style arrays and fix static-code analysis warnings
2019-10-31 21:32:07 +01:00
yhirose
e743b8cd57
Fix #254
2019-10-30 08:21:59 -04:00
yhirose
9d57899352
Simplified ContentReceiver interface
2019-10-27 23:38:56 -04:00
yhirose
d03937e144
Content receiver support on server
2019-10-27 23:20:56 -04:00
yhirose
8fb37a449d
Fix #251
2019-10-27 17:27:57 -04:00
yhirose
f0b1b5dbfd
Added set_read_timeout. Fix #248 .
2019-10-27 14:57:22 -04:00
yhirose
5f32c424c2
Content provider support on client
2019-10-25 18:39:04 -04:00
yhirose
f0683f2301
Fixed build errors
2019-10-25 13:11:49 -04:00
yhirose
0d527e2b83
Code formatting
2019-10-25 12:09:26 -04:00
yhirose
bea3ebd7af
Added 'compress' option to POST, PUT and PATCH.
2019-10-25 11:46:12 -04:00
yhirose
380f725713
Code format
2019-10-24 22:20:42 -04:00
Bastien Durel
d1abf96581
html files may be .htm
2019-10-23 09:52:21 +02:00
yhirose
7a3abd2768
Merge pull request #243 from Sil3ntStorm/patch1
...
Allow use of OpenSSL 1.1.1, fix compile errors
2019-10-20 10:12:14 -04:00
Aaron Albers
89e1e9b8fe
Added bind_to_port()
...
- This compliments the existing `bind_to_any_port()`
where you can determine if the bind succeeded prior
to calling `listen_after_bind()` but allows you to
specify the port.
2019-10-19 10:41:19 -06:00
Sil3ntStorm
98d16eb836
Allow use of OpenSSL 1.1.1, fix compile errors
2019-10-19 16:40:06 +02:00
yhirose
dcdb0d047b
Fixed PRI request problem
2019-10-03 13:44:18 -04:00
yhirose
1f86e41d97
Changed back to select as default
2019-10-03 13:44:18 -04:00
Johan Jansen
f23f9a06a9
Allow configuration to be overriden without source editing
2019-09-30 22:00:17 +02:00
Alin Gherman
224119a60a
Retry in case of too many sockets opened instead of stopping the server.
2019-09-30 11:48:02 +02:00
yhirose
c02849e269
Removed CPPHTTPLIB_USE_POLL, added CPPHTTPLIB_USE_SELECT
2019-09-29 19:43:22 -04:00
yhirose
71979b1e88
Merge pull request #226 from Zefz/mingw-compile-fix
...
Fix compilation on Mingw-64
2019-09-27 17:29:33 -04:00
zefz
b14b7b0f8f
Fix compilation on Mingw-64
2019-09-27 20:23:16 +02:00
Tang Huaizhe
9dbe0d855c
Fix compile error in android ndk
2019-09-27 13:32:23 +08:00
Johan Jansen
94fc229c44
Add missing explicit const_cast
2019-09-26 22:20:33 +02:00
Johan Jansen
a7052cba22
Fix several -Wold-style-cast warnings in Clang-9
2019-09-26 22:03:18 +02:00
yhirose
c946eb7699
Fixed warnings on Windows
2019-09-26 08:13:20 -04:00
PolloLoco
c7f8561472
Added ssl_context member function to SSLClient in
...
order to allow access to the SSL_CTX struct, for
example to load the windows cert store
2019-09-18 15:10:15 +02:00
yhirose
4ab9270660
Use 'poll' as default instead of select ( Fix #215 )
2019-09-18 08:42:18 -04:00
yhirose
d599a36c2a
Format code
2019-09-16 17:48:17 -04:00
yhirose
0c293887d0
Fixed problem with redirect
2019-09-15 09:15:21 -04:00
Steffen Schuemann
7e92ffec48
Added new Client::Get variant that combines a ContentReceiver with a new ResponseHandler
...
While trying to implement streaming of internet radio, where a ContentReceiver is needed to handle the audio data, I had the problem, that important information about the stream data is part of the HTTP header (e.g. size of audio chunks between meta data), so I added a ResponseHandler and a new Get variant, to gain access to the header before handling the first chunk of data.
The ResponseHandler can abort the request by returning false, in the same way as the ContentReceiver.
A test case was also added.
2019-09-14 14:55:12 +02:00
yhirose
c9238434e1
Added redirect support ( Fix #211 )
2019-09-06 18:07:35 -04:00
yhirose
e2babf315c
Fixed build error on Windows
2019-09-05 13:22:44 -04:00
yhirose
c434d555bb
Fixed problem caused by former changes
2019-09-03 17:19:58 -04:00
yhirose
80f040cf69
Fix #209
2019-09-03 17:10:04 -04:00
yhirose
037b4fc789
Fixed problem with keep-alive on client
2019-09-03 17:05:10 -04:00
yhirose
a782d1b609
Added OpenSSL version check. (Currently commented out)
2019-08-31 20:15:50 -04:00
yhirose
1e82359329
Keep-alive connection support on client ( Fix #36 )
2019-08-31 17:52:24 -04:00
yhirose
a4160e6ac1
Fix #212
2019-08-25 17:19:20 -04:00
yhirose
bdbfc6cfe7
Fix #210
2019-08-25 16:49:10 -04:00
yhirose
22615f9682
Fix #203
2019-08-07 06:34:24 -04:00
yhirose
64991a560a
Fixed problems with Win32 build
2019-08-07 15:21:22 +09:00
yhirose
d7bb402ca7
Format code
2019-08-06 18:12:05 +09:00
yhirose
d58deddbcc
Fixed #198
2019-08-06 18:10:41 +09:00
yhirose
3629f87627
Fixed thread pool problem.
2019-08-06 08:31:43 +09:00
yhirose
2823a94fc1
Added 'resource_releaser' for content provider
2019-08-05 09:40:23 +09:00
yhirose
f4aaba6362
Fixed warnings on Windows
2019-08-03 20:43:15 -04:00
yhirose
c899462e75
Added 'Content-Range' header for single range request
2019-08-03 22:12:24 +09:00
yhirose
9785cd47f2
Thread pool support
2019-08-03 16:39:39 +09:00
yhirose
579ff1a0a6
new_task_queue support
2019-08-03 13:15:05 +09:00
yhirose
47312e6df9
Added TaskQueue interface
2019-08-03 12:11:22 +09:00
yhirose
66b81a1497
Code cleanup
2019-08-03 10:47:48 +09:00
yhirose
9d7b717504
Range header support and redesign of content provider interface
2019-08-03 03:28:39 +09:00
yhirose
58f72bc8b6
Code cleanup
2019-07-29 14:24:40 -04:00
yhirose
4c58b91e40
Added additonal status messages
2019-07-29 09:47:50 -04:00
yhirose
06b3dee5aa
Code cleanup
2019-07-28 19:12:44 -04:00
yhirose
d15df874b3
Code cleanup
2019-07-28 07:52:57 -04:00
yhirose
f40de531ab
Fix #196
2019-07-26 14:39:09 -04:00
yhirose
cb11d9412e
Fixed connection end problem with HTTP/1.0 client
2019-07-24 06:53:48 -04:00
yhirose
34651ef89b
Fix #121
2019-07-23 09:53:44 -04:00
yhirose
dd20e4d418
Fixed build errors
2019-07-22 06:58:05 -04:00
yhirose
7267b3f3e2
Write error handling
2019-07-21 21:34:49 -04:00
yhirose
4c18ac2b18
Added locking_callback for OpenSSL versions prior to 1.1.0
2019-07-19 17:03:47 -04:00
yhirose
eaafa5d55c
Fix #127
2019-07-19 11:38:06 -04:00
yhirose
3d1ae3a3af
Code cleanup
2019-07-17 23:50:47 -04:00
yhirose
6f663028e9
Fix #139 . Content receiver support
2019-07-17 22:00:18 -04:00
yhirose
31cdadc4b1
Added check code to compress and decompress
2019-07-17 19:00:35 -04:00
yhirose
849add5887
Code cleanup
2019-07-17 15:09:41 -04:00
yhirose
fccb84f5e8
Refactoring for reading content
2019-07-17 08:56:49 -04:00
Jasper van de Ven
2fdc41c323
Made svr_sock_ and is_running_ variables atomic
2019-07-05 11:03:23 +02:00
yhirose
74e9a0d17e
Fix #182
2019-07-03 10:52:24 -04:00
yhirose
bb537d93fe
Added CPPHTTPLIB_RECV_BUFSIZ
2019-06-29 20:39:18 -04:00
yhirose
bde3fd9f78
Improved performance of read_content_without_length
2019-06-29 20:25:16 -04:00
yhirose
2aa35d5f53
Fix #179
2019-06-28 12:08:47 -04:00
yhirose
5377c86da9
clangformat
2019-06-20 19:17:59 -04:00
yhirose
1981e0ccad
Add SSL object on Request
2019-06-20 18:52:28 -04:00
yhirose
866b6967a0
Fixed memory leak
2019-06-20 17:37:18 -04:00
yhirose
6d74fa86be
Fix #164
2019-06-20 17:11:44 -04:00
yhirose
b5c79bf146
Fix #160
2019-06-20 15:00:22 -04:00
yhirose
4f4e6f2140
Use 'inline'
2019-06-20 12:43:17 -04:00
yhirose
a28e3620a2
Fix #173
2019-06-20 11:45:11 -04:00
yhirose
4a857511e2
fix #168
2019-06-17 11:33:43 -04:00
yhirose
8d12e0d8f4
Simplified code
2019-06-11 21:39:35 -04:00
yhirose
07d9843b91
clangformat
2019-06-11 20:57:02 -04:00
yhirose
92f08b54c4
Merge pull request #162 from PixlRainbow/master
...
client certificates support
2019-06-11 20:53:56 -04:00
PixlRainbow
60e0286cfb
rename certificate parameter to reduce confusion
2019-06-06 23:52:33 +08:00
PixlRainbow
628b1115ea
remove requirement for trusted_cert_path
2019-06-06 23:34:24 +08:00
PixlRainbow
57f61bf80e
client-side support for client certificates
2019-06-06 01:16:47 +08:00
PixlRainbow
6bb05c5483
support certificates signed by intermediate CA
2019-06-05 19:44:37 +08:00
yhirose
6f207497de
Fixed #150
2019-06-04 22:53:37 -04:00
PixlRainbow
d630c116df
server-side support for client certificates
2019-06-05 02:21:37 +08:00
Yuji Hirose
48af26e332
Fixed resource leaks
2019-06-03 11:06:59 -04:00
Yuji Hirose
d4936a2c78
Fixed #155
2019-05-31 10:30:11 -04:00
Hans Erickson
f3f4ab8499
Add encode_url() call to Client class when adding parameter values.
2019-05-20 09:48:06 -05:00
Mark Nelson
e623dfedf3
Update httplib.h
...
CPPHTTPLIB_PAYLOAD_MAX_LENGTH is only used in one place, that is to initialize payload_max_length_. Because payload_max_length_ is a size_t, attempts to intialize it with a 64 bit integer max will generate warnings, notably on 32 bit compilers. Changing the max to the same size as the target resolves that, and this should be no risk.
2019-05-14 16:17:41 -04:00
yhirose
dfc94f2cab
Code cleanup
2019-05-07 21:46:15 -04:00
yhirose
3f42804a4f
Wildcard support for verifying server certificate. fix #87
2019-05-07 21:40:03 -04:00
yhirose
82193b9489
Code clieanup
2019-05-07 20:11:45 -04:00
yhirose
097c61b871
Comment out debug print
2019-05-07 16:57:27 -04:00
yhirose
b08e22ab00
Changed the server certificate verification API
2019-05-07 16:54:51 -04:00
yhirose
03a577cccd
Fixed huge payload problem on Windows
2019-05-07 16:41:50 -04:00
yhirose
0bd9737c88
Fix #87
2019-05-07 16:41:33 -04:00
yhirose
dd901126a7
Fix #146
2019-05-05 13:31:42 -04:00
yhirose
744e8e7071
Fix #144
2019-04-12 23:34:27 -04:00
yhirose
8af85019dc
Removed get_header_value_int and use uint64_t for the return value of get_header_value_uint64
2019-04-12 17:22:39 -04:00
Manny
07ed076499
BUGFIX: crash when "content-length" > max_int
2019-04-12 12:16:32 +02:00
Yuji Hirose
5d082f1da4
Apply clangformat
2019-04-11 08:13:31 -04:00
yhirose
a91a0b7dbf
Fix #140
2019-04-10 12:21:42 -04:00
yhirose
8483e5931f
Fix #136
2019-03-28 19:56:32 -04:00
batist73
90e699161a
Add WinSock2 dependency
2019-03-27 19:55:06 +03:00
Yuji Hirose
96cacd24f9
Fixed #134
2019-03-12 08:49:08 -04:00
archivaldo
c5264cea9c
Fix coding style
2019-03-07 19:03:18 -03:00
archivaldo
dedcc43216
small fix to allow fronting
2019-03-07 16:40:19 -03:00
Whitetiger
787761a7bf
Fix build error with Boost::asio
2019-02-25 13:09:31 -05:00
Geraldo Intmain
774c27e690
Encoding LF and CR
2019-02-24 17:15:27 -03:00
yhirose
7b3f6db70b
Fix #128
2019-02-22 08:52:38 -05:00
Yuji Hirose
d3eb88b740
Fix #126
2019-02-13 08:14:58 -05:00
Constantin
28ad0ca68d
Fixed #124
2019-01-30 12:12:47 +09:00
yhirose
a72eef7fb4
Fixed #123
2019-01-29 12:05:32 -05:00
yhirose
8d908fadb6
Fixed #120
2019-01-15 08:08:34 -05:00
yhirose
b5927aec12
fix #116
2018-12-17 21:07:38 -05:00
yhirose
d0090b158f
fix #112
2018-12-13 19:37:44 -05:00
yhirose
86b3dfc480
fix #110
2018-11-30 21:18:35 -05:00
yhirose
5ad4311fb0
fix #109
2018-11-22 20:50:54 -05:00
Geraldo Intmain
c4f9062552
Encode space and plus characters
2018-10-29 20:46:11 -03:00
yhirose
49c82c9c50
Fix #97 . (Thanks to DJm00n.)
2018-10-28 16:15:22 +09:00
Duncan Ogilvie
d0c5c66bd6
Fix undefined behavior + make some ifdefs more readable
2018-10-14 12:39:51 +02:00
yhirose
d32eee7627
Fix #96
2018-09-30 08:40:31 -04:00
yhirose
abf79d5a38
Code cleanup
2018-09-23 12:32:26 -04:00
yhirose
4d7cee81eb
Fix #95
2018-09-23 12:02:17 -04:00
Duncan Ogilvie
bc16283a2f
Change size_t to time_t where applicable
2018-08-17 11:51:41 +02:00
Thomas Tissot
82fc7d5591
Request cancelation feature
...
This commit modifies the signature of the `Progress` callback
so that its return value will indicate whether the request shall
continue to be processed by returning `true`, or if it shall
be aborted by returning `false`. Such modification will allow
one to cancel an ongoing request before it has completed.
When migrating, developers should modify there `Progress`
callbacks to always return `true` by default in case there
do not want to benefit from the cancelation feature.
A few unit tests use cases were provided, but anyone should feel
free to provide additional uses cases that they find relevant.
2018-08-06 11:54:52 +02:00
yhirose
f2daaf1b85
Merge pull request #85 from davidgfnet/streaming
...
Implementing streaming Responses
2018-08-01 17:56:09 -04:00
David Guillen Fandos
dae4124039
Implementing streaming Responses
...
This enables a much easier handling of big queries after all.
2018-08-01 23:53:01 +02:00
yhirose
07910f73a9
Fixed problem that listen may return incorrect value when calling stop;
2018-07-31 19:46:04 -04:00
Maksim Kolinichenko
15ed1b4883
Add Keep-Alive header to response
2018-07-27 17:39:04 +03:00
Maksim Kolinichenko
d26ee03613
Fixed request parsing regex typo
2018-07-27 17:26:14 +03:00
Albert S
d9479bc0b1
Fixed bound checks for #74
2018-06-02 08:40:19 +02:00
yhirose
890025e347
Merge pull request #75 from crtxcr/http_response_codes
...
More status messages for http codes
2018-06-01 23:07:14 -04:00
yhirose
2bb27aa25d
Fix #74
2018-06-01 23:05:32 -04:00
Albert S
bb2f96afeb
Added a few more common http status codes
2018-06-01 14:34:58 +02:00
yhirose
5b3187e2f9
Fix #72
2018-05-31 22:17:23 -04:00
yhirose
5a78e1c457
Added 'set_keep_alive_max_count' method on Server
2018-05-31 19:01:24 -04:00
Scott Graham
f275352cba
Handle port==0 when socket is bound on ipv6
...
I discovered
0515c6aad6
doesn't work when the server is bound on an AF_INET6 address on Windows
due to the getsockname() call failing.
2018-05-29 12:59:13 -07:00
yhirose
7b9d752583
Fixed problem with connection close
2018-05-14 00:05:14 -04:00
yhirose
312a8d7523
Removed HTTP version. It's now always 'HTTP/1.1'.
2018-05-13 19:18:25 -04:00
yhirose
37130cd7f9
Changed to use INVALID_SOCKET
2018-05-10 23:56:24 -04:00
Joshua Peraza
75285e8713
Define and use kInvalidSocket
2018-05-09 16:28:39 -07:00
yhirose
6c5d0b2a18
Fix #57 and #62
2018-05-08 21:51:41 -04:00
Enzo AGUADO
911e620a54
don't include sys/select on windows
2018-05-07 16:59:08 +08:00
Enzo AGUADO
632df52b4f
add sys/select.h for musl libc
2018-05-07 02:15:12 +08:00
yhirose
3eff00bbc8
Fix #60
2018-04-29 18:20:38 -04:00
adikabintang
ef5c4144d7
add keyword inline to some function definitions to avoid linking error
2018-04-26 12:07:44 +07:00
yhirose
6aa3fd6b59
Fix #38
2018-04-20 09:59:19 -04:00
yhirose
755f05c02b
Removed global mutex
2018-04-20 09:37:59 -04:00
yhirose
5574d82eb3
Made a temporary fix for OpenSSL thread problem
2018-04-20 00:17:51 -04:00
Scott Graham
889041f05f
Don't fail chunked read if buffer not yet filled
2018-04-17 22:05:38 -07:00
yhirose
956faae6f0
Changed output type of read_content_??? functions to be std::string&
2018-04-17 23:47:24 -04:00
yhirose
b6df220b55
Fixed #48
2018-04-17 13:10:05 -04:00
yhirose
bc051219f9
Removed is_handling_requests
2018-04-17 13:10:05 -04:00
Scott Graham
ca3613cd21
Make 'chunked' in Transfer-Encoding case-insensitive
2018-04-16 21:43:41 -07:00
yhirose
9dc4e23082
Unit test for #52
2018-04-17 00:05:05 -04:00
yhirose
3c711089e5
Temporary solution for #52
2018-04-16 22:12:45 -04:00
yhirose
66550eb71b
Changed to return 415 instead of 406 for invalid Content-Encoding.
2018-04-16 21:02:24 -04:00
yhirose
ebe40a7d94
Merge pull request #50 from sgraham/body-decompress
...
Support Content-Encoding: gzip on server side
2018-04-16 20:54:25 -04:00
Scott Graham
5579d4d101
Support Content-Encoding: gzip on server side
...
If the client specifies Content-Encoding: gzip for POST requests,
decompress the body before attempting to parse it.
2018-04-16 15:16:17 -07:00
yhirose
4ddd5d9c5c
Merge pull request #51 from sgraham/chunk-terminator
...
Read \r\n terminator after chunked encoding
2018-04-16 17:43:12 -04:00
Scott Graham
87c673fd67
Read \r\n terminator after chunked encoding
2018-04-16 10:28:59 -07:00
Scott Graham
0515c6aad6
Support system-assigned port via two part listen()
...
This fixes #46 by allowing the user to separate the port bind from the
blocking listen(). Two new API functions bind_to_any_port() (which
returns the system-assigned port) and listen_after_bind() are equivalent
to the existing listen().
2018-04-16 08:23:41 -07:00
yhirose
0e239a0014
Fix #47
2018-04-14 18:42:56 -04:00
yhirose
5536d4c1ff
Fix #44
2018-04-06 17:02:37 -04:00
yhirose
b6790b39c1
Fixed build problem with OPENSSL_SUPPORT
2018-03-13 22:44:28 -04:00
Kevin B. Carpenter
73fa115803
Added capture and setting of REMOTE_ADDR in request.
2018-03-06 08:20:51 -07:00
yhirose
b7b3588afb
Connection timeout support on Client ( Fixed #34 )
2018-01-04 20:35:58 -05:00
yhirose
1d5fbe6a5b
Add gzip support. resolved #11
2017-12-30 00:00:43 -05:00
yhirose
1c86540fe5
Fixed content-type problems
2017-12-22 23:16:28 -05:00
yhirose
23c8f0c738
Fixed #28 . (Keep-Alive connection support)
2017-12-20 17:32:15 -05:00
yhirose
a83dcefe86
Fixed SSL server problem with bad key.pem and cert.pem
2017-12-17 22:23:05 -05:00
yhirose
95b22a980a
Fixed #35
2017-12-16 19:07:58 -05:00
yhirose
38bbe4ec4c
Removed automatic inclution of <openssl/ssl.h> with '__has_incude'
2017-12-16 18:40:35 -05:00
yhirose
7e5db48bdf
Fixed #33
2017-12-12 22:20:40 -05:00
yhirose
c76d0e4ab3
Allow leading and trailing whilespaces before/after header field values
2017-12-10 22:42:11 -05:00
yhirose
31e53d21e4
Fixed #32
2017-12-10 22:34:37 -05:00
yhirose
459f197ed0
Fixed #30
2017-12-10 15:11:03 -05:00
yhirose
cca90184aa
Raname refactoring
2017-12-09 16:45:40 -05:00
yhirose
e557282641
Rename argument name
2017-12-07 13:19:03 -05:00
yhirose
f35f2b23fa
Fixed problems with Visual Studio 2013
2017-12-07 13:10:20 -05:00
yhirose
0968d71c96
Fixed build problems on Msys2
2017-12-07 08:28:06 -05:00
yhirose
929c546f17
Fixed #29
2017-12-07 00:20:59 -05:00
yhirose
6a608b3ed4
Fixed Unit test failures on Windows
2017-12-07 00:05:43 -05:00
yhirose
315c11d6e2
Implemented socket_reader
2017-12-06 23:52:34 -05:00
yhirose
c3346a4815
Changed to use std::multimap for params
2017-12-05 23:19:39 -05:00
yhirose
bb8a1df7a3
Fixed #21
2017-12-05 19:19:07 -05:00
yhirose
ea9c8ee46b
Fixed build error
2017-12-05 19:15:52 -05:00
yhirose
4fb2f51766
Fixed #19
2017-12-03 22:31:00 -05:00