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

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

Issue 476023002: Land Recent QUIC Changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@Final_0814_2
Patch Set: Created 6 years, 4 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_protocol.h ('k') | net/quic/quic_sent_entropy_manager.h » ('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_protocol.h" 5 #include "net/quic/quic_protocol.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "net/quic/quic_utils.h" 8 #include "net/quic/quic_utils.h"
9 9
10 using base::StringPiece; 10 using base::StringPiece;
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 615
616 StringPiece QuicPacket::Plaintext() const { 616 StringPiece QuicPacket::Plaintext() const {
617 const size_t start_of_encrypted_data = 617 const size_t start_of_encrypted_data =
618 GetStartOfEncryptedData( 618 GetStartOfEncryptedData(
619 connection_id_length_, includes_version_, sequence_number_length_); 619 connection_id_length_, includes_version_, sequence_number_length_);
620 return StringPiece(data() + start_of_encrypted_data, 620 return StringPiece(data() + start_of_encrypted_data,
621 length() - start_of_encrypted_data); 621 length() - start_of_encrypted_data);
622 } 622 }
623 623
624 RetransmittableFrames::RetransmittableFrames() 624 RetransmittableFrames::RetransmittableFrames()
625 : encryption_level_(NUM_ENCRYPTION_LEVELS) { 625 : encryption_level_(NUM_ENCRYPTION_LEVELS),
626 has_crypto_handshake_(NOT_HANDSHAKE) {
626 } 627 }
627 628
628 RetransmittableFrames::~RetransmittableFrames() { 629 RetransmittableFrames::~RetransmittableFrames() {
629 for (QuicFrames::iterator it = frames_.begin(); it != frames_.end(); ++it) { 630 for (QuicFrames::iterator it = frames_.begin(); it != frames_.end(); ++it) {
630 switch (it->type) { 631 switch (it->type) {
631 case PADDING_FRAME: 632 case PADDING_FRAME:
632 delete it->padding_frame; 633 delete it->padding_frame;
633 break; 634 break;
634 case STREAM_FRAME: 635 case STREAM_FRAME:
635 delete it->stream_frame; 636 delete it->stream_frame;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 671
671 const QuicFrame& RetransmittableFrames::AddStreamFrame( 672 const QuicFrame& RetransmittableFrames::AddStreamFrame(
672 QuicStreamFrame* stream_frame) { 673 QuicStreamFrame* stream_frame) {
673 // Make an owned copy of the stream frame's data. 674 // Make an owned copy of the stream frame's data.
674 stream_data_.push_back(stream_frame->GetDataAsString()); 675 stream_data_.push_back(stream_frame->GetDataAsString());
675 // Ensure the stream frame's IOVector points to the owned copy of the data. 676 // Ensure the stream frame's IOVector points to the owned copy of the data.
676 stream_frame->data.Clear(); 677 stream_frame->data.Clear();
677 stream_frame->data.Append(const_cast<char*>(stream_data_.back()->data()), 678 stream_frame->data.Append(const_cast<char*>(stream_data_.back()->data()),
678 stream_data_.back()->size()); 679 stream_data_.back()->size());
679 frames_.push_back(QuicFrame(stream_frame)); 680 frames_.push_back(QuicFrame(stream_frame));
681 if (stream_frame->stream_id == kCryptoStreamId) {
682 has_crypto_handshake_ = IS_HANDSHAKE;
683 }
680 return frames_.back(); 684 return frames_.back();
681 } 685 }
682 686
683 const QuicFrame& RetransmittableFrames::AddNonStreamFrame( 687 const QuicFrame& RetransmittableFrames::AddNonStreamFrame(
684 const QuicFrame& frame) { 688 const QuicFrame& frame) {
685 DCHECK_NE(frame.type, STREAM_FRAME); 689 DCHECK_NE(frame.type, STREAM_FRAME);
686 frames_.push_back(frame); 690 frames_.push_back(frame);
687 return frames_.back(); 691 return frames_.back();
688 } 692 }
689 693
690 IsHandshake RetransmittableFrames::HasCryptoHandshake() const {
691 for (size_t i = 0; i < frames().size(); ++i) {
692 if (frames()[i].type == STREAM_FRAME &&
693 frames()[i].stream_frame->stream_id == kCryptoStreamId) {
694 return IS_HANDSHAKE;
695 }
696 }
697 return NOT_HANDSHAKE;
698 }
699
700 void RetransmittableFrames::set_encryption_level(EncryptionLevel level) { 694 void RetransmittableFrames::set_encryption_level(EncryptionLevel level) {
701 encryption_level_ = level; 695 encryption_level_ = level;
702 } 696 }
703 697
704 SerializedPacket::SerializedPacket( 698 SerializedPacket::SerializedPacket(
705 QuicPacketSequenceNumber sequence_number, 699 QuicPacketSequenceNumber sequence_number,
706 QuicSequenceNumberLength sequence_number_length, 700 QuicSequenceNumberLength sequence_number_length,
707 QuicPacket* packet, 701 QuicPacket* packet,
708 QuicPacketEntropyHash entropy_hash, 702 QuicPacketEntropyHash entropy_hash,
709 RetransmittableFrames* retransmittable_frames) 703 RetransmittableFrames* retransmittable_frames)
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 sent_time(QuicTime::Zero()), 757 sent_time(QuicTime::Zero()),
764 bytes_sent(0), 758 bytes_sent(0),
765 nack_count(0), 759 nack_count(0),
766 transmission_type(transmission_type), 760 transmission_type(transmission_type),
767 all_transmissions(all_transmissions), 761 all_transmissions(all_transmissions),
768 in_flight(false) { 762 in_flight(false) {
769 all_transmissions->insert(sequence_number); 763 all_transmissions->insert(sequence_number);
770 } 764 }
771 765
772 } // namespace net 766 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_protocol.h ('k') | net/quic/quic_sent_entropy_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698