On Thu, 1 Dec 2005, Daniel Tiefnig wrote:
> According to this, it would be the safest thing to reduce requirements
> to an absolute minimum. Like require just AES encoding on the server
> and disable it in the client:
>
> {AES}{!AES:3DES}}
>
> Should do the trick quite everywhere, shouldn't it?
Yes, I think you are right there. I have made that change, and I have
just refreshed the tarball with the latest sources.
ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/Testing/exim-testsuite-0.00.tar.bz2
Another 50 or so test scripts have been added. While doing this, I
discovered a bug in Exim - annoying, since 4.60 is freshly out - that
affects FreeBSD and probably other BSD-derived systems. If you are using
FreeBSD, test 1002 (an IPv6 test) will fail unless you apply the patch
below. At least this shows the value of making the tests run in
different environments. If anyone wants to know what this patch does,
here's the ChangeLog entry:
PH/01 The code for finding all the local interface addresses on a FreeBSD
system running IPv6 was broken. This may well have applied to all BSD
systems, as well as to others that have similar system calls. The broken
code found IPv4 interfaces correctly, but gave incorrect values for the
IPv6 interfaces. In particular, ::1 was not found. The effect in Exim was
that it would not match correctly against @[] and not recognize the IPv6
addresses as local.
--
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
*** exim-4.60/src/os.c Mon Nov 28 10:57:32 2005
--- src/os.c Thu Dec 1 14:21:25 2005
***************
*** 671,678 ****
addrp = &ifreq.V_ifr_addr;
#else
! memcpy((char *)&ifreq, cp, sizeof(ifreq));
! memcpy(addrbuf, (char *)&(ifreq.V_ifr_addr), len - sizeof(ifreq.V_ifr_name));
addrp = (struct sockaddr *)addrbuf;
#endif
--- 672,679 ----
addrp = &ifreq.V_ifr_addr;
#else
! memcpy(addrbuf, cp + offsetof(struct V_ifreq, V_ifr_addr),
! len - sizeof(ifreq.V_ifr_name));
addrp = (struct sockaddr *)addrbuf;
#endif