Internal change
PiperOrigin-RevId: 407122402
diff --git a/quic/core/http/quic_spdy_session_test.cc b/quic/core/http/quic_spdy_session_test.cc
index 23611b3..20cebee 100644
--- a/quic/core/http/quic_spdy_session_test.cc
+++ b/quic/core/http/quic_spdy_session_test.cc
@@ -177,6 +177,11 @@
bool ValidateAddressToken(absl::string_view /*token*/) const override {
return true;
}
+ const CachedNetworkParameters* PreviousCachedNetworkParams() const override {
+ return nullptr;
+ }
+ void SetPreviousCachedNetworkParams(
+ CachedNetworkParameters /*cached_network_params*/) override {}
MOCK_METHOD(void, OnCanWrite, (), (override));
diff --git a/quic/core/http/quic_spdy_stream_test.cc b/quic/core/http/quic_spdy_stream_test.cc
index 50dc9ea..ce48043 100644
--- a/quic/core/http/quic_spdy_stream_test.cc
+++ b/quic/core/http/quic_spdy_stream_test.cc
@@ -161,6 +161,11 @@
bool ValidateAddressToken(absl::string_view /*token*/) const override {
return true;
}
+ const CachedNetworkParameters* PreviousCachedNetworkParams() const override {
+ return nullptr;
+ }
+ void SetPreviousCachedNetworkParams(
+ CachedNetworkParameters /*cached_network_params*/) override {}
MOCK_METHOD(void, OnCanWrite, (), (override));
diff --git a/quic/core/quic_crypto_client_stream.cc b/quic/core/quic_crypto_client_stream.cc
index fe6471f..31d96a3 100644
--- a/quic/core/quic_crypto_client_stream.cc
+++ b/quic/core/quic_crypto_client_stream.cc
@@ -160,17 +160,6 @@
handshaker_->OnNewTokenReceived(token);
}
-std::string QuicCryptoClientStream::GetAddressToken() const {
- QUICHE_DCHECK(false);
- return "";
-}
-
-bool QuicCryptoClientStream::ValidateAddressToken(
- absl::string_view /*token*/) const {
- QUICHE_DCHECK(false);
- return false;
-}
-
void QuicCryptoClientStream::SetServerApplicationStateForResumption(
std::unique_ptr<ApplicationState> application_state) {
handshaker_->SetServerApplicationStateForResumption(
diff --git a/quic/core/quic_crypto_client_stream.h b/quic/core/quic_crypto_client_stream.h
index daea001..688d603 100644
--- a/quic/core/quic_crypto_client_stream.h
+++ b/quic/core/quic_crypto_client_stream.h
@@ -11,6 +11,7 @@
#include "quic/core/crypto/proof_verifier.h"
#include "quic/core/crypto/quic_crypto_client_config.h"
+#include "quic/core/proto/cached_network_parameters_proto.h"
#include "quic/core/quic_config.h"
#include "quic/core/quic_crypto_handshaker.h"
#include "quic/core/quic_crypto_stream.h"
@@ -73,6 +74,26 @@
QUICHE_NOTREACHED();
return false;
}
+
+ std::string GetAddressToken() const override {
+ QUICHE_DCHECK(false);
+ return "";
+ }
+
+ bool ValidateAddressToken(absl::string_view /*token*/) const override {
+ QUICHE_DCHECK(false);
+ return false;
+ }
+
+ const CachedNetworkParameters* PreviousCachedNetworkParams() const override {
+ QUICHE_DCHECK(false);
+ return nullptr;
+ }
+
+ void SetPreviousCachedNetworkParams(
+ CachedNetworkParameters /*cached_network_params*/) override {
+ QUICHE_DCHECK(false);
+ }
};
class QUIC_EXPORT_PRIVATE QuicCryptoClientStream
@@ -257,8 +278,6 @@
ConnectionCloseSource source) override;
void OnHandshakeDoneReceived() override;
void OnNewTokenReceived(absl::string_view token) override;
- std::string GetAddressToken() const override;
- bool ValidateAddressToken(absl::string_view token) const override;
HandshakeState GetHandshakeState() const override;
void SetServerApplicationStateForResumption(
std::unique_ptr<ApplicationState> application_state) override;
diff --git a/quic/core/quic_crypto_server_stream_base.h b/quic/core/quic_crypto_server_stream_base.h
index 967d6d1..0a2a63e 100644
--- a/quic/core/quic_crypto_server_stream_base.h
+++ b/quic/core/quic_crypto_server_stream_base.h
@@ -73,11 +73,6 @@
// the resumption actually occurred.
virtual bool ResumptionAttempted() const = 0;
- virtual const CachedNetworkParameters* PreviousCachedNetworkParams()
- const = 0;
- virtual void SetPreviousCachedNetworkParams(
- CachedNetworkParameters cached_network_params) = 0;
-
// NOTE: Indicating that the Expect-CT header should be sent here presents
// a layering violation to some extent. The Expect-CT header only applies to
// HTTP connections, while this class can be used for non-HTTP applications.
diff --git a/quic/core/quic_crypto_stream.h b/quic/core/quic_crypto_stream.h
index 8206f35..056186a 100644
--- a/quic/core/quic_crypto_stream.h
+++ b/quic/core/quic_crypto_stream.h
@@ -21,6 +21,7 @@
namespace quic {
+class CachedNetworkParameters;
class QuicSession;
// Crypto handshake messages in QUIC take place over a reserved stream with the
@@ -114,6 +115,16 @@
// Called to validate |token|.
virtual bool ValidateAddressToken(absl::string_view token) const = 0;
+ // Get the last CachedNetworkParameters received from a valid address token.
+ virtual const CachedNetworkParameters* PreviousCachedNetworkParams()
+ const = 0;
+
+ // Set the CachedNetworkParameters that will be returned by
+ // PreviousCachedNetworkParams.
+ // TODO(wub): This function is test only, move it to a test only library.
+ virtual void SetPreviousCachedNetworkParams(
+ CachedNetworkParameters cached_network_params) = 0;
+
// Returns current handshake state.
virtual HandshakeState GetHandshakeState() const = 0;
diff --git a/quic/core/quic_crypto_stream_test.cc b/quic/core/quic_crypto_stream_test.cc
index 093d245..fb1374f 100644
--- a/quic/core/quic_crypto_stream_test.cc
+++ b/quic/core/quic_crypto_stream_test.cc
@@ -68,6 +68,11 @@
bool ValidateAddressToken(absl::string_view /*token*/) const override {
return true;
}
+ const CachedNetworkParameters* PreviousCachedNetworkParams() const override {
+ return nullptr;
+ }
+ void SetPreviousCachedNetworkParams(
+ CachedNetworkParameters /*cached_network_params*/) override {}
HandshakeState GetHandshakeState() const override { return HANDSHAKE_START; }
void SetServerApplicationStateForResumption(
std::unique_ptr<ApplicationState> /*application_state*/) override {}
diff --git a/quic/core/quic_session_test.cc b/quic/core/quic_session_test.cc
index f55ac6e..81decdc 100644
--- a/quic/core/quic_session_test.cc
+++ b/quic/core/quic_session_test.cc
@@ -145,6 +145,11 @@
bool ValidateAddressToken(absl::string_view /*token*/) const override {
return true;
}
+ const CachedNetworkParameters* PreviousCachedNetworkParams() const override {
+ return nullptr;
+ }
+ void SetPreviousCachedNetworkParams(
+ CachedNetworkParameters /*cached_network_params*/) override {}
HandshakeState GetHandshakeState() const override {
return one_rtt_keys_available() ? HANDSHAKE_COMPLETE : HANDSHAKE_START;
}
diff --git a/quic/test_tools/quic_test_utils.h b/quic/test_tools/quic_test_utils.h
index e746ddb..e059f31 100644
--- a/quic/test_tools/quic_test_utils.h
+++ b/quic/test_tools/quic_test_utils.h
@@ -831,6 +831,11 @@
bool ValidateAddressToken(absl::string_view /*token*/) const override {
return true;
}
+ const CachedNetworkParameters* PreviousCachedNetworkParams() const override {
+ return nullptr;
+ }
+ void SetPreviousCachedNetworkParams(
+ CachedNetworkParameters /*cached_network_params*/) override {}
void OnConnectionClosed(QuicErrorCode /*error*/,
ConnectionCloseSource /*source*/) override {}
HandshakeState GetHandshakeState() const override { return HANDSHAKE_START; }