| Index: net/quic/crypto/quic_crypto_server_config.cc
|
| diff --git a/net/quic/crypto/quic_crypto_server_config.cc b/net/quic/crypto/quic_crypto_server_config.cc
|
| index 8d8c203a2244d6b5a9f92c6e803b3150cb240cd1..e2b0583e052d2d586cfe23dea23b8839ed628605 100644
|
| --- a/net/quic/crypto/quic_crypto_server_config.cc
|
| +++ b/net/quic/crypto/quic_crypto_server_config.cc
|
| @@ -147,6 +147,11 @@ class VerifyNonceIsValidAndUniqueCallback
|
| // static
|
| const char QuicCryptoServerConfig::TESTING[] = "secret string for testing";
|
|
|
| +PrimaryConfigChangedCallback::PrimaryConfigChangedCallback() {
|
| +}
|
| +
|
| +PrimaryConfigChangedCallback::~PrimaryConfigChangedCallback() {
|
| +}
|
|
|
| ValidateClientHelloResultCallback::ValidateClientHelloResultCallback() {
|
| }
|
| @@ -416,6 +421,14 @@ bool QuicCryptoServerConfig::SetConfigs(
|
| return ok;
|
| }
|
|
|
| +void QuicCryptoServerConfig::GetConfigIds(vector<string>* scids) const {
|
| + base::AutoLock locked(configs_lock_);
|
| + for (ConfigMap::const_iterator it = configs_.begin();
|
| + it != configs_.end(); ++it) {
|
| + scids->push_back(it->first);
|
| + }
|
| +}
|
| +
|
| void QuicCryptoServerConfig::ValidateClientHello(
|
| const CryptoHandshakeMessage& client_hello,
|
| IPEndPoint client_ip,
|
| @@ -784,6 +797,9 @@ void QuicCryptoServerConfig::SelectNewPrimaryConfig(
|
| << base::HexEncode(
|
| reinterpret_cast<const char*>(primary_config_->orbit),
|
| kOrbitSize);
|
| + if (primary_config_changed_cb_.get() != NULL) {
|
| + primary_config_changed_cb_->Run(primary_config_->id);
|
| + }
|
|
|
| return;
|
| }
|
| @@ -801,6 +817,9 @@ void QuicCryptoServerConfig::SelectNewPrimaryConfig(
|
| reinterpret_cast<const char*>(primary_config_->orbit),
|
| kOrbitSize);
|
| next_config_promotion_time_ = QuicWallTime::Zero();
|
| + if (primary_config_changed_cb_.get() != NULL) {
|
| + primary_config_changed_cb_->Run(primary_config_->id);
|
| + }
|
| }
|
|
|
| void QuicCryptoServerConfig::EvaluateClientHello(
|
| @@ -1184,6 +1203,12 @@ void QuicCryptoServerConfig::set_server_nonce_strike_register_window_secs(
|
| server_nonce_strike_register_window_secs_ = window_secs;
|
| }
|
|
|
| +void QuicCryptoServerConfig::AcquirePrimaryConfigChangedCb(
|
| + PrimaryConfigChangedCallback* cb) {
|
| + base::AutoLock locked(configs_lock_);
|
| + primary_config_changed_cb_.reset(cb);
|
| +}
|
| +
|
| string QuicCryptoServerConfig::NewSourceAddressToken(
|
| const IPEndPoint& ip,
|
| QuicRandom* rand,
|
|
|