Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Side by Side Diff: net/base/host_resolver_impl.cc

Issue 11620007: Switch from OnIPAddressChanged and OnConnectionTypeChange to OnNetworkChanged Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/base/host_resolver_impl.h" 5 #include "net/base/host_resolver_impl.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <Winsock2.h> 8 #include <Winsock2.h>
9 #elif defined(OS_POSIX) 9 #elif defined(OS_POSIX)
10 #include <netdb.h> 10 #include <netdb.h>
(...skipping 1664 matching lines...) Expand 10 before | Expand all | Expand 10 after
1675 1675
1676 if (proc_params_.max_retry_attempts == HostResolver::kDefaultRetryAttempts) 1676 if (proc_params_.max_retry_attempts == HostResolver::kDefaultRetryAttempts)
1677 proc_params_.max_retry_attempts = kDefaultMaxRetryAttempts; 1677 proc_params_.max_retry_attempts = kDefaultMaxRetryAttempts;
1678 1678
1679 #if defined(OS_WIN) 1679 #if defined(OS_WIN)
1680 EnsureWinsockInit(); 1680 EnsureWinsockInit();
1681 #endif 1681 #endif
1682 #if defined(OS_POSIX) && !defined(OS_MACOSX) 1682 #if defined(OS_POSIX) && !defined(OS_MACOSX)
1683 new LoopbackProbeJob(weak_ptr_factory_.GetWeakPtr()); 1683 new LoopbackProbeJob(weak_ptr_factory_.GetWeakPtr());
1684 #endif 1684 #endif
1685 NetworkChangeNotifier::AddIPAddressObserver(this); 1685 NetworkChangeNotifier::AddNetworkChangeObserver(this);
1686 NetworkChangeNotifier::AddDNSObserver(this); 1686 NetworkChangeNotifier::AddDNSObserver(this);
1687 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \ 1687 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
1688 !defined(OS_ANDROID) 1688 !defined(OS_ANDROID)
1689 EnsureDnsReloaderInit(); 1689 EnsureDnsReloaderInit();
1690 #endif 1690 #endif
1691 1691
1692 // TODO(szym): Remove when received_dns_config_ is removed, once 1692 // TODO(szym): Remove when received_dns_config_ is removed, once
1693 // http://crbug.com/137914 is resolved. 1693 // http://crbug.com/137914 is resolved.
1694 { 1694 {
1695 DnsConfig dns_config; 1695 DnsConfig dns_config;
1696 NetworkChangeNotifier::GetDnsConfig(&dns_config); 1696 NetworkChangeNotifier::GetDnsConfig(&dns_config);
1697 received_dns_config_ = dns_config.IsValid(); 1697 received_dns_config_ = dns_config.IsValid();
1698 } 1698 }
1699 } 1699 }
1700 1700
1701 HostResolverImpl::~HostResolverImpl() { 1701 HostResolverImpl::~HostResolverImpl() {
1702 // This will also cancel all outstanding requests. 1702 // This will also cancel all outstanding requests.
1703 STLDeleteValues(&jobs_); 1703 STLDeleteValues(&jobs_);
1704 1704
1705 NetworkChangeNotifier::RemoveIPAddressObserver(this); 1705 NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
1706 NetworkChangeNotifier::RemoveDNSObserver(this); 1706 NetworkChangeNotifier::RemoveDNSObserver(this);
1707 } 1707 }
1708 1708
1709 void HostResolverImpl::SetMaxQueuedJobs(size_t value) { 1709 void HostResolverImpl::SetMaxQueuedJobs(size_t value) {
1710 DCHECK_EQ(0u, dispatcher_.num_queued_jobs()); 1710 DCHECK_EQ(0u, dispatcher_.num_queued_jobs());
1711 DCHECK_GT(value, 0u); 1711 DCHECK_GT(value, 0u);
1712 max_queued_jobs_ = value; 1712 max_queued_jobs_ = value;
1713 } 1713 }
1714 1714
1715 int HostResolverImpl::Resolve(const RequestInfo& info, 1715 int HostResolverImpl::Resolve(const RequestInfo& info,
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
1840 } 1840 }
1841 1841
1842 AddressFamily HostResolverImpl::GetDefaultAddressFamily() const { 1842 AddressFamily HostResolverImpl::GetDefaultAddressFamily() const {
1843 return default_address_family_; 1843 return default_address_family_;
1844 } 1844 }
1845 1845
1846 void HostResolverImpl::ProbeIPv6Support() { 1846 void HostResolverImpl::ProbeIPv6Support() {
1847 DCHECK(CalledOnValidThread()); 1847 DCHECK(CalledOnValidThread());
1848 DCHECK(!ipv6_probe_monitoring_); 1848 DCHECK(!ipv6_probe_monitoring_);
1849 ipv6_probe_monitoring_ = true; 1849 ipv6_probe_monitoring_ = true;
1850 OnIPAddressChanged(); 1850 OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_NONE);
1851 } 1851 }
1852 1852
1853 void HostResolverImpl::SetDnsClientEnabled(bool enabled) { 1853 void HostResolverImpl::SetDnsClientEnabled(bool enabled) {
1854 DCHECK(CalledOnValidThread()); 1854 DCHECK(CalledOnValidThread());
1855 #if defined(ENABLE_BUILT_IN_DNS) 1855 #if defined(ENABLE_BUILT_IN_DNS)
1856 if (enabled && !dns_client_) { 1856 if (enabled && !dns_client_) {
1857 SetDnsClient(DnsClient::CreateClient(net_log_)); 1857 SetDnsClient(DnsClient::CreateClient(net_log_));
1858 } else if (!enabled && dns_client_) { 1858 } else if (!enabled && dns_client_) {
1859 SetDnsClient(scoped_ptr<DnsClient>()); 1859 SetDnsClient(scoped_ptr<DnsClient>());
1860 } 1860 }
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
2051 base::WeakPtr<HostResolverImpl> self = weak_ptr_factory_.GetWeakPtr(); 2051 base::WeakPtr<HostResolverImpl> self = weak_ptr_factory_.GetWeakPtr();
2052 2052
2053 for (JobMap::iterator it = jobs_.begin(); self && it != jobs_.end(); ) { 2053 for (JobMap::iterator it = jobs_.begin(); self && it != jobs_.end(); ) {
2054 Job* job = it->second; 2054 Job* job = it->second;
2055 ++it; 2055 ++it;
2056 // This could remove |job| from |jobs_|, but iterator will remain valid. 2056 // This could remove |job| from |jobs_|, but iterator will remain valid.
2057 job->ServeFromHosts(); 2057 job->ServeFromHosts();
2058 } 2058 }
2059 } 2059 }
2060 2060
2061 void HostResolverImpl::OnIPAddressChanged() { 2061 void HostResolverImpl::OnNetworkChanged(
2062 net::NetworkChangeNotifier::ConnectionType type) {
2063 if (type != net::NetworkChangeNotifier::CONNECTION_NONE)
2064 return;
2062 // Abandon all ProbeJobs. 2065 // Abandon all ProbeJobs.
2063 probe_weak_ptr_factory_.InvalidateWeakPtrs(); 2066 probe_weak_ptr_factory_.InvalidateWeakPtrs();
2064 if (cache_.get()) 2067 if (cache_.get())
2065 cache_->clear(); 2068 cache_->clear();
2066 if (ipv6_probe_monitoring_) 2069 if (ipv6_probe_monitoring_)
2067 new IPv6ProbeJob(probe_weak_ptr_factory_.GetWeakPtr(), net_log_); 2070 new IPv6ProbeJob(probe_weak_ptr_factory_.GetWeakPtr(), net_log_);
szym 2013/01/20 06:52:08 This code would read more intuitively if it separa
2068 #if defined(OS_POSIX) && !defined(OS_MACOSX) 2071 #if defined(OS_POSIX) && !defined(OS_MACOSX)
2069 new LoopbackProbeJob(probe_weak_ptr_factory_.GetWeakPtr()); 2072 new LoopbackProbeJob(probe_weak_ptr_factory_.GetWeakPtr());
2070 #endif 2073 #endif
2071 AbortAllInProgressJobs(); 2074 AbortAllInProgressJobs();
2072 // |this| may be deleted inside AbortAllInProgressJobs(). 2075 // |this| may be deleted inside AbortAllInProgressJobs().
2073 } 2076 }
2074 2077
2075 void HostResolverImpl::OnDNSChanged() { 2078 void HostResolverImpl::OnDNSChanged() {
2076 DnsConfig dns_config; 2079 DnsConfig dns_config;
2077 NetworkChangeNotifier::GetDnsConfig(&dns_config); 2080 NetworkChangeNotifier::GetDnsConfig(&dns_config);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
2148 } 2151 }
2149 DnsConfig dns_config; 2152 DnsConfig dns_config;
2150 NetworkChangeNotifier::GetDnsConfig(&dns_config); 2153 NetworkChangeNotifier::GetDnsConfig(&dns_config);
2151 dns_client_->SetConfig(dns_config); 2154 dns_client_->SetConfig(dns_config);
2152 num_dns_failures_ = 0; 2155 num_dns_failures_ = 0;
2153 if (dns_config.IsValid()) 2156 if (dns_config.IsValid())
2154 UMA_HISTOGRAM_BOOLEAN("AsyncDNS.DnsClientEnabled", true); 2157 UMA_HISTOGRAM_BOOLEAN("AsyncDNS.DnsClientEnabled", true);
2155 } 2158 }
2156 2159
2157 } // namespace net 2160 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698