$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.101 2005/03/29 10:56:48 ph10 Exp $ Change log file for Exim from version 4.21 ------------------------------------------- Exim version 4.51 ----------------- TK/01 Added Yahoo DomainKeys support via libdomainkeys. See doc/experimental-spec.txt for details. (http://domainkeys.sf.net) TK/02 Fix ACL "control" statement not being available in MIME ACL. TK/03 Fix ACL "regex" condition not being available in MIME ACL. PH/01 Installed a patch from the Sieve maintainer that allows -bf to be used to test Sieve filters that use "vacation". PH/02 Installed a slightly modified version of Nikos Mavrogiannopoulos' patch that changes the way the GnuTLS parameters are stored in the cache file. The new format can be generated externally. For backward compatibility, if the data in the cache doesn't make sense, Exim assumes it has read an old-format file, and it generates new data and writes a new file. This means that you can't go back to an older release without removing the file. PH/03 A redirect router that has both "unseen" and "one_time" set does not work if there are any delivery delays because "one_time" forces the parent to be marked "delivered", so its unseen clone is never tried again. For this reason, Exim now forbids the simultaneous setting of these two options. PH/04 Change 4.11/85 fixed an obscure bug concerned with addresses that are redirected to themselves ("homonym" addresses). Read the long ChangeLog entry if you want to know the details. The fix, however, neglected to consider the case when local delivery batching is involved. The test for "previously delivered" was not happening when checking to see if an address could be batched with a previous (undelivered) one; under certain circumstances this could lead to multiple deliveries to the same address. A one-line patch to add the appropriate test fixes the bug. PH/05 Renamed the macro SOCKLEN_T as EXIM_SOCKLEN_T because AIX uses SOCKLEN_T in its include files, and this causes problems building Exim. PH/06 A number of "verify =" ACL conditions have no options (e.g. verify = header_syntax) but Exim was just ignoring anything given after a slash. In particular, this caused confusion with an attempt to use "verify = reverse_host_lookup/defer_ok". An error is now given when options are supplied for verify items that do not have them. (Maybe reverse_host_ lookup should have a defer_ok option, but that's a different point.) PH/07 Increase the size of the buffer for incoming SMTP commands from 512 (as defined by RFC 821) to 2048, because there were problems with some AUTH commands, and RFC 1869 says the size should be increased for extended SMTP commands that take arguments. PH/08 Added ${dlfunc dynamically loaded function for expansion (code from Tony Finch). PH/09 Previously, an attempt to use ${perl when it wasn't compiled gave an "unknown" error; now it says that the functionality isn't in the binary. PH/10 Added a nasty fudge to try to recognize and flatten LDAP passwords in an address' error message when a string expansion fails (syntax or whatever). Otherwise not only does the password appear in the log, it may also be put in a bounce message. PH/11 Installed exipick version 20050225.0 from John Jetmore. PH/12 If the last host in a fallback_hosts list was multihomed, only the first of its addresses was ever tried. (Bugzilla bug #2.) PH/13 If "headers_add" in a transport didn't end in a newline, Exim printed the result incorrectly in the debug output. (It correctly added a newline to what was transported.) TF/01 Added $received_time. PH/14 Modified the default configuration to add an acl_smtp_data ACL, with commented out examples of how to interface to a virus scanner and to SpamAssassin. Also added commented examples of av_scanner and spamd_address settings. PH/15 Further to TK/02 and TK/03 above, tidied up the tables of what conditions and controls are allowed in which ACLs. There were a couple of minor errors. Some of the entries in the conditions table (which is a table of where they are NOT allowed) were getting very unwieldy; rewrote them as a negation of where the condition IS allowed. A note about Exim versions 4.44 and 4.50 ---------------------------------------- Exim 4.50 was meant to be the next release after 4.43. It contains a lot of changes of various kinds. As a consequence, a big documentation update was needed. This delayed the release for rather longer than seemed good, especially in the light of a couple of (minor) security issues. Therefore, the changes that fixed bugs were backported into 4.43, to create a 4.44 maintenance release. So 4.44 and 4.50 are in effect two different branches that both start from 4.43. I have left the 4.50 change log unchanged; it contains all the changes since 4.43. The change log for 4.44 is below; many of its items are identical to those for 4.50. This seems to be the most sensible way to preserve the historical information. Exim version 4.50 ----------------- 1. Minor wording change to the doc/README.SIEVE file. 2. Change 4.43/35 introduced a bug: if quota_filecount was set, the computation of the current number of files was incorrect. 3. Closing a stable door: arrange to panic-die if setitimer() ever fails. The bug fixed in 4.43/37 would have been diagnosed quickly if this had been in place. 4. Give more explanation in the error message when the command for a transport filter fails to execute. 5. There are several places where Exim runs a non-Exim command in a subprocess. The SIGUSR1 signal should be disabled for these processes. This was being done only for the command run by the queryprogram router. It is now done for all such subprocesses. The other cases are: ${run, transport filters, and the commands run by the lmtp and pipe transports. 6. Added CONFIGURE_GROUP build-time option. 7. Some older OS have a limit of 256 on the maximum number of file descriptors. Exim was using setrlimit() to set 1000 as a large value unlikely to be exceeded. Change 4.43/17 caused a lot of logging on these systems. I've change it so that if it can't get 1000, it tries for 256. 8. "control=submission" was allowed, but had no effect, in a DATA ACL. This was an oversight, and furthermore, ever since the addition of extra controls (e.g. 4.43/32), the checks on when to allow different forms of "control" were broken. There should now be diagnostics for all cases when a control that does not make sense is encountered. 9. Added the /retain_sender option to "control=submission". 10. $recipients is now available in the predata ACL (oversight). 11. Tidy the search cache before the fork to do a delivery from a message received from the command line. Otherwise the child will trigger a lookup failure and thereby defer the delivery if it tries to use (for example) a cached ldap connection that the parent has called unbind on. 12. If verify=recipient was followed by verify=sender in a RCPT ACL, the value of $address_data from the recipient verification was clobbered by the sender verification. 13. The value of address_data from a sender verification is now available in $sender_address_data in subsequent conditions in the ACL statement. 14. Added forbid_sieve_filter and forbid_exim_filter to the redirect router. 15. Added a new option "connect=