Add TestDynamicUpdateParsing test
This commit is contained in:
parent
2127b822dd
commit
cfa561ed85
|
@ -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())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue