| Index: components/certificate_transparency/log_dns_client.cc
|
| diff --git a/components/certificate_transparency/log_dns_client.cc b/components/certificate_transparency/log_dns_client.cc
|
| index 77da9f852a0e5fb38a67050cae5c6cfba90a872c..4d6fd22cfec51072e637741ad881f7c2064e77a8 100644
|
| --- a/components/certificate_transparency/log_dns_client.cc
|
| +++ b/components/certificate_transparency/log_dns_client.cc
|
| @@ -13,11 +13,13 @@
|
| #include "base/strings/string_util.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| #include "base/time/time.h"
|
| +#include "base/values.h"
|
| #include "components/base32/base32.h"
|
| #include "crypto/sha2.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/cert/merkle_audit_proof.h"
|
| #include "net/dns/dns_client.h"
|
| +#include "net/dns/dns_config_service.h"
|
| #include "net/dns/dns_protocol.h"
|
| #include "net/dns/dns_response.h"
|
| #include "net/dns/dns_transaction.h"
|
| @@ -86,9 +88,21 @@ LogDnsClient::LogDnsClient(std::unique_ptr<net::DnsClient> dns_client,
|
| net_log_(net_log),
|
| weak_ptr_factory_(this) {
|
| CHECK(dns_client_);
|
| + net::NetworkChangeNotifier::AddDNSObserver(this);
|
| + UpdateDnsConfig();
|
| }
|
|
|
| -LogDnsClient::~LogDnsClient() {}
|
| +LogDnsClient::~LogDnsClient() {
|
| + net::NetworkChangeNotifier::RemoveDNSObserver(this);
|
| +}
|
| +
|
| +void LogDnsClient::OnDNSChanged() {
|
| + UpdateDnsConfig();
|
| +}
|
| +
|
| +void LogDnsClient::OnInitialDNSConfigRead() {
|
| + UpdateDnsConfig();
|
| +}
|
|
|
| void LogDnsClient::QueryLeafIndex(base::StringPiece domain_for_log,
|
| base::StringPiece leaf_hash,
|
| @@ -291,4 +305,11 @@ void LogDnsClient::QueryAuditProofNodesComplete(
|
| base::Bind(query.callback, net::OK, base::Passed(std::move(proof))));
|
| }
|
|
|
| +void LogDnsClient::UpdateDnsConfig() {
|
| + net::DnsConfig config;
|
| + net::NetworkChangeNotifier::GetDnsConfig(&config);
|
| + if (config.IsValid())
|
| + dns_client_->SetConfig(config);
|
| +}
|
| +
|
| } // namespace certificate_transparency
|
|
|