Re: [exim] reverse_host_lookup and SERVFAIL

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Ryan Tracey
CC: exim-users
Subject: Re: [exim] reverse_host_lookup and SERVFAIL
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