Index: net/quic/quic_connection.cc |
=================================================================== |
--- net/quic/quic_connection.cc (revision 268584) |
+++ net/quic/quic_connection.cc (working copy) |
@@ -504,7 +504,7 @@ |
DCHECK_NE(0u, last_header_.fec_group); |
QuicFecGroup* group = GetFecGroup(); |
if (group != NULL) { |
- group->Update(last_header_, payload); |
+ group->Update(last_decrypted_packet_level_, last_header_, payload); |
} |
} |
@@ -714,7 +714,8 @@ |
DCHECK_NE(0u, last_header_.fec_group); |
QuicFecGroup* group = GetFecGroup(); |
if (group != NULL) { |
- group->UpdateFec(last_header_.packet_sequence_number, fec); |
+ group->UpdateFec(last_decrypted_packet_level_, |
+ last_header_.packet_sequence_number, fec); |
} |
} |
@@ -1625,6 +1626,7 @@ |
void QuicConnection::SetDefaultEncryptionLevel(EncryptionLevel level) { |
encryption_level_ = level; |
+ packet_creator_.set_encryption_level(level); |
} |
void QuicConnection::SetDecrypter(QuicDecrypter* decrypter, |
@@ -1698,6 +1700,8 @@ |
revived_header.is_in_fec_group = NOT_IN_FEC_GROUP; |
revived_header.fec_group = 0; |
group_map_.erase(last_header_.fec_group); |
+ last_decrypted_packet_level_ = group->effective_encryption_level(); |
+ DCHECK_LT(last_decrypted_packet_level_, NUM_ENCRYPTION_LEVELS); |
delete group; |
last_packet_revived_ = true; |