| Index: net/base/host_resolver_impl.cc
|
| diff --git a/net/base/host_resolver_impl.cc b/net/base/host_resolver_impl.cc
|
| index 6e4637ce3fac175ff8fa620e1a8bbe821a632aa0..b4c8bfaa89bc0b4b0d507fcc02192881dc38b6a5 100644
|
| --- a/net/base/host_resolver_impl.cc
|
| +++ b/net/base/host_resolver_impl.cc
|
| @@ -944,6 +944,24 @@ HostResolverImpl::~HostResolverImpl() {
|
| delete job_pools_[i];
|
| }
|
|
|
| +void HostResolverImpl::ProbeIPv6Support() {
|
| + DCHECK(CalledOnValidThread());
|
| + DCHECK(!ipv6_probe_monitoring_);
|
| + ipv6_probe_monitoring_ = true;
|
| + OnIPAddressChanged(); // Give initial setup call.
|
| +}
|
| +
|
| +void HostResolverImpl::SetPoolConstraints(JobPoolIndex pool_index,
|
| + size_t max_outstanding_jobs,
|
| + size_t max_pending_requests) {
|
| + DCHECK(CalledOnValidThread());
|
| + CHECK_GE(pool_index, 0);
|
| + CHECK_LT(pool_index, POOL_COUNT);
|
| + CHECK(jobs_.empty()) << "Can only set constraints during setup";
|
| + JobPool* pool = job_pools_[pool_index];
|
| + pool->SetConstraints(max_outstanding_jobs, max_pending_requests);
|
| +}
|
| +
|
| int HostResolverImpl::Resolve(const RequestInfo& info,
|
| AddressList* addresses,
|
| CompletionCallback* callback,
|
| @@ -1125,13 +1143,6 @@ AddressFamily HostResolverImpl::GetDefaultAddressFamily() const {
|
| return default_address_family_;
|
| }
|
|
|
| -void HostResolverImpl::ProbeIPv6Support() {
|
| - DCHECK(CalledOnValidThread());
|
| - DCHECK(!ipv6_probe_monitoring_);
|
| - ipv6_probe_monitoring_ = true;
|
| - OnIPAddressChanged(); // Give initial setup call.
|
| -}
|
| -
|
| HostResolverImpl* HostResolverImpl::GetAsHostResolverImpl() {
|
| return this;
|
| }
|
| @@ -1146,17 +1157,6 @@ void HostResolverImpl::Shutdown() {
|
| shutdown_ = true;
|
| }
|
|
|
| -void HostResolverImpl::SetPoolConstraints(JobPoolIndex pool_index,
|
| - size_t max_outstanding_jobs,
|
| - size_t max_pending_requests) {
|
| - DCHECK(CalledOnValidThread());
|
| - CHECK_GE(pool_index, 0);
|
| - CHECK_LT(pool_index, POOL_COUNT);
|
| - CHECK(jobs_.empty()) << "Can only set constraints during setup";
|
| - JobPool* pool = job_pools_[pool_index];
|
| - pool->SetConstraints(max_outstanding_jobs, max_pending_requests);
|
| -}
|
| -
|
| void HostResolverImpl::AddOutstandingJob(Job* job) {
|
| scoped_refptr<Job>& found_job = jobs_[job->key()];
|
| DCHECK(!found_job);
|
| @@ -1305,28 +1305,6 @@ void HostResolverImpl::OnCancelRequest(const BoundNetLog& source_net_log,
|
| source_net_log.EndEvent(NetLog::TYPE_HOST_RESOLVER_IMPL, NULL);
|
| }
|
|
|
| -void HostResolverImpl::OnIPAddressChanged() {
|
| - if (cache_.get())
|
| - cache_->clear();
|
| - if (ipv6_probe_monitoring_) {
|
| - DCHECK(!shutdown_);
|
| - if (shutdown_)
|
| - return;
|
| - DiscardIPv6ProbeJob();
|
| - ipv6_probe_job_ = new IPv6ProbeJob(this);
|
| - ipv6_probe_job_->Start();
|
| - }
|
| -#if defined(OS_LINUX)
|
| - if (HaveOnlyLoopbackAddresses()) {
|
| - additional_resolver_flags_ |= HOST_RESOLVER_LOOPBACK_ONLY;
|
| - } else {
|
| - additional_resolver_flags_ &= ~HOST_RESOLVER_LOOPBACK_ONLY;
|
| - }
|
| -#endif
|
| - AbortAllInProgressJobs();
|
| - // |this| may be deleted inside AbortAllInProgressJobs().
|
| -}
|
| -
|
| void HostResolverImpl::DiscardIPv6ProbeJob() {
|
| if (ipv6_probe_job_.get()) {
|
| ipv6_probe_job_->Cancel();
|
| @@ -1348,12 +1326,6 @@ void HostResolverImpl::IPv6ProbeSetDefaultAddressFamily(
|
| DiscardIPv6ProbeJob();
|
| }
|
|
|
| -// static
|
| -HostResolverImpl::JobPoolIndex HostResolverImpl::GetJobPoolIndexForRequest(
|
| - const Request* req) {
|
| - return POOL_NORMAL;
|
| -}
|
| -
|
| bool HostResolverImpl::CanCreateJobForPool(const JobPool& pool) const {
|
| DCHECK_LE(jobs_.size(), max_jobs_);
|
|
|
| @@ -1365,6 +1337,12 @@ bool HostResolverImpl::CanCreateJobForPool(const JobPool& pool) const {
|
| return pool.CanCreateJob();
|
| }
|
|
|
| +// static
|
| +HostResolverImpl::JobPoolIndex HostResolverImpl::GetJobPoolIndexForRequest(
|
| + const Request* req) {
|
| + return POOL_NORMAL;
|
| +}
|
| +
|
| void HostResolverImpl::ProcessQueuedRequests() {
|
| // Find the highest priority request that can be scheduled.
|
| Request* top_req = NULL;
|
| @@ -1458,4 +1436,26 @@ void HostResolverImpl::AbortAllInProgressJobs() {
|
| }
|
| }
|
|
|
| +void HostResolverImpl::OnIPAddressChanged() {
|
| + if (cache_.get())
|
| + cache_->clear();
|
| + if (ipv6_probe_monitoring_) {
|
| + DCHECK(!shutdown_);
|
| + if (shutdown_)
|
| + return;
|
| + DiscardIPv6ProbeJob();
|
| + ipv6_probe_job_ = new IPv6ProbeJob(this);
|
| + ipv6_probe_job_->Start();
|
| + }
|
| +#if defined(OS_LINUX)
|
| + if (HaveOnlyLoopbackAddresses()) {
|
| + additional_resolver_flags_ |= HOST_RESOLVER_LOOPBACK_ONLY;
|
| + } else {
|
| + additional_resolver_flags_ &= ~HOST_RESOLVER_LOOPBACK_ONLY;
|
| + }
|
| +#endif
|
| + AbortAllInProgressJobs();
|
| + // |this| may be deleted inside AbortAllInProgressJobs().
|
| +}
|
| +
|
| } // namespace net
|
|
|