Support token based address validation in IETF QUIC.
Protected by FLAGS_quic_reloadable_flag_quic_enable_token_based_address_validation.
PiperOrigin-RevId: 346305075
Change-Id: I65c7ad821518b1c33c96018928cad03f010056f8
diff --git a/quic/core/tls_client_handshaker.h b/quic/core/tls_client_handshaker.h
index aadfa0b..47ed09c 100644
--- a/quic/core/tls_client_handshaker.h
+++ b/quic/core/tls_client_handshaker.h
@@ -28,6 +28,7 @@
public QuicCryptoClientStream::HandshakerInterface,
public TlsClientConnection::Delegate {
public:
+ // |crypto_config| must outlive TlsClientHandshaker.
TlsClientHandshaker(const QuicServerId& server_id,
QuicCryptoStream* stream,
QuicSession* session,
@@ -67,6 +68,7 @@
void OnConnectionClosed(QuicErrorCode error,
ConnectionCloseSource source) override;
void OnHandshakeDoneReceived() override;
+ void OnNewTokenReceived(absl::string_view token) override;
void SetWriteSecret(EncryptionLevel level,
const SSL_CIPHER* cipher,
const std::vector<uint8_t>& write_secret) override;
@@ -152,6 +154,8 @@
// will always be non-null if a 0-RTT resumption is attempted.
std::unique_ptr<QuicResumptionState> cached_state_;
+ QuicCryptoClientConfig* crypto_config_; // Not owned.
+
TlsClientConnection tls_connection_;
// If |has_application_state_|, stores the tls session tickets before