Index: net/quic/test_tools/quic_test_packet_maker.cc |
diff --git a/net/quic/test_tools/quic_test_packet_maker.cc b/net/quic/test_tools/quic_test_packet_maker.cc |
index 345b7b5f3e9e41a79ab971a805c38f9baf194be2..879bbc902080323642fb5bb46ea49ad7f2edddc8 100644 |
--- a/net/quic/test_tools/quic_test_packet_maker.cc |
+++ b/net/quic/test_tools/quic_test_packet_maker.cc |
@@ -4,11 +4,15 @@ |
#include "net/quic/test_tools/quic_test_packet_maker.h" |
+#include <list> |
+ |
#include "net/quic/quic_framer.h" |
#include "net/quic/quic_http_utils.h" |
#include "net/quic/quic_utils.h" |
#include "net/quic/test_tools/quic_test_utils.h" |
+using std::make_pair; |
+ |
namespace net { |
namespace test { |
@@ -49,7 +53,8 @@ scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckAndRstPacket( |
QuicRstStreamErrorCode error_code, |
QuicPacketSequenceNumber largest_received, |
QuicPacketSequenceNumber least_unacked, |
- bool send_feedback) { |
+ bool send_feedback, |
+ QuicTime timestamp) { |
QuicPacketHeader header; |
header.public_header.connection_id = connection_id_; |
@@ -63,10 +68,16 @@ scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckAndRstPacket( |
QuicAckFrame ack(MakeAckFrame(largest_received)); |
ack.delta_time_largest_observed = QuicTime::Delta::Zero(); |
+ if (version_ > QUIC_VERSION_22) { |
+ for (QuicPacketSequenceNumber i = least_unacked; i <= largest_received; |
+ ++i) { |
+ ack.received_packet_times.push_back(make_pair(i, timestamp)); |
+ } |
+ } |
QuicFrames frames; |
frames.push_back(QuicFrame(&ack)); |
QuicCongestionFeedbackFrame feedback; |
- if (send_feedback) { |
+ if (send_feedback && version_ <= QUIC_VERSION_22) { |
feedback.type = kTCP; |
feedback.tcp.receive_window = 256000; |
@@ -80,7 +91,7 @@ scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckAndRstPacket( |
QuicRstStreamFrame rst(stream_id, error_code, 0); |
frames.push_back(QuicFrame(&rst)); |
- QuicFramer framer(SupportedVersions(version_), QuicTime::Zero(), false); |
+ QuicFramer framer(SupportedVersions(version_), timestamp, false); |
scoped_ptr<QuicPacket> packet( |
BuildUnsizedDataPacket(&framer, header, frames).packet); |
return scoped_ptr<QuicEncryptedPacket>(framer.EncryptPacket( |
@@ -109,7 +120,8 @@ scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckPacket( |
QuicPacketSequenceNumber sequence_number, |
QuicPacketSequenceNumber largest_received, |
QuicPacketSequenceNumber least_unacked, |
- bool send_feedback) { |
+ bool send_feedback, |
+ QuicTime timestamp) { |
QuicPacketHeader header; |
header.public_header.connection_id = connection_id_; |
header.public_header.reset_flag = false; |
@@ -122,15 +134,20 @@ scoped_ptr<QuicEncryptedPacket> QuicTestPacketMaker::MakeAckPacket( |
QuicAckFrame ack(MakeAckFrame(largest_received)); |
ack.delta_time_largest_observed = QuicTime::Delta::Zero(); |
+ if (version_ > QUIC_VERSION_22) { |
+ for (QuicPacketSequenceNumber i = least_unacked; i <= largest_received; |
+ ++i) { |
+ ack.received_packet_times.push_back(make_pair(i, timestamp)); |
+ } |
+ } |
- QuicCongestionFeedbackFrame feedback; |
- feedback.type = kTCP; |
- feedback.tcp.receive_window = 256000; |
- |
- QuicFramer framer(SupportedVersions(version_), QuicTime::Zero(), false); |
+ QuicFramer framer(SupportedVersions(version_), timestamp, false); |
QuicFrames frames; |
frames.push_back(QuicFrame(&ack)); |
- if (send_feedback) { |
+ QuicCongestionFeedbackFrame feedback; |
+ if (send_feedback && version_ <= QUIC_VERSION_22) { |
+ feedback.type = kTCP; |
+ feedback.tcp.receive_window = 256000; |
frames.push_back(QuicFrame(&feedback)); |
} |