doc update
[exim-website.git] / changelogs / ChangeLog-2.11.html
1 Version 2.11
2 ------------
3
4 1. Adjustment of code for catching over-long multi-line SMTP responses to
5 do a better job in the case of packets not ending in \r\n.
6
7 2. Ignore any user-supplied whitespace (in particular, newlines) at the end of
8 smtp_banner; previously it was starting a continuation response, and then never
9 completing it, as there was nothing left.
10
11 3. Eximstats: computed incorrect total size of local deliveries.
12
13 4. If NO_SYSEXITS is set, don't make assumptions about the existence of exit
14 definitions in the strexits() function in os.c.
15
16 5. Tweak DGUX os.h file for strsignal and add HAVE_MMAP.
17
18 6. If a bounce message was constructed without any directing/routing having
19 occurred, Exim crashed. This could be provoked by -Mg, or if routing/directing
20 was deferred until the message retry time was exceeded. The bounce message
21 could be sent multiple times in the latter case, and did not contain a copy of
22 the original.
23
24 7. Don't insist on a transport for the domainlist router if verify_only is set.
25
26 8. The count of lines in messages read from stdin with the -i option (ended
27 only by EOF) was not getting set correctly.
28
29 9. When calling itself to send an error or a warning message, Exim wasn't
30 setting the -oi option, thus causing truncation of any enclosed text such as a
31 copy of the incoming message or the output of a pipe if it contained a line
32 with only a full stop in it.
33
34 10. Added dns_check_names_pattern to provide control over the syntax check.
35
36 11. If a DNS MX lookup fails the syntax check, don't go on to look for an A
37 record; and if called from lookuphost, don't go on to try widening the name.
38
39 12. Add the identity of the RBL domain to the log when in RBL warning mode,
40 and also to the messages output during -bh testing.
41
42 13. Do not stop scanning the list of RBL domains when one matches in warning
43 mode; ensure that X-RBL-Warning headers are added for all that match.
44
45 14. When testing with -bh, output a reminder after the final 250 after "." that
46 this is not for real.
47
48 15. Added max_username_length.
49
50 16. The log phrase "Error while handling error message" has been made more
51 accurate by changing it to "Error while reading a message with no usable sender
52 address", and a reference to the generating message added if there is one.
53
54 17. If -oee was set and the sender of a malformed incoming message was <>, so
55 that no error message could be sent, the return code was zero rather than 1
56 (i.e. it wasn't noticing it hadn't sent an error message).
57
58 18. If a non-SMTP message contains no recipients and error reporting is by mail
59 and no error message can be sent, the return code from Exim is now 2 instead of
60 1. This is so it can detect this case in the autoreply transport.
61
62 19. If the autoreply transport detects return code 2 for the message it has
63 submitted (no recipients) it no longer defers delivery. This means that
64 autoreplies to $sender_address when that is <> just get ignored (but there is
65 an entry on the log for the error).
66
67 20. Improved the error message that is given when an alias file or route list
68 file has the wrong mode, since this seems to confuse people.
69
70 21. Treat disconnection after end of data as a message error rather than a host
71 error.
72
73 22. Expanded the "file has wrong uid/gid" message to include the uids or gids
74 which don't match.
75
76 23. Installed PCRE 2.02 (minor tidies).
77
78 24. If a system filter discarded a message (by "seen finish" or similar) then
79 the log said "original recipients ignored", but had no => line. Now it contains
80 "=> discarded (message_filter)" instead, to be like the logging that happens
81 when a user filter discards a message.
82
83 25. Exinext was not displaying routing delays for specific addresses if the
84 domain successfully routed to a remote host. These can now exist in these
85 circumstances after temporary recipient-specific errors. Likewise it was not
86 capable of picking out message-specific retry data when given a message id.
87
88 26. Pipe delivery timeouts were not working if the writes to the pipe got
89 blocked (they only worked while waiting for the process to complete after doing
90 all the writing). Furthermore, after a timeout Exim just killed the process it
91 had created; if that process created further subprocesses they got left
92 running. It now makes the created process a process group leader, and kills the
93 whole process group, which will catch simple cases that don't themselves start
94 new process groups. Also, after detecting a timeout and killing the subprocess,
95 the third process that was reading from the output pipe didn't always die
96 immediately. The reading process is now forcibly killed along with the timed
97 out process group.
98
99 27. If a queryprogram process timed out, Exim wasn't killing it. It now kills
100 the whole process group, as for pipes (see 26 above).
101
102 28. If a pipe produced output, any error message was omitted from the bounce
103 message (this was to avoid "output message generated"), but this omitted
104 information about timeouts. The error information is now included except for
105 DEFER and OK returns.
106
107 29. Added "hosts_override" to the smtp transport.
108
109 30. Fixed two code infelicities in mailstore format delivery: (a) after opening
110 RDONLY, a stream of type "w+" was made (this fails on Linux), and the call to
111 fdopen() was not checked for errors; (b) the fd was closed directly, instead of
112 the stream.