| Index: net/quic/quic_packet_creator.cc
|
| diff --git a/net/quic/quic_packet_creator.cc b/net/quic/quic_packet_creator.cc
|
| index d9d6c405675ba85f96006703b8533b27f75954b3..769434decc2207f3ca5fbba5aee260ecd5597dac 100644
|
| --- a/net/quic/quic_packet_creator.cc
|
| +++ b/net/quic/quic_packet_creator.cc
|
| @@ -34,7 +34,14 @@ void QuicPacketCreator::OnBuiltFecProtectedPayload(
|
| }
|
| }
|
|
|
| -QuicPacketCreator::PacketPair QuicPacketCreator::SerializeFrames(
|
| +PacketPair QuicPacketCreator::SerializeAllFrames(const QuicFrames& frames) {
|
| + size_t num_serialized;
|
| + PacketPair pair = SerializeFrames(frames, &num_serialized);
|
| + DCHECK_EQ(frames.size(), num_serialized);
|
| + return pair;
|
| +}
|
| +
|
| +PacketPair QuicPacketCreator::SerializeFrames(
|
| const QuicFrames& frames, size_t* num_serialized) {
|
| QuicPacketHeader header;
|
| FillPacketHeader(0, PACKET_FLAGS_NONE, &header);
|
| @@ -48,7 +55,8 @@ size_t QuicPacketCreator::DataToStream(QuicStreamId id,
|
| StringPiece data,
|
| QuicStreamOffset offset,
|
| bool fin,
|
| - vector<PacketPair>* packets) {
|
| + vector<PacketPair>* packets,
|
| + QuicFrames* packetized_frames) {
|
| DCHECK_GT(options_.max_packet_length,
|
| QuicUtils::StreamFramePacketOverhead(1));
|
| DCHECK_LT(0u, options_.max_num_packets);
|
| @@ -89,8 +97,9 @@ size_t QuicPacketCreator::DataToStream(QuicStreamId id,
|
| StringPiece data_frame(data.data() + data.size() - unconsumed_bytes,
|
| frame_len);
|
|
|
| - QuicStreamFrame frame(id, set_fin, offset, data_frame);
|
| - frames.push_back(QuicFrame(&frame));
|
| + QuicStreamFrame* frame = new QuicStreamFrame(
|
| + id, set_fin, offset, data_frame);
|
| + frames.push_back(QuicFrame(frame));
|
| FillPacketHeader(current_fec_group, PACKET_FLAGS_NONE, &header);
|
| offset += frame_len;
|
| unconsumed_bytes -= frame_len;
|
| @@ -100,6 +109,7 @@ size_t QuicPacketCreator::DataToStream(QuicStreamId id,
|
| DCHECK(packet);
|
| DCHECK_GE(options_.max_packet_length, packet->length());
|
| packets->push_back(make_pair(header.packet_sequence_number, packet));
|
| + packetized_frames->push_back(frames[0]);
|
| frames.clear();
|
| }
|
| // If we haven't finished serializing all the data, don't set any final fin.
|
| @@ -111,11 +121,13 @@ size_t QuicPacketCreator::DataToStream(QuicStreamId id,
|
| // Create a new packet for the fin, if necessary.
|
| if (fin && data.size() == 0) {
|
| FillPacketHeader(current_fec_group, PACKET_FLAGS_NONE, &header);
|
| - QuicStreamFrame frame(id, true, offset, "");
|
| - frames.push_back(QuicFrame(&frame));
|
| + QuicStreamFrame* frame = new QuicStreamFrame(id, true, offset, "");
|
| + frames.push_back(QuicFrame(frame));
|
| packet = framer_->ConstructFrameDataPacket(header, frames);
|
| DCHECK(packet);
|
| + DCHECK_GE(options_.max_packet_length, packet->length());
|
| packets->push_back(make_pair(header.packet_sequence_number, packet));
|
| + packetized_frames->push_back(frames[0]);
|
| frames.clear();
|
| }
|
|
|
| @@ -125,6 +137,7 @@ size_t QuicPacketCreator::DataToStream(QuicStreamId id,
|
| fec_data.redundancy = fec_group_->parity();
|
| QuicPacket* fec_packet = framer_->ConstructFecPacket(header, fec_data);
|
| DCHECK(fec_packet);
|
| + DCHECK_GE(options_.max_packet_length, packet->length());
|
| packets->push_back(make_pair(header.packet_sequence_number, fec_packet));
|
| ++fec_group_number_;
|
| }
|
| @@ -150,22 +163,6 @@ size_t QuicPacketCreator::DataToStream(QuicStreamId id,
|
| return data.size() - unconsumed_bytes;
|
| }
|
|
|
| -QuicPacketCreator::PacketPair QuicPacketCreator::ResetStream(
|
| - QuicStreamId id,
|
| - QuicStreamOffset offset,
|
| - QuicErrorCode error) {
|
| - QuicPacketHeader header;
|
| - FillPacketHeader(0, PACKET_FLAGS_NONE, &header);
|
| -
|
| - QuicRstStreamFrame close_frame(id, offset, error);
|
| -
|
| - QuicFrames frames;
|
| - frames.push_back(QuicFrame(&close_frame));
|
| - QuicPacket* packet = framer_->ConstructFrameDataPacket(header, frames);
|
| - DCHECK(packet);
|
| - return make_pair(header.packet_sequence_number, packet);
|
| -}
|
| -
|
| QuicPacketCreator::PacketPair QuicPacketCreator::CloseConnection(
|
| QuicConnectionCloseFrame* close_frame) {
|
|
|
| @@ -179,13 +176,6 @@ QuicPacketCreator::PacketPair QuicPacketCreator::CloseConnection(
|
| return make_pair(header.packet_sequence_number, packet);
|
| }
|
|
|
| -QuicPacketSequenceNumber QuicPacketCreator::SetNewSequenceNumber(
|
| - QuicPacket* packet) {
|
| - ++sequence_number_;
|
| - framer_->WriteSequenceNumber(sequence_number_, packet);
|
| - return sequence_number_;
|
| -}
|
| -
|
| void QuicPacketCreator::FillPacketHeader(QuicFecGroupNumber fec_group,
|
| QuicPacketFlags flags,
|
| QuicPacketHeader* header) {
|
|
|