Change log file for Exim version 3.21 ------------------------------------- 1. Verify callbacks crashed if any host on the list didn't have a known IP address. 2. Macro names longer than 23 characters were truncated when defined, but of course caused trouble when used. The limit has been raised to 63, and a configuration error occurs if it it exceeded. 3. Make dns_ipv4_lookup also apply to gethostbyname(), so that it looks only for IPv4 addresses. I forgot this when I invented the option. For tidyness, add a synonym ipv4_address_lookup. 4. Do not call gethostbyaddr() directly in appendfile when notify_comsat is set. Instead call host_bind_byname() to get all local addresses. However, for the moment, we continue to use 127.0.0.1 only, because (on some systems at least), comsat doesn't listen on the ::1 address. 5. In readconf.c, when making the result of uname() fully qualified, don't just call gethostbyname(). Call the appropriate function depending on IPv4/IPv6 settings. 6. If the expansion of require_files suffered a lookup defer, the correct error message wasn't being passed back with the DEFER status. 7. When an Envelope-To: header was added to a delivery, more than one instance of the same envelope address could appear if there were discarded duplicates that had the same original address. In other cases, different originals might not appear when they should. 8. If quota_warn_threshold was given as a percentage when quota was not set, Exim objected. Now it just ignores the setting. 9. The -Mmd (mark delivered) option now operates case-insensitively. 10. Give more information in syntax error messages for incorrect conditions in expansions. 11. When the daemon is SIGHUPped and re-execs itself, it used to go through the forking thing in order to get rid of the controlling terminal, even though in this case it was not needed. It no longer plays this game if its parent process is 1. This means that the pid no longer changes when the daemon is SIGHUPped. 12. Omit the reason for the delay in warning messages when it is "retry time not reached", because this doesn't convey much, and just confuses people. Unfortunately, it ain't easy to find the real reason at this stage. 13. When hide_child_in_errmsg was set, and a delivery to a pipe produced output to be sent back, the child was being shown at the head of the returned output. It now hides the address in the same was as it does for the list of failing addresses. 14. If the expansion of require_files fails, delivery is now deferred for all kinds of failure, not just forced ones. Previously Exim panicked. This change has also been made for file names that are not absolute. 15. When outputting a host list for -bv -v when an address is routed to a local transport, just give the host name, omitting "[unknown]" for the address. The detail of what was output when -v (or -d) was set for -bv and -bt has been changed. It now always gives the director, router, and transport names. 16. The -bpc option gives a count of messages on the queue. It is faster than processing the output of -bp because it doesn't open any of the files. 17. The smtp transport has a new option called helo_data which is expanded to give the text used as the argument for EHLO or HELO. The default setting is "$primary_hostname". 18. It appears that mkdir() ignores any mode bits other than 0777, at least on some OS. If such bits are set in (for example) directory_mode of appendfile, we now do an explicit chmod() to ensure they get set. 19. A way round the problems with gcc on IRIX systems has been found. A replacement function for inet_ntoa() is provided. This is now included by means of a macro switch which is set on IRIX systems when gcc is in use. ****