| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 event_.Signal(); | 85 event_.Signal(); |
| 86 } | 86 } |
| 87 | 87 |
| 88 virtual int Resolve(const std::string& hostname, | 88 virtual int Resolve(const std::string& hostname, |
| 89 AddressFamily address_family, | 89 AddressFamily address_family, |
| 90 HostResolverFlags host_resolver_flags, | 90 HostResolverFlags host_resolver_flags, |
| 91 AddressList* addrlist, | 91 AddressList* addrlist, |
| 92 int* os_error) { | 92 int* os_error) { |
| 93 event_.Wait(); | 93 event_.Wait(); |
| 94 { | 94 { |
| 95 AutoLock l(lock_); | 95 base::AutoLock l(lock_); |
| 96 capture_list_.push_back(CaptureEntry(hostname, address_family)); | 96 capture_list_.push_back(CaptureEntry(hostname, address_family)); |
| 97 } | 97 } |
| 98 return ResolveUsingPrevious(hostname, address_family, | 98 return ResolveUsingPrevious(hostname, address_family, |
| 99 host_resolver_flags, addrlist, os_error); | 99 host_resolver_flags, addrlist, os_error); |
| 100 } | 100 } |
| 101 | 101 |
| 102 CaptureList GetCaptureList() const { | 102 CaptureList GetCaptureList() const { |
| 103 CaptureList copy; | 103 CaptureList copy; |
| 104 { | 104 { |
| 105 AutoLock l(lock_); | 105 base::AutoLock l(lock_); |
| 106 copy = capture_list_; | 106 copy = capture_list_; |
| 107 } | 107 } |
| 108 return copy; | 108 return copy; |
| 109 } | 109 } |
| 110 | 110 |
| 111 private: | 111 private: |
| 112 ~CapturingHostResolverProc() {} | 112 ~CapturingHostResolverProc() {} |
| 113 | 113 |
| 114 CaptureList capture_list_; | 114 CaptureList capture_list_; |
| 115 mutable Lock lock_; | 115 mutable base::Lock lock_; |
| 116 base::WaitableEvent event_; | 116 base::WaitableEvent event_; |
| 117 }; | 117 }; |
| 118 | 118 |
| 119 // This resolver function creates an IPv4 address, whose numeral value | 119 // This resolver function creates an IPv4 address, whose numeral value |
| 120 // describes a hash of the requested hostname, and the value of the requested | 120 // describes a hash of the requested hostname, and the value of the requested |
| 121 // address_family. | 121 // address_family. |
| 122 // | 122 // |
| 123 // The resolved address for (hostname, address_family) will take the form: | 123 // The resolved address for (hostname, address_family) will take the form: |
| 124 // 192.x.y.z | 124 // 192.x.y.z |
| 125 // | 125 // |
| (...skipping 1529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1655 EXPECT_EQ("192.1.98.2", NetAddressToString(addrlist[1].head())); | 1655 EXPECT_EQ("192.1.98.2", NetAddressToString(addrlist[1].head())); |
| 1656 EXPECT_EQ("192.1.98.1", NetAddressToString(addrlist[2].head())); | 1656 EXPECT_EQ("192.1.98.1", NetAddressToString(addrlist[2].head())); |
| 1657 EXPECT_EQ("192.1.98.1", NetAddressToString(addrlist[3].head())); | 1657 EXPECT_EQ("192.1.98.1", NetAddressToString(addrlist[3].head())); |
| 1658 } | 1658 } |
| 1659 | 1659 |
| 1660 // TODO(cbentzel): Test a mix of requests with different HostResolverFlags. | 1660 // TODO(cbentzel): Test a mix of requests with different HostResolverFlags. |
| 1661 | 1661 |
| 1662 } // namespace | 1662 } // namespace |
| 1663 | 1663 |
| 1664 } // namespace net | 1664 } // namespace net |
| OLD | NEW |