From f5bc1323a16120ad3a6a7c6947af992ba6676ecd Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Tue, 13 Jan 2015 14:40:53 +0000 Subject: [PATCH] update.go: make RemoveRRset as dumb as the rest. The RemoveRRset method was the only one that had a check for RRsets. While adding multiple identical RRs is an error, there should be now check for that at this level. --- update.go | 15 +++------------ update_test.go | 16 ---------------- 2 files changed, 3 insertions(+), 28 deletions(-) diff --git a/update.go b/update.go index 275d4e6c..f9558817 100644 --- a/update.go +++ b/update.go @@ -104,18 +104,9 @@ func (u *Msg) Insert(rr []RR) { // RemoveRRset creates a dynamic update packet that deletes an RRset, see RFC 2136 section 2.5.2. func (u *Msg) RemoveRRset(rr []RR) { - m := make(map[RR_Header]struct{}) - u.Ns = make([]RR, 0, len(rr)) - for _, r := range rr { - h := *r.Header().copyHeader() - h.Class = ClassANY - h.Ttl = 0 - h.Rdlength = 0 - if _, ok := m[h]; ok { - continue - } - m[h] = struct{}{} - u.Ns = append(u.Ns, &ANY{h}) + u.Ns = make([]RR, len(rr)) + for i, r := range rr { + u.Ns[i] = &ANY{Hdr: RR_Header{Name: r.Header().Name, Ttl: 0, Rrtype: r.Header().Rrtype, Class: ClassANY}} } } diff --git a/update_test.go b/update_test.go index fc22536e..bdcaac4d 100644 --- a/update_test.go +++ b/update_test.go @@ -86,20 +86,4 @@ func TestRemoveRRset(t *testing.T) { t.Logf("Actual msg:\n%v", tmp) t.Fail() } - - m.Ns = nil - m.RemoveRRset([]RR{rr, rr}) - actual, err = m.Pack() - if err != nil { - t.Fatalf("Error packing actual msg: %v", err) - } - if !bytes.Equal(actual, expect) { - tmp := new(Msg) - if err := tmp.Unpack(actual); err != nil { - t.Fatalf("Error unpacking actual msg: %v", err) - } - t.Logf("Expected msg:\n%v", expectstr) - t.Logf("Actual msg:\n%v", tmp) - t.Fail() - } }