On Wed, 26 Jan 2000, Mark Baker wrote:
> On Wed, Jan 26, 2000 at 12:39:26AM +0000, I wrote:
>
> > Actually, looking at the code again, I wonder whether if smtp_connect() died
> > in a less unpleasant way (like, say, returning an error instead of
> > panicking), smtp_transport_entry() already contains code to fallback to the
> > next address? That would certainly be a neater solution. Philip, do you
> > think that would work?
>
> Indeed, I've tried this and it does appear to work. I don't want to release
> it until someone who knows the exim code better than I do can check that it
> won't have any nasty side effects.
Firstly, may I say that your shipping of the IPv6 code has provided
useful testing and increased my confidence. You will have noticed that
in the latest release I made Exim more robust when an AAAA lookup fails
with a timeout or the like (it now goes on to look for an A record).
This case looks like another infelicity that only shows up in real life.
When I wrote the original IPv4 code, it seemed to me that failure to
create a socket was an ultimate disaster and there was no point going
on. However, now that we have both IPv4 and IPv6 sockets, things have
changed, and I think you have suggested exactly the correct solution.
I will incorporate this change into the next release. It should apply to
any socket, since the list of addresses might be in any order.
Philip
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.