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 |