On Wed, 19 Jan 2005, Ryan Tracey wrote:
> Is there any way to detect broken DNS (someone elses) and generate a defer
> with wording specific to that problem. In the case I am currently dealing
> with the mail admin with the broken DNS seems hesitant to consider their DNS
> as the problem because "Dude! your mail server is saying that their is a
> temporary *local* problem." I guess, though, that it might be difficult to
> differentiate between their DNS being broken and the local DNS being broken.
Quite. It is hard to generate short warning messages that cover every
situation. It's a "local" problem in the sense that Exim can't get at
the data it needs. It can't really tell where that data should come
from.
> Perhaps, if it's not there already, having some options for
> reverse_host_lookup can be added to the wishlist: e.g.
> reverse_host_lookup/ignore_servfail
The problem is that you can't detect SERVFAIL at the level that Exim
calls the resolver. The two deferring returns are TRY_AGAIN and
NO_RECOVERY. In /usr/include/netdb.h, I see this:
#define TRY_AGAIN 2 /* Non-Authoritative Host not found,
or SERVERFAIL. */
#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED,
NOTIMP. */
TRY_AGAIN probably includes cases where the nameserver cannot be
contacted.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book: http://www.uit.co.uk/exim-book