Change information
Commit message:
Update cpp-httplib to d66d9a95997d (0.51.0)
551f96d4a2a0 Remove REMOTE_PORT dependency from UnixSocketTest.PeerPid
4b2b851dbb91 Fix HTTP 414 errors hanging until timeout (#2260)
1acf18876fdb CMake: Add HTTPLIB_SHARED option, don't define
BUILD_SHARED_LIBS (#2266)
61e9f7ce8f31 Fix #2270
59882752aaa9 Add Client::Post with both content provider and receiver
(#2268)
27ee115a6052 Fix android getaddrinfo issue (#2273)
9e7861b0b482 Add #undef _res after including resolv.h to prevent macro
conflicts (#2280)
337fbb0793c5 Fix #2279
adf58bf474fa Release v0.28.0
84796738fc5d Fix #2248
c1fa5e1710d0 chore: fix some typos in comments (#2282)
0a9102ff6b44 Optimize ThreadPool and MatcherBase constructors (#2283)
8bba34eebc38 Add New Streaming API support (#2281)
1d36013fc3aa Update README
143019a38cb8 Fix #2284
dbd5ca4bf2da Add error handling for stream read timeouts and connection
closures
27b73f050ee5 Fix #2287
3e0fa33559f1 Implement ETag and Last-Modified support for static file
responses and If-Range requests (#2286)
c795ad1c326b Fix #2259. Add query string normalization to preserve
parameter order in requests
87c2b4e584da Fix #2294
c3613c697758 Update the split.py file (#2295)
f441cd2a44dd Use std::move for content_provider in adapter (#2297)
c23764269dbc Use std::move for boundary in set_boundary method (#2298)
f4ecb96e5441 Fix linker error on macOS (#2299)
bce08e62f96b Remove unnecessary copies for AcceptEntry (#2303)
3401877d3df5 Change single char string literals to chars (#2304)
ae94d64f670d Remove another unnecessary string copy (#2305)
681d388247bb Use move semantics for auth key and value (#2306)
b7097f1386f5 Replace httpbin.org with httpcan.org (#2300)
2de4c59bc20d Add Zstd support through meson (#2293)
63b07ada433c Initial plan (#2307)
6a6d4161d192 Removed DigestAuthTest.FromHTTPWatch_Online_HTTPCan
7eb03e81fcca Refactoring
51b704b9021e Implement SSEClient (#2308)
0461cb770c32 Avoid unncessary copying of request and response objects
(#2310)
f0990ca96d97 Use std::move for request redirection (#2311)
25688258ad7a Add another missing std::move for _base_dirs vector (#2314)
cdf0d332587b Fix #2301
db98efee5ae1 Fix problem with Proxy test
5304464a53f7 Release v0.29.0
d23cf77cd088 Resolve #2313
b7c2f043188e Fix potential arithmatic overflow problem
385adefb1192 Use `HOST` and `PORT` in test.cc
7ae794a6bfa5 Fix #2315
98048a033a53 Merge commit from fork
ded82448aadd clang-format
2ba0e7a7979b Fix build error
6da7f0c61c69 Fix port reuse problem
f85f30a637c6 Apple frameworks: match CoreFoundation and CFNetwork
linkage (#2317)
40f7985e027b Update copyright year
781c55f120f9 Release v0.30.0
23a1d79a662a Fix #2318
8d03ef161503 Fix #2318 on macOS
59905c7f0d3c Prevent redefinition of ssize_t (#2319)
2e2e47bab1ae Merge commit from fork
bd95e67c2349 Release v0.30.1
6eff49e1fb96 Problem with CI test on Windows without OpenSSL (#2323)
a7e1d14b1538 Fix warning on Windows
1111219f17ab Fix #2324
cea018f2cdf6 Fix #2324
b85aa76bd2d9 Fix #2321, #2322, #2326
7dec57d1eb5c Fix #2325
c0469eba96e2 Revert "Fix #2325"
0e1b52b23e7d Fix #2325 (#2331)
a38a07657181 Resolve #2262 (#2332)
02dfb97fd615 Add `Expect: 100-continue` support
ad5839f0d1c5 Add retry logic to BenchmarkTest test on Windows
191bfb2ea4c2 Fix build error when zstd < 1.5.6 lacks zstd::libzstd CMake
target (#2334)
f73e694f0ccd timegm api absent in AIX (#2336)
c3fa06112bb0 Fix set_ca_cert_store() to skip system certs like
set_ca_cert_path() (#2335)
fbec2a3466ef case insensitive hostname validation (fix #2333) (#2337)
094bf112bbb5 Fix #2340
71bb17fb0e7a Fix problems with CPPHTTPLIB_NO_EXCEPTIONS
dc6faf5c17c1 Release v0.30.2
6be32a540dca Abstract TLS API support (Resolve #2309) (#2342)
1942e0ef0171 Add C++ modules support (#2291)
5ead179b8e9c Update README
4639b696ab81 Fix #2339 (#2344)
9248ce3bfee5 Fix problem with PayloadMaxLengthZeroMeansNoLimit
94b5038eb34e Fix build error on Windows
8b4146324f36 Fix #2116 (#2346)
5d717e6d917b Resolve #2347
4e14bc894806 Fix memory leak (#2348)
2867b74f1312 Release v0.31.0
f0b7d4161dbc Update justfile
a87529215345 Move `stream` and `sse` implementations from the decl area
to the impl area. (#2352)
1f1a799d13d6 Fix #2351
8c4370247ad9 Add support for mbedtls to meson (#2350)
02e4c5368539 Fix 'no TLS' problem with
RequestWithoutContentLengthOrTransferEncoding
a188913b023c Merge branch 'master' of github.com:yhirose/cpp-httplib
f69737a838dd Fix problem with
PayloadMaxLengthTest.NoContentLengthPayloadLimit
77d945d3b6c8 Correct sign comparison error with sk_X509_OBJECT_num
(#2355)
4e75a84b399c Fix compilation on BoringSSL by replacing ASN1_TIME_to_tm
(#2354)
f80864ca0319 Resolve #2359
c0adbb4b20f0 Release v0.32.0
14e37bd75b52 Offline test (Resolve #2356) (#2358)
c1ee85d89ea2 Use iptables to disable network (#2363)
ed5c5d325b14 Parallel test on CI (#2364)
8d225afc8cbd Remove macOS select() fallback (#2365)
d4180e923f84 Fix comparison of integers of different signs warning when
compiling with BoringSSL. (#2367)
464867a9cede WebSocket and Dynamic Thread Pool support (#2368)
b2430249d295 Update README-websocket.md and justfile
ab96f72b9687 Update README
c41c5fb8a949 Revise README features section and header
718d7d92b993 Fix problems in Unit tests
0d5bf55c73cf Add wolfSSL support (#2370)
4f17fbaa0353 Missing change for wolfSSL support
17f301877f4a Add `bench` command in justfile
43cf1822c6b2 Resolve #2369
2280f1d191cd Improvement for Multipart Form Data
9b9bda6b6e6c Fix CI build errors
f1f8ff53d530 Release v0.33.0
33dbe00cce79 Fix compiple problem with C++11 compiler
e61a8bcec711 Release v0.33.1
b4d16a582dfa Update `latest` tag when new release
c53d93d145d8 Add make_file_body
f29bb15f9d86 Performance improvement!
f6aec9814504 Fix SocketStream.wait_writable_INET test
e068da4f6b9c Fix race condittion with logging
21243b3c9ee4 Fix problem caused by the recent performance improvement
7c33fd47bf3a Release v0.34.0
c2002f6e06bb Make loading system certificates from the Keychain on macOS
an opt-out feature (#2377)
c6c75e4c6963 Remove tag-latest.yml
defd907c7469 Merge commit from fork
c99d7472b5cf Merge commit from fork
0853ce775386 Fix #2379
85b18a9c6431 Release v0.35.0
797758a7420b Documentation Site on GitHub Pages (#2376)
bda599bfb438 Fix base_dir for GitHub PageS
b6cd71d4fff0 Update `docs/`
a9fc93591962 Add a link to GitHub
f441fc33fb7c Update README with documentation link and formatting
ae64a5ee9079 Fix #2381
63ede29db10c Update README
82a61a6b60e6 [CMake] New compoments `MbedTLS` and `wolfSSL` (#2360)
7444646627a9 Removed unused local variable (#2382)
b2d76658fcea Add default templates, styles, and scripts for
documentation site
2d669c363677 Refactor main function to display help message when no
command is provided
e906c31a796d Add favicon and update navigation icons across
documentation
cda9680cdcb4 Update document site
843ad379c799 Add search functionality across documentation pages
fdb589d97e25 Update dependency
2e124cde0210 Enhance documentation and configuration for static site
generator
74807d24a734 Update pages-data.json with new content and structure for
cpp-httplib documentation
0e4f1041412f Fix #2383 (#2385)
8bffbe3ff2af Merge commit from fork
bb2255308724 Fix code format
41899acece49 Release v0.36.0
de296af3eb5b Fix problem with alternate file name check
c87d442aac69 Remove docs-gen
a058e31a3a53 Use doc.yml to generate document site
0d3a3d805c89 Release v0.37.0
ab3098f18bd7 Update README
7489fd3a8b71 Remove 32-bit limitation (#2388)
e41ec36274a2 Fix handling of malformed Content-Length in open_stream and
add tests
1f34c541b0aa Add more books
68fa9bce0f1a Release v0.37.1
9ced2f614d08 Fix #2395
125272f34b12 Fix TLS cert verification bypass on proxy redirect
introduced in #2165 (#2396)
188035fb6d9c Add a test for the previous change
d279eff4db52 Fix the proxy test error
1e97c28e3609 Implement request smuggling protection for duplicate
Content-Length headers and add corresponding tests
b3a8af80b9a4 Add port validation and corresponding tests to prevent
overflow and out-of-range values
1cd0347acea2 Refactor parse_port function to accept char pointer and
length, improving flexibility and validation
4d7c9a788de1 Release v0.37.2
83e98a28dd36 Add filename sanitization function and tests to prevent
path traversal vulnerabilities
43a54a3e3da8 Add tests for Unicode path component decoding in
decode_path_component function
f787f31b870f Implement symlink protection in static file server and add
corresponding tests
511e3ef9e59b Update README.md to enhance TLS backend documentation and
clarify platform-specific certificate handling
3ad4a4243a02 Update .gitignore to include AGENTS.md and related
documentation files
2e61fd3e6ee3 Update documentation to clarify progress callback usage and
user data handling in examples
69d468f4d98b Enable BindDualStack test and remove disabled large content
test due to memory issues
f6ed5fc60f0f Add SSL support for proxy connections in open_stream and
corresponding test
b1bb2b7eccdf Implement setup_proxy_connection method for SSLClient and
refactor proxy handling in open_stream
1c3d35f83cdf Update comment to clarify requirements for safe handling in
ClientImpl::handle_request
bb7c7ab075ca Add quality parameter parsing for Accept-Encoding header
and enhance encoding type selection logic
4978f26f8609 Fix port number in OpenStreamMalformedContentLength test to
avoid conflicts
ec1ffbc27d90 Add Brotli compression support and corresponding tests
5ecba74a9929 Remove large data tests for GzipDecompressor and
SSLClientServerTest due to memory issues
ba0d0b82db7b Add benchmark tests and related configurations for
performance evaluation
257b266190a7 Add runtime configuration for WebSocket ping interval and
related tests
6f2717e62307 Release v0.38.0
4a1e9443ee9f Update deprecation messages to indicate removal in v1.0.0
1c6b3ea5a0a0 Add status: "draft" to multiple documentation pages and
enhance navigation sections
c59ef98b3b15 [cmake] Update modules.cmake to fix cmake error (#2393)
dd8071a7d496 Fix #2397
45820de3327c Enhance stream handling in LongPollingTest and add new test
for client close detection
c2bdb1c5c15a SSE Client: Update Authorization Header Fixes #2402
7178f451a4eb "Building a Desktop LLM App with cpp-httplib" (#2403)
3792ce0da73c Add socket configuration options and corresponding test
case for WebSocketClient. Fix #2401
cb8365349fbc Fix #2404 (Refactor make_file_body to improve file handling
and scope management)
703abbb53bc1 Prevent forwarding of authentication credentials during
cross-host redirects as per RFC 9110. Add tests for basic
auth and bearer token scenarios
315a87520d8f Add release script and update .gitignore for work directory
a77284a634bb Release v0.39.0
ceefc14e7d2d Use go-httplibbin
05540e4d508e Fixed warnings
6fd97aeca0fa Implement request body consumption and reject invalid
Content-Length with Transfer-Encoding to prevent request
smuggling
9a97e948f04d Add set_socket_opt function and corresponding test for
TCP_NODELAY option (Resolve #2411)
a9359df42e71 Optimize multipart content provider to coalesce small
writes and reduce TCP packet fragmentation (Fix #2410)
b7e02de4a700 Release v0.40.0
32c82492dec9 Add workflow_dispatch trigger to docs deployment workflow
831b64bdebd7 Add two new fuzzers (#2412)
6607a6a5922b [cmake] Allow using pre-existing zstd target if it exists
(#2390)
3093bdd9ab01 Fix #2416
96785eea216d Add parse_url
073b58796205 Release v0.41.0
ca82c93772c7 Refactor SSLVerifierResponse to enum class and add
get_param_values method to Request
fc885cc62df6 test: WebSocketIntegrationTest.SocketSettings: do not set
AF_INET (#2420)
4f589c1ffbfc Fix #2421
834a444435db Fixed warnings
7a7f9b30e751 Update README
783de4ec4e76 Update README
61e533ddc5c6 Add Cookbook C01-C19 (draft)
361b753f19e9 Add Cookbook S01-S22 (draft)
529dafdee36d Add Cookbook other topics (draft)
994d76ab398d Fix #2422
d97749a31513 Update README
ff04679538c6 Release v0.42.0
203e1bf2ac6f Code cleanup
c0248ff7fc15 Add links to other topics in Cookbook documents
b4eec3ee77c3 Removed deprecated APIs (#2423)
6bdd657713d1 Enhance WebSocket support with unresponsive-peer detection
and documentation updates
09d00c099ca8 Update README
ee5d15c8429d Let dynamic threads wait for work instead of exiting
immediately
7e2a173072b1 Fix #2425
cb3fce964d8f fix: cast len to 64 bits before right shift in ws (#2426)
b045ee7f6b43 Fix #2424
9f52821be60c fix #2429 (#2430)
cc8f270d4be7 Fix test style for ResponseBodyTerminatedByConnectionClose
3cedf31d4c7d Fix #2427 (#2428)
9f41fc04474b Release v0.43.0
02d38251495e Fix Windows build error
33bc1df93036 Release v0.43.1
d14e4fc05f85 Reproducer test for #2431 (getaddrinfo_a use-after-free)
(#2433)
5ebbfeef0bf8 Fix #2431: drop getaddrinfo_a path to eliminate stack-use-
after-free (#2436)
b0866cff8f07 Detect failing tests in parallel shard runner
f50bd311fb24 Fix MakeFileBody/MakeFileProvider tests on Windows
511cc02278b1 Suppress wolfSSL library leaks; remove fail-fast from test
matrix
2ea632264dcb Skip mbedTLS-specific SSL test; allow flaky mbedTLS jobs
109e33106881 Exclude *_Online tests from default CI runs
3d56762d5c62 Fix mbedTLS close_notify mid-response handling
887837c65b26 Run mbedTLS test shards with SHARDS=2 to reduce flakiness
db6c9ef27bba Drop mbedTLS continue-on-error now that the matrix is
stable
13e866bdb092 Use SHARDS=1 for macOS mbedTLS to stop residual flakiness
0cbeafe6a402 Add client fuzzing harness (#2437)
c2678f0186db Fix #2435: allow mmap to open files held open for writing
(#2438)
806fcb826811 Re-enable getaddrinfo_a with worker-completion wait (#2431)
(#2439)
d412e98c62eb Release v0.43.2
cae753425ecc Run all fuzzers via make fuzz_test
2d2efe46dab0 Fix OSS-Fuzz #508342856: cap Content-Length reservation by
payload_max_length_
b223e2977844 Add OSS-Fuzz #508370122 reproducer to client_fuzzer corpus
92aecf85d849 Fix OSS-Fuzz #508087118: avoid stack overflow in str2tag
40e18460bcda Document str2tag_core's compile-time-only role
35c4026c7fee Make fuzz_test robust to missing corpus files
f6524c08020a Drop Str2tagTest unit test that broke split / no-exceptions
builds
ec5ce17929c5 Release v0.43.3
a9bfe5914b2c Fix #2441
eb49a304b6ec Use vswhere to locate VS install in 32-bit Windows CI
(#2442)
a1fdc07f34ef Guard nullptr res in KeepAliveTest proxy template (#2443)
87d62db46b37 Reject malformed chunk-size in chunked decoder
600d220c8485 Release v0.43.4
7d5082cc0e6e Make ThreadPool ctor exception-safe on partial thread
creation (#2445)
fbb031ed8504 Stop percent-decoding HTTP request header values
e8e652824b93 Add --minor flag to release.sh for forced minor bumps
811dd0b6f238 Release v0.44.0
5c9285776ee1 Fix crash on empty X-Forwarded-For with trusted proxies
configured
d755c43d586b Extract has_framed_body and is_connection_persistent
helpers
91271c062d3a Fix keep-alive corruption on requests without framed body
(#2450)
28f8264d134a Release v0.45.0
b1cc8095a8fe Specifying "Server::stop()" as noexcept (#2451)
1ff0c8588d7a Fix iOS build break and modernize macOS Keychain cert
loading (#2455)
0d7d63746669 Fix zstd detection in installed httplibConfig.cmake (#2453)
0f3d063f0a65 ci: add best-effort BoringSSL job (#2456)
b1792ef29ca6 Release v0.45.1
4c4b62dd7e7a Feature 2446 no proxy env (#2448)
d278f965ccd0 Fix #2457
008e107d0fcd Release v0.46.0
c86c192f3e86 Fix: (#2459)
91219d450816 Fix #2458: send body when no 100 Continue arrives over TLS
(#2460)
44215e23e92c Release v0.46.1
4465e81b9f7e Fix #2464
c7ba963a17ee Ignore ranges for unknown-length streams (#2465)
0c2f535b74f4 Fix #2467
907257f51de5 add set_hostname_addr_map to WebSocketClient (#2463)
fe56a07da5bc Wait for in-progress CI runs before releasing
79d83feb1829 Fix WebSocketClient dropping query string from URL during
handshake (#2468)
77bdf7921a21 Read request body after route matching and pre-request
handler
018ce8e4ca19 cast to unsigned char before ctype calls in is_hex and
is_token_char (#2469)
78ff94e60479 Wait for server startup before running benchmark
e7e7bf7b4462 Fix set_ca_cert_store() breaking CA exclusivity and
redirect CA transfer
39ec7d05082c Add enable_system_ca() and unify WebSocketClient CA
handling (#2471)
fa981cedae00 Fix TLS chain verification bypass for IP hosts on Mbed TLS
and wolfSSL
fe332fa06bac Release v0.47.0
8829fac98e61 Use full git history in docs workflow for sitemap lastmod
75329322764a Fix OpenSSL 4.0 deprecation warnings
28d95937b5a7 use strict hex parsing in decode_query_component (#2472)
df0b7d243b06 OSS-Fuzz: Add new fuzzer targets multipart parsing (#2473)
7307c41aa87a Better `from_chars` implementation (Fix #2475)
ba390f23994c Restrict IP-host hostname verification to iPAddress SANs on
Mbed TLS and wolfSSL
9ac64e90db60 Generate IP-host test certificates in CMake build
9d159bb41239 Release v0.48.0
a7b886b9cb98 Use an unsigned accumulator in base64_encode (#2477)
0ae93881b44b Clarify comment on base64_encode accumulator signedness
3fe32b63b42d Send query string verbatim when path encoding is disabled
(#2479)
8149bb38fc06 Escape quote, CR and LF in multipart field names and
filenames
9e8b960e4457 Add public MultipartFormDataWriter for multipart body
serialization
f5c8c982df79 Escape CR and LF in multipart part content types
45da614dddcc Omit default port from WebSocket handshake Host header (Fix
#2480)
32ff75e3556d Make ThreadPool idle timeout configurable at runtime (Fix
#2481)
9a5321aadb71 meson: fix build failure on glibc >= 2.34 without
standalone libanl (#2484)
bd455f8b9168 Add locale-independent ASCII classification helpers (Fix
#2482, Fix #2483)
a4d7066c2ce2 Log res.error() in GetWithRange test assertions to diagnose
flaky CI failures
2132205e1a69 Release v0.49.0
32abac3de5a1 Fix ambiguous Get() examples in README after new Params
overload (#2486)
0fa4912891f7 Fix broken relative links in cookbook docs (Fix #2490)
568d434e72fc Fix CRLF injection in chunked response trailers
b40937cea80d Fix README WebSocket example to match actual API (Fix
#2493)
873d7019723c Fix use-after-free in SSLClient destructor with mbedTLS
(Fix #2492)
06b8b9158997 Fix Response::content_length_ not reflecting body size in
Logger (Fix #2488)
ed97a6edbabb Release v0.50.0
2f986fd5e56e Fix use-after-free of TLS session in
WebSocketClient::shutdown_and_close()
62d899feac3c Release v0.50.1
0c1cc8c9866b Strip Cookie headers on cross-origin redirect
75938f08c743 Match chunked as the final transfer coding, order-
independently (#2500)
255c075b82cf Reject CR/LF in the request target and fail the request
cleanly (#2501)
982235c0a997 flag out-of-range Content-Length in get_header_value_u64
a415362dfff5 update OpenStreamMalformedContentLength.OutOfRange for
stricter parsing
3adc525cec4e Use detail::from_chars for out-of-range Content-Length
check
ef2beaea34cc Fix MSVC C4146 warning for unsigned types in from_chars
877a52f6b34b Limit the number of header lines per multipart form-data
part
f3e9a4d88742 Skip request body drain when connection will close
6c4cbd49a2e4 scan X-Forwarded-For right-to-left in get_client_ip (#2503)
54b3c1d072a5 Add Mbed TLS 4.x support (PSA Crypto) (#2502)
bbd56a7e2cdc Merge pull request #2497 from superm1/superm1/SWSPLAT-23636
fd0c18b1b5bc Validate connecting peer before honoring X-Forwarded-For
bf8baf07391c clang-format
8bbfc90380ca Apply clang-format to test.cc and httplib.h
c64bf21a5ea1 Merge pull request #2504 from emreay-/skip-drain-on-
closing-connection
695961f8ae7e skip invalid fields in write_headers to prevent response
splitting
613a41b49ddb Merge pull request #2505 from metsw24-max/write-headers-
crlf-guard
cda2bb534265 Consolidate header field-pair validation into
fields::is_field_valid
cc1be5ebb5fb Merge pull request #2506 from yhirose/refactor/consolidate-
field-validation
f7c8455a624e Log res.error() on all ServerTest ASSERT_TRUE(res)
assertions
82b1492c3dd3 Merge pull request #2507 from yhirose/flaky-ci-diagnostics
2fa041775434 Fix mbedTLS is_peer_closed() destroying the first response
byte
d66d9a95997d Release v0.51.0
Bug: 539815273
Change-Id: I60189f2069ceecabdf1b9104de26533b7373fc18
Files:
- M third_party/cpp-httplib/README.crashpad
- M third_party/cpp-httplib/cpp-httplib/README.md
- M third_party/cpp-httplib/cpp-httplib/httplib.h
Change size: XL
Delta: 3 files changed, 12098 insertions(+), 2838 deletions(-)
Branch: refs/heads/main
Submit Requirements:
Code-Review: +1 by Joshua Peraza