yhirose
51b704b902
Implement SSEClient ( #2308 )
...
* Implement SSEClient
* Fix Windows problem
2025-12-15 00:00:42 -05:00
yhirose and Copilot
3e0fa33559
Implement ETag and Last-Modified support for static file responses and If-Range requests ( #2286 )
...
* Fix #2242 : Implement ETag and Last-Modified support for static file responses
* Add ETag and Last-Modified handling for If-Range requests
* Enhance HTTP date parsing with improved error handling and locale support
* Update httplib.h
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update test/test.cc
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update httplib.h
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Refactor ETag handling: separate strong and weak ETag checks for If-Range requests
* Fix type for mtime in FileStat and improve ETag handling comments
* Update httplib.h
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Resolved code review comments
* Update httplib.h
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update httplib.h
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Refactor ETag handling: use 'auto' for type inference and improve code readability
* Refactor ETag handling: extract check_if_not_modified and check_if_range methods for improved readability and maintainability
* Code cleanup
* Update httplib.h
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update test/test.cc
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update httplib.h
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update httplib.h
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Enhance ETag handling and validation in httplib.h and add comprehensive tests in test.cc
* Refactor ETag comparison logic and add test for If-None-Match with non-existent file
* Fix #2287
* Code cleanup
* Add tests for extreme date values and negative file modification time in ETag handling
* Update HTTP-date parsing comments to reference RFC 9110
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-12-05 18:58:54 -05:00
yhirose
8bba34eebc
Add New Streaming API support ( #2281 )
2025-12-01 21:40:13 -05:00
yhirose
ac9ebb0ee3
Merge commit from fork
...
* Fix "Untrusted HTTP Header Handling (REMOTE*/LOCAL*)"
* Fix "Untrusted HTTP Header Handling (X-Forwarded-For)"
* Fix security problems in docker/main.cc
2025-10-27 19:54:12 -04:00
yhirose
f3bba0646a
Fix benchmark test issue on Windows ( #2258 )
2025-10-27 18:27:55 -04:00
yhirose
2da189f88c
Fix EventDispatcher problem ( #2257 )
2025-10-27 18:10:52 -04:00
yhirose
318a3fe425
Fix problem with installing OpenSSL for Windows ( #2254 )
2025-10-25 22:35:21 -04:00
yhirose
4285d33992
Fix #2223 ( #2224 )
...
* Fix #2223
* Fix build error
2025-08-26 21:42:13 -04:00
yhirose
b52d7d8411
ErrorLogger support ( #870 ) ( #2195 )
2025-08-06 17:38:18 -04:00
yhirose
c0c36f021d
Fix #2184 , #2185 ( #2190 )
...
* Fix #2184 , #2185
* Fix build error
* Update
* Update
2025-07-29 19:29:37 -04:00
yhirose
7b6867bcdf
Fix #2021 ( #2180 )
2025-07-10 22:01:41 -04:00
yhirose
53ea9e8bb4
Fix #2111 ( #2179 )
2025-07-10 00:47:45 -04:00
yhirose
17ba303889
Merge commit from fork
...
* Fix HTTP Header Smuggling due to insecure trailers merge
* Improve performance
2025-07-09 07:10:09 -04:00
yhirose
9dbaed75ef
Fix #2175 ( #2177 )
...
* Fix #2175
* Update
2025-07-08 23:04:34 -04:00
yhirose
082acacd45
Merge commit from fork
...
* Fix Persistency of Unbounded Memory Allocation in Chunked/No-Length Requests Vulnerability
* Revert HTTP status code from 413 to 400
2025-07-08 17:11:13 -04:00
yhirose
52163ed982
Fix #2148 ( #2173 )
...
* Fix #2148
* Removed 32bit environment
* buld-error-check-on-32bit
* Use 32bit depedency from Windows
2025-07-07 21:30:08 -04:00
yhirose
145fc8b021
Proxy test ( #2172 )
...
* Add proxy test on CI
* Add Brotli and Zstd dev packages to proxy test workflow
* Fix Docker Compose command for GitHub Actions compatibility
* Add proxy readiness check and netcat dependency
* Use netcat-openbsd instead of virtual netcat package
* Add proxy startup delay and debug logging
2025-07-06 22:00:41 -04:00
yhirose
af73377611
Fix #1578 ( #2171 )
...
* Fix #1578
* Update README
* Update
* Update
* Update
* Update
* Update
* Update
2025-07-06 21:27:24 -04:00
yhirose
a3f5569196
Fix #2082 ( #2170 )
2025-07-05 20:30:31 -04:00
yhirose
cb85e573de
Fix #1416 ( #2169 )
...
* Fix #1416
* Update
* Update
2025-07-05 15:17:53 -04:00
yhirose
ea850cbfa7
Fix #1601 ( #2167 )
...
* Fix #1601
* clang-format
* Fix Windows problem
* Use GetAddrInfoEx on Windows
* Fix Windows problem
* Add getaddrinfo_a
* clang-format
* Adjust Benchmark Test
* Test
* Fix Bench test
* Fix build error
* Fix build error
* Fix Makefile
* Fix build error
* Fix buid error
2025-06-29 00:13:09 -04:00
yhirose
e6ff3d7ac2
Cleaner API ( #2166 )
...
* Cleaner API
* Fix Windows build error
2025-06-28 00:37:01 -04:00
yhirose
e1ab5a604b
Proxy problems ( #2165 )
...
* Fix proxy problems
* Auto redirect problem (http → https → https)
2025-06-28 00:14:01 -04:00
yhirose
1729aa8c1f
Issue 2162 ( #2163 )
...
* Resolve #2162
* Update
2025-06-24 17:37:30 -04:00
yhirose
28dcf379e8
Merge commit from fork
2025-06-24 07:56:00 -04:00
yhirose
91e79e9a63
Fix #1777 ( #2160 )
...
* Add benchmark unit test
* Update
* Update
* Update
* Change the default value of CPPHTTPLIB_IDLE_INTERVAL_USECOND to 1ms
2025-06-24 07:44:10 -04:00
yhirose
27879c4874
Fix #2157 ( #2158 )
...
* Fix #2157
* Fix Windows build error: wrap std::max in parentheses to avoid macro conflict
- On Windows, max/min are often defined as macros by windows.h
- This causes compilation errors with std::max/std::min
- Solution: use (std::max) to prevent macro expansion
- Fixes CI build error: error C2589: '(': illegal token on right side of '::'
Fixes: error in coalesce_ranges function on line 5376
2025-06-23 08:35:56 -04:00
yhirose
71ba7e7b1b
Fix #2068 ( #2080 )
...
* Fix #2068
* Add unit test
2025-02-20 23:45:21 -05:00
yhirose
a4b2c61a65
Max timeout test refactoring ( #2071 )
...
* Simplify code
* Adjust threshold
2025-02-19 22:19:02 -05:00
yhirose
03cf43ebaa
Release v0.19.0
2025-02-14 14:42:29 -05:00
yhirose
8a7c536ad5
Fix #2034 ( #2048 )
...
* Fix #2034
* Fix build error
* Adjust threshold
* Add temporary debug prints
* Adjust threshhold
* Another threshold adjustment for macOS on GitHub Actions CI...
* Performance improvement by avoiding unnecessary chrono access
* More performance improvement to avoid unnecessary chrono access
2025-02-10 06:51:07 -05:00
yhirose
4941d5b56b
Fix #2033 ( #2039 )
2025-02-05 12:46:33 -05:00
yhirose
986a20fb7d
Resolve #2017 ( #2022 )
...
* Resolve #2017
* Fix warning
* Update README
2025-01-17 17:37:07 -05:00
yhirose
3e86bdb4d8
Fix #1997 ( #2001 )
2024-12-03 00:11:29 -05:00
yhirose
fe07660f40
Fix #1986 ( #1988 )
2024-11-27 12:18:35 -05:00
yhirose
da2f9e476e
Fix #1985 ( #1989 )
2024-11-27 12:18:23 -05:00
yhirose
01dcf1d0ad
Fix #1969 (without unnecessary sleep_for) ( #1982 )
2024-11-16 10:56:57 -05:00
yhirose
970b52897c
Fix #1980
...
Fix #1980
2024-11-16 02:09:52 -05:00
yhirose
9dd565b6e3
Resolve #1973 ( #1976 )
...
* Fix #1973
* Fixed problems with 'Language for non-Unicode programs' setting on Windows
* Fix problems on English locale
2024-11-13 22:47:09 -05:00
yhirose
7c4799d0cf
Fix #1798 for CMake ( #1944 )
2024-09-19 18:33:32 -04:00
yhirose
e612154694
Issue1431 ( #1926 )
...
* Renamed enable_server_host_verification to enable_server_hostname_verification and added Error::SSLServerHostnameVerification
* Add some Open SSL function calls
* Code cleanup
* Fix #1431
2024-09-08 22:45:47 -04:00
yhirose
978a4f6345
Fix KeepAliveTest.SSLClientReconnectionPost problem ( #1921 )
2024-09-06 13:58:24 -04:00
yhirose
b1f8e986bf
Fix #1908 ( #1910 )
...
* Fix #1908
* Code format
2024-09-03 00:47:39 -04:00
yhirose
88277139e7
Added set_ipv6_v6only method ( #1905 )
...
* Added `set_ipv6_v6only` method
* Adjust the place where socket_options is called
2024-09-01 07:52:24 -04:00
yhirose
390f2c41f6
Fix #1878 ( #1893 )
...
* Fix #1878
2024-08-08 22:07:46 -04:00
yhirose
521529d24d
Fix #1481 (with content provider) ( #1527 )
...
* Fix #1481 (with content provider)
* Improve shutdown performance
* Make shutdown action more stable
* Move some tests up
* Simplified
* Simplified
2024-08-06 13:43:00 -04:00
yhirose
eba980846b
Fix #1628 (OpenSSL 1.1.1 End of Life on September 11, 2023) ( #1745 )
2023-12-24 08:20:58 -05:00
yhirose
44c62d838e
Use memory mapped file for static file server ( #1632 )
...
* Use memory mapped file for static file server
* Fix build error
2023-07-31 07:43:50 -04:00
yhirose
bd9612b81e
Changed to use auto ( #1594 )
2023-06-17 02:18:34 -04:00
yhirose
7ab5fb65b2
Code cleanup ( #1593 )
2023-06-16 18:08:28 -04:00
yhirose
9bb3ca8169
Fix #1459 ( #1523 )
2023-03-10 22:21:42 -05:00
yhirose
ba5884e779
Fix #1481 ( #1513 )
2023-03-03 23:45:19 -05:00
yhirose
75053bf855
Fix #1498 ( #1501 )
...
* Fix #1498
* Fixed build error
2023-02-22 13:19:36 -05:00
yhirose
d663588491
Removed is_writable() from DataSink ( Resolve #1478 , too) ( #1483 )
2023-02-04 13:53:42 -05:00
yhirose
f0eb55b327
Changed to use const std::string & as much as possible instead of const char * ( #1331 )
...
* Changed to use `const std::string &` as much as possible instead of `const char *`
* Fix problems on Windows
2022-07-22 22:44:33 -04:00
yhirose
37bb3c6a77
No longer support VS 2013 and older #1325 ( #1326 )
...
* Fixed a warning
* No longer support VS 2013 and older (Fix #1325 )
2022-07-14 20:57:41 -04:00
yhirose and Gavin1937
127a64d5a0
Skip preamble and epilogue in multipart/form-data ( Fix #1317 ) ( #1320 )
...
* fix: skip MIME preamble (#1317 )
* Skip epilogue in multipart/form-data
Co-authored-by: Gavin1937 <71205842+Gavin1937@users.noreply.github.com >
2022-07-08 17:26:50 -04:00
yhirose
a5a62768c0
Fix #1292 ( #1296 )
2022-05-27 11:54:43 -04:00
yhirose
fee8e97b4e
Rename fuzzing test corpus for #1264
2022-05-03 14:53:59 -04:00
yhirose and Kotarou
cb41947eb4
Fix #1235 ( #1243 )
...
* Fix #1235
* fix BindIPAddress error (#1242 )
* Code cleanup
* Added a unit test
* Commented out 'SSLClientTest.SetInterfaceWithINET6'
* Fixed incorrect return value from if2ip
* Removed if_nametoindex call
Co-authored-by: Kotarou <2918558+CyberKoo@users.noreply.github.com >
2022-04-13 21:32:46 -04:00
yhirose
e5cacb465d
Fix #1172 ( #1173 )
...
This change is based on RFC7230, § 3.5 'Message Parsing Robustness': "Although the line terminator for the start-line and header fields is the sequence CRLF, a recipient MAY recognize a single LF as a line terminator and ignore any preceding CR."
2022-01-26 13:34:23 -05:00
yhirose
17abe221c0
Fix is_file problem on Windows ( #1153 )
2021-12-30 14:54:57 -05:00
yhirose
793ae9855e
Fix #1041 ( #1132 )
...
* Fix #1041
* Fixed problem with is_socket_alive
* Adjust the way to check if the sockt is still alive.
* Revert "Adjust the way to check if the sockt is still alive."
This reverts commit 6c673b21e5 .
* Adjust is_socket_alive according to the code review
2021-12-16 21:06:17 -05:00
yhirose
743ecbd365
Issue1121 ( #1122 )
...
* Fixed test/Makefile problem when cleaning *.pem files
* Fix #1121
2021-12-11 19:07:12 -05:00
yhirose
3051152103
Fix #1102 ( #1108 )
2021-11-26 20:44:58 -05:00
yhirose
6fb5b63018
Fix #1093 . Remove meson-build tests from GitHubActions ( #1094 )
2021-11-15 22:49:40 -05:00
yhirose
ec56dfa35e
Fix #1085 ( #1091 )
2021-11-15 14:37:10 -05:00
yhirose
c7554ccac2
Fix #1069 ( #1070 )
2021-10-09 20:35:58 -04:00
yhirose
e07f7691a8
Update README
2021-09-17 21:26:31 -04:00
yhirose
c202aa9ce9
Read buffer support. ( Fix #1023 ) ( #1046 )
2021-09-12 00:26:02 -04:00
yhirose
6ff84d34d1
Another simpler implementation of #890 ( #891 )
2021-04-02 18:25:04 -04:00
yhirose
0308d60cb2
Resolve #831 ( #835 )
2021-01-23 12:23:06 -05:00
yhirose
f008fe4539
Added middleware support ( #816 )
2021-01-07 18:40:52 -05:00
yhirose
90a5b6ceb0
Updated README
2020-12-04 19:39:39 -05:00
yhirose
109b624dfe
Fix #708 ( #713 )
...
* Fix #708
* Rename ContentReceiver2 to ContentReceiverWithProgress
2020-10-22 11:48:43 -04:00
yhirose
69e75f4a67
Fix #635 . HTTPS request stucked with proxy ( #637 )
2020-09-03 12:17:53 -04:00
yhirose
dc5f9ba164
Better error handling on client ( #601 )
2020-08-08 20:50:24 -04:00
yhirose
dfec2de5b5
Update README
2020-08-03 23:37:05 -04:00
yhirose
6e1297cab0
Fix #150 ( #556 )
2020-07-07 18:55:46 -04:00
yhirose
c4f3f9529b
Fix #534 ( #546 )
2020-07-02 21:57:50 -04:00
yhirose
a5005789ff
Fixed Visual Studio compiler warnings with x64 platform ( Resolve #440 and #446 ) ( #448 )
2020-04-25 17:13:14 -04:00
yhirose
c74129a1c2
Fix #372 ( #374 )
2020-03-09 23:59:00 -04: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
yhirose
82c11168c1
Merge pull request #342 from yhirose/remove_mount_point
...
Fix #341
2020-01-31 20:41:39 -05:00
yhirose
89740a808d
Added a contributor to README
2020-01-28 06:34:10 -05:00
yhirose
2377a20e0b
Merge pull request #340 from vitalyster/head_static
...
HEAD support for static file server
2020-01-28 06:32:32 -05:00
yhirose
48a4a5812e
Merge pull request #338 from TheMaverickProgrammer/master
...
fixed missing import
2020-01-25 20:44:59 -05:00
yhirose
f94c3f1dc9
Updated README
2020-01-21 23:45:21 -05:00
yhirose
e5ca863de5
Merge pull request #334 from vvanelslande/add_503
...
Add status message: 503 Service Unavailable
2020-01-16 06:59:31 -05:00
yhirose
f6db19959f
Merge pull request #333 from stupedama/master
...
std::thread::hardware_concurrency
2020-01-14 17:04:17 -05:00
yhirose
7fbb8bb3fd
Merge pull request #326 from vvanelslande/add_202
...
Add status message for 202 Accepted
2020-01-10 18:37:38 -05:00
yhirose
dfebfd9033
Merge pull request #325 from rockwotj/master
...
Properly implement BufferStream::read
2020-01-10 07:54:15 -05:00
yhirose
7f749740f7
Merge pull request #324 from hyperxor/use_cpp_11_for_delays
...
Use sleep_for and chrono for delays in tests
2020-01-09 17:08:44 -05:00
yhirose
db7ae0ec21
Merge pull request #322 from hyperxor/fix_response_move
...
Fix suppressed Response class objects moving
2020-01-08 22:09:17 -05:00
yhirose
68aeb4a06a
Merge pull request #317 from hyperxor/tiny_improvement_in_data_sink
...
Tiny improvement in DataSink class
2020-01-07 07:03:38 -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
8cc3e6c434
Merge pull request #296 from yhirose/connect
...
CONNECT method support on client
2019-12-21 23:09:10 -05:00
yhirose
26fbc1b7c0
Merge pull request #297 from hyperxor/fix_progress_redundant_copying
...
Fix redundant Progress copy in Get methods
2019-12-21 07:43:45 -05:00
yhirose
7a58c0a430
Updated README regarding regex issue in g++ 4.8 and below
2019-12-20 23:16:05 -05:00
yhirose
ae43c96984
Merge pull request #295 from yhirose/timeout
...
Fix #294
2019-12-18 17:57:23 -05:00