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