Re: [exim] Problems arroung qualify_singe after exim 4.52 (a…

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Robert Bannocks
CC: exim-users
Subject: Re: [exim] Problems arroung qualify_singe after exim 4.52 (and so with4.66)
On Thu, 1 Feb 2007, Robert Bannocks wrote:

> I have encountered a problem in upgrading exim to 4.66.
> I have chased this back to a change that was made in 4.53 and this look
> like a bug to me.
>
> In summary e-mail addresses in which the hostname was not fully
> qualified are
> no longer accepted at SMTP time, however, exim -bv says that the address
> is valid.
> This appears to be a bug with qualify_single. Which is not set in my
> configure
> file and so should default to true.


I found this change for 4.64

PH/16 It seems that the options setting for the resolver (RES_DEFNAMES and     
      RES_DNSRCH) can affect the behaviour of gethostbyname() and friends when
      they consult the DNS. I had assumed they would set it the way they    
      wanted; and indeed my experiments on Linux seem to show that in some    
      cases they do (I could influence IPv6 lookups but not IPv4 lookups).  
      To be on the safe side, however, I have now made the interface to        
      host_find_byname() similar to host_find_bydns(), with an argument       
      containing the DNS resolver options. The host_find_byname() function now
      sets these options at its start, just as host_find_bydns() does. The smtp
      transport options dns_qualify_single and dns_search_parents are passed to
      host_find_byname() when gethostbyname=TRUE in this transport. Other uses
      of host_find_byname() use the default settings of RES_DEFNAMES        
      (qualify_single) but not RES_DNSRCH (search_parents).                


There doesn't seem to be anything else between 4.53 and 4.66, and even
that one doesn't seem relevant.

> Running a debug on port 26 with the same SMTP session as above produces
> the following out put:


> And the stderror ends:
>
> 18:07:41 28510 --------> dnslookup router <--------
> 18:07:41 28510 local_part=root domain=somehost


> Now repeating the same with exim 4.52 (running on port 26) exim accepts
> the message (I am using the same configuration file)


> and the end of the debug output (the relevant section) is:
>
> 18:13:44 156 --------> dnslookup router <--------
> 18:13:44 156 local_part=root domain=somehost.nhm.ac.uk


The difference is that the address has been expanded before it gets to
the DNS lookup router. Therefore, whatever it is has happened earlier in
the session. Please can you post (or send to me) the full debugging
output in both cases.

-- 
Philip Hazel            University of Cambridge Computing Service
Get the Exim 4 book:    http://www.uit.co.uk/exim-book