From 331276b2b1eea51fad9712c5c732cc9d95838919 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Wed, 20 Jun 2012 13:00:12 +0200 Subject: [PATCH] add more Copy functions --- types.go | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/types.go b/types.go index aaa88657..3715f5e7 100644 --- a/types.go +++ b/types.go @@ -201,7 +201,7 @@ func (rr *RR_CNAME) Len() int { } func (rr *RR_CNAME) Copy() *RR_CNAME { - return &RR_CNAME{Hdr: *rr.Hdr.Copy(), Target: rr.Target} + return &RR_CNAME{*rr.Hdr.Copy(), rr.Target} } type RR_HINFO struct { @@ -222,6 +222,10 @@ func (rr *RR_HINFO) Len() int { return rr.Hdr.Len() + len(rr.Cpu) + len(rr.Os) } +func (rr *RR_HINFO) Copy() *RR_HINFO { + return &RR_HINFO{*rr.Hdr.Copy(), rr.Cpu, rr.Os} +} + type RR_MB struct { Hdr RR_Header Mb string `dns:"cdomain-name"` @@ -240,6 +244,10 @@ func (rr *RR_MB) Len() int { return rr.Hdr.Len() + l } +func (rr *RR_MB) Copy() *RR_MB { + return &RR_MB{*rr.Hdr.Copy(), rr.Mb} +} + type RR_MG struct { Hdr RR_Header Mg string `dns:"cdomain-name"` @@ -258,6 +266,10 @@ func (rr *RR_MG) Len() int { return rr.Hdr.Len() + l } +func (rr *RR_MG) Copy() *RR_MG { + return &RR_MG{*rr.Hdr.Copy(), rr.Mg} +} + type RR_MINFO struct { Hdr RR_Header Rmail string `dns:"cdomain-name"` @@ -278,6 +290,10 @@ func (rr *RR_MINFO) Len() int { return rr.Hdr.Len() + l + n } +func (rr *RR_MINFO) Copy() *RR_MINFO { + return &RR_MINFO{*rr.Hdr.Copy(), rr.Rmail, rr.Email} +} + type RR_MR struct { Hdr RR_Header Mr string `dns:"cdomain-name"` @@ -296,6 +312,10 @@ func (rr *RR_MR) Len() int { return rr.Hdr.Len() + l } +func (rr *RR_MR) Copy() *RR_MR { + return &RR_MR{*rr.Hdr.Copy(), rr.Mr} +} + type RR_MF struct { Hdr RR_Header Mf string `dns:"cdomain-name"` @@ -313,6 +333,10 @@ func (rr *RR_MF) Len() int { return rr.Hdr.Len() + len(rr.Mf) + 1 } +func (rr *RR_MF) Copy() *RR_MF { + return &RR_MF{*rr.Hdr.Copy(), rr.Mf} +} + type RR_MD struct { Hdr RR_Header Md string `dns:"cdomain-name"` @@ -330,6 +354,10 @@ func (rr *RR_MD) Len() int { return rr.Hdr.Len() + len(rr.Md) + 1 } +func (rr *RR_MD) Copy() *RR_MD { + return &RR_MD{*rr.Hdr.Copy(), rr.Md} +} + type RR_MX struct { Hdr RR_Header Pref uint16 @@ -349,6 +377,10 @@ func (rr *RR_MX) Len() int { return rr.Hdr.Len() + l + 2 } +func (rr *RR_MX) Copy() *RR_MX { + return &RR_MX{*rr.Hdr.Copy(), rr.Pref, rr.Mx} +} + type RR_AFSDB struct { Hdr RR_Header Subtype uint16 @@ -368,6 +400,10 @@ func (rr *RR_AFSDB) Len() int { return rr.Hdr.Len() + l + 2 } +func (rr *RR_AFSDB) Copy() *RR_AFSDB { + return &RR_AFSDB{*rr.Hdr.Copy(), rr.Subtype, rr.Hostname} +} + type RR_NS struct { Hdr RR_Header Ns string `dns:"cdomain-name"` @@ -386,6 +422,10 @@ func (rr *RR_NS) Len() int { return rr.Hdr.Len() + l } +func (rr *RR_NS) Copy() *RR_NS { + return &RR_NS{*rr.Hdr.Copy(), rr.Ns} +} + type RR_PTR struct { Hdr RR_Header Ptr string `dns:"cdomain-name"` @@ -404,6 +444,10 @@ func (rr *RR_PTR) Len() int { return rr.Hdr.Len() + l } +func (rr *RR_PTR) Copy() *RR_PTR { + return &RR_PTR{*rr.Hdr.Copy(), rr.Ptr} +} + type RR_RP struct { Hdr RR_Header Mbox string `dns:"domain-name"`