summaryrefslogtreecommitdiffstats
path: root/chrome/common/net
diff options
context:
space:
mode:
authoragayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-28 04:11:50 +0000
committeragayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-28 04:11:50 +0000
commit6c1e21845d52076a03f1ed9ed6799190e1833dd3 (patch)
treef83a390db1b0497f6df51257e00e705852073e12 /chrome/common/net
parenta6833b8c7436364df8ff118399a7b38dc7fcebc2 (diff)
downloadchromium_src-6c1e21845d52076a03f1ed9ed6799190e1833dd3.zip
chromium_src-6c1e21845d52076a03f1ed9ed6799190e1833dd3.tar.gz
chromium_src-6c1e21845d52076a03f1ed9ed6799190e1833dd3.tar.bz2
Initial support for built-in DNS resolver/cache.
BUG=None TEST=None Review URL: http://codereview.chromium.org/3693001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64202 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/net')
-rw-r--r--chrome/common/net/raw_host_resolver_proc.cc28
-rw-r--r--chrome/common/net/raw_host_resolver_proc.h40
2 files changed, 68 insertions, 0 deletions
diff --git a/chrome/common/net/raw_host_resolver_proc.cc b/chrome/common/net/raw_host_resolver_proc.cc
new file mode 100644
index 0000000..474afa2
--- /dev/null
+++ b/chrome/common/net/raw_host_resolver_proc.cc
@@ -0,0 +1,28 @@
+// Copyright (c) 2010 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 "chrome/common/net/raw_host_resolver_proc.h"
+
+#include "base/logging.h"
+#include "net/base/net_errors.h"
+
+namespace chrome_common_net {
+
+RawHostResolverProc::RawHostResolverProc(const net::IPAddressNumber& dns_server,
+ net::HostResolverProc* previous)
+ : HostResolverProc(previous), dns_server_(dns_server) {}
+
+int RawHostResolverProc::Resolve(const std::string& host,
+ net::AddressFamily address_family,
+ net::HostResolverFlags host_resolver_flags,
+ net::AddressList* addrlist,
+ int* os_error) {
+ // TODO(agayev): Implement raw DNS resolution.
+ LOG(INFO) << "trying to resolve " << host;
+ return net::ERR_NAME_NOT_RESOLVED;
+}
+
+RawHostResolverProc::~RawHostResolverProc() {}
+
+} // namespace chrome_common_net
diff --git a/chrome/common/net/raw_host_resolver_proc.h b/chrome/common/net/raw_host_resolver_proc.h
new file mode 100644
index 0000000..7ec751a
--- /dev/null
+++ b/chrome/common/net/raw_host_resolver_proc.h
@@ -0,0 +1,40 @@
+// Copyright (c) 2010 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.
+
+#ifndef CHROME_COMMON_NET_RAW_HOST_RESOLVER_PROC_H_
+#define CHROME_COMMON_NET_RAW_HOST_RESOLVER_PROC_H_
+#pragma once
+
+// RawHostResolverProc will eventually be a getaddrinfo() replacement. It
+// will construct and send DNS queries to the DNS server specified via
+// --dns-server flag and will parse the responses and put it into a cache
+// together with the TTL. Necessary amendments will be made to cache and
+// HostResolverProc interface to accomodate these.
+
+#include <string>
+
+#include "net/base/host_resolver_proc.h"
+#include "net/base/net_util.h"
+
+namespace chrome_common_net {
+
+class RawHostResolverProc : public net::HostResolverProc {
+ public:
+ RawHostResolverProc(const net::IPAddressNumber& dns_server,
+ net::HostResolverProc* previous);
+
+ virtual int Resolve(const std::string& host,
+ net::AddressFamily address_family,
+ net::HostResolverFlags host_resolver_flags,
+ net::AddressList* addrlist,
+ int* os_error);
+ private:
+ virtual ~RawHostResolverProc();
+
+ net::IPAddressNumber dns_server_;
+};
+
+} // namespace chrome_common_net
+
+#endif // CHROME_COMMON_NET_RAW_HOST_RESOLVER_PROC_H_