| OLD | NEW |
| 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/dns/mock_host_resolver.h" | 5 #include "net/dns/mock_host_resolver.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 | 99 |
| 100 MockHostResolverBase::~MockHostResolverBase() { | 100 MockHostResolverBase::~MockHostResolverBase() { |
| 101 DCHECK(requests_.empty()); | 101 DCHECK(requests_.empty()); |
| 102 } | 102 } |
| 103 | 103 |
| 104 int MockHostResolverBase::Resolve(const RequestInfo& info, | 104 int MockHostResolverBase::Resolve(const RequestInfo& info, |
| 105 RequestPriority priority, | 105 RequestPriority priority, |
| 106 AddressList* addresses, | 106 AddressList* addresses, |
| 107 const CompletionCallback& callback, | 107 const CompletionCallback& callback, |
| 108 std::unique_ptr<Request>* request, | 108 std::unique_ptr<Request>* request, |
| 109 const BoundNetLog& net_log) { | 109 const NetLogWithSource& net_log) { |
| 110 DCHECK(CalledOnValidThread()); | 110 DCHECK(CalledOnValidThread()); |
| 111 DCHECK(request); | 111 DCHECK(request); |
| 112 last_request_priority_ = priority; | 112 last_request_priority_ = priority; |
| 113 num_resolve_++; | 113 num_resolve_++; |
| 114 size_t id = next_request_id_++; | 114 size_t id = next_request_id_++; |
| 115 int rv = ResolveFromIPLiteralOrCache(info, addresses); | 115 int rv = ResolveFromIPLiteralOrCache(info, addresses); |
| 116 if (rv != ERR_DNS_CACHE_MISS) | 116 if (rv != ERR_DNS_CACHE_MISS) |
| 117 return rv; | 117 return rv; |
| 118 | 118 |
| 119 // Just like the real resolver, refuse to do anything with invalid hostnames. | 119 // Just like the real resolver, refuse to do anything with invalid hostnames. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 133 base::ThreadTaskRunnerHandle::Get()->PostTask( | 133 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 134 FROM_HERE, | 134 FROM_HERE, |
| 135 base::Bind(&MockHostResolverBase::ResolveNow, AsWeakPtr(), id)); | 135 base::Bind(&MockHostResolverBase::ResolveNow, AsWeakPtr(), id)); |
| 136 } | 136 } |
| 137 | 137 |
| 138 return ERR_IO_PENDING; | 138 return ERR_IO_PENDING; |
| 139 } | 139 } |
| 140 | 140 |
| 141 int MockHostResolverBase::ResolveFromCache(const RequestInfo& info, | 141 int MockHostResolverBase::ResolveFromCache(const RequestInfo& info, |
| 142 AddressList* addresses, | 142 AddressList* addresses, |
| 143 const BoundNetLog& net_log) { | 143 const NetLogWithSource& net_log) { |
| 144 num_resolve_from_cache_++; | 144 num_resolve_from_cache_++; |
| 145 DCHECK(CalledOnValidThread()); | 145 DCHECK(CalledOnValidThread()); |
| 146 next_request_id_++; | 146 next_request_id_++; |
| 147 int rv = ResolveFromIPLiteralOrCache(info, addresses); | 147 int rv = ResolveFromIPLiteralOrCache(info, addresses); |
| 148 return rv; | 148 return rv; |
| 149 } | 149 } |
| 150 | 150 |
| 151 void MockHostResolverBase::DetachRequest(size_t id) { | 151 void MockHostResolverBase::DetachRequest(size_t id) { |
| 152 RequestMap::iterator it = requests_.find(id); | 152 RequestMap::iterator it = requests_.find(id); |
| 153 CHECK(it != requests_.end()); | 153 CHECK(it != requests_.end()); |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 return new RuleBasedHostResolverProc(catchall); | 445 return new RuleBasedHostResolverProc(catchall); |
| 446 } | 446 } |
| 447 | 447 |
| 448 //----------------------------------------------------------------------------- | 448 //----------------------------------------------------------------------------- |
| 449 | 449 |
| 450 int HangingHostResolver::Resolve(const RequestInfo& info, | 450 int HangingHostResolver::Resolve(const RequestInfo& info, |
| 451 RequestPriority priority, | 451 RequestPriority priority, |
| 452 AddressList* addresses, | 452 AddressList* addresses, |
| 453 const CompletionCallback& callback, | 453 const CompletionCallback& callback, |
| 454 std::unique_ptr<Request>* request, | 454 std::unique_ptr<Request>* request, |
| 455 const BoundNetLog& net_log) { | 455 const NetLogWithSource& net_log) { |
| 456 return ERR_IO_PENDING; | 456 return ERR_IO_PENDING; |
| 457 } | 457 } |
| 458 | 458 |
| 459 int HangingHostResolver::ResolveFromCache(const RequestInfo& info, | 459 int HangingHostResolver::ResolveFromCache(const RequestInfo& info, |
| 460 AddressList* addresses, | 460 AddressList* addresses, |
| 461 const BoundNetLog& net_log) { | 461 const NetLogWithSource& net_log) { |
| 462 return ERR_DNS_CACHE_MISS; | 462 return ERR_DNS_CACHE_MISS; |
| 463 } | 463 } |
| 464 | 464 |
| 465 //----------------------------------------------------------------------------- | 465 //----------------------------------------------------------------------------- |
| 466 | 466 |
| 467 ScopedDefaultHostResolverProc::ScopedDefaultHostResolverProc() {} | 467 ScopedDefaultHostResolverProc::ScopedDefaultHostResolverProc() {} |
| 468 | 468 |
| 469 ScopedDefaultHostResolverProc::ScopedDefaultHostResolverProc( | 469 ScopedDefaultHostResolverProc::ScopedDefaultHostResolverProc( |
| 470 HostResolverProc* proc) { | 470 HostResolverProc* proc) { |
| 471 Init(proc); | 471 Init(proc); |
| 472 } | 472 } |
| 473 | 473 |
| 474 ScopedDefaultHostResolverProc::~ScopedDefaultHostResolverProc() { | 474 ScopedDefaultHostResolverProc::~ScopedDefaultHostResolverProc() { |
| 475 HostResolverProc* old_proc = | 475 HostResolverProc* old_proc = |
| 476 HostResolverProc::SetDefault(previous_proc_.get()); | 476 HostResolverProc::SetDefault(previous_proc_.get()); |
| 477 // The lifetimes of multiple instances must be nested. | 477 // The lifetimes of multiple instances must be nested. |
| 478 CHECK_EQ(old_proc, current_proc_.get()); | 478 CHECK_EQ(old_proc, current_proc_.get()); |
| 479 } | 479 } |
| 480 | 480 |
| 481 void ScopedDefaultHostResolverProc::Init(HostResolverProc* proc) { | 481 void ScopedDefaultHostResolverProc::Init(HostResolverProc* proc) { |
| 482 current_proc_ = proc; | 482 current_proc_ = proc; |
| 483 previous_proc_ = HostResolverProc::SetDefault(current_proc_.get()); | 483 previous_proc_ = HostResolverProc::SetDefault(current_proc_.get()); |
| 484 current_proc_->SetLastProc(previous_proc_.get()); | 484 current_proc_->SetLastProc(previous_proc_.get()); |
| 485 } | 485 } |
| 486 | 486 |
| 487 } // namespace net | 487 } // namespace net |
| OLD | NEW |