For loss detection tuning, if user agent is available, save it into quicsession. protected by --gfe2_reloadable_flag_quic_save_user_agent_in_quic_session.
PiperOrigin-RevId: 316688269
Change-Id: I2a25beeb081b38ae204a62c14459427341efa5e0
diff --git a/quic/core/tls_server_handshaker.cc b/quic/core/tls_server_handshaker.cc
index 057e86d..84ad6e1 100644
--- a/quic/core/tls_server_handshaker.cc
+++ b/quic/core/tls_server_handshaker.cc
@@ -299,6 +299,20 @@
return false;
}
ProcessAdditionalTransportParameters(client_params);
+ if (GetQuicReloadableFlag(quic_save_user_agent_in_quic_session) &&
+ !session()->user_agent_id().has_value()) {
+ QUIC_RELOADABLE_FLAG_COUNT_N(quic_save_user_agent_in_quic_session, 2, 3);
+
+ if (client_params.user_agent_id.has_value()) {
+ session()->SetUserAgentId(client_params.user_agent_id.value());
+ } else if (client_params.google_quic_params) {
+ quiche::QuicheStringPiece user_agent_id;
+ client_params.google_quic_params->GetStringPiece(kUAID, &user_agent_id);
+ if (!user_agent_id.empty()) {
+ session()->SetUserAgentId(user_agent_id.data());
+ }
+ }
+ }
return true;
}