gfe-relnote: Do not increment QuicSimpleServerSession::highest_promised_stream_id_ if push cannot be created. Protected by gfe2_reloadable_flag_quic_enable_version_draft_25_v3 and gfe2_reloadable_flag_quic_enable_version_draft_27. PiperOrigin-RevId: 305792726 Change-Id: Ic01e744b7f599caebe1538586b3f31841eb99f69
diff --git a/quic/tools/quic_simple_server_session.cc b/quic/tools/quic_simple_server_session.cc index 5c83b48..f84a248 100644 --- a/quic/tools/quic_simple_server_session.cc +++ b/quic/tools/quic_simple_server_session.cc
@@ -75,15 +75,14 @@ spdy::SpdyHeaderBlock headers = SynthesizePushRequestHeaders( request_url, resource, original_request_headers); // TODO(b/136295430): Use sequential push IDs for IETF QUIC. - // TODO(bnc): If |highest_promised_stream_id_| is too large, it will always - // be skipped. Fix it by not incrementing if CanCreatePushStreamWithId() - // returns false. - highest_promised_stream_id_ += + auto new_highest_promised_stream_id = + highest_promised_stream_id_ + QuicUtils::StreamIdDelta(transport_version()); if (VersionUsesHttp3(transport_version()) && - !CanCreatePushStreamWithId(highest_promised_stream_id_)) { + !CanCreatePushStreamWithId(new_highest_promised_stream_id)) { return; } + highest_promised_stream_id_ = new_highest_promised_stream_id; SendPushPromise(original_stream_id, highest_promised_stream_id_, headers.Clone()); promised_streams_.push_back(PromisedStreamInfo(