Convert an RR to its unknown representation
This commit is contained in:
parent
19d93e2181
commit
625de563d0
17
dns.go
17
dns.go
|
@ -207,3 +207,20 @@ func zoneMatch(pattern, zone string) (ok bool) {
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ToRFC3597 converts a known RR to the unknown RR representation
|
||||||
|
func ToRFC3597(r RR) *RFC3597 {
|
||||||
|
buf := make([]byte, r.Len()*2)
|
||||||
|
off, err := PackStruct(r, buf, 0)
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
buf = buf[:off]
|
||||||
|
rawSetRdlength(buf, 0, off)
|
||||||
|
u := new(RFC3597)
|
||||||
|
_, err = UnpackStruct(u, buf, 0)
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
|
@ -152,3 +152,11 @@ func TestCompressLenght(t *testing.T) {
|
||||||
t.Fatalf("Should be equal")
|
t.Fatalf("Should be equal")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestToRFC3597(t *testing.T) {
|
||||||
|
a, _ := NewRR("miek.nl. IN A 10.0.1.1")
|
||||||
|
x := ToRFC3597(a)
|
||||||
|
if x.String() != `miek.nl. 3600 IN A \# 4 0a000101` {
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue