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()) }