Index: net/dns/record_rdata.cc |
diff --git a/net/dns/record_rdata.cc b/net/dns/record_rdata.cc |
index 55967f91a9aef249a6973070280b2d20361afba3..86e8830c97936b23297d7cf58173725c556793d7 100644 |
--- a/net/dns/record_rdata.cc |
+++ b/net/dns/record_rdata.cc |
@@ -55,6 +55,17 @@ bool SrvRecordRdata::IsEqual(const RecordRdata* other) const { |
target_ == srv_other->target_; |
} |
+scoped_ptr<const RecordRdata> SrvRecordRdata::Clone() const { |
+ scoped_ptr<SrvRecordRdata> return_value(new SrvRecordRdata); |
+ |
+ return_value->port_ = port_; |
+ return_value->weight_ = weight_; |
+ return_value->priority_ = priority_; |
+ return_value->target_ = target_; |
+ |
+ return scoped_ptr<const RecordRdata>(return_value.Pass()); |
+} |
+ |
ARecordRdata::ARecordRdata() { |
} |
@@ -88,6 +99,14 @@ bool ARecordRdata::IsEqual(const RecordRdata* other) const { |
return address_ == a_other->address_; |
} |
+scoped_ptr<const RecordRdata> ARecordRdata::Clone() const { |
+ scoped_ptr<ARecordRdata> return_value(new ARecordRdata); |
+ |
+ return_value->address_ = address_; |
+ |
+ return return_value.PassAs<const RecordRdata>(); |
+} |
+ |
AAAARecordRdata::AAAARecordRdata() { |
} |
@@ -121,6 +140,14 @@ bool AAAARecordRdata::IsEqual(const RecordRdata* other) const { |
return address_ == a_other->address_; |
} |
+scoped_ptr<const RecordRdata> AAAARecordRdata::Clone() const { |
+ scoped_ptr<AAAARecordRdata> return_value(new AAAARecordRdata); |
+ |
+ return_value->address_ = address_; |
+ |
+ return return_value.PassAs<const RecordRdata>(); |
+} |
+ |
CnameRecordRdata::CnameRecordRdata() { |
} |
@@ -150,6 +177,14 @@ bool CnameRecordRdata::IsEqual(const RecordRdata* other) const { |
return cname_ == cname_other->cname_; |
} |
+scoped_ptr<const RecordRdata> CnameRecordRdata::Clone() const { |
+ scoped_ptr<CnameRecordRdata> return_value(new CnameRecordRdata); |
+ |
+ return_value->cname_ = cname_; |
+ |
+ return return_value.PassAs<const RecordRdata>(); |
+} |
+ |
PtrRecordRdata::PtrRecordRdata() { |
} |
@@ -178,6 +213,14 @@ bool PtrRecordRdata::IsEqual(const RecordRdata* other) const { |
return ptrdomain_ == ptr_other->ptrdomain_; |
} |
+scoped_ptr<const RecordRdata> PtrRecordRdata::Clone() const { |
+ scoped_ptr<PtrRecordRdata> return_value(new PtrRecordRdata); |
+ |
+ return_value->ptrdomain_ = ptrdomain_; |
+ |
+ return return_value.PassAs<const RecordRdata>(); |
+} |
+ |
TxtRecordRdata::TxtRecordRdata() { |
} |
@@ -212,7 +255,16 @@ uint16 TxtRecordRdata::Type() const { |
bool TxtRecordRdata::IsEqual(const RecordRdata* other) const { |
if (other->Type() != Type()) return false; |
const TxtRecordRdata* txt_other = static_cast<const TxtRecordRdata*>(other); |
+ |
return texts_ == txt_other->texts_; |
} |
+scoped_ptr<const RecordRdata> TxtRecordRdata::Clone() const { |
+ scoped_ptr<TxtRecordRdata> return_value(new TxtRecordRdata); |
+ |
+ return_value->texts_ = texts_; |
+ |
+ return return_value.PassAs<const RecordRdata>(); |
+} |
+ |
} // namespace net |