[ On Monday, June 23, 2003 at 22:47:04 (+0100), Giuliano Gavazzi wrote: ]
> Subject: [Exim] multiple PTR and HELO check
>
> Sorry if this has been discussed, I have the impression it might, but
> it appears that exim does not deal well with multiple PTR records.
> I have received an email (spam) with:
>
> Received: from mail.univie.ac.at ([131.130.1.27] helo=mailbox.univie.ac.at)
>
> but
>
> ;; ANSWER SECTION:
> 27.1.130.131.in-addr.arpa. 60402 IN PTR mail.univie.ac.at.
> 27.1.130.131.in-addr.arpa. 60402 IN PTR mailbox.univie.ac.at.
>
> so it looks like exim stopped at the first PTR.
If I'm not mistaken, and depending on your server's compliation
environment, that problem is probably not Exim's fault, but rather the
fault of your libc/libresolv.
The implementation of gethostbyaddr() in GNU GlibC, in versions up to
and including 2.3.x, still does not ever seem to return anything in
(struct hostent *)->h_aliases regardless of how many PTRs there are
available in the DNS.
Since Exim already has all the code it needs to look up PTRs it might be
best if it simply avoided trying to use gethostbyaddr().
Alternatively you could try linking against BIND-8's or BIND-9's libbind
(though the last time I tried that on GNU/Linux with the 'host' utility
there were too many conflicting symbol definitions to ever get it to
work properly).
(FYI Smail also still uses gethostbyaddr(), but that's mostly because I
don't use anything with GlibC! ;-)
--
Greg A. Woods
+1 416 218-0098; <g.a.woods@???>; <woods@???>
Planix, Inc. <woods@???>; VE3TCP; Secrets of the Weird <woods@???>