| Index: net/quic/test_tools/quic_test_utils.cc
|
| diff --git a/net/quic/test_tools/quic_test_utils.cc b/net/quic/test_tools/quic_test_utils.cc
|
| index c8b6a404aaf2c381cb62054f7985dfa2977b109f..b504b756cb2c1f1a6f30aa1036278a68a8f0c2da 100644
|
| --- a/net/quic/test_tools/quic_test_utils.cc
|
| +++ b/net/quic/test_tools/quic_test_utils.cc
|
| @@ -13,6 +13,7 @@
|
| #include "net/quic/crypto/null_encrypter.h"
|
| #include "net/quic/crypto/quic_decrypter.h"
|
| #include "net/quic/crypto/quic_encrypter.h"
|
| +#include "net/quic/quic_data_writer.h"
|
| #include "net/quic/quic_framer.h"
|
| #include "net/quic/quic_packet_creator.h"
|
| #include "net/quic/quic_utils.h"
|
| @@ -60,9 +61,9 @@ QuicAckFrame MakeAckFrameWithNackRanges(
|
| return ack;
|
| }
|
|
|
| -SerializedPacket BuildUnsizedDataPacket(QuicFramer* framer,
|
| - const QuicPacketHeader& header,
|
| - const QuicFrames& frames) {
|
| +QuicPacket* BuildUnsizedDataPacket(QuicFramer* framer,
|
| + const QuicPacketHeader& header,
|
| + const QuicFrames& frames) {
|
| const size_t max_plaintext_size = framer->GetMaxPlaintextSize(kMaxPacketSize);
|
| size_t packet_size = GetPacketHeaderSize(header);
|
| for (size_t i = 0; i < frames.size(); ++i) {
|
| @@ -76,7 +77,22 @@ SerializedPacket BuildUnsizedDataPacket(QuicFramer* framer,
|
| DCHECK(frame_size);
|
| packet_size += frame_size;
|
| }
|
| - return framer->BuildDataPacket(header, frames, packet_size);
|
| + return BuildUnsizedDataPacket(framer, header, frames, packet_size);
|
| +}
|
| +
|
| +QuicPacket* BuildUnsizedDataPacket(QuicFramer* framer,
|
| + const QuicPacketHeader& header,
|
| + const QuicFrames& frames,
|
| + size_t packet_size) {
|
| + char* buffer = new char[packet_size];
|
| + scoped_ptr<QuicPacket> packet(
|
| + framer->BuildDataPacket(header, frames, buffer, packet_size));
|
| + DCHECK(packet.get() != nullptr);
|
| + // Now I have to re-construct the data packet with data ownership.
|
| + return new QuicPacket(buffer, packet->length(), true,
|
| + header.public_header.connection_id_length,
|
| + header.public_header.version_flag,
|
| + header.public_header.sequence_number_length);
|
| }
|
|
|
| uint64 SimpleRandom::RandUint64() {
|
| @@ -298,17 +314,11 @@ PacketSavingConnection::PacketSavingConnection(
|
| }
|
|
|
| PacketSavingConnection::~PacketSavingConnection() {
|
| - STLDeleteElements(&packets_);
|
| STLDeleteElements(&encrypted_packets_);
|
| }
|
|
|
| void PacketSavingConnection::SendOrQueuePacket(QueuedPacket packet) {
|
| - packets_.push_back(packet.serialized_packet.packet);
|
| - QuicEncryptedPacket* encrypted = QuicConnectionPeer::GetFramer(this)->
|
| - EncryptPacket(packet.encryption_level,
|
| - packet.serialized_packet.sequence_number,
|
| - *packet.serialized_packet.packet);
|
| - encrypted_packets_.push_back(encrypted);
|
| + encrypted_packets_.push_back(packet.serialized_packet.packet);
|
| // Transfer ownership of the packet to the SentPacketManager and the
|
| // ack notifier to the AckNotifierManager.
|
| sent_packet_manager_.OnPacketSent(
|
| @@ -481,7 +491,7 @@ QuicEncryptedPacket* ConstructEncryptedPacket(
|
| frames.push_back(frame);
|
| QuicFramer framer(QuicSupportedVersions(), QuicTime::Zero(), false);
|
| scoped_ptr<QuicPacket> packet(
|
| - BuildUnsizedDataPacket(&framer, header, frames).packet);
|
| + BuildUnsizedDataPacket(&framer, header, frames));
|
| EXPECT_TRUE(packet != nullptr);
|
| QuicEncryptedPacket* encrypted = framer.EncryptPacket(ENCRYPTION_NONE,
|
| sequence_number,
|
| @@ -558,7 +568,7 @@ static QuicPacket* ConstructPacketFromHandshakeMessage(
|
| QuicFrame frame(&stream_frame);
|
| QuicFrames frames;
|
| frames.push_back(frame);
|
| - return BuildUnsizedDataPacket(&quic_framer, header, frames).packet;
|
| + return BuildUnsizedDataPacket(&quic_framer, header, frames);
|
| }
|
|
|
| QuicPacket* ConstructHandshakePacket(QuicConnectionId connection_id,
|
|
|