Add a variety of DCHECK in the toy-server class to ensure that the backend is non-null and remove the guard added in cr/246231018. The underlying issue was a bug in the Chromium QuicSimplerServer which is fixed in: https://chromium-review.googlesource.com/c/chromium/src/+/1594063 gfe-relnote: n/a - Not used in the GFE PiperOrigin-RevId: 246429041 Change-Id: I76103b0d992950fef950ba5bb8d508fe40ae5436
diff --git a/quic/tools/quic_server.cc b/quic/tools/quic_server.cc index f8df59a..5542008 100644 --- a/quic/tools/quic_server.cc +++ b/quic/tools/quic_server.cc
@@ -81,6 +81,7 @@ packet_reader_(new QuicPacketReader()), quic_simple_server_backend_(quic_simple_server_backend), expected_connection_id_length_(expected_connection_id_length) { + DCHECK(quic_simple_server_backend_); Initialize(); }
diff --git a/quic/tools/quic_simple_server_session.cc b/quic/tools/quic_simple_server_session.cc index a722d37..af60524 100644 --- a/quic/tools/quic_simple_server_session.cc +++ b/quic/tools/quic_simple_server_session.cc
@@ -33,7 +33,9 @@ compressed_certs_cache), highest_promised_stream_id_( QuicUtils::GetInvalidStreamId(connection->transport_version())), - quic_simple_server_backend_(quic_simple_server_backend) {} + quic_simple_server_backend_(quic_simple_server_backend) { + DCHECK(quic_simple_server_backend_); +} QuicSimpleServerSession::~QuicSimpleServerSession() { delete connection();
diff --git a/quic/tools/quic_simple_server_stream.cc b/quic/tools/quic_simple_server_stream.cc index e3fc507..55d93dc 100644 --- a/quic/tools/quic_simple_server_stream.cc +++ b/quic/tools/quic_simple_server_stream.cc
@@ -29,7 +29,9 @@ QuicSimpleServerBackend* quic_simple_server_backend) : QuicSpdyServerStreamBase(id, session, type), content_length_(-1), - quic_simple_server_backend_(quic_simple_server_backend) {} + quic_simple_server_backend_(quic_simple_server_backend) { + DCHECK(quic_simple_server_backend_); +} QuicSimpleServerStream::QuicSimpleServerStream( PendingStream pending, @@ -38,12 +40,12 @@ QuicSimpleServerBackend* quic_simple_server_backend) : QuicSpdyServerStreamBase(std::move(pending), session, type), content_length_(-1), - quic_simple_server_backend_(quic_simple_server_backend) {} + quic_simple_server_backend_(quic_simple_server_backend) { + DCHECK(quic_simple_server_backend_); +} QuicSimpleServerStream::~QuicSimpleServerStream() { - if (quic_simple_server_backend_) { - quic_simple_server_backend_->CloseBackendResponseStream(this); - } + quic_simple_server_backend_->CloseBackendResponseStream(this); } void QuicSimpleServerStream::OnInitialHeadersComplete(