diff options
author | szym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-21 03:25:19 +0000 |
---|---|---|
committer | szym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-21 03:25:19 +0000 |
commit | 3d164775c96e1e80601f28485483822182bfb666 (patch) | |
tree | a062cf63ef4233168f5ae92ac3ab9f1557d126ad /net/dns/dns_config_service.cc | |
parent | 1affed6dd562db5d329095e690370bcd2444f305 (diff) | |
download | chromium_src-3d164775c96e1e80601f28485483822182bfb666.zip chromium_src-3d164775c96e1e80601f28485483822182bfb666.tar.gz chromium_src-3d164775c96e1e80601f28485483822182bfb666.tar.bz2 |
Detect domain-specific resolvers on OS X and disable DnsClient
This CL also changes the handling of DNS configuration options not
yet fully implemented by DnsClient. Rather than DnsConfigService
failing to provide DnsConfig, the new field DnsConfig.unhandled_options
indicates to DnsClient that it should disable itself.
BUG=265970
Review URL: https://chromiumcodereview.appspot.com/21368005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218617 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/dns/dns_config_service.cc')
-rw-r--r-- | net/dns/dns_config_service.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/dns/dns_config_service.cc b/net/dns/dns_config_service.cc index ea8a342..d7af988 100644 --- a/net/dns/dns_config_service.cc +++ b/net/dns/dns_config_service.cc @@ -14,7 +14,8 @@ namespace net { // Default values are taken from glibc resolv.h except timeout which is set to // |kDnsTimeoutSeconds|. DnsConfig::DnsConfig() - : append_to_multi_label_name(true), + : unhandled_options(false), + append_to_multi_label_name(true), randomize_ports(false), ndots(1), timeout(base::TimeDelta::FromSeconds(kDnsTimeoutSeconds)), @@ -31,6 +32,7 @@ bool DnsConfig::Equals(const DnsConfig& d) const { bool DnsConfig::EqualsIgnoreHosts(const DnsConfig& d) const { return (nameservers == d.nameservers) && (search == d.search) && + (unhandled_options == d.unhandled_options) && (append_to_multi_label_name == d.append_to_multi_label_name) && (ndots == d.ndots) && (timeout == d.timeout) && @@ -42,6 +44,7 @@ bool DnsConfig::EqualsIgnoreHosts(const DnsConfig& d) const { void DnsConfig::CopyIgnoreHosts(const DnsConfig& d) { nameservers = d.nameservers; search = d.search; + unhandled_options = d.unhandled_options; append_to_multi_label_name = d.append_to_multi_label_name; ndots = d.ndots; timeout = d.timeout; @@ -63,6 +66,7 @@ base::Value* DnsConfig::ToValue() const { list->Append(new base::StringValue(search[i])); dict->Set("search", list); + dict->SetBoolean("unhandled_options", unhandled_options); dict->SetBoolean("append_to_multi_label_name", append_to_multi_label_name); dict->SetInteger("ndots", ndots); dict->SetDouble("timeout", timeout.InSecondsF()); |