Index: net/quic/quic_connection.cc |
diff --git a/net/quic/quic_connection.cc b/net/quic/quic_connection.cc |
index f663111c2cdaf13369d6d438ac02004586c5511f..682a0a556d35b1a296def180be80da4b9156fb51 100644 |
--- a/net/quic/quic_connection.cc |
+++ b/net/quic/quic_connection.cc |
@@ -1615,6 +1615,16 @@ bool QuicConnection::WritePacket(QueuedPacket* packet) { |
} |
bool QuicConnection::WritePacketInner(QueuedPacket* packet) { |
+ if (FLAGS_quic_close_connection_out_of_order_sending && |
+ packet->serialized_packet.packet_number < |
+ sent_packet_manager_.largest_sent_packet()) { |
+ LOG(DFATAL) << "Attempt to write packet:" |
+ << packet->serialized_packet.packet_number |
+ << " after:" << sent_packet_manager_.largest_sent_packet(); |
+ SendConnectionCloseWithDetails(QUIC_INTERNAL_ERROR, |
+ "Packet written out of order."); |
+ return true; |
+ } |
if (ShouldDiscardPacket(*packet)) { |
++stats_.packets_discarded; |
return true; |