Chromium Code Reviews| Index: net/base/host_resolver_impl.cc |
| diff --git a/net/base/host_resolver_impl.cc b/net/base/host_resolver_impl.cc |
| index b56524ca8ad73ad438b63833e55710d03abeac20..2d546c548221b2ad80df5760eac3c3847455541c 100644 |
| --- a/net/base/host_resolver_impl.cc |
| +++ b/net/base/host_resolver_impl.cc |
| @@ -1269,9 +1269,9 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job { |
| // Called from AbortAllInProgressJobs. Completes all requests as aborted |
| // and destroys the job. |
| - void Abort() { |
| + void Abort(int error) { |
| DCHECK(is_running()); |
| - CompleteRequestsWithError(ERR_ABORTED); |
| + CompleteRequestsWithError(error); |
|
szym
2012/12/10 18:36:31
The only changes needed in host_resolver_impl.{h,c
Joao da Silva
2012/12/11 13:36:43
Done.
|
| } |
| // If DnsTask present, abort it and fall back to ProcTask. |
| @@ -1532,6 +1532,7 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job { |
| } |
| bool did_complete = (entry.error != ERR_ABORTED) && |
| + (entry.error != ERR_NETWORK_CHANGED) && |
|
szym
2012/12/10 18:36:31
(2) change ERR_ABORTED to ERR_NETWORK_CHANGED here
Joao da Silva
2012/12/11 13:36:43
Done.
|
| (entry.error != ERR_HOST_RESOLVER_QUEUE_TOO_LARGE); |
| if (did_complete) |
| resolver_->CacheResult(key_, entry, ttl); |
| @@ -2032,7 +2033,7 @@ HostResolverImpl::Key HostResolverImpl::GetEffectiveKeyForRequest( |
| return Key(info.hostname(), effective_address_family, effective_flags); |
| } |
| -void HostResolverImpl::AbortAllInProgressJobs() { |
| +void HostResolverImpl::AbortAllInProgressJobs(int error) { |
| // In Abort, a Request callback could spawn new Jobs with matching keys, so |
| // first collect and remove all running jobs from |jobs_|. |
| ScopedVector<Job> jobs_to_abort; |
| @@ -2055,7 +2056,7 @@ void HostResolverImpl::AbortAllInProgressJobs() { |
| // Then Abort them. |
| for (size_t i = 0; self && i < jobs_to_abort.size(); ++i) { |
| - jobs_to_abort[i]->Abort(); |
| + jobs_to_abort[i]->Abort(error); |
| jobs_to_abort[i] = NULL; |
| } |
| } |
| @@ -2088,7 +2089,7 @@ void HostResolverImpl::OnIPAddressChanged() { |
| #if defined(OS_POSIX) && !defined(OS_MACOSX) |
| new LoopbackProbeJob(probe_weak_ptr_factory_.GetWeakPtr()); |
| #endif |
| - AbortAllInProgressJobs(); |
| + AbortAllInProgressJobs(ERR_NETWORK_CHANGED); |
| // |this| may be deleted inside AbortAllInProgressJobs(). |
| } |
| @@ -2126,7 +2127,7 @@ void HostResolverImpl::OnDNSChanged() { |
| // Existing jobs will have been sent to the original server so they need to |
| // be aborted. |
| - AbortAllInProgressJobs(); |
| + AbortAllInProgressJobs(ERR_NETWORK_CHANGED); |
| // |this| may be deleted inside AbortAllInProgressJobs(). |
| if (self) |