summaryrefslogtreecommitdiffstats
path: root/net/base/dns_util.h
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-23 15:51:34 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-23 15:51:34 +0000
commitc284be3f28d9c9eea24b844c7aeb9c004ce2de9f (patch)
tree901986c10f09beb41d1a8a2454ff6a452d0a6bb6 /net/base/dns_util.h
parentdeb40835d8e2f88901af6934b659f0eb89fa2177 (diff)
downloadchromium_src-c284be3f28d9c9eea24b844c7aeb9c004ce2de9f.zip
chromium_src-c284be3f28d9c9eea24b844c7aeb9c004ce2de9f.tar.gz
chromium_src-c284be3f28d9c9eea24b844c7aeb9c004ce2de9f.tar.bz2
Revert "net: remove DnsRRResolver"
This reverts commit r114845. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123247 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/dns_util.h')
-rw-r--r--net/base/dns_util.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/net/base/dns_util.h b/net/base/dns_util.h
index edfe559..2bd3eda 100644
--- a/net/base/dns_util.h
+++ b/net/base/dns_util.h
@@ -42,13 +42,19 @@ static const uint16 kClassIN = 1;
// DNS resource record types. See
// http://www.iana.org/assignments/dns-parameters
+// WARNING: if you're adding any new values here you may need to add them to
+// dnsrr_resolver.cc:DnsRRIsParsedByWindows.
+static const uint16 kDNS_A = 1;
static const uint16 kDNS_CNAME = 5;
static const uint16 kDNS_TXT = 16;
+static const uint16 kDNS_AAAA = 28;
static const uint16 kDNS_CERT = 37;
static const uint16 kDNS_DS = 43;
static const uint16 kDNS_RRSIG = 46;
static const uint16 kDNS_DNSKEY = 48;
+static const uint16 kDNS_ANY = 0xff;
static const uint16 kDNS_CAA = 257;
+static const uint16 kDNS_TESTING = 0xfffe; // in private use area.
// http://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml
static const uint8 kDNSSEC_RSA_SHA1 = 5;
@@ -59,6 +65,37 @@ static const uint8 kDNSSEC_RSA_SHA256 = 8;
static const uint8 kDNSSEC_SHA1 = 1;
static const uint8 kDNSSEC_SHA256 = 2;
+// A Buffer is used for walking over a DNS response packet.
+class DnsResponseBuffer {
+ public:
+ DnsResponseBuffer(const uint8* p, unsigned len)
+ : p_(p),
+ packet_(p),
+ len_(len),
+ packet_len_(len) {
+ }
+
+ bool U8(uint8* v);
+ bool U16(uint16* v);
+ bool U32(uint32* v);
+ bool Skip(unsigned n);
+
+ bool Block(base::StringPiece* out, unsigned len);
+
+ // DNSName parses a (possibly compressed) DNS name from the packet. If |name|
+ // is not NULL, then the name is written into it. See RFC 1035 section 4.1.4.
+ bool DNSName(std::string* name);
+
+ private:
+ const uint8* p_;
+ const uint8* const packet_;
+ unsigned len_;
+ const unsigned packet_len_;
+
+ DISALLOW_COPY_AND_ASSIGN(DnsResponseBuffer);
+};
+
+
} // namespace net
#endif // NET_BASE_DNS_UTIL_H_