diff options
author | cbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-07 13:19:10 +0000 |
---|---|---|
committer | cbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-07 13:19:10 +0000 |
commit | 19bdc0036b036f4b33c8d81536a9848c6a95c9f7 (patch) | |
tree | f9803f03723dd6b218ed4a6fe08f3edc12572d5d /net/dns/dns_session.cc | |
parent | ccf637be7edd3bdb14dc4157e6370e78c619a8f6 (diff) | |
download | chromium_src-19bdc0036b036f4b33c8d81536a9848c6a95c9f7.zip chromium_src-19bdc0036b036f4b33c8d81536a9848c6a95c9f7.tar.gz chromium_src-19bdc0036b036f4b33c8d81536a9848c6a95c9f7.tar.bz2 |
Revert 113282 - Isolates generic DnsClient from AsyncHostResolver.
There were a few memory issues including access of unadressable memory.
DnsClient provides a generic DNS client that allows fetching resource records.
DnsClient is very lightweight and does not support aggregation, queuing or
prioritization of requests.
This is the first CL in a series to merge AsyncHostResolver into
HostResolverImpl.
Also introduces general-purpose BigEndianReader/Writer.
BUG=90881
TEST=./net_unittests
Review URL: http://codereview.chromium.org/8762001
TBR=szym@chromium.org
Review URL: http://codereview.chromium.org/8835011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113384 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/dns/dns_session.cc')
-rw-r--r-- | net/dns/dns_session.cc | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/net/dns/dns_session.cc b/net/dns/dns_session.cc deleted file mode 100644 index 15cbaa2..0000000 --- a/net/dns/dns_session.cc +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "net/dns/dns_session.h" - -#include "base/basictypes.h" -#include "base/bind.h" -#include "base/time.h" -#include "net/base/ip_endpoint.h" -#include "net/dns/dns_config_service.h" -#include "net/socket/client_socket_factory.h" - -namespace net { - -DnsSession::DnsSession(const DnsConfig& config, - ClientSocketFactory* factory, - const RandIntCallback& rand_int_callback, - NetLog* net_log) - : config_(config), - socket_factory_(factory), - rand_callback_(base::Bind(rand_int_callback, 0, kuint16max)), - net_log_(net_log), - server_index_(0) { -} - -int DnsSession::NextId() const { - return rand_callback_.Run(); -} - -const IPEndPoint& DnsSession::NextServer() { - // TODO(szym): Rotate servers on failures. - const IPEndPoint& ipe = config_.nameservers[server_index_]; - if (config_.rotate) - server_index_ = (server_index_ + 1) % config_.nameservers.size(); - return ipe; -} - -base::TimeDelta DnsSession::NextTimeout(int attempt) { - // TODO(szym): Adapt timeout to observed RTT. - return config_.timeout * (attempt + 1); -} - -DnsSession::~DnsSession() {} - -} // namespace net - |