Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1551)

Unified Diff: net/quic/quic_packet_creator.cc

Issue 1037403004: Land Recent QUIC Changes until 03/27/2015 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_packet_creator.h ('k') | net/quic/quic_packet_creator_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_packet_creator.cc
diff --git a/net/quic/quic_packet_creator.cc b/net/quic/quic_packet_creator.cc
index 3d6b7948d2c9c7d6ff7e2fffce845142b88e83ff..6fcc9012824675b79777c090773df8adb4b63615 100644
--- a/net/quic/quic_packet_creator.cc
+++ b/net/quic/quic_packet_creator.cc
@@ -76,12 +76,12 @@ QuicPacketCreator::QuicPacketCreator(QuicConnectionId connection_id,
should_fec_protect_(false),
fec_group_number_(0),
send_version_in_packet_(framer->perspective() == Perspective::IS_CLIENT),
- max_packet_length_(kDefaultMaxPacketSize),
max_packets_per_fec_group_(kDefaultMaxPacketsPerFecGroup),
connection_id_length_(PACKET_8BYTE_CONNECTION_ID),
next_sequence_number_length_(PACKET_1BYTE_SEQUENCE_NUMBER),
sequence_number_length_(next_sequence_number_length_),
packet_size_(0) {
+ SetMaxPacketLength(kDefaultMaxPacketSize);
framer_->set_fec_builder(this);
}
@@ -96,6 +96,19 @@ void QuicPacketCreator::OnBuiltFecProtectedPayload(
}
}
+void QuicPacketCreator::SetEncrypter(EncryptionLevel level,
+ QuicEncrypter* encrypter) {
+ framer_->SetEncrypter(level, encrypter);
+ max_plaintext_size_ = framer_->GetMaxPlaintextSize(max_packet_length_);
+}
+
+void QuicPacketCreator::SetMaxPacketLength(QuicByteCount length) {
+ // |max_packet_length_| should not be changed mid-packet or mid-FEC group.
+ DCHECK(fec_group_.get() == nullptr && queued_frames_.empty());
+ max_packet_length_ = length;
+ max_plaintext_size_ = framer_->GetMaxPlaintextSize(max_packet_length_);
+}
+
void QuicPacketCreator::set_max_packets_per_fec_group(
size_t max_packets_per_fec_group) {
max_packets_per_fec_group_ = max(kLowestMaxPacketsPerFecGroup,
@@ -329,11 +342,9 @@ size_t QuicPacketCreator::ExpansionOnNewFrame() const {
}
size_t QuicPacketCreator::BytesFree() const {
- const size_t max_plaintext_size =
- framer_->GetMaxPlaintextSize(max_packet_length_);
- DCHECK_GE(max_plaintext_size, PacketSize());
- return max_plaintext_size - min(max_plaintext_size, PacketSize()
- + ExpansionOnNewFrame());
+ DCHECK_GE(max_plaintext_size_, PacketSize());
+ return max_plaintext_size_ - min(max_plaintext_size_, PacketSize()
+ + ExpansionOnNewFrame());
}
size_t QuicPacketCreator::PacketSize() const {
@@ -363,14 +374,12 @@ SerializedPacket QuicPacketCreator::SerializePacket() {
MaybeAddPadding();
- size_t max_plaintext_size =
- framer_->GetMaxPlaintextSize(max_packet_length_);
- DCHECK_GE(max_plaintext_size, packet_size_);
+ DCHECK_GE(max_plaintext_size_, packet_size_);
// ACK Frames will be truncated due to length only if they're the only frame
- // in the packet, and if packet_size_ was set to max_plaintext_size. If
+ // in the packet, and if packet_size_ was set to max_plaintext_size_. If
// truncation due to length occurred, then GetSerializedFrameLength will have
// returned all bytes free.
- bool possibly_truncated_by_length = packet_size_ == max_plaintext_size &&
+ bool possibly_truncated_by_length = packet_size_ == max_plaintext_size_ &&
queued_frames_.size() == 1 &&
queued_frames_.back().type == ACK_FRAME;
char buffer[kMaxPacketSize];
« no previous file with comments | « net/quic/quic_packet_creator.h ('k') | net/quic/quic_packet_creator_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698