Index: net/dns/record_rdata.h |
diff --git a/net/dns/record_rdata.h b/net/dns/record_rdata.h |
index 76e9b37fe331521b172cc40b0278b4dd3127b4c1..dff311d8e8eed2e3aad323cc1607d08d3cab9a5f 100644 |
--- a/net/dns/record_rdata.h |
+++ b/net/dns/record_rdata.h |
@@ -27,6 +27,10 @@ class NET_EXPORT_PRIVATE RecordRdata { |
public: |
virtual ~RecordRdata() {} |
+ virtual bool IsEqual(const RecordRdata* other) const = 0; |
+ virtual uint16 Type() const = 0; |
+ virtual scoped_ptr<const RecordRdata> Copy() const = 0; |
+ |
protected: |
RecordRdata(); |
@@ -46,6 +50,10 @@ class NET_EXPORT_PRIVATE SrvRecordRdata : public RecordRdata { |
static scoped_ptr<SrvRecordRdata> Create(const base::StringPiece& data, |
const DnsRecordParser& parser); |
+ virtual bool IsEqual(const RecordRdata* other) const OVERRIDE; |
+ virtual uint16 Type() const OVERRIDE; |
+ virtual scoped_ptr<const RecordRdata> Copy() const OVERRIDE; |
+ |
uint16 priority() const { return priority_; } |
uint16 weight() const { return weight_; } |
uint16 port() const { return port_; } |
@@ -73,6 +81,9 @@ class NET_EXPORT_PRIVATE ARecordRdata : public RecordRdata { |
virtual ~ARecordRdata(); |
static scoped_ptr<ARecordRdata> Create(const base::StringPiece& data, |
const DnsRecordParser& parser); |
+ virtual bool IsEqual(const RecordRdata* other) const OVERRIDE; |
+ virtual uint16 Type() const OVERRIDE; |
+ virtual scoped_ptr<const RecordRdata> Copy() const OVERRIDE; |
const IPAddressNumber& address() const { return address_; } |
@@ -84,6 +95,29 @@ class NET_EXPORT_PRIVATE ARecordRdata : public RecordRdata { |
DISALLOW_COPY_AND_ASSIGN(ARecordRdata); |
}; |
+// AAAA Record format (http://www.ietf.org/rfc/rfc1035.txt): |
+// 16 bytes for IP address. |
+class NET_EXPORT_PRIVATE AAAARecordRdata : public RecordRdata { |
+ public: |
+ static const uint16 kType = dns_protocol::kTypeAAAA; |
+ |
+ virtual ~AAAARecordRdata(); |
+ static scoped_ptr<AAAARecordRdata> Create(const base::StringPiece& data, |
+ const DnsRecordParser& parser); |
+ virtual bool IsEqual(const RecordRdata* other) const OVERRIDE; |
+ virtual uint16 Type() const OVERRIDE; |
+ virtual scoped_ptr<const RecordRdata> Copy() const OVERRIDE; |
+ |
+ const IPAddressNumber& address() const { return address_; } |
+ |
+ private: |
+ AAAARecordRdata(); |
+ |
+ IPAddressNumber address_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(AAAARecordRdata); |
+}; |
+ |
// CNAME record format (http://www.ietf.org/rfc/rfc1035.txt): |
// cname: On the wire representation of domain name. |
class NET_EXPORT_PRIVATE CnameRecordRdata : public RecordRdata { |
@@ -93,6 +127,9 @@ class NET_EXPORT_PRIVATE CnameRecordRdata : public RecordRdata { |
virtual ~CnameRecordRdata(); |
static scoped_ptr<CnameRecordRdata> Create(const base::StringPiece& data, |
const DnsRecordParser& parser); |
+ virtual bool IsEqual(const RecordRdata* other) const OVERRIDE; |
+ virtual uint16 Type() const OVERRIDE; |
+ virtual scoped_ptr<const RecordRdata> Copy() const OVERRIDE; |
std::string cname() const { return cname_; } |
@@ -113,6 +150,9 @@ class NET_EXPORT_PRIVATE PtrRecordRdata : public RecordRdata { |
virtual ~PtrRecordRdata(); |
static scoped_ptr<PtrRecordRdata> Create(const base::StringPiece& data, |
const DnsRecordParser& parser); |
+ virtual bool IsEqual(const RecordRdata* other) const OVERRIDE; |
+ virtual uint16 Type() const OVERRIDE; |
+ virtual scoped_ptr<const RecordRdata> Copy() const OVERRIDE; |
std::string ptrdomain() const { return ptrdomain_; } |
@@ -134,6 +174,9 @@ class NET_EXPORT_PRIVATE TxtRecordRdata : public RecordRdata { |
virtual ~TxtRecordRdata(); |
static scoped_ptr<TxtRecordRdata> Create(const base::StringPiece& data, |
const DnsRecordParser& parser); |
+ virtual bool IsEqual(const RecordRdata* other) const OVERRIDE; |
+ virtual uint16 Type() const OVERRIDE; |
+ virtual scoped_ptr<const RecordRdata> Copy() const OVERRIDE; |
const std::vector<std::string>& texts() const { return texts_; } |