summaryrefslogtreecommitdiffstats
path: root/net/dns/dns_client.cc
diff options
context:
space:
mode:
authorszym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-15 21:30:46 +0000
committerszym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-15 21:30:46 +0000
commit0adcb2b7566fc42a11409b79f81a8bbf4f1eed32 (patch)
tree650466bc57a4bf5082d4a0291dc030ada658f6ca /net/dns/dns_client.cc
parent69cc9fd8cf3a8b7a67109d13a687dc3f5d80626b (diff)
downloadchromium_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.cc10
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_;
};