Add TestDynamicUpdateParsing test
This commit is contained in:
parent
2127b822dd
commit
cfa561ed85
|
@ -1160,3 +1160,18 @@ func TestMalformedPackets(t *testing.T) {
|
||||||
// println(msg.String())
|
// 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())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -265,6 +265,9 @@ func setA(h RR_Header, c chan lex, f string) (RR, *ParseError) {
|
||||||
rr.Hdr = h
|
rr.Hdr = h
|
||||||
|
|
||||||
l := <-c
|
l := <-c
|
||||||
|
if l.length == 0 { // Dynamic updates.
|
||||||
|
return rr, nil
|
||||||
|
}
|
||||||
rr.A = net.ParseIP(l.token)
|
rr.A = net.ParseIP(l.token)
|
||||||
if rr.A == nil {
|
if rr.A == nil {
|
||||||
return nil, &ParseError{f, "bad A A", l}
|
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
|
rr.Hdr = h
|
||||||
|
|
||||||
l := <-c
|
l := <-c
|
||||||
|
if l.length == 0 {
|
||||||
|
return rr, nil
|
||||||
|
}
|
||||||
rr.AAAA = net.ParseIP(l.token)
|
rr.AAAA = net.ParseIP(l.token)
|
||||||
if rr.AAAA == nil {
|
if rr.AAAA == nil {
|
||||||
return nil, &ParseError{f, "bad AAAA AAAA", l}
|
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
|
l := <-c
|
||||||
rr.Ptr = l.token
|
rr.Ptr = l.token
|
||||||
|
if l.length == 0 { // dynamic update rr.
|
||||||
|
return rr, nil
|
||||||
|
}
|
||||||
if l.token == "@" {
|
if l.token == "@" {
|
||||||
rr.Ptr = o
|
rr.Ptr = o
|
||||||
return rr, nil
|
return rr, nil
|
||||||
|
|
Loading…
Reference in New Issue