X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fnet%2Fquic%2Fquic_fec_group.cc;h=344f21679ec1f9b4bd50036e766ce970dd2e7648;hb=004985e17e624662a4c85c76a7654039dc83f028;hp=aac272fb57bfa3a0eeba06c3fd0c4e01ec6cc49e;hpb=2f108dbacb161091e42a3479f4e171339b7e7623;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/net/quic/quic_fec_group.cc b/src/net/quic/quic_fec_group.cc index aac272f..344f216 100644 --- a/src/net/quic/quic_fec_group.cc +++ b/src/net/quic/quic_fec_group.cc @@ -22,12 +22,14 @@ const QuicPacketSequenceNumber kNoSequenceNumber = kuint64max; QuicFecGroup::QuicFecGroup() : min_protected_packet_(kNoSequenceNumber), max_protected_packet_(kNoSequenceNumber), - payload_parity_len_(0) { + payload_parity_len_(0), + effective_encryption_level_(NUM_ENCRYPTION_LEVELS) { } QuicFecGroup::~QuicFecGroup() {} -bool QuicFecGroup::Update(const QuicPacketHeader& header, +bool QuicFecGroup::Update(EncryptionLevel encryption_level, + const QuicPacketHeader& header, StringPiece decrypted_payload) { if (received_packets_.count(header.packet_sequence_number) != 0) { return false; @@ -44,10 +46,14 @@ bool QuicFecGroup::Update(const QuicPacketHeader& header, return false; } received_packets_.insert(header.packet_sequence_number); + if (encryption_level < effective_encryption_level_) { + effective_encryption_level_ = encryption_level; + } return true; } bool QuicFecGroup::UpdateFec( + EncryptionLevel encryption_level, QuicPacketSequenceNumber fec_packet_sequence_number, const QuicFecData& fec) { if (min_protected_packet_ != kNoSequenceNumber) { @@ -66,6 +72,9 @@ bool QuicFecGroup::UpdateFec( } min_protected_packet_ = fec.fec_group; max_protected_packet_ = fec_packet_sequence_number - 1; + if (encryption_level < effective_encryption_level_) { + effective_encryption_level_ = encryption_level; + } return true; }