summaryrefslogtreecommitdiffstats
path: root/net/dns/dns_config_service_win.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/dns/dns_config_service_win.h')
-rw-r--r--net/dns/dns_config_service_win.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/net/dns/dns_config_service_win.h b/net/dns/dns_config_service_win.h
index d60ae04..3159f77 100644
--- a/net/dns/dns_config_service_win.h
+++ b/net/dns/dns_config_service_win.h
@@ -33,20 +33,27 @@
namespace net {
-class WatchingFileReader;
+class FilePathWatcherWrapper;
+
+// Use DnsConfigService::CreateSystemService to use it outside of tests.
+namespace internal {
class NET_EXPORT_PRIVATE DnsConfigServiceWin
- : NON_EXPORTED_BASE(public DnsConfigService) {
+ : NON_EXPORTED_BASE(public DnsConfigService) {
public:
DnsConfigServiceWin();
virtual ~DnsConfigServiceWin();
- virtual void Watch() OVERRIDE;
+ virtual void Watch(const CallbackType& callback) OVERRIDE;
private:
class ConfigReader;
+
+ void OnHostsChanged(bool succeeded);
+
scoped_refptr<ConfigReader> config_reader_;
- scoped_ptr<WatchingFileReader> hosts_watcher_;
+ scoped_ptr<FilePathWatcherWrapper> hosts_watcher_;
+ scoped_refptr<SerialWorker> hosts_reader_;
DISALLOW_COPY_AND_ASSIGN(DnsConfigServiceWin);
};
@@ -73,7 +80,8 @@ struct NET_EXPORT_PRIVATE DnsSystemSettings {
RegDword level;
};
- // Filled in by GetAdapterAddresses.
+ // Filled in by GetAdapterAddresses. Note that the alternative
+ // GetNetworkParams does not include IPv6 addresses.
scoped_ptr_malloc<IP_ADAPTER_ADDRESSES> addresses;
// SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\SearchList
@@ -105,6 +113,8 @@ bool NET_EXPORT_PRIVATE ParseSearchList(const string16& value,
bool NET_EXPORT_PRIVATE ConvertSettingsToDnsConfig(
const DnsSystemSettings& settings, DnsConfig* dns_config);
+} // namespace internal
+
} // namespace net
#endif // NET_DNS_DNS_CONFIG_SERVICE_WIN_H_