From 52a0d3845ead07f840e9e99cb4a8c3507c84ab30 Mon Sep 17 00:00:00 2001 From: radhitya Date: Sat, 4 Jul 2026 14:29:02 +0700 Subject: fiuh --- internal/dns/rr_unknown.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 internal/dns/rr_unknown.go (limited to 'internal/dns/rr_unknown.go') diff --git a/internal/dns/rr_unknown.go b/internal/dns/rr_unknown.go new file mode 100644 index 0000000..77ae46d --- /dev/null +++ b/internal/dns/rr_unknown.go @@ -0,0 +1,34 @@ +package dns + +// https://datatracker.ietf.org/doc/html/rfc3597 + +import "fmt" + +type Unknown struct { + RRType uint16 + Data []byte +} + +func (u *Unknown) Type() uint16 { + return u.RRType +} + +func (u *Unknown) Pack(p *packer) error { + p.buf = append(p.buf, u.Data...) + return nil +} + +func (u *Unknown) Unpack(ru *unpacker, length uint16) error { + if ru.off+int(length) > len(ru.buf) { + return fmt.Errorf("dns: short unknown rdata") + } + + u.Data = make([]byte, length) + copy(u.Data, ru.buf[ru.off:ru.off+int(length)]) + ru.off += int(length) + return nil +} + +func (u *Unknown) String() string { + return fmt.Sprintf("\\# %d %x", len(u.Data), u.Data) +} -- cgit v1.2.3