diff --git a/update_test.go b/update_test.go index 00e269b3..da36334f 100644 --- a/update_test.go +++ b/update_test.go @@ -1,8 +1,6 @@ package dns -import ( - "testing" -) +import "testing" func TestDynamicUpdateParsing(t *testing.T) { prefix := "example.com. IN " @@ -34,3 +32,23 @@ func TestDynamicUpdateUnpack(t *testing.T) { t.Fail() } } + +func TestDynamicUpdateZeroRdataUnpack(t *testing.T) { + m := new(Msg) + rr := &RR_Header{Name: ".", Rrtype: 0, Class: 1, Ttl: ^uint32(0), Rdlength: 0} + m.Answer = []RR{rr, rr, rr, rr, rr} + m.Ns = m.Answer + for n, s := range TypeToString { + rr.Rrtype = n + bytes, err := m.Pack() + if err != nil { + t.Logf("failed to pack %s: %v", s, err) + t.Fail() + continue + } + if err := new(Msg).Unpack(bytes); err != nil { + t.Logf("failed to unpack %s: %v", s, err) + t.Fail() + } + } +}