summaryrefslogtreecommitdiffstats
path: root/net/dns/dns_config_service.cc
diff options
context:
space:
mode:
authorszym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-21 03:25:19 +0000
committerszym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-21 03:25:19 +0000
commit3d164775c96e1e80601f28485483822182bfb666 (patch)
treea062cf63ef4233168f5ae92ac3ab9f1557d126ad /net/dns/dns_config_service.cc
parent1affed6dd562db5d329095e690370bcd2444f305 (diff)
downloadchromium_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.cc6
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());