diff options
author | szym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-10 06:15:51 +0000 |
---|---|---|
committer | szym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-10 06:15:51 +0000 |
commit | 8fc627dc359f47bbda3cdb49b4a882f81b940166 (patch) | |
tree | ad19380cab7cfc3965c84af7c8edbd368663b51d /net | |
parent | c3b9f053833d07e843f058fddc5cbfab9ef50145 (diff) | |
download | chromium_src-8fc627dc359f47bbda3cdb49b4a882f81b940166.zip chromium_src-8fc627dc359f47bbda3cdb49b4a882f81b940166.tar.gz chromium_src-8fc627dc359f47bbda3cdb49b4a882f81b940166.tar.bz2 |
[net/dns] Fix how DnsTransaction computes next server index after fallback.
BUG=239657
TEST=net_unittests --gtest_filter=DnsTransactionTest.ServerFallbackAndRotate
Review URL: https://chromiumcodereview.appspot.com/14676012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199402 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/dns/dns_transaction.cc | 4 | ||||
-rw-r--r-- | net/dns/dns_transaction_unittest.cc | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc index 6d4bf01..fdd2eb2 100644 --- a/net/dns/dns_transaction.cc +++ b/net/dns/dns_transaction.cc @@ -651,8 +651,8 @@ class DnsTransactionImpl : public DnsTransaction, const DnsConfig& config = session_->config(); - unsigned server_index = first_server_index_ + - (attempt_number % config.nameservers.size()); + unsigned server_index = + (first_server_index_ + attempt_number) % config.nameservers.size(); scoped_ptr<DnsSession::SocketLease> lease = session_->AllocateSocket(server_index, net_log_.source()); diff --git a/net/dns/dns_transaction_unittest.cc b/net/dns/dns_transaction_unittest.cc index c3c4c8f..3266b9c 100644 --- a/net/dns/dns_transaction_unittest.cc +++ b/net/dns/dns_transaction_unittest.cc @@ -645,6 +645,7 @@ TEST_F(DnsTransactionTest, ServerFallbackAndRotate) { AddAsyncQueryAndRcode(kT0HostName, kT0Qtype, dns_protocol::kRcodeNXDOMAIN); // Responses for second request. AddAsyncQueryAndRcode(kT1HostName, kT1Qtype, dns_protocol::kRcodeSERVFAIL); + AddAsyncQueryAndRcode(kT1HostName, kT1Qtype, dns_protocol::kRcodeSERVFAIL); AddAsyncQueryAndRcode(kT1HostName, kT1Qtype, dns_protocol::kRcodeNXDOMAIN); TransactionHelper helper0(kT0HostName, kT0Qtype, ERR_NAME_NOT_RESOLVED); @@ -655,7 +656,7 @@ TEST_F(DnsTransactionTest, ServerFallbackAndRotate) { unsigned kOrder[] = { 0, 1, 2, 0, 1, // The first transaction. - 1, 2, // The second transaction starts from the next server. + 1, 2, 0, // The second transaction starts from the next server. }; CheckServerOrder(kOrder, arraysize(kOrder)); } |