I wrote:
> SRV lookup can return more than one record, and those records
> specify a TCP or UDP port. It basically means that SRV returns
> someothing similar to MX lookup except that it also returns a port
> to connect to.
And:
> This means that we'd have to extend the DNS_RR with at least a
> field for the port. [and do something for the SRV 'weight' field]
And:
> Also, the Postfix DNS client should handle a null SRV record as
> "service unavailable", similar to how the Postfix DNS client returns
> DNS_NULLMX for a null MX record.
And:
> Maybe it is better for the SMTP client to not look up MX records
> if the domain starts with _submission._tcp. Then the decision to
> look up SRV could be made higher-up, at the point where the SMTP
> client decides if it wants to do MX lookups or non-MX lookups.
>
> Then we end up with a hierarchy like:
>
> smtp_connect_remote
> calls smtp_domain_addr if it really wants to do MX lookup
> calls smtp_host_addr if MX record does not exist
>
> calls smtp_srv_ddr if it really wants to do SRV lookup
> calls smtp_host_addr with the SRV lookup result
>
> calls smtp_host_addr if it wants [A or AAAA lookup]
Based on this, there is large delta between RFC 6186 and the patch
that currently exists.
- Don't do MX or A/AAAA lookups for _submission._tcp.* in the Postfix
SMTP client.
- Do support multiple SRV records, null records, and the fields for
priority, weight, and port.
Also, should there be a default sanity check for hostnames that SRV
lookup is allowed to return, such as "must be a name within the
domain after _submission._tcp"? Just imagine people using this
feature over coffeeshop or hotel WIFI.
Wietse