Skip to content

Commit

Permalink
Update QUICHE from dbc5afc11 to c4d62db87 (envoyproxy#37511)
Browse files Browse the repository at this point in the history
https://github.com/google/quiche/compare/dbc5afc11..c4d62db87

```
$ git log dbc5afc11..c4d62db87 --date=short --no-merges --format="%ad %al %s"

2024-12-04 rch Automated g4 rollback of changelist 702422246.
2024-12-04 vasilvv Remove impl-based MemSlice constructor.
2024-12-03 wub Remove the version check and TODO in `QuicFramer::TryDecryptInitialPacketDispatcher`.
2024-12-03 dschinazi Chaos Protection v2
2024-12-03 ckennelly Use absl::make_unique_for_overwrite where we will reinitialize the buffer.
2024-12-03 haoyuewang Re-enable chlo buffering on the server side of Hyperloop.
2024-12-02 vasilvv Add webtransport::test::InMemoryStream for simplifying testing code that reads from WebTransport streams.
2024-12-02 martinduke Fix the definition of MoQT MAX_SUBSCRIBE_ID.
2024-12-02 birenroy Adds unit test cases covering the case where a content-length undershoot causes a PROTOCOL_ERROR.
2024-12-02 martinduke Fix spelling of QuicheWeakPtr::GetIfAvaliable => GetIfAvailable.
2024-11-27 martinduke Refactor MoQT Upstream SUBSCRIBE processing and data structures.
2024-11-26 danzh gfe-relnote: Call QuicAckListenerInterface::OnPacketAcked() before moving the stream to closed stream list.
2024-11-26 rch No public description
2024-11-26 martinduke Use wub's new test features in QuicBufferedPacketStoreTest:SimpleEnqueueAckSent
2024-11-26 vasilvv Add test matchers for writing MoQT control messages into a mock stream.
2024-11-25 vasilvv Fix standalone build.
2024-11-25 birenroy Adds unit test cases covering the case where a content-length overshoot causes a PROTOCOL_ERROR.
2024-11-25 birenroy Migrates adapter unit tests away from deprecated SubmitRequest/SubmitResponse methods.
2024-11-25 wub Set client CID in the packets sent by QuicBufferedPacketStore.
2024-11-25 birenroy Removes DataFrameSource arguments from Http2Adapter methods and implementations.
2024-11-25 birenroy Removes DataFrameSource interface methods and related utilities.
2024-11-25 quiche-dev Enabling rolled out flags.
2024-11-25 birenroy Removes DataFrameSource-based DATA frame manipulation from OgHttp2Session.
2024-11-25 vasilvv Move MoqtSessionPeer into its own file.
2024-11-25 birenroy Removes DataFrameSource-based DATA frame manipulation from NgHttp2Adapter.
2024-11-22 dschinazi Add missing error string in QuicFramer
2024-11-22 birenroy Reworks the remaining DataFrameSource-based test cases in nghttp2_adapter_test.cc.
2024-11-22 vasilvv Implement QuicheWeakPtr that roughly models Chromium's base::WeakPtr API.
2024-11-22 birenroy Removes use of VisitorDataSource in more tests.
2024-11-22 dschinazi Refactor ConsumeCryptoData
2024-11-22 birenroy Removes use of VisitorDataSource in oghttp2_adapter_test.cc.
2024-11-22 birenroy Removes deprecated and unused methods from the Http2Adapter interface.
2024-11-22 birenroy Removes use of VisitorDataSource in nghttp2_adapter_test.cc.
2024-11-21 vasilvv Switch QUICHE standalone build to use the newest Bazel actually supported by our CI bots.
2024-11-21 martinduke Remove forwarding_preference from MoqtObject.
2024-11-21 martinduke Delete MoQT Track Forwarding preference and roll version to -07.
2024-11-21 martinduke Publisher-side MoQT FETCH handling.
2024-11-21 davidben Update QUICHE to use Bazel 7.4.1, but without bzlmod for now
2024-11-21 vasilvv Fix default constructor in the default implementation of QuicheMemSlice.
2024-11-21 davidben Switch away from std::iterator in BalsaHeaders
2024-11-21 davidben Group mock_load_balancer_encoder.h with load_balancer in the standalone build
2024-11-20 rch Remove obsolete TODOs about converting char uint8_t.
2024-11-20 davidben Avoid tripping -Wchanges-meaning in GCC
2024-11-20 davidben Remove ResumptionAttempted assertion in TlsServerHandshakerTest.ResumptionWithPlaceholderTicket
2024-11-20 davidben Simplify how quiche platform files are incorporated
2024-11-20 vasilvv Implement a function that gathers data from bunch of string_views into a single buffer.
2024-11-20 danzh Close the connection with error QUIC_HTTP_INVALID_FRAME_SEQUENCE_ON_SPDY_STREAM if FIN is received before finishing receiving the whole HTTP headers.
2024-11-20 dschinazi Allow more URLs in masque_client
2024-11-20 martinduke No public description
2024-11-19 vasilvv Fix standalone QUICHE build.
2024-11-19 vasilvv Fix a hardcoded cacheline size.
2024-11-18 diannahu Add an oghttp2 option to disable sending GOAWAYs as a client.
2024-11-18 birenroy Raises the verbosity level of most QUICHE_VLOGs within OgHttp2Session.
2024-11-18 diannahu Add oghttp2 and nghttp2 testing to demonstrate client GOAWAY-sending behavior.
2024-11-18 haoyuewang No public description
```

Signed-off-by: Ryan Hamilton <[email protected]>
  • Loading branch information
RyanTheOptimist authored Dec 5, 2024
1 parent 144f4dc commit cc40600
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 56 deletions.
29 changes: 15 additions & 14 deletions bazel/external/quiche.BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ test_suite(
"http2_adapter_nghttp2_adapter_test",
"http2_adapter_nghttp2_data_provider_test",
"http2_adapter_nghttp2_session_test",
"http2_adapter_nghttp2_util_test",
"http2_adapter_oghttp2_adapter_test",
"http2_adapter_oghttp2_session_test",
"http2_adapter_oghttp2_util_test",
Expand Down Expand Up @@ -409,19 +408,6 @@ envoy_cc_library(
],
)

envoy_cc_test(
name = "http2_adapter_nghttp2_util_test",
srcs = ["quiche/http2/adapter/nghttp2_util_test.cc"],
copts = quiche_copts,
repository = "@envoy",
deps = [
":http2_adapter_nghttp2_test_utils",
":http2_adapter_nghttp2_util",
":http2_adapter_test_utils",
":quiche_common_platform_test",
],
)

envoy_cc_library(
name = "http2_adapter_oghttp2_adapter",
srcs = [
Expand Down Expand Up @@ -3043,6 +3029,20 @@ envoy_cc_library(
],
)

envoy_cc_library(
name = "quiche_common_quiche_vectorized_io_utils_lib",
srcs = ["quiche/common/vectorized_io_utils.cc"],
hdrs = ["quiche/common/vectorized_io_utils.h"],
copts = quiche_copts,
repository = "@envoy",
deps = [
":quiche_common_platform_export",
"@com_google_absl//absl/base:prefetch",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/types:span",
],
)

envoy_quic_cc_library(
name = "quic_core_http_client_lib",
srcs = [
Expand Down Expand Up @@ -5565,6 +5565,7 @@ envoy_cc_library(
":quiche_common_callbacks",
":quiche_common_platform_export",
":quiche_common_quiche_stream_lib",
":quiche_common_quiche_vectorized_io_utils_lib",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/time",
"@com_google_absl//absl/types:span",
Expand Down
6 changes: 3 additions & 3 deletions bazel/repository_locations.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -1225,12 +1225,12 @@ REPOSITORY_LOCATIONS_SPEC = dict(
project_name = "QUICHE",
project_desc = "QUICHE (QUIC, HTTP/2, Etc) is Google‘s implementation of QUIC and related protocols",
project_url = "https://github.com/google/quiche",
version = "dbc5afc116f8279911c06b2d2ea47723c2ade20e",
sha256 = "981b2bd789d7279b557f35fa0a930df76d396e14059d8e493f42321753b60a08",
version = "c4d62db878dcc92ebbae9cf5e873b231b7b46868",
sha256 = "dcf290413e7062ac54f59c4b8fda0861059a39ec8c40fb2c3e28d3631ced9cf8",
urls = ["https://github.com/google/quiche/archive/{version}.tar.gz"],
strip_prefix = "quiche-{version}",
use_category = ["controlplane", "dataplane_core"],
release_date = "2024-11-18",
release_date = "2024-12-04",
cpe = "N/A",
license = "BSD-3-Clause",
license_url = "https://github.com/google/quiche/blob/{version}/LICENSE",
Expand Down
39 changes: 0 additions & 39 deletions test/common/quic/platform/quic_platform_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -492,44 +492,5 @@ TEST_F(QuicPlatformTest, TestSystemEventLoop) {
quiche::QuicheSystemEventLoop("dummy");
}

TEST(EnvoyQuicheMemSliceTest, ConstructMemSliceFromBuffer) {
std::string str(512, 'b');
// Fragment needs to out-live buffer.
bool fragment_releaser_called = false;
Envoy::Buffer::BufferFragmentImpl fragment(
str.data(), str.length(),
[&fragment_releaser_called](const void*, size_t, const Envoy::Buffer::BufferFragmentImpl*) {
// Used to verify that mem slice release appropriately.
fragment_releaser_called = true;
});
Envoy::Buffer::OwnedImpl buffer;
EXPECT_DEBUG_DEATH(quiche::QuicheMemSlice slice0(quiche::QuicheMemSlice::InPlace(), buffer, 0u),
"");
std::string str2(1024, 'a');
// str2 is copied.
buffer.add(str2);
EXPECT_EQ(1u, buffer.getRawSlices().size());
buffer.addBufferFragment(fragment);

quiche::QuicheMemSlice slice1(quiche::QuicheMemSlice::InPlace(), buffer, str2.length());
EXPECT_EQ(str.length(), buffer.length());
EXPECT_EQ(str2, std::string(slice1.data(), slice1.length()));
std::string str2_old = str2; // NOLINT(performance-unnecessary-copy-initialization)
// slice1 is released, but str2 should not be affected.
slice1.Reset();
EXPECT_TRUE(slice1.empty());
EXPECT_EQ(nullptr, slice1.data());
EXPECT_EQ(str2_old, str2);

quiche::QuicheMemSlice slice2(quiche::QuicheMemSlice::InPlace(), buffer, str.length());
EXPECT_EQ(0, buffer.length());
EXPECT_EQ(str.data(), slice2.data());
EXPECT_EQ(str, std::string(slice2.data(), slice2.length()));
slice2.Reset();
EXPECT_TRUE(slice2.empty());
EXPECT_EQ(nullptr, slice2.data());
EXPECT_TRUE(fragment_releaser_called);
}

} // namespace
} // namespace quic

0 comments on commit cc40600

Please sign in to comment.