Log handshake completion time in quic_connection_stats. Logging only.
PiperOrigin-RevId: 327442793
Change-Id: I7fbacca9e8231178e004032b48c3f935e903cc56
diff --git a/quic/core/http/end_to_end_test.cc b/quic/core/http/end_to_end_test.cc
index 4eb856e..cfb7671 100644
--- a/quic/core/http/end_to_end_test.cc
+++ b/quic/core/http/end_to_end_test.cc
@@ -785,6 +785,8 @@
}
server_thread_->Resume();
}
+ QuicConnectionStats client_stats = GetClientConnection()->GetStats();
+ EXPECT_TRUE(client_stats.handshake_completion_time.IsInitialized());
}
TEST_P(EndToEndTest, HandshakeConfirmed) {
diff --git a/quic/core/quic_connection_stats.h b/quic/core/quic_connection_stats.h
index a751f74..5a568e1 100644
--- a/quic/core/quic_connection_stats.h
+++ b/quic/core/quic_connection_stats.h
@@ -129,6 +129,9 @@
// Creation time, as reported by the QuicClock.
QuicTime connection_creation_time = QuicTime::Zero();
+ // Handshake completion time.
+ QuicTime handshake_completion_time = QuicTime::Zero();
+
uint64_t blocked_frames_received = 0;
uint64_t blocked_frames_sent = 0;
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 4098764..0f43d2f 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -1590,6 +1590,8 @@
case ENCRYPTION_FORWARD_SECURE:
QUIC_BUG_IF(!config_.negotiated())
<< ENDPOINT << "Handshake confirmed without parameter negotiation.";
+ connection()->mutable_stats().handshake_completion_time =
+ connection()->clock()->ApproximateNow();
break;
default:
QUIC_BUG << "Unknown encryption level: " << level;
@@ -1602,6 +1604,8 @@
<< ENDPOINT << "Handshake completes without cipher suite negotiation.";
QUIC_BUG_IF(!config_.negotiated())
<< ENDPOINT << "Handshake completes without parameter negotiation.";
+ connection()->mutable_stats().handshake_completion_time =
+ connection()->clock()->ApproximateNow();
if ((connection()->version().HasHandshakeDone() ||
config_.PeerSupportsHandshakeDone()) &&
perspective_ == Perspective::IS_SERVER) {