Add top-level DNS resource decode alias

This commit is contained in:
Virgil 2026-04-04 06:06:09 +00:00
parent 5cbe402e50
commit 4e0c824645
2 changed files with 34 additions and 0 deletions

10
lns.go
View file

@ -272,6 +272,16 @@ func GetNewResource() *Resource {
return NewResource()
}
// DecodeResource decodes a raw DNS resource payload.
func DecodeResource(raw []byte) (*Resource, error) {
return dnspkg.DecodeResource(raw)
}
// GetDecodeResource is an alias for DecodeResource.
func GetDecodeResource(raw []byte) (*Resource, error) {
return DecodeResource(raw)
}
// Create constructs a reference NSEC record container.
func Create(name, nextDomain string, typeBitmap []byte) NSECRecord {
return dnspkg.Create(name, nextDomain, typeBitmap)

View file

@ -712,6 +712,30 @@ func TestPackageResourceAliases(t *testing.T) {
if resource.HasType(dnspkg.HSTypeTXT) == false {
t.Fatal("resource aliases should expose record type helpers from pkg/dns")
}
encoded, err := resource.Encode()
if err != nil {
t.Fatalf("Resource.Encode returned error: %v", err)
}
decoded, err := DecodeResource(encoded)
if err != nil {
t.Fatalf("DecodeResource returned error: %v", err)
}
if decoded.TTL != DEFAULT_TTL {
t.Fatalf("DecodeResource TTL = %d, want %d", decoded.TTL, DEFAULT_TTL)
}
if len(decoded.Records) != len(resource.Records) {
t.Fatalf("DecodeResource records = %d, want %d", len(decoded.Records), len(resource.Records))
}
if got, err := GetDecodeResource(encoded); err != nil {
t.Fatalf("GetDecodeResource returned error: %v", err)
} else if got.TTL != decoded.TTL || len(got.Records) != len(decoded.Records) {
t.Fatal("GetDecodeResource should alias DecodeResource")
}
}
func TestPackageNameStateAliases(t *testing.T) {