Defines HTTP/2 flags as an enum in http2_protocol.h. PiperOrigin-RevId: 513939684
diff --git a/quiche/http2/adapter/callback_visitor_test.cc b/quiche/http2/adapter/callback_visitor_test.cc index d2b1030..4d0355e 100644 --- a/quiche/http2/adapter/callback_visitor_test.cc +++ b/quiche/http2/adapter/callback_visitor_test.cc
@@ -213,8 +213,9 @@ EXPECT_CALL(callbacks, OnHeader(_, "server", "my-fake-server", _)); visitor.OnHeaderForStream(1, "server", "my-fake-server"); - EXPECT_CALL(callbacks, OnBeginFrame(HasFrameHeader(1, CONTINUATION, 0x4))); - ASSERT_TRUE(visitor.OnFrameHeader(1, 23, CONTINUATION, 0x4)); + EXPECT_CALL(callbacks, + OnBeginFrame(HasFrameHeader(1, CONTINUATION, END_HEADERS_FLAG))); + ASSERT_TRUE(visitor.OnFrameHeader(1, 23, CONTINUATION, END_HEADERS_FLAG)); EXPECT_CALL(callbacks, OnHeader(_, "date", "Tue, 6 Apr 2021 12:54:01 GMT", _)); @@ -233,7 +234,7 @@ *MockNghttp2Callbacks::GetCallbacks(), &callbacks); // Because no stream precedes the CONTINUATION frame, the stream ID does not // match, and the method returns false. - EXPECT_FALSE(visitor.OnFrameHeader(1, 23, CONTINUATION, 0x4)); + EXPECT_FALSE(visitor.OnFrameHeader(1, 23, CONTINUATION, END_HEADERS_FLAG)); } TEST(ClientCallbackVisitorUnitTest, ContinuationWrongPrecedingType) { @@ -246,7 +247,7 @@ // Because the CONTINUATION frame does not follow HEADERS, the method returns // false. - EXPECT_FALSE(visitor.OnFrameHeader(1, 23, CONTINUATION, 0x4)); + EXPECT_FALSE(visitor.OnFrameHeader(1, 23, CONTINUATION, END_HEADERS_FLAG)); } TEST(ClientCallbackVisitorUnitTest, ContinuationWrongStream) { @@ -268,7 +269,7 @@ visitor.OnHeaderForStream(1, "server", "my-fake-server"); // The CONTINUATION stream ID does not match the one from the HEADERS. - EXPECT_FALSE(visitor.OnFrameHeader(3, 23, CONTINUATION, 0x4)); + EXPECT_FALSE(visitor.OnFrameHeader(3, 23, CONTINUATION, END_HEADERS_FLAG)); } TEST(ClientCallbackVisitorUnitTest, ResetAndGoaway) {
diff --git a/quiche/http2/adapter/event_forwarder_test.cc b/quiche/http2/adapter/event_forwarder_test.cc index 0d33922..5e89504 100644 --- a/quiche/http2/adapter/event_forwarder_test.cc +++ b/quiche/http2/adapter/event_forwarder_test.cc
@@ -3,6 +3,7 @@ #include <string> #include "absl/strings/string_view.h" +#include "quiche/http2/adapter/http2_protocol.h" #include "quiche/common/platform/api/quiche_test.h" #include "quiche/spdy/core/spdy_protocol.h" #include "quiche/spdy/test_tools/mock_spdy_framer_visitor.h" @@ -32,9 +33,9 @@ std::string(some_data)); EXPECT_CALL(receiver, - OnCommonHeader(stream_id, length, /*type=*/0x0, /*flags=*/0x1)); + OnCommonHeader(stream_id, length, /*type=*/0x0, END_STREAM_FLAG)); event_forwarder.OnCommonHeader(stream_id, length, /*type=*/0x0, - /*flags=*/0x1); + END_STREAM_FLAG); EXPECT_CALL(receiver, OnDataFrameHeader(stream_id, length, /*fin=*/true)); event_forwarder.OnDataFrameHeader(stream_id, length, /*fin=*/true); @@ -142,7 +143,7 @@ EXPECT_CALL(receiver, OnCommonHeader).Times(0); event_forwarder.OnCommonHeader(stream_id, length, /*type=*/0x0, - /*flags=*/0x1); + END_STREAM_FLAG); EXPECT_CALL(receiver, OnDataFrameHeader).Times(0); event_forwarder.OnDataFrameHeader(stream_id, length, /*fin=*/true);
diff --git a/quiche/http2/adapter/http2_protocol.h b/quiche/http2/adapter/http2_protocol.h index 0c2c2c1..79225c3 100644 --- a/quiche/http2/adapter/http2_protocol.h +++ b/quiche/http2/adapter/http2_protocol.h
@@ -85,6 +85,14 @@ CONTINUATION, }; +enum FrameFlags : uint8_t { + END_STREAM_FLAG = 0x1, + ACK_FLAG = END_STREAM_FLAG, + END_HEADERS_FLAG = 0x4, + PADDED_FLAG = 0x8, + PRIORITY_FLAG = 0x20, +}; + // HTTP/2 error codes as specified in RFC 7540 Section 7. enum class Http2ErrorCode { HTTP2_NO_ERROR = 0x0,
diff --git a/quiche/http2/adapter/nghttp2_util.cc b/quiche/http2/adapter/nghttp2_util.cc index efce5c5..0d5dc5e 100644 --- a/quiche/http2/adapter/nghttp2_util.cc +++ b/quiche/http2/adapter/nghttp2_util.cc
@@ -225,7 +225,7 @@ } size_t PaddingLength(uint8_t flags, size_t padlen) { - return (flags & 0x8 ? 1 : 0) + padlen; + return (flags & PADDED_FLAG ? 1 : 0) + padlen; } struct NvFormatter { @@ -268,7 +268,8 @@ break; case FrameType::SETTINGS: HTTP2_FRAME_SEND_LOG << "Sending SETTINGS with " << frame.settings.niv - << " entries, is_ack: " << (frame.hd.flags & 0x01); + << " entries, is_ack: " + << (frame.hd.flags & ACK_FLAG); break; case FrameType::PUSH_PROMISE: HTTP2_FRAME_SEND_LOG << "Sending PUSH_PROMISE"; @@ -278,7 +279,7 @@ std::memcpy(&ping_id, frame.ping.opaque_data, sizeof(Http2PingId)); HTTP2_FRAME_SEND_LOG << "Sending PING with unique_id " << quiche::QuicheEndian::NetToHost64(ping_id) - << ", is_ack: " << (frame.hd.flags & 0x01); + << ", is_ack: " << (frame.hd.flags & ACK_FLAG); break; } case FrameType::GOAWAY:
diff --git a/quiche/http2/adapter/oghttp2_adapter_test.cc b/quiche/http2/adapter/oghttp2_adapter_test.cc index 02bd8b3..39ac613 100644 --- a/quiche/http2/adapter/oghttp2_adapter_test.cc +++ b/quiche/http2/adapter/oghttp2_adapter_test.cc
@@ -37,13 +37,6 @@ CONTINUATION, }; -// TODO(birenroy): replace numeric flag values with named constants -enum FrameFlag { - END_STREAM = 0x01, - ACK = END_STREAM, - END_HEADERS = 0x04, -}; - TEST(OgHttp2AdapterTest, IsServerSession) { DataSavingVisitor visitor; OgHttp2Adapter::Options options; @@ -298,11 +291,11 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); // SETTINGS ack - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); // PING ack - EXPECT_CALL(visitor, OnBeforeFrameSent(PING, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(PING, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(PING, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(PING, 0, _, ACK_FLAG, 0)); int send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -339,8 +332,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); // SETTINGS ack - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); // No PING ack expected because automatic PING acks are disabled. int send_result = adapter->Send(); @@ -507,8 +500,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -553,10 +548,10 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(PING, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(PING, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(PING, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(PING, 0, _, ACK_FLAG, 0)); EXPECT_TRUE(adapter->want_write()); result = adapter->Send(); @@ -587,8 +582,10 @@ EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(WINDOW_UPDATE, 0, 4, 0x0)); EXPECT_CALL(visitor, OnFrameSent(WINDOW_UPDATE, 0, 4, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -617,8 +614,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -631,7 +630,7 @@ EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x0)); EXPECT_CALL(visitor, OnSettingsStart()); EXPECT_CALL(visitor, OnSettingsEnd()); - EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck); int64_t parse_result = adapter->ProcessBytes(initial_frames); @@ -645,8 +644,8 @@ kInitialFlowControlWindowSize); // Ack of server's initial settings. - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); // Outbound SETTINGS containing INITIAL_WINDOW_SIZE. EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); @@ -662,7 +661,7 @@ const std::string settings_ack = TestFrameSequence().SettingsAck().Serialize(); - EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck); parse_result = adapter->ProcessBytes(settings_ack); @@ -678,8 +677,10 @@ {":path", "/this/is/request/two"}}); const int32_t stream_id2 = adapter->SubmitRequest(headers, nullptr, nullptr); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id2, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id2, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id2, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id2, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); result = adapter->Send(); EXPECT_EQ(0, result); @@ -706,8 +707,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -740,8 +743,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 1, _, 0x0, 1)); EXPECT_CALL(visitor, OnCloseStream(1, Http2ErrorCode::HTTP2_NO_ERROR)); @@ -772,8 +775,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -802,8 +807,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 1, _, 0x0, @@ -836,8 +841,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -870,8 +877,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 1, _, 0x0, @@ -913,10 +920,14 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id2, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id2, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id2, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id2, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -953,8 +964,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 1, _, 0x0, @@ -993,8 +1004,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1024,8 +1037,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 1, _, 0x0, @@ -1058,8 +1071,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1088,8 +1103,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_TRUE(adapter->want_write()); result = adapter->Send(); @@ -1119,8 +1134,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1169,8 +1186,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_TRUE(adapter->want_write()); result = adapter->Send(); @@ -1221,8 +1238,10 @@ ToHeaders({{"extra-info", "Trailers are weird but good?"}}); adapter->SubmitTrailer(stream_id1, trailers1); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); result = adapter->Send(); EXPECT_EQ(0, result); @@ -1252,8 +1271,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1306,8 +1327,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_TRUE(adapter->want_write()); result = adapter->Send(); @@ -1334,8 +1355,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1399,8 +1422,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1474,8 +1499,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1553,8 +1580,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1596,8 +1625,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, stream_id1, 4, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, stream_id1, 4, 0x0, @@ -1633,8 +1662,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1707,8 +1738,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1780,8 +1813,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1852,8 +1887,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1908,8 +1945,8 @@ // serialized. EXPECT_EQ(adapter->GetHpackEncoderDynamicTableCapacity(), 4096); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); result = adapter->Send(); EXPECT_EQ(0, result); @@ -1938,8 +1975,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -1985,8 +2024,8 @@ EXPECT_GT(adapter->GetHpackDecoderSizeLimit(), 100); // Server preface SETTINGS ack - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); // SETTINGS with the new header table size value EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); @@ -2009,8 +2048,10 @@ const int32_t stream_id2 = adapter->SubmitRequest(headers2, nullptr, nullptr); ASSERT_GT(stream_id2, stream_id1); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id2, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id2, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id2, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id2, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); result = adapter->Send(); EXPECT_EQ(0, result); @@ -2074,8 +2115,10 @@ ASSERT_GT(stream_id1, 0); QUICHE_LOG(INFO) << "Created stream: " << stream_id1; - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -2123,8 +2166,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, stream_id1, 4, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, stream_id1, 4, 0x0, 1)); EXPECT_CALL(visitor, OnCloseStream(1, Http2ErrorCode::PROTOCOL_ERROR)); @@ -2189,10 +2232,14 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id2, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id2, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id2, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id2, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -2234,8 +2281,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_TRUE(adapter->want_write()); result = adapter->Send(); @@ -2262,8 +2309,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -2295,8 +2344,8 @@ // GOAWAY's last_stream_id, it should be sent. adapter->SubmitWindowUpdate(1, 42); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(WINDOW_UPDATE, 1, 4, 0x0)); EXPECT_CALL(visitor, OnFrameSent(WINDOW_UPDATE, 1, 4, 0x0, 0)); @@ -2344,8 +2393,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -2447,10 +2498,12 @@ // The second request should be pending because of // SETTINGS_MAX_CONCURRENT_STREAMS. - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); result = adapter->Send(); EXPECT_EQ(0, result); @@ -2478,8 +2531,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); // We close the pending stream on the next write attempt. EXPECT_CALL(visitor, OnCloseStream(3, Http2ErrorCode::REFUSED_STREAM)); @@ -2532,8 +2585,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -2608,8 +2663,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -2644,8 +2701,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(static_cast<int64_t>(stream_frames.size()), stream_result); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, 4, 0x0)); EXPECT_CALL( visitor, @@ -2701,8 +2758,8 @@ // Session will want to write a SETTINGS ack. EXPECT_TRUE(adapter->want_write()); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); result = adapter->Send(); EXPECT_EQ(0, result); @@ -2722,9 +2779,10 @@ EXPECT_GT(stream_id, 0); EXPECT_TRUE(adapter->want_write()); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x4)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x4, 0)); - EXPECT_CALL(visitor, OnFrameSent(DATA, stream_id, _, 0x1, 0)); + EXPECT_CALL(visitor, + OnBeforeFrameSent(HEADERS, stream_id, _, END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, END_HEADERS_FLAG, 0)); + EXPECT_CALL(visitor, OnFrameSent(DATA, stream_id, _, END_STREAM_FLAG, 0)); result = adapter->Send(); EXPECT_EQ(0, result); @@ -2764,7 +2822,7 @@ EXPECT_CALL(visitor, OnHeaderForStream(stream_id, "date", "Tue, 6 Apr 2021 12:54:01 GMT")); EXPECT_CALL(visitor, OnEndHeadersForStream(stream_id)); - EXPECT_CALL(visitor, OnFrameHeader(stream_id, 26, DATA, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(stream_id, 26, DATA, END_STREAM_FLAG)); EXPECT_CALL(visitor, OnBeginDataForStream(stream_id, 26)); EXPECT_CALL(visitor, OnDataForStream(stream_id, "This is the response body.")); @@ -2778,8 +2836,10 @@ EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); EXPECT_TRUE(adapter->want_write()); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, next_stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, next_stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, next_stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, next_stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); result = adapter->Send(); EXPECT_EQ(0, result); @@ -2816,8 +2876,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); int64_t result = adapter->Send(); EXPECT_EQ(0, result); @@ -2879,8 +2939,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); int64_t result = adapter->Send(); EXPECT_EQ(0, result); @@ -2930,8 +2990,8 @@ EXPECT_TRUE(adapter->want_write()); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); // The client can write more after receiving the INITIAL_WINDOW_SIZE setting. EXPECT_CALL(visitor, OnFrameSent(DATA, stream_id, 14465, 0x0, 0)); @@ -3003,8 +3063,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int64_t write_result = adapter->Send(); EXPECT_EQ(0, write_result); absl::string_view data = visitor.data(); @@ -3045,10 +3107,10 @@ EXPECT_EQ(static_cast<size_t>(read_result), frames.size()); EXPECT_TRUE(adapter->want_write()); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); // The stream window update plus the SETTINGS frame with INITIAL_WINDOW_SIZE // pushes the stream's flow control window outside of the acceptable range. @@ -3102,8 +3164,10 @@ // Client preface (SETTINGS with MAX_FRAME_SIZE) and request HEADERS EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -3173,8 +3237,10 @@ // Client preface (SETTINGS with MAX_FRAME_SIZE) and request HEADERS EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -3197,7 +3263,7 @@ EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0)); EXPECT_CALL(visitor, OnSettingsStart()); EXPECT_CALL(visitor, OnSettingsEnd()); - EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck()); // Response HEADERS and DATA. Because the SETTINGS with MAX_FRAME_SIZE was @@ -3215,8 +3281,8 @@ // Client ack of SETTINGS. EXPECT_TRUE(adapter->want_write()); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -3250,8 +3316,10 @@ {":path", "/this/is/request/one"}}); const int32_t stream_id = adapter->SubmitRequest(headers, nullptr, nullptr); ASSERT_GT(stream_id, 0); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); write_result = adapter->Send(); EXPECT_EQ(0, write_result); EXPECT_THAT(visitor.data(), EqualsFrames({SpdyFrameType::HEADERS})); @@ -3275,7 +3343,7 @@ // SETTINGS ack (to acknowledge PUSH_ENABLED=0, though this is not explicitly // required for OgHttp2: should it be?) - EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck); // The PUSH_PROMISE is treated as an invalid frame. @@ -3324,8 +3392,10 @@ {":path", "/this/is/request/one"}}); const int32_t stream_id = adapter->SubmitRequest(headers, nullptr, nullptr); ASSERT_GT(stream_id, 0); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); write_result = adapter->Send(); EXPECT_EQ(0, write_result); EXPECT_THAT(visitor.data(), EqualsFrames({SpdyFrameType::HEADERS})); @@ -3349,7 +3419,7 @@ // SETTINGS ack (to acknowledge PUSH_ENABLED=0, though this is not explicitly // required for OgHttp2: should it be?) - EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck); // The push HEADERS are invalid. @@ -3401,8 +3471,8 @@ // Client SETTINGS ack EXPECT_TRUE(adapter->want_write()); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); result = adapter->Send(); EXPECT_EQ(0, result); @@ -3419,8 +3489,10 @@ EXPECT_GT(stream_id, 0); EXPECT_TRUE(adapter->want_write()); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); result = adapter->Send(); EXPECT_EQ(0, result); @@ -3456,7 +3528,7 @@ // The visitor gets notified about the HEADERS frame and DATA frame for the // closed stream with no further processing on either frame. EXPECT_CALL(visitor, OnFrameHeader(stream_id, _, HEADERS, 0x4)); - EXPECT_CALL(visitor, OnFrameHeader(stream_id, _, DATA, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(stream_id, _, DATA, END_STREAM_FLAG)); const int64_t response_result = adapter->ProcessBytes(response_frames); EXPECT_EQ(response_frames.size(), static_cast<size_t>(response_result)); @@ -3534,8 +3606,8 @@ const int64_t stream_result = adapter->ProcessBytes(stream_frames); EXPECT_EQ(stream_frames.size(), static_cast<size_t>(stream_result)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnFrameSent(DATA, stream_id2, _, 0x0, 0)) .Times(testing::AtLeast(1)); @@ -3604,8 +3676,10 @@ ToHeaders({{"extra-info", "Trailers are weird but good?"}}); adapter->SubmitTrailer(stream_id1, trailers1); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); result = adapter->Send(); EXPECT_EQ(0, result); @@ -3681,7 +3755,7 @@ EXPECT_CALL(visitor, OnSetting(Http2Setting{ Http2KnownSettingsId::MAX_CONCURRENT_STREAMS, 2u})); EXPECT_CALL(visitor, OnSettingsEnd()); - EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck()); adapter->ProcessBytes(initial_frames); @@ -3703,12 +3777,16 @@ stream_id = adapter->SubmitRequest(headers, nullptr, nullptr); stream_ids.push_back(stream_id); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_ids[0], _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_ids[0], _, 0x5, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_ids[1], _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_ids[1], _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_ids[0], _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_ids[0], _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_ids[1], _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_ids[1], _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); adapter->Send(); @@ -3725,14 +3803,20 @@ stream_id = adapter->SubmitRequest(headers, nullptr, nullptr); stream_ids.push_back(stream_id); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_ids[2], _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_ids[2], _, 0x5, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_ids[3], _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_ids[3], _, 0x5, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_ids[4], _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_ids[4], _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_ids[2], _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_ids[2], _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_ids[3], _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_ids[3], _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_ids[4], _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_ids[4], _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); // Header frames should all have been sent in order, regardless of any // queuing. @@ -3755,8 +3839,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, stream_id, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); adapter->Send(); @@ -3771,7 +3857,7 @@ EXPECT_CALL(visitor, OnFrameHeader(0, _, SETTINGS, 0x0)); EXPECT_CALL(visitor, OnSettingsStart()); EXPECT_CALL(visitor, OnSettingsEnd()); - EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck()); EXPECT_CALL(visitor, OnFrameHeader(stream_id, _, HEADERS, 5)); EXPECT_CALL(visitor, OnBeginHeadersForStream(stream_id)); @@ -3783,8 +3869,8 @@ adapter->ProcessBytes(initial_frames); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); adapter->Send(); } @@ -3920,8 +4006,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, _, 0x0)); EXPECT_CALL(visitor, @@ -3981,8 +4067,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, _, 0x0)); EXPECT_CALL( @@ -4045,8 +4131,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(WINDOW_UPDATE, 0, 4, 0x0)); EXPECT_CALL(visitor, OnFrameSent(WINDOW_UPDATE, 0, 4, 0x0, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(WINDOW_UPDATE, 1, 4, 0x0)); @@ -4248,8 +4334,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); // SETTINGS ack - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); int result = adapter->Send(); EXPECT_EQ(0, result); @@ -4257,7 +4343,7 @@ EXPECT_EQ(adapter->GetStreamReceiveWindowSize(1), 65535); const std::string ack = TestFrameSequence().SettingsAck().Serialize(); - EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck()); adapter->ProcessBytes(ack); @@ -4274,7 +4360,7 @@ // New stream window size has not yet been applied. EXPECT_EQ(adapter->GetStreamReceiveWindowSize(1), 80000); - EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck()); adapter->ProcessBytes(ack); @@ -4309,8 +4395,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); // SETTINGS ack - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)) + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)) .WillOnce(testing::Return(-902)); EXPECT_CALL(visitor, OnConnectionError(ConnectionError::kSendError)); @@ -4345,7 +4431,8 @@ EXPECT_CALL(visitor, OnSettingsStart()); EXPECT_CALL(visitor, OnSettingsEnd()); // Stream 1 - EXPECT_CALL(visitor, OnFrameHeader(1, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(1, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(1)); EXPECT_CALL(visitor, OnHeaderForStream(1, _, _)).Times(4); EXPECT_CALL(visitor, OnEndHeadersForStream(1)); @@ -4367,8 +4454,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); // SETTINGS ack - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); // Stream 1, with doomed DATA EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x4)); EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x4, 0)); @@ -4539,11 +4626,11 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x4)); EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x4, 0)); - EXPECT_CALL(visitor, OnFrameSent(DATA, 1, 10, 0x1, 0)); + EXPECT_CALL(visitor, OnFrameSent(DATA, 1, 10, END_STREAM, 0)); EXPECT_CALL(visitor, OnCloseStream(1, Http2ErrorCode::HTTP2_NO_ERROR)); int send_result = adapter->Send(); @@ -4600,8 +4687,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x4)); EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x4, 0)); @@ -4631,7 +4718,7 @@ body1_ptr->EndData(); EXPECT_EQ(true, adapter->ResumeStream(1)); - EXPECT_CALL(visitor, OnFrameSent(DATA, 1, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnFrameSent(DATA, 1, 0, END_STREAM, 0)); EXPECT_CALL(visitor, OnCloseStream(1, Http2ErrorCode::HTTP2_NO_ERROR)); send_result = adapter->Send(); @@ -4669,7 +4756,8 @@ EXPECT_CALL(visitor, OnSettingsStart()); EXPECT_CALL(visitor, OnSettingsEnd()); // Stream 1 - EXPECT_CALL(visitor, OnFrameHeader(1, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(1, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(1)); EXPECT_CALL(visitor, OnConnectionError(ConnectionError::kParseError)); @@ -4737,8 +4825,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x4)); EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x4, 0)); // TODO(birenroy): Send RST_STREAM INTERNAL_ERROR to the client as well. @@ -4804,10 +4892,12 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); EXPECT_CALL(visitor, OnCloseStream(1, Http2ErrorCode::HTTP2_NO_ERROR)); int send_result = adapter->Send(); @@ -4856,10 +4946,12 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); // RST_STREAM NO_ERROR option is disabled. int send_result = adapter->Send(); @@ -4909,10 +5001,12 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, 4, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 1, 4, 0x0, 0)); EXPECT_CALL(visitor, OnCloseStream(1, Http2ErrorCode::HTTP2_NO_ERROR)); @@ -5033,8 +5127,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x4)); EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x4, 0)); EXPECT_CALL(visitor, OnFrameSent(DATA, 1, _, 0x0, 0)); @@ -5054,8 +5148,10 @@ ASSERT_EQ(trailer_result, 0); EXPECT_TRUE(adapter->want_write()); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); EXPECT_CALL(visitor, OnCloseStream(1, Http2ErrorCode::HTTP2_NO_ERROR)); send_result = adapter->Send(); @@ -5110,8 +5206,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x4)); EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x4, 0)); EXPECT_CALL(visitor, OnFrameSent(DATA, 1, _, 0x0, 0)); @@ -5138,8 +5234,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(kMetadataFrameType, 1, _, 0x4)); EXPECT_CALL(visitor, OnFrameSent(kMetadataFrameType, 1, _, 0x4, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); EXPECT_CALL(visitor, OnCloseStream(1, Http2ErrorCode::HTTP2_NO_ERROR)); @@ -5203,8 +5301,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); int send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -5275,8 +5373,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 5, 4, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 5, 4, 0x0, @@ -5336,8 +5434,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); int send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -5377,8 +5475,11 @@ adapter->ResumeStream(1); EXPECT_TRUE(adapter->want_write()); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x5, 0)); + EXPECT_CALL( + visitor, + OnBeforeFrameSent(HEADERS, 1, _, END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -5387,8 +5488,11 @@ // will write the trailers anyway. EXPECT_TRUE(adapter->want_write()); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x5, 0)); + EXPECT_CALL( + visitor, + OnBeforeFrameSent(HEADERS, 1, _, END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -5506,8 +5610,8 @@ EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); // Ack of client's initial settings. - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); int send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -5523,7 +5627,7 @@ .Data(1, std::string(window_overflow_bytes, 'a')) .Serialize(); - EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck()); EXPECT_CALL(visitor, OnFrameHeader(1, window_overflow_bytes, DATA, 0x0)); EXPECT_CALL(visitor, OnConnectionError(ConnectionError::kFlowControlError)); @@ -5587,8 +5691,8 @@ EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); // Ack of client's initial settings. - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); int send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -5604,7 +5708,7 @@ .Data(1, std::string(window_overflow_bytes, 'a')) .Serialize(); - EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck()); EXPECT_CALL(visitor, OnFrameHeader(1, window_overflow_bytes, DATA, 0x0)); EXPECT_CALL(visitor, OnConnectionError(ConnectionError::kFlowControlError)); @@ -5669,8 +5773,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(WINDOW_UPDATE, 0, 4, 0x0)); EXPECT_CALL(visitor, OnFrameSent(WINDOW_UPDATE, 0, 4, 0x0, 0)); @@ -5754,8 +5858,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, 4, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 1, 4, 0x0, @@ -5837,8 +5941,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, 4, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 1, 4, 0x0, @@ -6124,17 +6228,18 @@ EXPECT_CALL(visitor, OnSettingsStart()); EXPECT_CALL(visitor, OnSettingsEnd()); - EXPECT_CALL(visitor, OnFrameHeader(1, _, HEADERS, END_STREAM)); + EXPECT_CALL(visitor, OnFrameHeader(1, _, HEADERS, END_STREAM_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(1)); EXPECT_CALL(visitor, OnHeaderForStream(1, ":method", "POST")); EXPECT_CALL(visitor, OnHeaderForStream(1, ":scheme", "https")); EXPECT_CALL(visitor, OnHeaderForStream(1, ":authority", "example.com")); EXPECT_CALL(visitor, OnHeaderForStream(1, ":path", "/this/is/request/one")); EXPECT_CALL(visitor, OnFrameHeader(1, _, CONTINUATION, 0)).Times(3); - EXPECT_CALL(visitor, OnFrameHeader(1, _, CONTINUATION, END_HEADERS)); + EXPECT_CALL(visitor, OnFrameHeader(1, _, CONTINUATION, END_HEADERS_FLAG)); // Further header processing is skipped, as the header field is too large. - EXPECT_CALL(visitor, OnFrameHeader(3, _, HEADERS, END_STREAM | END_HEADERS)); + EXPECT_CALL(visitor, + OnFrameHeader(3, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(3)); EXPECT_CALL(visitor, OnHeaderForStream(3, _, _)).Times(4); EXPECT_CALL(visitor, OnEndHeadersForStream(3)); @@ -6199,8 +6304,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0x0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0x0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0x0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, 4, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 1, 4, 0x0, @@ -6237,7 +6342,8 @@ EXPECT_CALL(visitor, OnSettingsStart()); EXPECT_CALL(visitor, OnSettingsEnd()); - EXPECT_CALL(visitor, OnFrameHeader(1, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(1, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(1)); EXPECT_CALL(visitor, OnHeaderForStream(1, _, _)).Times(4); EXPECT_CALL(visitor, OnEndHeadersForStream(1)); @@ -6259,10 +6365,12 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0x0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0x0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x5)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x5, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0x0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); EXPECT_CALL(visitor, OnCloseStream(1, Http2ErrorCode::HTTP2_NO_ERROR)); int send_result = adapter->Send(); @@ -6320,8 +6428,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); int send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -6411,8 +6519,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); int send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -6598,8 +6706,12 @@ EXPECT_CALL(client_visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(client_visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(client_visitor, OnBeforeFrameSent(HEADERS, stream_id1, _, 0x5)); - EXPECT_CALL(client_visitor, OnFrameSent(HEADERS, stream_id1, _, 0x5, 0)); + EXPECT_CALL(client_visitor, + OnBeforeFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG)); + EXPECT_CALL(client_visitor, + OnFrameSent(HEADERS, stream_id1, _, + END_STREAM_FLAG | END_HEADERS_FLAG, 0)); int send_result = client_adapter->Send(); EXPECT_EQ(0, send_result); @@ -6854,8 +6966,8 @@ // Server initial SETTINGS (with MAX_CONCURRENT_STREAMS) and SETTINGS ack. EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); int send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -6882,14 +6994,16 @@ /*fin=*/true) .Serialize(); - EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck()); - EXPECT_CALL(visitor, OnFrameHeader(1, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(1, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(1)); EXPECT_CALL(visitor, OnHeaderForStream(1, _, _)).Times(4); EXPECT_CALL(visitor, OnEndHeadersForStream(1)); EXPECT_CALL(visitor, OnEndStream(1)); - EXPECT_CALL(visitor, OnFrameHeader(3, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(3, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL( visitor, OnInvalidFrame(3, Http2VisitorInterface::InvalidFrameError::kProtocol)); @@ -6938,8 +7052,8 @@ // Server initial SETTINGS (with MAX_CONCURRENT_STREAMS) and SETTINGS ack. EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); int send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -6966,12 +7080,14 @@ /*fin=*/true) .Serialize(); - EXPECT_CALL(visitor, OnFrameHeader(1, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(1, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(1)); EXPECT_CALL(visitor, OnHeaderForStream(1, _, _)).Times(4); EXPECT_CALL(visitor, OnEndHeadersForStream(1)); EXPECT_CALL(visitor, OnEndStream(1)); - EXPECT_CALL(visitor, OnFrameHeader(3, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(3, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnInvalidFrame( 3, Http2VisitorInterface::InvalidFrameError::kRefusedStream)); @@ -7024,7 +7140,8 @@ /*fin=*/true) .Serialize(); - EXPECT_CALL(visitor, OnFrameHeader(1, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(1, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(1)); EXPECT_CALL(visitor, OnHeaderForStream(1, _, _)).Times(5); EXPECT_CALL(visitor, @@ -7037,8 +7154,8 @@ // Server initial SETTINGS and SETTINGS ack. EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); // The server sends a RST_STREAM for the offending stream. EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, _, 0x0)); @@ -7076,7 +7193,8 @@ // After sending SETTINGS with `ENABLE_CONNECT_PROTOCOL`, oghttp2 matches // nghttp2 in allowing this, even though the `allow_extended_connect` option // is false. - EXPECT_CALL(visitor, OnFrameHeader(3, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(3, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(3)); EXPECT_CALL(visitor, OnHeaderForStream(3, _, _)).Times(5); EXPECT_CALL(visitor, OnEndHeadersForStream(3)); @@ -7111,8 +7229,8 @@ // Server initial SETTINGS (with ENABLE_CONNECT_PROTOCOL) and SETTINGS ack. EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 6, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 6, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); int send_result = adapter->Send(); EXPECT_EQ(0, send_result); @@ -7132,9 +7250,10 @@ /*fin=*/true) .Serialize(); - EXPECT_CALL(visitor, OnFrameHeader(0, _, SETTINGS, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(0, _, SETTINGS, ACK_FLAG)); EXPECT_CALL(visitor, OnSettingsAck()); - EXPECT_CALL(visitor, OnFrameHeader(1, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(1, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(1)); EXPECT_CALL(visitor, OnHeaderForStream(1, _, _)).Times(5); EXPECT_CALL(visitor, OnEndHeadersForStream(1)); @@ -7169,7 +7288,8 @@ EXPECT_CALL(visitor, OnFrameHeader(0, 0, SETTINGS, 0)); EXPECT_CALL(visitor, OnSettingsStart()); EXPECT_CALL(visitor, OnSettingsEnd()); - EXPECT_CALL(visitor, OnFrameHeader(1, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(1, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(1)); EXPECT_CALL(visitor, OnHeaderForStream(1, _, _)).Times(4); EXPECT_CALL(visitor, OnEndHeadersForStream(1)); @@ -7195,8 +7315,8 @@ // Server initial SETTINGS and SETTINGS ack. EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); // The server sends a RST_STREAM for the offending stream. // The response HEADERS, DATA and WINDOW_UPDATE are all ignored. @@ -7352,7 +7472,8 @@ EXPECT_CALL(visitor, OnSettingsStart()); EXPECT_CALL(visitor, OnSettingsEnd()); // Stream 1 - EXPECT_CALL(visitor, OnFrameHeader(1, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(1, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(1)); EXPECT_CALL(visitor, OnHeaderForStream(1, _, _)).Times(4); EXPECT_CALL(visitor, OnEndHeadersForStream(1)); @@ -7470,8 +7591,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 3, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 3, _, 0x0, @@ -7582,8 +7703,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 1, _, 0x0, @@ -7649,8 +7770,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_TRUE(adapter->want_write()); int result = adapter->Send(); @@ -7721,8 +7842,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 1, _, 0x0, @@ -7800,8 +7921,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 3, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 3, _, 0x0, @@ -7906,8 +8027,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(RST_STREAM, 1, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(RST_STREAM, 1, _, 0x0, @@ -7976,7 +8097,7 @@ EXPECT_CALL(visitor, OnBeginHeadersForStream(1)); EXPECT_CALL(visitor, OnHeaderForStream(1, _, _)).Times(4); EXPECT_CALL(visitor, OnEndHeadersForStream(1)); - EXPECT_CALL(visitor, OnFrameHeader(1, _, DATA, 0x1)); + EXPECT_CALL(visitor, OnFrameHeader(1, _, DATA, END_STREAM_FLAG)); EXPECT_CALL(visitor, OnBeginDataForStream(1, _)); EXPECT_CALL(visitor, OnDataForStream(1, "This is the request body.")); EXPECT_CALL(visitor, OnEndStream(1)); @@ -7992,8 +8113,8 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, 0, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, 0, ACK_FLAG, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(WINDOW_UPDATE, 1, 4, 0x0)); EXPECT_CALL(visitor, OnFrameSent(WINDOW_UPDATE, 1, 4, 0x0, 0)); EXPECT_CALL(visitor, OnBeforeFrameSent(WINDOW_UPDATE, 0, 4, 0x0)); @@ -8161,7 +8282,8 @@ EXPECT_CALL(visitor, OnWindowUpdate(0, 1 << 20)); // Stream 1 - EXPECT_CALL(visitor, OnFrameHeader(1, _, HEADERS, 0x5)); + EXPECT_CALL(visitor, + OnFrameHeader(1, _, HEADERS, END_STREAM_FLAG | END_HEADERS_FLAG)); EXPECT_CALL(visitor, OnBeginHeadersForStream(1)); EXPECT_CALL(visitor, OnHeaderForStream(1, _, _)).Times(4); EXPECT_CALL(visitor, OnEndHeadersForStream(1)); @@ -8181,10 +8303,10 @@ EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x0)); EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x0, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); - EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, 0x4)); - EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, 0x4, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(HEADERS, 1, _, END_HEADERS_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(HEADERS, 1, _, END_HEADERS_FLAG, 0)); EXPECT_CALL(visitor, OnFrameSent(DATA, 1, _, 0x0, 0)).Times(5); adapter->Send(); @@ -8208,8 +8330,8 @@ body_ref.AppendPayload("Stream should be resumed."); adapter->ResumeStream(1); - EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, 0x1)); - EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, 0x1, 0)); + EXPECT_CALL(visitor, OnBeforeFrameSent(SETTINGS, 0, _, ACK_FLAG)); + EXPECT_CALL(visitor, OnFrameSent(SETTINGS, 0, _, ACK_FLAG, 0)); adapter->Send(); EXPECT_FALSE(adapter->want_write());
diff --git a/quiche/http2/adapter/oghttp2_session.cc b/quiche/http2/adapter/oghttp2_session.cc index 5f8b5ef..fe6127a 100644 --- a/quiche/http2/adapter/oghttp2_session.cc +++ b/quiche/http2/adapter/oghttp2_session.cc
@@ -41,13 +41,15 @@ void VisitData(const spdy::SpdyDataIR& data) override { frame_type_ = static_cast<uint8_t>(data.frame_type()); stream_id_ = data.stream_id(); - flags_ = (data.fin() ? 0x1 : 0) | (data.padded() ? 0x8 : 0); + flags_ = + (data.fin() ? END_STREAM_FLAG : 0) | (data.padded() ? PADDED_FLAG : 0); } void VisitHeaders(const spdy::SpdyHeadersIR& headers) override { frame_type_ = static_cast<uint8_t>(headers.frame_type()); stream_id_ = headers.stream_id(); - flags_ = 0x4 | (headers.fin() ? 0x1 : 0) | (headers.padded() ? 0x8 : 0) | - (headers.has_priority() ? 0x20 : 0); + flags_ = END_HEADERS_FLAG | (headers.fin() ? END_STREAM_FLAG : 0) | + (headers.padded() ? PADDED_FLAG : 0) | + (headers.has_priority() ? PRIORITY_FLAG : 0); } void VisitPriority(const spdy::SpdyPriorityIR& priority) override { frame_type_ = static_cast<uint8_t>(priority.frame_type()); @@ -63,18 +65,18 @@ void VisitSettings(const spdy::SpdySettingsIR& settings) override { frame_type_ = static_cast<uint8_t>(settings.frame_type()); frame_type_ = 4; - flags_ = (settings.is_ack() ? 0x1 : 0); + flags_ = (settings.is_ack() ? ACK_FLAG : 0); } void VisitPushPromise(const spdy::SpdyPushPromiseIR& push_promise) override { frame_type_ = static_cast<uint8_t>(push_promise.frame_type()); frame_type_ = 5; stream_id_ = push_promise.stream_id(); - flags_ = (push_promise.padded() ? 0x8 : 0); + flags_ = (push_promise.padded() ? PADDED_FLAG : 0); } void VisitPing(const spdy::SpdyPingIR& ping) override { frame_type_ = static_cast<uint8_t>(ping.frame_type()); frame_type_ = 6; - flags_ = (ping.is_ack() ? 0x1 : 0); + flags_ = (ping.is_ack() ? ACK_FLAG : 0); } void VisitGoAway(const spdy::SpdyGoAwayIR& goaway) override { frame_type_ = static_cast<uint8_t>(goaway.frame_type()); @@ -91,7 +93,7 @@ const spdy::SpdyContinuationIR& continuation) override { frame_type_ = static_cast<uint8_t>(continuation.frame_type()); stream_id_ = continuation.stream_id(); - flags_ = continuation.end_headers() ? 0x4 : 0; + flags_ = continuation.end_headers() ? END_HEADERS_FLAG : 0; } void VisitUnknown(const spdy::SpdyUnknownIR& unknown) override { frame_type_ = static_cast<uint8_t>(unknown.frame_type()); @@ -743,7 +745,7 @@ } if (stream_id == 0) { if (frame_type == FrameType::SETTINGS) { - const bool is_settings_ack = (flags & 0x01); + const bool is_settings_ack = (flags & ACK_FLAG); if (is_settings_ack && encoder_header_table_capacity_when_acking_) { framer_.UpdateHeaderEncoderTableSize( encoder_header_table_capacity_when_acking_.value()); @@ -757,7 +759,7 @@ const bool contains_fin = (frame_type == FrameType::DATA || frame_type == FrameType::HEADERS) && - (flags & 0x01) == 0x01; + (flags & END_STREAM_FLAG) == END_STREAM_FLAG; auto it = stream_map_.find(stream_id); const bool still_open_remote = it != stream_map_.end() && !it->second.half_closed_remote; @@ -860,8 +862,8 @@ state.half_closed_local = true; MaybeFinWithRstStream(it); } - const bool ok = - AfterFrameSent(/* DATA */ 0, stream_id, length, fin ? 0x1 : 0x0, 0); + const bool ok = AfterFrameSent(/* DATA */ 0, stream_id, length, + fin ? END_STREAM_FLAG : 0x0, 0); if (!ok) { LatchErrorAndNotify(Http2ErrorCode::INTERNAL_ERROR, ConnectionError::kSendError);
diff --git a/quiche/http2/adapter/test_frame_sequence.cc b/quiche/http2/adapter/test_frame_sequence.cc index 9477aba..d73f036 100644 --- a/quiche/http2/adapter/test_frame_sequence.cc +++ b/quiche/http2/adapter/test_frame_sequence.cc
@@ -114,7 +114,7 @@ encoder.DisableCompression(); std::string encoded_block = encoder.EncodeHeaderBlock(block); const size_t pos = encoded_block.size() / 2; - const uint8_t flags = fin ? 0x1 : 0x0; + const uint8_t flags = fin ? END_STREAM_FLAG : 0x0; frames_.push_back(std::make_unique<spdy::SpdyUnknownIR>( stream_id, static_cast<uint8_t>(spdy::SpdyFrameType::HEADERS), flags, encoded_block.substr(0, pos)));