diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-23 15:51:34 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-23 15:51:34 +0000 |
commit | c284be3f28d9c9eea24b844c7aeb9c004ce2de9f (patch) | |
tree | 901986c10f09beb41d1a8a2454ff6a452d0a6bb6 /net/base/dns_util.h | |
parent | deb40835d8e2f88901af6934b659f0eb89fa2177 (diff) | |
download | chromium_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.h | 37 |
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_ |