| 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 |