int dns_mx(stralloc* out,stralloc* fqdn);
dns_mx looks up MX records for the fully-qualified domain name in fqdn. It puts the MX records into out and returns 0. Each MX record is a two-byte MX distance (big endian) followed by a \0-terminated dot-encoded domain name. If the domain does not exist in DNS, or has no MX records, out will be empty.
If dns_mx has trouble with the DNS lookup or runs out of memory, it returns -1, setting errno appropriately. It may or may not change out.
dns_mx_packet(3), dns_ip4(3), dns_ip6(3)