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

Side by Side Diff: net/quic/quic_framer.cc

Issue 908493004: Landing Recent QUIC Changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix valgrind error Created 5 years, 10 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 unified diff | Download patch
« no previous file with comments | « net/quic/quic_flags.cc ('k') | net/quic/quic_framer_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/quic/quic_framer.h" 5 #include "net/quic/quic_framer.h"
6 6
7 #include "base/containers/hash_tables.h" 7 #include "base/containers/hash_tables.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "net/quic/crypto/crypto_framer.h" 9 #include "net/quic/crypto/crypto_framer.h"
10 #include "net/quic/crypto/crypto_handshake_message.h" 10 #include "net/quic/crypto/crypto_handshake_message.h"
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 LOG(DFATAL) << "QUIC_INVALID_FRAME_DATA"; 403 LOG(DFATAL) << "QUIC_INVALID_FRAME_DATA";
404 return kNoPacket; 404 return kNoPacket;
405 } 405 }
406 } 406 }
407 407
408 // Save the length before writing, because take clears it. 408 // Save the length before writing, because take clears it.
409 const size_t len = writer.length(); 409 const size_t len = writer.length();
410 // Less than or equal because truncated acks end up with max_plaintex_size 410 // Less than or equal because truncated acks end up with max_plaintex_size
411 // length, even though they're typically slightly shorter. 411 // length, even though they're typically slightly shorter.
412 DCHECK_LE(len, packet_size); 412 DCHECK_LE(len, packet_size);
413 QuicPacket* packet = QuicPacket::NewDataPacket( 413 QuicPacket* packet = new QuicPacket(
414 writer.take(), len, true, header.public_header.connection_id_length, 414 writer.take(), len, true, header.public_header.connection_id_length,
415 header.public_header.version_flag, 415 header.public_header.version_flag,
416 header.public_header.sequence_number_length); 416 header.public_header.sequence_number_length);
417 417
418 if (fec_builder_) { 418 if (fec_builder_) {
419 fec_builder_->OnBuiltFecProtectedPayload(header, 419 fec_builder_->OnBuiltFecProtectedPayload(header,
420 packet->FecProtectedData()); 420 packet->FecProtectedData());
421 } 421 }
422 422
423 return SerializedPacket(header.packet_sequence_number, 423 return SerializedPacket(header.packet_sequence_number,
(...skipping 14 matching lines...) Expand all
438 if (!AppendPacketHeader(header, &writer)) { 438 if (!AppendPacketHeader(header, &writer)) {
439 LOG(DFATAL) << "AppendPacketHeader failed"; 439 LOG(DFATAL) << "AppendPacketHeader failed";
440 return kNoPacket; 440 return kNoPacket;
441 } 441 }
442 442
443 if (!writer.WriteBytes(fec.redundancy.data(), fec.redundancy.length())) { 443 if (!writer.WriteBytes(fec.redundancy.data(), fec.redundancy.length())) {
444 LOG(DFATAL) << "Failed to add FEC"; 444 LOG(DFATAL) << "Failed to add FEC";
445 return kNoPacket; 445 return kNoPacket;
446 } 446 }
447 447
448 return SerializedPacket( 448 SerializedPacket packet(
449 header.packet_sequence_number, 449 header.packet_sequence_number,
450 header.public_header.sequence_number_length, 450 header.public_header.sequence_number_length,
451 QuicPacket::NewFecPacket(writer.take(), len, true, 451 new QuicPacket(writer.take(), len, true,
452 header.public_header.connection_id_length, 452 header.public_header.connection_id_length,
453 header.public_header.version_flag, 453 header.public_header.version_flag,
454 header.public_header.sequence_number_length), 454 header.public_header.sequence_number_length),
455 GetPacketEntropyHash(header), nullptr); 455 GetPacketEntropyHash(header), nullptr);
456 packet.is_fec_packet = true;
457 return packet;
456 } 458 }
457 459
458 // static 460 // static
459 QuicEncryptedPacket* QuicFramer::BuildPublicResetPacket( 461 QuicEncryptedPacket* QuicFramer::BuildPublicResetPacket(
460 const QuicPublicResetPacket& packet) { 462 const QuicPublicResetPacket& packet) {
461 DCHECK(packet.public_header.reset_flag); 463 DCHECK(packet.public_header.reset_flag);
462 464
463 CryptoHandshakeMessage reset; 465 CryptoHandshakeMessage reset;
464 reset.set_tag(kPRST); 466 reset.set_tag(kPRST);
465 reset.SetValue(kRNON, packet.nonce_proof); 467 reset.SetValue(kRNON, packet.nonce_proof);
(...skipping 1746 matching lines...) Expand 10 before | Expand all | Expand 10 after
2212 2214
2213 bool QuicFramer::RaiseError(QuicErrorCode error) { 2215 bool QuicFramer::RaiseError(QuicErrorCode error) {
2214 DVLOG(1) << "Error detail: " << detailed_error_; 2216 DVLOG(1) << "Error detail: " << detailed_error_;
2215 set_error(error); 2217 set_error(error);
2216 visitor_->OnError(this); 2218 visitor_->OnError(this);
2217 reader_.reset(nullptr); 2219 reader_.reset(nullptr);
2218 return false; 2220 return false;
2219 } 2221 }
2220 2222
2221 } // namespace net 2223 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_flags.cc ('k') | net/quic/quic_framer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698