| Index: net/tools/quic/quic_dispatcher.cc
|
| diff --git a/net/tools/quic/quic_dispatcher.cc b/net/tools/quic/quic_dispatcher.cc
|
| index a5cb9a79b88191998bd2eec5ee40e5ba37660d41..cc17c8012174c3540345f2bdbc8f541153395a38 100644
|
| --- a/net/tools/quic/quic_dispatcher.cc
|
| +++ b/net/tools/quic/quic_dispatcher.cc
|
| @@ -52,6 +52,8 @@ class DeleteSessionsAlarm : public QuicAlarm::Delegate {
|
| // to be handed off to the time wait list manager.
|
| class PacketCollector : public QuicPacketCreator::DelegateInterface {
|
| public:
|
| + explicit PacketCollector(QuicBufferAllocator* allocator)
|
| + : send_buffer_(allocator) {}
|
| ~PacketCollector() override {}
|
|
|
| void OnSerializedPacket(SerializedPacket* serialized_packet) override {
|
| @@ -68,12 +70,32 @@ class PacketCollector : public QuicPacketCreator::DelegateInterface {
|
| const string& error_details,
|
| ConnectionCloseSource source) override {}
|
|
|
| + void SaveStreamData(QuicStreamId id,
|
| + QuicIOVector iov,
|
| + size_t iov_offset,
|
| + QuicStreamOffset offset,
|
| + QuicByteCount data_length) override {
|
| + DCHECK_EQ(kCryptoStreamId, id);
|
| + send_buffer_.SaveStreamData(iov, iov_offset, offset, data_length);
|
| + }
|
| +
|
| + bool WriteStreamData(QuicStreamId id,
|
| + QuicStreamOffset offset,
|
| + QuicByteCount data_length,
|
| + QuicDataWriter* writer) override {
|
| + DCHECK_EQ(kCryptoStreamId, id);
|
| + return send_buffer_.WriteStreamData(offset, data_length, writer);
|
| + }
|
| +
|
| std::vector<std::unique_ptr<QuicEncryptedPacket>>* packets() {
|
| return &packets_;
|
| }
|
|
|
| private:
|
| std::vector<std::unique_ptr<QuicEncryptedPacket>> packets_;
|
| + // This is only needed until the packets are encrypted. Once packets are
|
| + // encrypted, the stream data is no longer required.
|
| + QuicStreamSendBuffer send_buffer_;
|
| };
|
|
|
| // Helper for statelessly closing connections by generating the
|
| @@ -87,6 +109,7 @@ class StatelessConnectionTerminator {
|
| QuicTimeWaitListManager* time_wait_list_manager)
|
| : connection_id_(connection_id),
|
| framer_(framer),
|
| + collector_(helper->GetBufferAllocator()),
|
| creator_(connection_id,
|
| framer,
|
| helper->GetBufferAllocator(),
|
|
|