| Index: net/quic/quic_protocol.cc
|
| diff --git a/net/quic/quic_protocol.cc b/net/quic/quic_protocol.cc
|
| index c241f4e91918fbd7937ea98568b37314bd063366..762523a41b02f72491a3cb1bf892290f87178f2a 100644
|
| --- a/net/quic/quic_protocol.cc
|
| +++ b/net/quic/quic_protocol.cc
|
| @@ -142,6 +142,10 @@ QuicTag QuicVersionToQuicTag(const QuicVersion version) {
|
| return MakeQuicTag('Q', '0', '2', '7');
|
| case QUIC_VERSION_28:
|
| return MakeQuicTag('Q', '0', '2', '8');
|
| + case QUIC_VERSION_29:
|
| + return MakeQuicTag('Q', '0', '2', '9');
|
| + case QUIC_VERSION_30:
|
| + return MakeQuicTag('Q', '0', '3', '0');
|
| default:
|
| // This shold be an ERROR because we should never attempt to convert an
|
| // invalid QuicVersion to be written to the wire.
|
| @@ -172,6 +176,8 @@ string QuicVersionToString(const QuicVersion version) {
|
| RETURN_STRING_LITERAL(QUIC_VERSION_26);
|
| RETURN_STRING_LITERAL(QUIC_VERSION_27);
|
| RETURN_STRING_LITERAL(QUIC_VERSION_28);
|
| + RETURN_STRING_LITERAL(QUIC_VERSION_29);
|
| + RETURN_STRING_LITERAL(QUIC_VERSION_30);
|
| default:
|
| return "QUIC_VERSION_UNSUPPORTED";
|
| }
|
| @@ -235,7 +241,8 @@ QuicAckFrame::QuicAckFrame()
|
| : entropy_hash(0),
|
| is_truncated(false),
|
| largest_observed(0),
|
| - delta_time_largest_observed(QuicTime::Delta::Infinite()) {}
|
| + delta_time_largest_observed(QuicTime::Delta::Infinite()),
|
| + latest_revived_packet(0) {}
|
|
|
| QuicAckFrame::~QuicAckFrame() {}
|
|
|
| @@ -468,13 +475,9 @@ ostream& operator<<(ostream& os, const QuicAckFrame& ack_frame) {
|
| << " delta_time_largest_observed: "
|
| << ack_frame.delta_time_largest_observed.ToMicroseconds()
|
| << " missing_packets: [ " << ack_frame.missing_packets
|
| - << " ] is_truncated: " << ack_frame.is_truncated;
|
| - os << " revived_packets: [ ";
|
| - for (PacketNumberSet::const_iterator it = ack_frame.revived_packets.begin();
|
| - it != ack_frame.revived_packets.end(); ++it) {
|
| - os << *it << " ";
|
| - }
|
| - os << " ] received_packets: [ ";
|
| + << " ] is_truncated: " << ack_frame.is_truncated
|
| + << " revived_packet: " << ack_frame.latest_revived_packet
|
| + << " received_packets: [ ";
|
| for (const std::pair<QuicPacketNumber, QuicTime>& p :
|
| ack_frame.received_packet_times) {
|
| os << p.first << " at " << p.second.ToDebuggingValue() << " ";
|
| @@ -775,6 +778,26 @@ SerializedPacket::SerializedPacket(
|
| has_ack(has_ack),
|
| has_stop_waiting(has_stop_waiting) {}
|
|
|
| +SerializedPacket::SerializedPacket(
|
| + QuicPacketNumber packet_number,
|
| + QuicPacketNumberLength packet_number_length,
|
| + char* encrypted_buffer,
|
| + size_t encrypted_length,
|
| + bool owns_buffer,
|
| + QuicPacketEntropyHash entropy_hash,
|
| + RetransmittableFrames* retransmittable_frames,
|
| + bool has_ack,
|
| + bool has_stop_waiting)
|
| + : SerializedPacket(packet_number,
|
| + packet_number_length,
|
| + new QuicEncryptedPacket(encrypted_buffer,
|
| + encrypted_length,
|
| + owns_buffer),
|
| + entropy_hash,
|
| + retransmittable_frames,
|
| + has_ack,
|
| + has_stop_waiting) {}
|
| +
|
| SerializedPacket::~SerializedPacket() {}
|
|
|
| QuicEncryptedPacket* QuicEncryptedPacket::Clone() const {
|
|
|