Merge GetOrCreateDynamicStream() into GetOrCreateStream(). GetOrCreateDynamicStream() no longer guarantees that the returned stream is non-static. And since we have a single stream map for all streams, we can just have one method. gfe-relnote: Protected by quic_inline_getorcreatedynamicstream. PiperOrigin-RevId: 258426677 Change-Id: I89ac704a44da79afce3c1704efd5d721c9585f32
diff --git a/quic/core/http/quic_server_session_base_test.cc b/quic/core/http/quic_server_session_base_test.cc index b521046..0041c85 100644 --- a/quic/core/http/quic_server_session_base_test.cc +++ b/quic/core/http/quic_server_session_base_test.cc
@@ -361,8 +361,8 @@ QuicStreamId stream_id = GetNthClientInitiatedBidirectionalId(0); // Open the max configured number of streams, should be no problem. for (size_t i = 0; i < kMaxStreamsForTest; ++i) { - EXPECT_TRUE(QuicServerSessionBasePeer::GetOrCreateDynamicStream( - session_.get(), stream_id)); + EXPECT_TRUE(QuicServerSessionBasePeer::GetOrCreateStream(session_.get(), + stream_id)); stream_id += QuicUtils::StreamIdDelta(connection_->transport_version()); } @@ -370,8 +370,8 @@ // Open more streams: server should accept slightly more than the limit. // Excess streams are for non-version-99 only. for (size_t i = 0; i < kMaxStreamsMinimumIncrement; ++i) { - EXPECT_TRUE(QuicServerSessionBasePeer::GetOrCreateDynamicStream( - session_.get(), stream_id)); + EXPECT_TRUE(QuicServerSessionBasePeer::GetOrCreateStream(session_.get(), + stream_id)); stream_id += QuicUtils::StreamIdDelta(connection_->transport_version()); } } @@ -390,8 +390,8 @@ EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(1); } // Even if the connection remains open, the stream creation should fail. - EXPECT_FALSE(QuicServerSessionBasePeer::GetOrCreateDynamicStream( - session_.get(), stream_id)); + EXPECT_FALSE( + QuicServerSessionBasePeer::GetOrCreateStream(session_.get(), stream_id)); } TEST_P(QuicServerSessionBaseTest, MaxAvailableBidirectionalStreams) { @@ -404,7 +404,7 @@ session_->MaxAvailableBidirectionalStreams(); EXPECT_EQ(0u, session_->GetNumOpenIncomingStreams()); - EXPECT_TRUE(QuicServerSessionBasePeer::GetOrCreateDynamicStream( + EXPECT_TRUE(QuicServerSessionBasePeer::GetOrCreateStream( session_.get(), GetNthClientInitiatedBidirectionalId(0))); // Establish available streams up to the server's limit. @@ -416,7 +416,7 @@ // This exceeds the stream limit. In versions other than 99 // this is allowed. Version 99 hews to the IETF spec and does // not allow it. - EXPECT_TRUE(QuicServerSessionBasePeer::GetOrCreateDynamicStream( + EXPECT_TRUE(QuicServerSessionBasePeer::GetOrCreateStream( session_.get(), kLimitingStreamId)); // A further available stream will result in connection close. EXPECT_CALL(*connection_, @@ -428,14 +428,14 @@ // This forces stream kLimitingStreamId + 2 to become available, which // violates the quota. - EXPECT_FALSE(QuicServerSessionBasePeer::GetOrCreateDynamicStream( + EXPECT_FALSE(QuicServerSessionBasePeer::GetOrCreateStream( session_.get(), kLimitingStreamId + 2 * next_id)); } TEST_P(QuicServerSessionBaseTest, GetEvenIncomingError) { // Incoming streams on the server session must be odd. EXPECT_CALL(*connection_, CloseConnection(QUIC_INVALID_STREAM_ID, _, _)); - EXPECT_EQ(nullptr, QuicServerSessionBasePeer::GetOrCreateDynamicStream( + EXPECT_EQ(nullptr, QuicServerSessionBasePeer::GetOrCreateStream( session_.get(), session_->next_outgoing_unidirectional_stream_id())); } @@ -448,7 +448,7 @@ // Don't create new streams if the connection is disconnected. QuicConnectionPeer::TearDownLocalConnectionState(connection_); - EXPECT_QUIC_BUG(QuicServerSessionBasePeer::GetOrCreateDynamicStream( + EXPECT_QUIC_BUG(QuicServerSessionBasePeer::GetOrCreateStream( session_.get(), GetNthClientInitiatedBidirectionalId(0)), "ShouldCreateIncomingStream called when disconnected"); }
diff --git a/quic/core/http/quic_spdy_session.cc b/quic/core/http/quic_spdy_session.cc index 367a99b..4a8dad7 100644 --- a/quic/core/http/quic_spdy_session.cc +++ b/quic/core/http/quic_spdy_session.cc
@@ -559,7 +559,14 @@ QuicSpdyStream* QuicSpdySession::GetSpdyDataStream( const QuicStreamId stream_id) { - QuicStream* stream = GetOrCreateDynamicStream(stream_id); + QuicStream* stream = nullptr; + if (GetQuicReloadableFlag(quic_inline_getorcreatedynamicstream) && + GetQuicReloadableFlag(quic_handle_staticness_for_spdy_stream)) { + QUIC_RELOADABLE_FLAG_COUNT(quic_inline_getorcreatedynamicstream); + stream = GetOrCreateStream(stream_id); + } else { + stream = GetOrCreateDynamicStream(stream_id); + } if (GetQuicReloadableFlag(quic_handle_staticness_for_spdy_stream) && stream && stream->is_static()) { QUIC_RELOADABLE_FLAG_COUNT(quic_handle_staticness_for_spdy_stream);
diff --git a/quic/core/http/quic_spdy_session_test.cc b/quic/core/http/quic_spdy_session_test.cc index d76b846..36fd20c 100644 --- a/quic/core/http/quic_spdy_session_test.cc +++ b/quic/core/http/quic_spdy_session_test.cc
@@ -212,8 +212,8 @@ return QuicSession::IsClosedStream(id); } - QuicStream* GetOrCreateDynamicStream(QuicStreamId stream_id) { - return QuicSpdySession::GetOrCreateDynamicStream(stream_id); + QuicStream* GetOrCreateStream(QuicStreamId stream_id) { + return QuicSpdySession::GetOrCreateStream(stream_id); } QuicConsumedData WritevData(QuicStream* stream, @@ -426,16 +426,16 @@ } TEST_P(QuicSpdySessionTestServer, AvailableStreams) { - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthClientInitiatedBidirectionalId(2)) != nullptr); // Both client initiated streams with smaller stream IDs are available. EXPECT_TRUE(QuicSessionPeer::IsStreamAvailable( &session_, GetNthClientInitiatedBidirectionalId(0))); EXPECT_TRUE(QuicSessionPeer::IsStreamAvailable( &session_, GetNthClientInitiatedBidirectionalId(1))); - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthClientInitiatedBidirectionalId(1)) != nullptr); - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthClientInitiatedBidirectionalId(0)) != nullptr); } @@ -455,15 +455,15 @@ TEST_P(QuicSpdySessionTestServer, IsClosedStreamPeerCreated) { QuicStreamId stream_id1 = GetNthClientInitiatedBidirectionalId(0); QuicStreamId stream_id2 = GetNthClientInitiatedBidirectionalId(1); - session_.GetOrCreateDynamicStream(stream_id1); - session_.GetOrCreateDynamicStream(stream_id2); + session_.GetOrCreateStream(stream_id1); + session_.GetOrCreateStream(stream_id2); CheckClosedStreams(); CloseStream(stream_id1); CheckClosedStreams(); CloseStream(stream_id2); // Create a stream, and make another available. - QuicStream* stream3 = session_.GetOrCreateDynamicStream(stream_id2 + 4); + QuicStream* stream3 = session_.GetOrCreateStream(stream_id2 + 4); CheckClosedStreams(); // Close one, but make sure the other is still not closed CloseStream(stream3->id()); @@ -484,13 +484,13 @@ headers_stream_offset, Perspective::IS_CLIENT, // Client initates stream, allocs stream id. /*bidirectional=*/true); - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream(stream_id)); + EXPECT_NE(nullptr, session_.GetOrCreateStream(stream_id)); stream_id = StreamCountToId( QuicSessionPeer::v99_streamid_manager(&session_) ->actual_max_allowed_incoming_unidirectional_streams(), Perspective::IS_CLIENT, /*bidirectional=*/false); - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream(stream_id)); + EXPECT_NE(nullptr, session_.GetOrCreateStream(stream_id)); EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(2); // Get the (max allowed stream ID)++. These should all fail. stream_id = StreamCountToId( @@ -499,7 +499,7 @@ 1 - headers_stream_offset, Perspective::IS_CLIENT, /*bidirectional=*/true); - EXPECT_EQ(nullptr, session_.GetOrCreateDynamicStream(stream_id)); + EXPECT_EQ(nullptr, session_.GetOrCreateStream(stream_id)); stream_id = StreamCountToId( QuicSessionPeer::v99_streamid_manager(&session_) @@ -507,14 +507,14 @@ 1, Perspective::IS_CLIENT, /*bidirectional=*/false); - EXPECT_EQ(nullptr, session_.GetOrCreateDynamicStream(stream_id)); + EXPECT_EQ(nullptr, session_.GetOrCreateStream(stream_id)); } else { QuicStreamId stream_id = GetNthClientInitiatedBidirectionalId(0); - session_.GetOrCreateDynamicStream(stream_id); + session_.GetOrCreateStream(stream_id); EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0); EXPECT_NE( nullptr, - session_.GetOrCreateDynamicStream( + session_.GetOrCreateStream( stream_id + IdDelta() * (session_.max_open_incoming_bidirectional_streams() - 1))); @@ -524,7 +524,7 @@ TEST_P(QuicSpdySessionTestServer, TooManyAvailableStreams) { QuicStreamId stream_id1 = GetNthClientInitiatedBidirectionalId(0); QuicStreamId stream_id2; - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream(stream_id1)); + EXPECT_NE(nullptr, session_.GetOrCreateStream(stream_id1)); // A stream ID which is too large to create. stream_id2 = GetNthClientInitiatedBidirectionalId( 2 * session_.MaxAvailableBidirectionalStreams() + 4); @@ -534,7 +534,7 @@ EXPECT_CALL(*connection_, CloseConnection(QUIC_TOO_MANY_AVAILABLE_STREAMS, _, _)); } - EXPECT_EQ(nullptr, session_.GetOrCreateDynamicStream(stream_id2)); + EXPECT_EQ(nullptr, session_.GetOrCreateStream(stream_id2)); } TEST_P(QuicSpdySessionTestServer, ManyAvailableStreams) { @@ -547,12 +547,12 @@ } QuicStreamId stream_id = GetNthClientInitiatedBidirectionalId(0); // Create one stream. - session_.GetOrCreateDynamicStream(stream_id); + session_.GetOrCreateStream(stream_id); EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0); // Stream count is 200, GetNth... starts counting at 0, so the 200'th stream // is 199. BUT actually we need to do 198 because the crypto stream (Stream // ID 0) has not been registered, but GetNth... assumes that it has. - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream( + EXPECT_NE(nullptr, session_.GetOrCreateStream( GetNthClientInitiatedBidirectionalId(198))); } @@ -964,7 +964,7 @@ EXPECT_CALL(*connection_, OnStreamReset(kTestStreamId, QUIC_STREAM_PEER_GOING_AWAY)) .Times(0); - EXPECT_TRUE(session_.GetOrCreateDynamicStream(kTestStreamId)); + EXPECT_TRUE(session_.GetOrCreateStream(kTestStreamId)); } TEST_P(QuicSpdySessionTestServer, DoNotSendGoAwayTwice) { @@ -1662,16 +1662,16 @@ } TEST_P(QuicSpdySessionTestClient, AvailableStreamsClient) { - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthServerInitiatedBidirectionalId(2)) != nullptr); // Both server initiated streams with smaller stream IDs should be available. EXPECT_TRUE(QuicSessionPeer::IsStreamAvailable( &session_, GetNthServerInitiatedBidirectionalId(0))); EXPECT_TRUE(QuicSessionPeer::IsStreamAvailable( &session_, GetNthServerInitiatedBidirectionalId(1))); - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthServerInitiatedBidirectionalId(0)) != nullptr); - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthServerInitiatedBidirectionalId(1)) != nullptr); // And client initiated stream ID should be not available. EXPECT_FALSE(QuicSessionPeer::IsStreamAvailable( @@ -1789,7 +1789,7 @@ QuicStreamFrame data1(stream_id1, false, 0, QuicStringPiece(data)); session_.OnStreamFrame(data1); EXPECT_EQ(1u, session_.GetNumOpenIncomingStreams()); - QuicStream* stream = session_.GetOrCreateDynamicStream(stream_id1); + QuicStream* stream = session_.GetOrCreateStream(stream_id1); EXPECT_EQ(1u, stream->flow_controller()->bytes_consumed()); EXPECT_EQ(1u, session_.flow_controller()->bytes_consumed()); @@ -1800,7 +1800,7 @@ QuicStreamFrame data2(stream_id2, false, 0, QuicStringPiece(data)); session_.OnStreamFrame(data2); EXPECT_EQ(2u, session_.GetNumOpenIncomingStreams()); - stream = session_.GetOrCreateDynamicStream(stream_id2); + stream = session_.GetOrCreateStream(stream_id2); EXPECT_EQ(4u, stream->flow_controller()->bytes_consumed()); EXPECT_EQ(5u, session_.flow_controller()->bytes_consumed()); }
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc index 750f256..b2d0bce 100644 --- a/quic/core/quic_session.cc +++ b/quic/core/quic_session.cc
@@ -1071,7 +1071,7 @@ void QuicSession::HandleRstOnValidNonexistentStream( const QuicRstStreamFrame& frame) { // If the stream is neither originally in active streams nor created in - // GetOrCreateDynamicStream(), it could be a closed stream in which case its + // GetOrCreateStream(), it could be a closed stream in which case its // final received byte offset need to be updated. if (IsClosedStream(frame.stream_id)) { // The RST frame contains the final byte offset for the stream: we can now @@ -1224,7 +1224,42 @@ stream_id)) { return GetMutableCryptoStream(); } - return GetOrCreateDynamicStream(stream_id); + + StreamMap::iterator it = stream_map_.find(stream_id); + if (it != stream_map_.end()) { + return it->second.get(); + } + + if (IsClosedStream(stream_id)) { + return nullptr; + } + + if (!IsIncomingStream(stream_id)) { + HandleFrameOnNonexistentOutgoingStream(stream_id); + return nullptr; + } + + // TODO(fkastenholz): If we are creating a new stream and we have + // sent a goaway, we should ignore the stream creation. Need to + // add code to A) test if goaway was sent ("if (goaway_sent_)") and + // B) reject stream creation ("return nullptr") + + if (!MaybeIncreaseLargestPeerStreamId(stream_id)) { + return nullptr; + } + + if (!VersionHasIetfQuicFrames(connection_->transport_version())) { + // TODO(fayang): Let LegacyQuicStreamIdManager count open streams and make + // CanOpenIncomingStream interface consistent with that of v99. + if (!stream_id_manager_.CanOpenIncomingStream( + GetNumOpenIncomingStreams())) { + // Refuse to open the stream. + SendRstStream(stream_id, QUIC_REFUSED_STREAM, 0); + return nullptr; + } + } + + return CreateIncomingStream(stream_id); } void QuicSession::StreamDraining(QuicStreamId stream_id) { @@ -1278,6 +1313,7 @@ QuicStream* QuicSession::GetOrCreateDynamicStream( const QuicStreamId stream_id) { + DCHECK(!GetQuicReloadableFlag(quic_inline_getorcreatedynamicstream)); StreamMap::iterator it = stream_map_.find(stream_id); if (it != stream_map_.end()) { return it->second.get();
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h index 5ef497d..24060e8 100644 --- a/quic/core/quic_session.h +++ b/quic/core/quic_session.h
@@ -370,6 +370,7 @@ // such stream exists, and |stream_id| is a peer-created stream id, // then a new stream is created and returned. In all other cases, nullptr is // returned. + // Caller does not own the returned stream. QuicStream* GetOrCreateStream(const QuicStreamId stream_id); // Mark a stream as draining. @@ -475,6 +476,8 @@ // returned. However if |stream_id| is a locally-created id and no such stream // exists, the connection is closed. // Caller does not own the returned stream. + // TODO(renjietang): Remove this method after + // quic_inline_getorcreatedynamicstream is deprecated. QuicStream* GetOrCreateDynamicStream(QuicStreamId stream_id); // Performs the work required to close |stream_id|. If |locally_reset|
diff --git a/quic/core/quic_session_test.cc b/quic/core/quic_session_test.cc index 0f8420d..49316dd 100644 --- a/quic/core/quic_session_test.cc +++ b/quic/core/quic_session_test.cc
@@ -187,7 +187,7 @@ max_open_incoming_bidirectional_streams() && !VersionHasIetfQuicFrames(connection()->transport_version())) { // No need to do this test for version 99; it's done by - // QuicSession::GetOrCreateDynamicStream. + // QuicSession::GetOrCreateStream. connection()->CloseConnection( QUIC_TOO_MANY_OPEN_STREAMS, "Too many streams!", ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET); @@ -232,8 +232,8 @@ return QuicSession::IsClosedStream(id); } - QuicStream* GetOrCreateDynamicStream(QuicStreamId stream_id) { - return QuicSession::GetOrCreateDynamicStream(stream_id); + QuicStream* GetOrCreateStream(QuicStreamId stream_id) { + return QuicSession::GetOrCreateStream(stream_id); } bool ShouldKeepConnectionAlive() const override { @@ -531,30 +531,30 @@ } TEST_P(QuicSessionTestServer, AvailableBidirectionalStreams) { - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthClientInitiatedBidirectionalId(3)) != nullptr); // Smaller bidirectional streams should be available. EXPECT_TRUE(QuicSessionPeer::IsStreamAvailable( &session_, GetNthClientInitiatedBidirectionalId(1))); EXPECT_TRUE(QuicSessionPeer::IsStreamAvailable( &session_, GetNthClientInitiatedBidirectionalId(2))); - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthClientInitiatedBidirectionalId(2)) != nullptr); - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthClientInitiatedBidirectionalId(1)) != nullptr); } TEST_P(QuicSessionTestServer, AvailableUnidirectionalStreams) { - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthClientInitiatedUnidirectionalId(3)) != nullptr); // Smaller unidirectional streams should be available. EXPECT_TRUE(QuicSessionPeer::IsStreamAvailable( &session_, GetNthClientInitiatedUnidirectionalId(1))); EXPECT_TRUE(QuicSessionPeer::IsStreamAvailable( &session_, GetNthClientInitiatedUnidirectionalId(2))); - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthClientInitiatedUnidirectionalId(2)) != nullptr); - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthClientInitiatedUnidirectionalId(1)) != nullptr); } @@ -613,15 +613,15 @@ TEST_P(QuicSessionTestServer, IsClosedBidirectionalStreamPeerCreated) { QuicStreamId stream_id1 = GetNthClientInitiatedBidirectionalId(0); QuicStreamId stream_id2 = GetNthClientInitiatedBidirectionalId(1); - session_.GetOrCreateDynamicStream(stream_id1); - session_.GetOrCreateDynamicStream(stream_id2); + session_.GetOrCreateStream(stream_id1); + session_.GetOrCreateStream(stream_id2); CheckClosedStreams(); CloseStream(stream_id1); CheckClosedStreams(); CloseStream(stream_id2); // Create a stream, and make another available. - QuicStream* stream3 = session_.GetOrCreateDynamicStream( + QuicStream* stream3 = session_.GetOrCreateStream( stream_id2 + 2 * QuicUtils::StreamIdDelta(connection_->transport_version())); CheckClosedStreams(); @@ -633,15 +633,15 @@ TEST_P(QuicSessionTestServer, IsClosedUnidirectionalStreamPeerCreated) { QuicStreamId stream_id1 = GetNthClientInitiatedUnidirectionalId(0); QuicStreamId stream_id2 = GetNthClientInitiatedUnidirectionalId(1); - session_.GetOrCreateDynamicStream(stream_id1); - session_.GetOrCreateDynamicStream(stream_id2); + session_.GetOrCreateStream(stream_id1); + session_.GetOrCreateStream(stream_id2); CheckClosedStreams(); CloseStream(stream_id1); CheckClosedStreams(); CloseStream(stream_id2); // Create a stream, and make another available. - QuicStream* stream3 = session_.GetOrCreateDynamicStream( + QuicStream* stream3 = session_.GetOrCreateStream( stream_id2 + 2 * QuicUtils::StreamIdDelta(connection_->transport_version())); CheckClosedStreams(); @@ -652,28 +652,26 @@ TEST_P(QuicSessionTestServer, MaximumAvailableOpenedBidirectionalStreams) { QuicStreamId stream_id = GetNthClientInitiatedBidirectionalId(0); - session_.GetOrCreateDynamicStream(stream_id); + session_.GetOrCreateStream(stream_id); EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0); - EXPECT_NE( - nullptr, - session_.GetOrCreateDynamicStream(GetNthClientInitiatedBidirectionalId( - session_.max_open_incoming_bidirectional_streams() - 1))); + EXPECT_NE(nullptr, + session_.GetOrCreateStream(GetNthClientInitiatedBidirectionalId( + session_.max_open_incoming_bidirectional_streams() - 1))); } TEST_P(QuicSessionTestServer, MaximumAvailableOpenedUnidirectionalStreams) { QuicStreamId stream_id = GetNthClientInitiatedUnidirectionalId(0); - session_.GetOrCreateDynamicStream(stream_id); + session_.GetOrCreateStream(stream_id); EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0); - EXPECT_NE( - nullptr, - session_.GetOrCreateDynamicStream(GetNthClientInitiatedUnidirectionalId( - session_.max_open_incoming_unidirectional_streams() - 1))); + EXPECT_NE(nullptr, + session_.GetOrCreateStream(GetNthClientInitiatedUnidirectionalId( + session_.max_open_incoming_unidirectional_streams() - 1))); } TEST_P(QuicSessionTestServer, TooManyAvailableBidirectionalStreams) { QuicStreamId stream_id1 = GetNthClientInitiatedBidirectionalId(0); QuicStreamId stream_id2; - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream(stream_id1)); + EXPECT_NE(nullptr, session_.GetOrCreateStream(stream_id1)); // A stream ID which is too large to create. stream_id2 = GetNthClientInitiatedBidirectionalId( session_.MaxAvailableBidirectionalStreams() + 2); @@ -686,13 +684,13 @@ EXPECT_CALL(*connection_, CloseConnection(QUIC_TOO_MANY_AVAILABLE_STREAMS, _, _)); } - EXPECT_EQ(nullptr, session_.GetOrCreateDynamicStream(stream_id2)); + EXPECT_EQ(nullptr, session_.GetOrCreateStream(stream_id2)); } TEST_P(QuicSessionTestServer, TooManyAvailableUnidirectionalStreams) { QuicStreamId stream_id1 = GetNthClientInitiatedUnidirectionalId(0); QuicStreamId stream_id2; - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream(stream_id1)); + EXPECT_NE(nullptr, session_.GetOrCreateStream(stream_id1)); // A stream ID which is too large to create. stream_id2 = GetNthClientInitiatedUnidirectionalId( session_.MaxAvailableUnidirectionalStreams() + 2); @@ -705,7 +703,7 @@ EXPECT_CALL(*connection_, CloseConnection(QUIC_TOO_MANY_AVAILABLE_STREAMS, _, _)); } - EXPECT_EQ(nullptr, session_.GetOrCreateDynamicStream(stream_id2)); + EXPECT_EQ(nullptr, session_.GetOrCreateStream(stream_id2)); } TEST_P(QuicSessionTestServer, ManyAvailableBidirectionalStreams) { @@ -720,21 +718,21 @@ } // Create a stream at the start of the range. QuicStreamId stream_id = GetNthClientInitiatedBidirectionalId(0); - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream(stream_id)); + EXPECT_NE(nullptr, session_.GetOrCreateStream(stream_id)); // Create the largest stream ID of a threatened total of 200 streams. // GetNth... starts at 0, so for 200 streams, get the 199th. EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0); - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream( + EXPECT_NE(nullptr, session_.GetOrCreateStream( GetNthClientInitiatedBidirectionalId(199))); if (VersionHasIetfQuicFrames(transport_version())) { // If IETF QUIC, check to make sure that creating bidirectional // streams does not mess up the unidirectional streams. stream_id = GetNthClientInitiatedUnidirectionalId(0); - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream(stream_id)); + EXPECT_NE(nullptr, session_.GetOrCreateStream(stream_id)); // Now try to get the last possible unidirectional stream. - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream( + EXPECT_NE(nullptr, session_.GetOrCreateStream( GetNthClientInitiatedUnidirectionalId(49))); // and this should fail because it exceeds the unidirectional limit // (but not the bi-) @@ -746,7 +744,7 @@ )) .Times(1); - EXPECT_EQ(nullptr, session_.GetOrCreateDynamicStream( + EXPECT_EQ(nullptr, session_.GetOrCreateStream( GetNthClientInitiatedUnidirectionalId(199))); } } @@ -763,20 +761,20 @@ } // Create one stream. QuicStreamId stream_id = GetNthClientInitiatedUnidirectionalId(0); - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream(stream_id)); + EXPECT_NE(nullptr, session_.GetOrCreateStream(stream_id)); // Create the largest stream ID of a threatened total of 200 streams. // GetNth... starts at 0, so for 200 streams, get the 199th. EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0); - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream( + EXPECT_NE(nullptr, session_.GetOrCreateStream( GetNthClientInitiatedUnidirectionalId(199))); if (VersionHasIetfQuicFrames(transport_version())) { // If IETF QUIC, check to make sure that creating unidirectional // streams does not mess up the bidirectional streams. stream_id = GetNthClientInitiatedBidirectionalId(0); - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream(stream_id)); + EXPECT_NE(nullptr, session_.GetOrCreateStream(stream_id)); // Now try to get the last possible bidirectional stream. - EXPECT_NE(nullptr, session_.GetOrCreateDynamicStream( + EXPECT_NE(nullptr, session_.GetOrCreateStream( GetNthClientInitiatedBidirectionalId(49))); // and this should fail because it exceeds the bnidirectional limit // (but not the uni-) @@ -791,7 +789,7 @@ CloseConnection(QUIC_INVALID_STREAM_ID, error_detail, ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET)) .Times(1); - EXPECT_EQ(nullptr, session_.GetOrCreateDynamicStream( + EXPECT_EQ(nullptr, session_.GetOrCreateStream( GetNthClientInitiatedBidirectionalId(199))); } } @@ -1186,7 +1184,7 @@ EXPECT_CALL(*connection_, OnStreamReset(kTestStreamId, QUIC_STREAM_PEER_GOING_AWAY)) .Times(0); - EXPECT_TRUE(session_.GetOrCreateDynamicStream(kTestStreamId)); + EXPECT_TRUE(session_.GetOrCreateStream(kTestStreamId)); } TEST_P(QuicSessionTestServer, DoNotSendGoAwayTwice) { @@ -1821,16 +1819,16 @@ ::testing::ValuesIn(AllSupportedVersions())); TEST_P(QuicSessionTestClient, AvailableBidirectionalStreamsClient) { - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthServerInitiatedBidirectionalId(2)) != nullptr); // Smaller bidirectional streams should be available. EXPECT_TRUE(QuicSessionPeer::IsStreamAvailable( &session_, GetNthServerInitiatedBidirectionalId(0))); EXPECT_TRUE(QuicSessionPeer::IsStreamAvailable( &session_, GetNthServerInitiatedBidirectionalId(1))); - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthServerInitiatedBidirectionalId(0)) != nullptr); - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthServerInitiatedBidirectionalId(1)) != nullptr); // And 5 should be not available. EXPECT_FALSE(QuicSessionPeer::IsStreamAvailable( @@ -1838,16 +1836,16 @@ } TEST_P(QuicSessionTestClient, AvailableUnidirectionalStreamsClient) { - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthServerInitiatedUnidirectionalId(2)) != nullptr); // Smaller unidirectional streams should be available. EXPECT_TRUE(QuicSessionPeer::IsStreamAvailable( &session_, GetNthServerInitiatedUnidirectionalId(0))); EXPECT_TRUE(QuicSessionPeer::IsStreamAvailable( &session_, GetNthServerInitiatedUnidirectionalId(1))); - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthServerInitiatedUnidirectionalId(0)) != nullptr); - ASSERT_TRUE(session_.GetOrCreateDynamicStream( + ASSERT_TRUE(session_.GetOrCreateStream( GetNthServerInitiatedUnidirectionalId(1)) != nullptr); // And 5 should be not available. EXPECT_FALSE(QuicSessionPeer::IsStreamAvailable(
diff --git a/quic/test_tools/quic_server_session_base_peer.h b/quic/test_tools/quic_server_session_base_peer.h index b29fe46..ab5b1f0 100644 --- a/quic/test_tools/quic_server_session_base_peer.h +++ b/quic/test_tools/quic_server_session_base_peer.h
@@ -14,9 +14,9 @@ class QuicServerSessionBasePeer { public: - static QuicStream* GetOrCreateDynamicStream(QuicServerSessionBase* s, - QuicStreamId id) { - return s->GetOrCreateDynamicStream(id); + static QuicStream* GetOrCreateStream(QuicServerSessionBase* s, + QuicStreamId id) { + return s->GetOrCreateStream(id); } static void SetCryptoStream(QuicServerSessionBase* s, QuicCryptoServerStream* crypto_stream) {
diff --git a/quic/test_tools/quic_session_peer.cc b/quic/test_tools/quic_session_peer.cc index 0dfba43..e78b059 100644 --- a/quic/test_tools/quic_session_peer.cc +++ b/quic/test_tools/quic_session_peer.cc
@@ -118,9 +118,9 @@ } // static -QuicStream* QuicSessionPeer::GetOrCreateDynamicStream(QuicSession* session, - QuicStreamId stream_id) { - return session->GetOrCreateDynamicStream(stream_id); +QuicStream* QuicSessionPeer::GetOrCreateStream(QuicSession* session, + QuicStreamId stream_id) { + return session->GetOrCreateStream(stream_id); } // static
diff --git a/quic/test_tools/quic_session_peer.h b/quic/test_tools/quic_session_peer.h index 9ca8530..f027eb5 100644 --- a/quic/test_tools/quic_session_peer.h +++ b/quic/test_tools/quic_session_peer.h
@@ -52,8 +52,8 @@ static QuicCryptoStream* GetMutableCryptoStream(QuicSession* session); static QuicWriteBlockedList* GetWriteBlockedStreams(QuicSession* session); - static QuicStream* GetOrCreateDynamicStream(QuicSession* session, - QuicStreamId stream_id); + static QuicStream* GetOrCreateStream(QuicSession* session, + QuicStreamId stream_id); static std::map<QuicStreamId, QuicStreamOffset>& GetLocallyClosedStreamsHighestOffset(QuicSession* session); static QuicSession::StreamMap& stream_map(QuicSession* session);
diff --git a/quic/tools/quic_simple_server_session_test.cc b/quic/tools/quic_simple_server_session_test.cc index eeb9ce3..9bc3573 100644 --- a/quic/tools/quic_simple_server_session_test.cc +++ b/quic/tools/quic_simple_server_session_test.cc
@@ -522,12 +522,12 @@ } TEST_P(QuicSimpleServerSessionTest, GetEvenIncomingError) { - // Tests that calling GetOrCreateDynamicStream() on an outgoing stream not + // Tests that calling GetOrCreateStream() on an outgoing stream not // promised yet should result close connection. EXPECT_CALL(*connection_, CloseConnection(QUIC_INVALID_STREAM_ID, "Data for nonexistent stream", _)); EXPECT_EQ(nullptr, - QuicSessionPeer::GetOrCreateDynamicStream( + QuicSessionPeer::GetOrCreateStream( session_.get(), GetNthServerInitiatedUnidirectionalId(1))); }