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 4623ff53e8b7041cdbbdb14b7e8e3d0ccfbf012f..f752a9e6a0aae60e5e54839eec7b0eb3f8bd0172 100644 |
--- a/net/quic/crypto/quic_crypto_server_config.cc |
+++ b/net/quic/crypto/quic_crypto_server_config.cc |
@@ -517,12 +517,13 @@ void QuicCryptoServerConfig::ValidateClientHello( |
QuicErrorCode QuicCryptoServerConfig::ProcessClientHello( |
const ValidateClientHelloResultCallback::Result& validate_chlo_result, |
QuicConnectionId connection_id, |
- IPEndPoint client_address, |
+ const IPEndPoint& server_ip, |
+ const IPEndPoint& client_address, |
QuicVersion version, |
const QuicVersionVector& supported_versions, |
const QuicClock* clock, |
QuicRandom* rand, |
- QuicCryptoNegotiatedParameters *params, |
+ QuicCryptoNegotiatedParameters* params, |
CryptoHandshakeMessage* out, |
string* error_details) const { |
DCHECK(error_details); |
@@ -593,7 +594,7 @@ QuicErrorCode QuicCryptoServerConfig::ProcessClientHello( |
!info.client_nonce_well_formed || |
!info.unique || |
!requested_config.get()) { |
- BuildRejection(*primary_config.get(), client_hello, info, |
+ BuildRejection(server_ip, *primary_config.get(), client_hello, info, |
validate_chlo_result.cached_network_params, rand, params, |
out); |
return QUIC_NO_ERROR; |
@@ -1034,6 +1035,7 @@ void QuicCryptoServerConfig::EvaluateClientHello( |
} |
bool QuicCryptoServerConfig::BuildServerConfigUpdateMessage( |
+ const IPEndPoint& server_ip, |
const IPEndPoint& client_ip, |
const QuicClock* clock, |
QuicRandom* rand, |
@@ -1057,9 +1059,9 @@ bool QuicCryptoServerConfig::BuildServerConfigUpdateMessage( |
const vector<string>* certs; |
string signature; |
- if (!proof_source_->GetProof(params.sni, primary_config_->serialized, |
- params.x509_ecdsa_supported, &certs, |
- &signature)) { |
+ if (!proof_source_->GetProof( |
+ server_ip, params.sni, primary_config_->serialized, |
+ params.x509_ecdsa_supported, &certs, &signature)) { |
DVLOG(1) << "Server: failed to get proof."; |
return false; |
} |
@@ -1074,12 +1076,13 @@ bool QuicCryptoServerConfig::BuildServerConfigUpdateMessage( |
} |
void QuicCryptoServerConfig::BuildRejection( |
+ const IPEndPoint& server_ip, |
const Config& config, |
const CryptoHandshakeMessage& client_hello, |
const ClientHelloInfo& info, |
const CachedNetworkParameters& cached_network_params, |
QuicRandom* rand, |
- QuicCryptoNegotiatedParameters *params, |
+ QuicCryptoNegotiatedParameters* params, |
CryptoHandshakeMessage* out) const { |
out->set_tag(kREJ); |
out->SetStringPiece(kSCFG, config.serialized); |
@@ -1130,9 +1133,9 @@ void QuicCryptoServerConfig::BuildRejection( |
const vector<string>* certs; |
string signature; |
- if (!proof_source_->GetProof(info.sni.as_string(), config.serialized, |
- params->x509_ecdsa_supported, &certs, |
- &signature)) { |
+ if (!proof_source_->GetProof(server_ip, info.sni.as_string(), |
+ config.serialized, params->x509_ecdsa_supported, |
+ &certs, &signature)) { |
return; |
} |