Viktor Dukhovni: > On Mon, Nov 24, 2014 at 01:38:15PM -0500, Wietse Venema wrote: > > > /etc/postfix/smtp_dns_reply_filter: > > # /domain ttl IN AAAA address/ action, all case-insensitive. > > # Note: the domain name ends in ".". > > /^\S+\.google.com\.\s+\S+\s+\S+\s+AAAA\s+/ IGNORE > > > > The implementation renders a DNS record as a string in the format > > that we know from dig(1) and other tools, then matches that string > > against a list of lookup tables. Currently, IGNORE is the only > > implemented action. It removes the record from the DNS lookup result. > > > > When all DNS lookup result reply records are deleted, it returns a > > DNS_NOTFOUND status plus a diagnostic text with "All records > > suppressed by policy filter". > > There might be cases in which "DNS_NOTFOUND" should be replaced > with "DNS_FAIL" if as a result the RRset becomes empty.
I don't think that the distinction between different kinds of "empty" is needed in the user interface. Specifically, if the filter uses a distinct status for "all records deleted", e.g., DNS_POLICY, then the caller already knows if that means "record not found" (most queries) or "service unavailable" (MX queries, or other queries for records with MX-like behavior). Whether "empty" is a hard or soft error is a different matter. We could have IGNORE -> DNS_POLICY, and SOFT_IGNORE -> DNS_RETRY (but only when all records are deleted). Wietse