Index: net/quic/core/quic_connection.cc |
diff --git a/net/quic/core/quic_connection.cc b/net/quic/core/quic_connection.cc |
index 8cff7e0762acd3f92f0ec693495c1718d0b38160..b4b351d660c7787cd03f1bf78aa09258e20e4503 100644 |
--- a/net/quic/core/quic_connection.cc |
+++ b/net/quic/core/quic_connection.cc |
@@ -2054,8 +2054,13 @@ void QuicConnection::CloseConnection( |
SendConnectionClosePacket(error, error_details, NO_ACK); |
} |
- TearDownLocalConnectionState(error, error_details, |
- ConnectionCloseSource::FROM_SELF); |
+ ConnectionCloseSource source = ConnectionCloseSource::FROM_SELF; |
+ if (perspective_ == Perspective::IS_CLIENT && |
+ error == QUIC_CRYPTO_HANDSHAKE_STATELESS_REJECT) { |
+ // Regard stateless rejected connection as closed by server. |
+ source = ConnectionCloseSource::FROM_PEER; |
+ } |
+ TearDownLocalConnectionState(error, error_details, source); |
} |
void QuicConnection::SendConnectionClosePacket(QuicErrorCode error, |