yhirose
c795ad1c32
Fix #2259 . Add query string normalization to preserve parameter order in requests
2025-12-05 21:39:40 -05:00
yhirose
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
dbd5ca4bf2
Add error handling for stream read timeouts and connection closures
2025-12-04 19:19:18 -05:00
yhirose
8bba34eebc
Add New Streaming API support ( #2281 )
2025-12-01 21:40:13 -05:00
bigmoonbit
c1fa5e1710
chore: fix some typos in comments ( #2282 )
...
Signed-off-by: bigmoonbit <bigmoonbit@outlook.com >
2025-11-27 20:34:18 -05:00
yhirose
84796738fc
Fix #2248
2025-11-25 22:22:07 -05:00
yhirose
337fbb0793
Fix #2279
...
Enhance request handling: add support for requests without Content-Length or Transfer-Encoding headers
2025-11-25 20:30:43 -05:00
Clarkok Zhang
59882752aa
Add Client::Post with both content provider and receiver ( #2268 )
...
Co-authored-by: Clarkok Zhang <clarkok8@gmail.com >
2025-11-14 14:52:06 -05:00
chansikpark
4b2b851dbb
Fix HTTP 414 errors hanging until timeout ( #2260 )
...
* Fix HTTP 414 errors hanging until timeout
* All errors (status code 400+) close the connection
* 🧹
---------
Co-authored-by: Wor Ker <worker@factory>
2025-11-02 22:23:42 -05:00
yhirose
551f96d4a2
Remove REMOTE_PORT dependency from UnixSocketTest.PeerPid
2025-10-27 20:40:12 -04: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
2d8d524178
Fix #2251
2025-10-25 22:06:42 -04:00
yhirose
afa88dbe70
Fix #2250
2025-10-25 21:36:53 -04:00
yhirose
8aedbf4547
Add a unit test
2025-10-25 19:31:48 -04:00
yhirose
bae40fcdf2
Resolve #2237
2025-10-25 16:48:45 -04:00
Andrea Pappacoda
35c52c1ab9
build(meson): use C++17 for gtest >= 1.17.0 ( #2241 )
2025-09-20 15:06:49 -04:00
Jonas van den Berg
6e52d0a057
Fix UB by use of dangling references in getaddrinfo_with_timeout ( #2232 )
...
* Fix use of dangling references
When the resolve thread is detached, local variables were still used, which could lead to a program crash.
* Add test to verify dangling ref fix
* Add missing brace initialization
* Assert that the remaining fields are really zeroed
* Fix use of chrono literals
2025-09-14 20:05:09 -04:00
yhirose
eb5a65e0df
Fix #2217
2025-08-29 15:01:59 -04:00
yhirose
4285d33992
Fix #2223 ( #2224 )
...
* Fix #2223
* Fix build error
2025-08-26 21:42:13 -04:00
yhirose
92b4f53012
clang-format
2025-08-26 20:29:43 -04:00
tejas
b8e21eac89
Initialize start time for server ( #2220 )
...
* Initialize start time for server
By initializing start_time_ for server, I hope to measure the time taken to process a request at the end maybe in the set_logger callback and print it.
I only see current usage in client with server retaining the inital min value
* Add test to verify start time is initialized
* Address review comments
* run clang format
2025-08-26 15:34:13 -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
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
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
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
a636a094bf
Fix #1656
2025-07-05 20:22:57 -04:00
yhirose
cb85e573de
Fix #1416 ( #2169 )
...
* Fix #1416
* Update
* Update
2025-07-05 15:17:53 -04:00
yhirose
120405beac
clang-format
2025-07-05 07:13:13 -04:00
yhirose
9a0571513e
Fix Makefile
2025-07-04 22:30:33 -04:00
yhirose
cfb56c0b78
Fix #1818
2025-07-04 21:09:05 -04:00
yhirose
083fe43ad3
Remove httpwatch.com dependency
2025-07-04 20:32:48 -04:00
yhirose
d5409ab541
Fix warnings
2025-07-03 19:58:28 -04:00
yhirose
292f9a6c55
Add CPPHTTPLIB_USE_NON_BLOCKING_GETADDRINFO
2025-06-30 21:14:58 -04:00
yhirose
7c303bb871
Launch proxy server before proxy test
2025-06-29 00:17:19 -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
d37373a983
Performance investigation
2025-06-25 16:46:49 -04:00
yhirose
b2bf172393
Fix #1551
2025-06-24 19:40:20 -04:00
yhirose
1729aa8c1f
Issue 2162 ( #2163 )
...
* Resolve #2162
* Update
2025-06-24 17:37:30 -04:00
yhirose
aabd0634ae
Fix warnings created by #2152
2025-06-24 17:12:12 -04:00
herbrechtsmeier
de5a255ac6
Fix bad request for multipart form data with boundary split ( #2159 )
...
* Add test for multipart form data with boundary split
Add a test for multipart form data requests with a large header which
leads to a split inside the boundary because of the read buffer size
inside the SocketStream class.
* Fix bad request for multipart form data with boundary split
Fix a bad request (400) response for multipart form data requests with
a large header which leads to a split inside the boundary because of the
read buffer size inside the SocketStream class. The parse function
inside the MultipartFormDataParser wrongly erase the receive buffer if
it doesn't find the boundary inside the buffer during first call.
2025-06-24 12:57:32 -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