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, |