Index: net/dns/dns_config_service_win.h |
diff --git a/net/dns/dns_config_service_win.h b/net/dns/dns_config_service_win.h |
index 703eb7ade2a1286f9968dadbe3e096f9bdd7df67..a502e8b588896761debf41aedf282216a87eca5d 100644 |
--- a/net/dns/dns_config_service_win.h |
+++ b/net/dns/dns_config_service_win.h |
@@ -33,28 +33,27 @@ |
namespace net { |
-class FilePathWatcherWrapper; |
- |
-// Use DnsConfigService::CreateSystemService to use it outside of tests. |
namespace internal { |
-class NET_EXPORT_PRIVATE DnsConfigServiceWin |
- : NON_EXPORTED_BASE(public DnsConfigService) { |
- public: |
- DnsConfigServiceWin(); |
- virtual ~DnsConfigServiceWin(); |
+// Registry key paths. |
+const wchar_t* const kTcpipPath = |
+ L"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters"; |
+const wchar_t* const kTcpip6Path = |
+ L"SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters"; |
+const wchar_t* const kDnscachePath = |
+ L"SYSTEM\\CurrentControlSet\\Services\\Dnscache\\Parameters"; |
+const wchar_t* const kPolicyPath = |
+ L"SOFTWARE\\Policies\\Microsoft\\Windows NT\\DNSClient"; |
- virtual void Watch(const CallbackType& callback) OVERRIDE; |
+// Returns the path to the HOSTS file. |
+FilePath GetHostsPath(); |
- private: |
- class ConfigReader; |
- class HostsReader; |
- |
- scoped_refptr<ConfigReader> config_reader_; |
- scoped_refptr<HostsReader> hosts_reader_; |
- |
- DISALLOW_COPY_AND_ASSIGN(DnsConfigServiceWin); |
-}; |
+// Parses |value| as search list (comma-delimited list of domain names) from |
+// a registry key and stores it in |out|. Returns true on success. Empty |
+// entries (e.g., "chromium.org,,org") terminate the list. Non-ascii hostnames |
+// are converted to punycode. |
+bool NET_EXPORT_PRIVATE ParseSearchList(const string16& value, |
+ std::vector<std::string>* out); |
// All relevant settings read from registry and IP Helper. This isolates our |
// logic from system calls and is exposed for unit tests. Keep it an aggregate |
@@ -102,16 +101,36 @@ struct NET_EXPORT_PRIVATE DnsSystemSettings { |
RegDword append_to_multi_label_name; |
}; |
-// Parses |value| as search list (comma-delimited list of domain names) from |
-// a registry key and stores it in |out|. Returns true on success. Empty |
-// entries (e.g., "chromium.org,,org") terminate the list. Non-ascii hostnames |
-// are converted to punycode. |
-bool NET_EXPORT_PRIVATE ParseSearchList(const string16& value, |
- std::vector<std::string>* out); |
- |
// Fills in |dns_config| from |settings|. Exposed for tests. |
bool NET_EXPORT_PRIVATE ConvertSettingsToDnsConfig( |
- const DnsSystemSettings& settings, DnsConfig* dns_config); |
+ const DnsSystemSettings& settings, |
+ DnsConfig* dns_config); |
+ |
+// Use DnsConfigService::CreateSystemService to use it outside of tests. |
+class NET_EXPORT_PRIVATE DnsConfigServiceWin |
+ : public DnsConfigService, |
+ public NetworkChangeNotifier::IPAddressObserver { |
+ public: |
+ DnsConfigServiceWin(); |
+ virtual ~DnsConfigServiceWin(); |
+ |
+ virtual void Watch(const CallbackType& callback) OVERRIDE; |
+ |
+ private: |
+ class ConfigReader; |
+ class HostsReader; |
+ |
+ // NetworkChangeNotifier::DNSObserver: |
+ virtual void OnDNSChanged(unsigned detail) OVERRIDE; |
+ |
+ // NetworkChangeNotifier::IPAddressObserver: |
+ virtual void OnIPAddressChanged() OVERRIDE; |
+ |
+ scoped_refptr<ConfigReader> config_reader_; |
+ scoped_refptr<HostsReader> hosts_reader_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(DnsConfigServiceWin); |
+}; |
} // namespace internal |