diff options
author | szym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-15 21:30:46 +0000 |
---|---|---|
committer | szym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-15 21:30:46 +0000 |
commit | 0adcb2b7566fc42a11409b79f81a8bbf4f1eed32 (patch) | |
tree | 650466bc57a4bf5082d4a0291dc030ada658f6ca /net/dns/dns_client.cc | |
parent | 69cc9fd8cf3a8b7a67109d13a687dc3f5d80626b (diff) | |
download | chromium_src-0adcb2b7566fc42a11409b79f81a8bbf4f1eed32.zip chromium_src-0adcb2b7566fc42a11409b79f81a8bbf4f1eed32.tar.gz chromium_src-0adcb2b7566fc42a11409b79f81a8bbf4f1eed32.tar.bz2 |
[net/dns] Resolve AF_UNSPEC on dual-stacked systems. Sort addresses according to RFC3484.
Original review: http://codereview.chromium.org/10442098/
BUG=113993
TEST=./net_unittests --gtest_filter=AddressSorter*:HostResolverImplDnsTest.DnsTaskUnspec
Review URL: https://chromiumcodereview.appspot.com/10855179
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151750 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/dns/dns_client.cc')
-rw-r--r-- | net/dns/dns_client.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc index 5381452..859fc27 100644 --- a/net/dns/dns_client.cc +++ b/net/dns/dns_client.cc @@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/rand_util.h" #include "net/base/net_log.h" +#include "net/dns/address_sorter.h" #include "net/dns/dns_config_service.h" #include "net/dns/dns_session.h" #include "net/dns/dns_transaction.h" @@ -18,7 +19,9 @@ namespace { class DnsClientImpl : public DnsClient { public: - explicit DnsClientImpl(NetLog* net_log) : net_log_(net_log) {} + explicit DnsClientImpl(NetLog* net_log) + : address_sorter_(AddressSorter::CreateAddressSorter()), + net_log_(net_log) {} virtual void SetConfig(const DnsConfig& config) OVERRIDE { factory_.reset(); @@ -40,9 +43,14 @@ class DnsClientImpl : public DnsClient { return session_.get() ? factory_.get() : NULL; } + virtual AddressSorter* GetAddressSorter() OVERRIDE { + return address_sorter_.get(); + } + private: scoped_refptr<DnsSession> session_; scoped_ptr<DnsTransactionFactory> factory_; + scoped_ptr<AddressSorter> address_sorter_; NetLog* net_log_; }; |