OLD | NEW |
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_packet_creator.h" | 5 #include "net/quic/quic_packet_creator.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "net/quic/crypto/quic_random.h" | 9 #include "net/quic/crypto/quic_random.h" |
10 #include "net/quic/quic_ack_notifier.h" | 10 #include "net/quic/quic_ack_notifier.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 QuicPacketCreator::QuicPacketCreator(QuicConnectionId connection_id, | 68 QuicPacketCreator::QuicPacketCreator(QuicConnectionId connection_id, |
69 QuicFramer* framer, | 69 QuicFramer* framer, |
70 QuicRandom* random_generator) | 70 QuicRandom* random_generator) |
71 : connection_id_(connection_id), | 71 : connection_id_(connection_id), |
72 encryption_level_(ENCRYPTION_NONE), | 72 encryption_level_(ENCRYPTION_NONE), |
73 framer_(framer), | 73 framer_(framer), |
74 random_bool_source_(new QuicRandomBoolSource(random_generator)), | 74 random_bool_source_(new QuicRandomBoolSource(random_generator)), |
75 sequence_number_(0), | 75 sequence_number_(0), |
76 should_fec_protect_(false), | 76 should_fec_protect_(false), |
77 fec_group_number_(0), | 77 fec_group_number_(0), |
78 send_version_in_packet_(!framer->is_server()), | 78 send_version_in_packet_(framer->perspective() == Perspective::IS_CLIENT), |
79 max_packet_length_(kDefaultMaxPacketSize), | 79 max_packet_length_(kDefaultMaxPacketSize), |
80 max_packets_per_fec_group_(kDefaultMaxPacketsPerFecGroup), | 80 max_packets_per_fec_group_(kDefaultMaxPacketsPerFecGroup), |
81 connection_id_length_(PACKET_8BYTE_CONNECTION_ID), | 81 connection_id_length_(PACKET_8BYTE_CONNECTION_ID), |
82 next_sequence_number_length_(PACKET_1BYTE_SEQUENCE_NUMBER), | 82 next_sequence_number_length_(PACKET_1BYTE_SEQUENCE_NUMBER), |
83 sequence_number_length_(next_sequence_number_length_), | 83 sequence_number_length_(next_sequence_number_length_), |
84 packet_size_(0) { | 84 packet_size_(0) { |
85 framer_->set_fec_builder(this); | 85 framer_->set_fec_builder(this); |
86 } | 86 } |
87 | 87 |
88 QuicPacketCreator::~QuicPacketCreator() { | 88 QuicPacketCreator::~QuicPacketCreator() { |
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 SerializedPacket serialized( | 445 SerializedPacket serialized( |
446 header.packet_sequence_number, | 446 header.packet_sequence_number, |
447 header.public_header.sequence_number_length, encrypted, | 447 header.public_header.sequence_number_length, encrypted, |
448 QuicFramer::GetPacketEntropyHash(header), nullptr); | 448 QuicFramer::GetPacketEntropyHash(header), nullptr); |
449 serialized.is_fec_packet = true; | 449 serialized.is_fec_packet = true; |
450 return serialized; | 450 return serialized; |
451 } | 451 } |
452 | 452 |
453 QuicEncryptedPacket* QuicPacketCreator::SerializeVersionNegotiationPacket( | 453 QuicEncryptedPacket* QuicPacketCreator::SerializeVersionNegotiationPacket( |
454 const QuicVersionVector& supported_versions) { | 454 const QuicVersionVector& supported_versions) { |
455 DCHECK(framer_->is_server()); | 455 DCHECK_EQ(Perspective::IS_SERVER, framer_->perspective()); |
456 QuicPacketPublicHeader header; | 456 QuicPacketPublicHeader header; |
457 header.connection_id = connection_id_; | 457 header.connection_id = connection_id_; |
458 header.reset_flag = false; | 458 header.reset_flag = false; |
459 header.version_flag = true; | 459 header.version_flag = true; |
460 header.versions = supported_versions; | 460 header.versions = supported_versions; |
461 QuicEncryptedPacket* encrypted = | 461 QuicEncryptedPacket* encrypted = |
462 framer_->BuildVersionNegotiationPacket(header, supported_versions); | 462 framer_->BuildVersionNegotiationPacket(header, supported_versions); |
463 DCHECK(encrypted); | 463 DCHECK(encrypted); |
464 DCHECK_GE(max_packet_length_, encrypted->length()); | 464 DCHECK_GE(max_packet_length_, encrypted->length()); |
465 return encrypted; | 465 return encrypted; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
548 if (!is_handshake) { | 548 if (!is_handshake) { |
549 return; | 549 return; |
550 } | 550 } |
551 | 551 |
552 QuicPaddingFrame padding; | 552 QuicPaddingFrame padding; |
553 bool success = AddFrame(QuicFrame(&padding), false); | 553 bool success = AddFrame(QuicFrame(&padding), false); |
554 DCHECK(success); | 554 DCHECK(success); |
555 } | 555 } |
556 | 556 |
557 } // namespace net | 557 } // namespace net |
OLD | NEW |