Give toy server backends direct access to the QuicSpdyStream Allows interaction with the datagram/capsule functionality, which will help with implementing CONNECT-UDP support in the toy server. PiperOrigin-RevId: 476381522
diff --git a/quiche/quic/tools/connect_tunnel_test.cc b/quiche/quic/tools/connect_tunnel_test.cc index 33753a1..379da7c 100644 --- a/quiche/quic/tools/connect_tunnel_test.cc +++ b/quiche/quic/tools/connect_tunnel_test.cc
@@ -53,6 +53,7 @@ QuicStreamId stream_id() const override { return 100; } std::string peer_host() const override { return "127.0.0.1"; } + MOCK_METHOD(QuicSpdyStream*, GetStream, (), (override)); MOCK_METHOD(void, OnResponseBackendComplete, (const QuicBackendResponse* response), (override)); MOCK_METHOD(void, SendStreamData, (absl::string_view data, bool close_stream),
diff --git a/quiche/quic/tools/quic_simple_server_backend.h b/quiche/quic/tools/quic_simple_server_backend.h index 1ef3364..a142dd8 100644 --- a/quiche/quic/tools/quic_simple_server_backend.h +++ b/quiche/quic/tools/quic_simple_server_backend.h
@@ -9,6 +9,7 @@ #include <memory> #include "absl/strings/string_view.h" +#include "quiche/quic/core/http/quic_spdy_stream.h" #include "quiche/quic/core/quic_error_codes.h" #include "quiche/quic/core/quic_types.h" #include "quiche/quic/core/socket_factory.h" @@ -33,6 +34,7 @@ virtual QuicConnectionId connection_id() const = 0; virtual QuicStreamId stream_id() const = 0; virtual std::string peer_host() const = 0; + virtual QuicSpdyStream* GetStream() = 0; // Called when the response is ready at the backend and can be send back to // the QUIC client. virtual void OnResponseBackendComplete(
diff --git a/quiche/quic/tools/quic_simple_server_stream.cc b/quiche/quic/tools/quic_simple_server_stream.cc index beea65a..f4dec74 100644 --- a/quiche/quic/tools/quic_simple_server_stream.cc +++ b/quiche/quic/tools/quic_simple_server_stream.cc
@@ -245,6 +245,8 @@ return spdy_session()->peer_address().host().ToString(); } +QuicSpdyStream* QuicSimpleServerStream::GetStream() { return this; } + namespace { class DelayedResponseAlarm : public QuicAlarm::DelegateWithContext {
diff --git a/quiche/quic/tools/quic_simple_server_stream.h b/quiche/quic/tools/quic_simple_server_stream.h index 3bcd9ed..85ce8b5 100644 --- a/quiche/quic/tools/quic_simple_server_stream.h +++ b/quiche/quic/tools/quic_simple_server_stream.h
@@ -57,6 +57,7 @@ QuicConnectionId connection_id() const override; QuicStreamId stream_id() const override; std::string peer_host() const override; + QuicSpdyStream* GetStream() override; void OnResponseBackendComplete(const QuicBackendResponse* response) override; void SendStreamData(absl::string_view data, bool close_stream) override; void TerminateStreamWithError(QuicResetStreamError error) override;