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_mx.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 internal/dns/rr_mx.go (limited to 'internal/dns/rr_mx.go') diff --git a/internal/dns/rr_mx.go b/internal/dns/rr_mx.go new file mode 100644 index 0000000..2f49f86 --- /dev/null +++ b/internal/dns/rr_mx.go @@ -0,0 +1,30 @@ +package dns + +import "fmt" + +// https://datatracker.ietf.org/doc/html/rfc1035#section-3.3.9 +type MX struct { + Pref uint16 + Mx Name +} + +func (mx *MX) Type() uint16 { return TypeMX } + +func (mx *MX) Pack(p *packer) error { + p.writeUint16(mx.Pref) + return p.writeName(mx.Mx) +} + +func (mx *MX) Unpack(u *unpacker, length uint16) error { + var err error + mx.Pref, err = u.readUint16() + if err != nil { + return err + } + mx.Mx, err = u.readName() + return err +} + +func (mx *MX) String() string { + return fmt.Sprintf("%d %s", mx.Pref, mx.Mx.String()) +} -- cgit v1.2.3