Add TestDynamicUpdateParsing test

This commit is contained in:
Miek Gieben 2014-08-29 09:42:43 +00:00
parent 2127b822dd
commit cfa561ed85
2 changed files with 24 additions and 0 deletions

View File

@ -1160,3 +1160,18 @@ func TestMalformedPackets(t *testing.T) {
// println(msg.String())
}
}
func TestDynamicUpdateParsing(t *testing.T) {
prefix := "example.com. IN "
// TODO(miek): extend to all types.
//for _, typ := range TypeToString {
for _, typ := range []string{"PTR", "A"} {
r, e := NewRR(prefix + typ)
if e != nil {
t.Log("failure to parse: " + prefix + typ)
t.Fail()
} else {
t.Logf("parsed: %s", r.String())
}
}
}

View File

@ -265,6 +265,9 @@ func setA(h RR_Header, c chan lex, f string) (RR, *ParseError) {
rr.Hdr = h
l := <-c
if l.length == 0 { // Dynamic updates.
return rr, nil
}
rr.A = net.ParseIP(l.token)
if rr.A == nil {
return nil, &ParseError{f, "bad A A", l}
@ -277,6 +280,9 @@ func setAAAA(h RR_Header, c chan lex, f string) (RR, *ParseError) {
rr.Hdr = h
l := <-c
if l.length == 0 {
return rr, nil
}
rr.AAAA = net.ParseIP(l.token)
if rr.AAAA == nil {
return nil, &ParseError{f, "bad AAAA AAAA", l}
@ -310,6 +316,9 @@ func setPTR(h RR_Header, c chan lex, o, f string) (RR, *ParseError) {
l := <-c
rr.Ptr = l.token
if l.length == 0 { // dynamic update rr.
return rr, nil
}
if l.token == "@" {
rr.Ptr = o
return rr, nil