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
|
||||
}
|
||||
|
||||
// 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")
|
||||
}
|
||||
}
|
||||
|
||||
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