| Index: net/tools/quic/quic_time_wait_list_manager.h
|
| diff --git a/net/tools/quic/quic_time_wait_list_manager.h b/net/tools/quic/quic_time_wait_list_manager.h
|
| index 092f11657b7015fe5e6f2960c5edc4cebeb9e16f..e36d8662b67e0bcbfbf97a65dd24d658914f36d5 100644
|
| --- a/net/tools/quic/quic_time_wait_list_manager.h
|
| +++ b/net/tools/quic/quic_time_wait_list_manager.h
|
| @@ -48,23 +48,18 @@ class QuicTimeWaitListManager : public QuicBlockedWriterInterface {
|
| ~QuicTimeWaitListManager() override;
|
|
|
| // Adds the given connection_id to time wait state for time_wait_period_.
|
| - // Henceforth, any packet bearing this connection_id should not be processed
|
| - // while the connection_id remains in this list. If a non-nullptr
|
| - // |close_packet| is provided, the TimeWaitListManager takes ownership of it
|
| - // and sends it again when packets are received for added connection_ids. If
|
| - // nullptr, a public reset packet is sent with the specified |version|.
|
| - // DCHECKs that connection_id is not already on the list. "virtual" to
|
| - // override in tests. If "connection_rejected_statelessly" is true, it means
|
| - // that the connection was closed due to a stateless reject, and no close
|
| - // packet is expected. Any packets that are received for connection_id will
|
| - // be black-holed.
|
| - // TODO(jokulik): In the future, we plan send (redundant) SREJ packets back to
|
| - // the client in response to stray data-packets that arrive after the first
|
| - // SREJ. This requires some new plumbing, so we black-hole for now.
|
| - virtual void AddConnectionIdToTimeWait(QuicConnectionId connection_id,
|
| - QuicVersion version,
|
| - bool connection_rejected_statelessly,
|
| - QuicEncryptedPacket* close_packet);
|
| + // If |termination_packets| are provided, copies of these packets will be sent
|
| + // when a packet with this connection ID is processed. If no termination
|
| + // packets are provided, then a PUBLIC_RESET will be sent with the specified
|
| + // |version|. Any termination packets will be move from |termination_packets|
|
| + // and will become owned by the manager. If |connection_rejected_statelessly|
|
| + // is true, it means that the connection was closed due to a stateless reject,
|
| + // and termination packets are expected.
|
| + virtual void AddConnectionIdToTimeWait(
|
| + QuicConnectionId connection_id,
|
| + QuicVersion version,
|
| + bool connection_rejected_statelessly,
|
| + std::vector<QuicEncryptedPacket*>* termination_packets);
|
|
|
| // Returns true if the connection_id is in time wait state, false otherwise.
|
| // Packets received for this connection_id should not lead to creation of new
|
| @@ -151,17 +146,15 @@ class QuicTimeWaitListManager : public QuicBlockedWriterInterface {
|
| ConnectionIdData(int num_packets_,
|
| QuicVersion version_,
|
| QuicTime time_added_,
|
| - QuicEncryptedPacket* close_packet,
|
| - bool connection_rejected_statelessly)
|
| - : num_packets(num_packets_),
|
| - version(version_),
|
| - time_added(time_added_),
|
| - close_packet(close_packet),
|
| - connection_rejected_statelessly(connection_rejected_statelessly) {}
|
| + bool connection_rejected_statelessly);
|
| +
|
| + ~ConnectionIdData();
|
| +
|
| int num_packets;
|
| QuicVersion version;
|
| QuicTime time_added;
|
| - QuicEncryptedPacket* close_packet;
|
| + // These packets may contain CONNECTION_CLOSE frames, or SREJ messages.
|
| + std::vector<QuicEncryptedPacket*> termination_packets;
|
| bool connection_rejected_statelessly;
|
| };
|
|
|
|
|