71ba7e7b1b32 Fix#2068 (#2080)
ebe7efa1cce4 Parallelize testing with/without SSL on Windows & set
concurrency group (#2079)
22d90c29b47c Remove `select()` and use `poll()` (#2078)
b944f942ee84 Correct default thread pool size in README.md (#2077)
550f728165f5 Refactor streams: rename is_* to wait_* for clarity (#2069)
a4b2c61a65f4 Max timeout test refactoring (#2071)
5c0135fa5d7e Fix typo in meson.build (#2070)
2b5d1eea8d7e build(meson): automatically use poll or select as needed
(#2067)
d274c0abe577 Fix typo
dda2e007a02e Fixed documentation about Unix Domain Sockt (#2066)
321a86d9f2b1 Add *.dSYM to Makefile clean
ada97046a23d Fix misspelled words
6e73a63153e9 Make poll() the default (#2065)
cdc223019acf server_certificate_verifier extended to reuse built-in
verifier (#2064)
574f5ce93e02 Add style check to workflow (#2062)
2996cecee0a9 Fix code inconsistently formatted and re-format (#2063)
32bf5c9c09ea Simplify SSL shutdown (#2059)
735e5930eb36 Detect additional CMake build failures (#2058)
748f47b3772d Add workflow_dispatch with Google Test filter and OS
selection (#2056)
4cb8ff9f9053 Print timeout exceedance in MaxTimeoutTest (#2060)
985cd9f6a288 Fix compilation failures with include <windows.h> (#2057)
233f0fb1b8f5 Refactor setting socket options (#2053)
03cf43ebaa55 Release v0.19.0
3c4b96024f6d Don't run CI twice (on push AND pull request)
d74e4a7c9c62 Removed incomplete API compatibility check scripts
bfa2f735f290 ci: add abidiff workflow (#2054)
b6ab8435d792 Improve ABI check tool on macOS
39a64fb4e7e4 Fix ABI compatibility tool on macOS
d7c14b6f3a58 Add API compatibility check tool
1880693aefa4 Dropped Visual Studio 2015 support
dd2034282571 Don't run CI twice (on push AND pull request) (#2049)
a268d65c4f84 Fix check for URI length to prevent incorrect HTTP 414
errors (#2046)
b397c768e414 Unify select_read() and select_write() (#2047)
8e22a7676a7a Remome 'global timeout' to 'max timeout'
8a7c536ad5b2 Fix#2034 (#2048)
8aad481c6993 Fix test.yaml problem
5814e121dfb5 Release v0.18.7
7adbccbaf71c Refine when content is expected (#2044)
eb10c22db109 Add unit test for #609
708f860e3ab6 Fix#2042
eb30f15363fd Release v0.18.6
4941d5b56b7e Fix#2033 (#2039)
9bbb4741b4f7 Run clang-format (#2037)
282f2feb7708 Add a unit test
60a1f00618a4 Support building httplib.h on OpenVMS x86 systems (#2031)
9104054ca56a Fix README example
d69f144a9991 Update httplib.h (#2030)
929dfbd34850 Update copyright year
3047183fd97d Update README
ef5e4044f13b Update README
37798003220c Release v0.18.5
986a20fb7d36 Resolve#2017 (#2022)
8311e1105fde Fix Windows build problem
ba6845925d44 Fix#2014
343a0fc07330 Fix#2011
54f8a4d0f34a Release v0.18.4
9c36aae4b73e Fix HTTP Response Splitting Vulnerability
b766025a8382 clangformat
9b5f76f8337d Fix#2012
d647f484a48a fix:set_file_content with range request return 416. (#2010)
8794792baa1b Treat out-of-range last_pos as the end of the content
(#2009)
b85768c1f34f Fix#2005
e6d71bd702d4 Add a unit test for Issue #2004
258992a160e3 Changed to use non-blocking socket in
is_ssl_peer_could_be_closed
a7bc00e3307f Release v0.18.3
11a40584e992 Fix#1998
3e86bdb4d81c Fix#1997 (#2001)
c817d6569501 Fix casting uint64_t to size_t for 32-bit builds (#1999)
51dee793fec2 Release v0.18.2
457fc4306e70 Fix#1993
4f5b003e760b Fix#1992
5421e2710608 Fix a compiler warning
fe07660f40c3 Fix#1986 (#1988)
da2f9e476ee3 Fix#1985 (#1989)
1a7a7ed1c301 test: Don't check for the exact size of compressed content.
(#1984)
413994912d19 Update vcxproj files
01dcf1d0adb0 Fix#1969 (without unnecessary sleep_for) (#1982)
8e378779c247 Update README
970b52897c8f Fix#1980
412ba04d1933 Fix problem caused by #1975
bfef4b3e9b48 Fix#1975
7bd316f3d0a6 Fix#1977
26208363eee8 Fix warning
b1b4bb885039 clangformat
9dd565b6e37c Resolve#1973 (#1976)
924f214303b8 Added unit test for exception handler
5c1a34e76681 Release v0.18.1
fa90d06dd5da Merge branch 'master' of github.com:yhirose/cpp-httplib
d869054318d2 Allow empty header values (#1965)
370119503366 Merge branch 'master' of github.com:yhirose/cpp-httplib
d79633ff52c2 clangformat
Bug: 398273506
Change-Id: I18c77e82fbc73d861ac8f61ad85d6070bbb753fd
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6298937
Reviewed-by: Will Harris <wfh@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
This includes an upstreamed version of the Crashpad-local 1a62a0182557
(https://chromium-review.googlesource.com/c/5769752) for BoringSSL
compatibility.
50fce538c685 threadsafe CLOEXEC on platforms that support it
fb739dbaecf3 threadsafe accept on windows, linux
ed0719f2bcb5 Code format
521529d24d38 Fix#1481 (with content provider) (#1527)
e00fd06355e8 Release v0.16.1
ff038f98b701 Merge branch 'thread-safe-cloexec' of
github.com:kdombroski/cpp-httplib into kdombroski-thread-
safe-cloexec
ae63b89cbf70 Use SOCK_CLOEXEC instead of __linux__
69c84c9597c3 BoringSSL compatibility fixes (#1892)
c5c54b31e2bf Release v0.16.2
Change-Id: I01485010de53ae599e22c8ce3c9d6af046d47c24
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5769660
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
This fixes errors observed while building
util/http_transport_test_server/http_transport_test_server.cc, shown
below.
The fixes include:
- Library version check: tolerate BoringSSL as an alternative to
OpenSSL 3.
- Don’t call `OPENSSL_thread_stop`, which is not in BoringSSL.
- Use `SSL_get_peer_certificate` (deprecated in OpenSSL 3), the old
name for `SSL_get1_peer_certificate`, because the new name is not in
BoringSSL.
- Call `SSL_set_tlsext_host_name` directly instead of making a quirky
`SSL_ctrl` call that BoringSSL does not support. The feared
-Wold-style-cast warning that occurs when buidling with OpenSSL is
not triggered in BoringSSL.
Compilation errors from
https://chromium-review.googlesource.com/c/5766975?checksPatchset=1&tab=checks
→ https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1909715/
→ “10. compilator steps (with patch)” → “31. compile (with patch)” →
stdout
(https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8740323272553670737/+/u/compile__with_patch_/stdout):
```
In file included from util/net/http_transport_test_server.cc:42:
third_party/cpp-httplib/cpp-httplib/httplib.h:275:2: error: Sorry, OpenSSL versions prior to 3.0.0 are not supported
275 | #error Sorry, OpenSSL versions prior to 3.0.0 are not supported
| ^
In file included from util/net/http_transport_test_server.cc:42:
third_party/cpp-httplib/cpp-httplib/httplib.h:733:7: error: use of undeclared identifier 'OPENSSL_thread_stop'
733 | OPENSSL_thread_stop ();
| ^
third_party/cpp-httplib/cpp-httplib/httplib.h:9062:30: error: use of undeclared identifier 'SSL_get1_peer_certificate'; did you mean 'SSL_get_peer_certificate'?
9062 | auto server_cert = SSL_get1_peer_certificate(ssl2);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| SSL_get_peer_certificate
…/boringssl/src/include/openssl/ssl.h:1784:22: note: 'SSL_get_peer_certificate' declared here
1784 | OPENSSL_EXPORT X509 *SSL_get_peer_certificate(const SSL *ssl);
| ^
In file included from util/net/http_transport_test_server.cc:42:
third_party/cpp-httplib/cpp-httplib/httplib.h:9083:24: error: use of undeclared identifier 'doesnt_exist'
9083 | SSL_ctrl(ssl2, SSL_CTRL_SET_TLSEXT_HOSTNAME, TLSEXT_NAMETYPE_host_name,
| ^
…/boringssl/src/include/openssl/ssl.h:5699:38: note: expanded from macro 'SSL_CTRL_SET_TLSEXT_HOSTNAME'
5699 | #define SSL_CTRL_SET_TLSEXT_HOSTNAME doesnt_exist
| ^
4 errors generated.
```
Change-Id: I5798f17323672d70f75335cea61094457b54466e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5769752
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Most significantly, this includes:
6a848b1a1643 Require a minimum of TLS 1.2 (#1889)
Although Crashpad only uses cpp-httplib in tests, there’s no reason to
taunt fate with this tempting juicy morsel. TLS 1.1 is deprecated
(https://datatracker.ietf.org/doc/html/rfc8996, 2021-03).
This includes a change to util/net/http_transport_test_server.cc to
ensure that the test server, which runs in a child process, continues to
return the full multipart request body as it had in the past. Since
cpp-httplib 7e420aeed361 introduced multipart handling, the raw
multipart wrapper no longer appears in Request::body, but is instead
made available at Request::files. With this change, the test server will
reconstitute the original request body to match the test’s expectations.
Note that this isn’t the only way to serialize the request to be
conveyed back to the test, but it’s the most expedient because it’s what
the test already expects, and because the existing framing already takes
the form of the raw HTTP request.
Change-Id: Ia4adaedff0873976f7cc5be138d78f931165fe4e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5753782
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Also enables C++20 as span now depends on it.
Roll buildtools to grab a newer libc++ that supports C++20.
Explicitly capture `this` in lambdas in cpp-httplib as the implicit
capture through `=` is deprecated and causes an error in C++20.
Update the MacOS version to "Mac-13|Mac-14" which is the current
value of `os.MAC_DEFAULT` in Chromium infra in order to have
C++20 support in the std library on iOS.
Moves iOS tests to run on iPhone 13 and includes a mini_chromium roll
to fix Xcode 14.3 egtests.
Bug: 40284755
Change-Id: Ic078f07d12473f2aaed5e84df0f0a7fb7b8c35c3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5443384
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
This CL adds the Shipped field in READMEs. See the LSC
doc at go/lsc-chrome-metadata.
Bug: b:285450740
Change-Id: I3dcd5e027f06982f4c2dd98136d3a6d7f6228b4e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4666416
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
sed -i '' -E -e 's/Copyright (.+) The Crashpad Authors\. All rights reserved\.$/Copyright \1 The Crashpad Authors/' $(git grep -El 'Copyright (.+) The Crashpad Authors\. All rights reserved\.$')
Bug: chromium:1098010
Change-Id: I8d6138469ddbe3d281a5d83f64cf918ec2491611
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3878262
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
With use_boringssl_for_http_transport_socket set, this also works on
Linux, however the bots fail during run lacking libcrypto.so.1.1. So,
not enabled on Linux until that's figured out.
(Includes https://github.com/yhirose/cpp-httplib/pull/70, until it lands
and I'll do a full roll of cpp-httplib then.)
Bug: crashpad:30, crashpad:196
Change-Id: I987f6a87f8e47160c15e53fe1ce28611339069ff
Reviewed-on: https://chromium-review.googlesource.com/1075726
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
Also exclude http_transport_test_server from Android where it doesn't
build.
Change-Id: I51cc3f50e4fb9db982d91b2924b8ea87d86926d4
Reviewed-on: https://chromium-review.googlesource.com/1054160
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
- Pulls in cpp-httplib for test-only usage in third_party/.
- Replaces http_transport_test_server.py with .cc server.
- Remove unnecessary Go toolchain pull. This was planned to be used for
the test server, but the toolchain integration was too messy when
covering all target platforms/configs.
Bug: crashpad:196, crashpad:227, crashpad:30
Change-Id: I5990781473dcadfcc036fbe711c02928638ff851
Reviewed-on: https://chromium-review.googlesource.com/1013293
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>