| Index: net/quic/core/quic_crypto_server_stream.cc
|
| diff --git a/net/quic/core/quic_crypto_server_stream.cc b/net/quic/core/quic_crypto_server_stream.cc
|
| index d45cccd90adbfc27d846accf4190597d08ec094f..6912d2f88364c80a14ac237c6cc1392033d90f94 100644
|
| --- a/net/quic/core/quic_crypto_server_stream.cc
|
| +++ b/net/quic/core/quic_crypto_server_stream.cc
|
| @@ -97,6 +97,7 @@ QuicCryptoServerStream::QuicCryptoServerStream(
|
| use_stateless_rejects_if_peer_supported_(
|
| use_stateless_rejects_if_peer_supported),
|
| peer_supports_stateless_rejects_(false),
|
| + zero_rtt_attempted_(false),
|
| chlo_packet_size_(0),
|
| validate_client_hello_cb_(nullptr),
|
| process_client_hello_cb_(nullptr) {
|
| @@ -373,6 +374,10 @@ bool QuicCryptoServerStream::PeerSupportsStatelessRejects() const {
|
| return peer_supports_stateless_rejects_;
|
| }
|
|
|
| +bool QuicCryptoServerStream::ZeroRttAttempted() const {
|
| + return zero_rtt_attempted_;
|
| +}
|
| +
|
| void QuicCryptoServerStream::SetPeerSupportsStatelessRejects(
|
| bool peer_supports_stateless_rejects) {
|
| peer_supports_stateless_rejects_ = peer_supports_stateless_rejects;
|
| @@ -413,10 +418,16 @@ void QuicCryptoServerStream::ProcessClientHello(
|
| nullptr);
|
| return;
|
| }
|
| -
|
| if (!result->info.server_nonce.empty()) {
|
| ++num_handshake_messages_with_server_nonces_;
|
| }
|
| +
|
| + if (num_handshake_messages_ == 1) {
|
| + // Client attempts zero RTT handshake by sending a non-inchoate CHLO.
|
| + QuicStringPiece public_value;
|
| + zero_rtt_attempted_ = message.GetStringPiece(kPUBS, &public_value);
|
| + }
|
| +
|
| // Store the bandwidth estimate from the client.
|
| if (result->cached_network_params.bandwidth_estimate_bytes_per_second() > 0) {
|
| previous_cached_network_params_.reset(
|
|
|