Commit | Line | Data |
---|---|---|
495ae4b0 | 1 | Change log file for Exim from version 4.21 |
f988ce57 | 2 | ------------------------------------------ |
446415f5 HSHR |
3 | This document describes *changes* to previous versions, that might |
4 | affect Exim's operation, with an unchanged configuration file. For new | |
5 | options, and new features, see the NewStuff file next to this ChangeLog. | |
495ae4b0 | 6 | |
4c57a40e | 7 | |
cf3cd306 HSHR |
8 | Since Exim version 4.90 |
9 | ----------------------- | |
459fca58 JH |
10 | |
11 | JH/01 Replace the store_release() internal interface with store_newblock(), | |
12 | which internalises the check required to safely use the old one, plus | |
13 | the allocate and data copy operations duplicated in both (!) of the | |
14 | extant use locations. | |
15 | ||
944e8b37 JH |
16 | JH/02 Disallow '/' characters in queue names specified for the "queue=" ACL |
17 | modifier. This matches the restriction on the commandline. | |
18 | ||
bbfb5dcd JH |
19 | JH/03 Fix pgsql lookup for multiple result-tuples with a single column. |
20 | Previously only the last row was returned. | |
21 | ||
a05d3e34 JH |
22 | JH/04 Bug 2217: Tighten up the parsing of DKIM signature headers. Previously |
23 | we assumed that tags in the header were well-formed, and parsed the | |
24 | element content after inspecting only the first char of the tag. | |
25 | Assumptions at that stage could crash the receive process on malformed | |
26 | input. | |
27 | ||
ce93c6d8 JH |
28 | JH/05 Bug 2215: Fix crash associated with dnsdb lookup done from DKIM ACL. |
29 | While running the DKIM ACL we operate on the Permanent memory pool so that | |
30 | variables created with "set" persist to the DATA ACL. Also (at any time) | |
31 | DNS lookups that fail create cache records using the Permanent pool. But | |
32 | expansions release any allocations made on the current pool - so a dnsdb | |
33 | lookup expansion done in the DKIM ACL releases the memory used for the | |
34 | DNS negative-cache, and bad things result. Solution is to switch to the | |
35 | Main pool for expansions. | |
36 | While we're in that code, add checks on the DNS cache during store_reset, | |
37 | active in the testsuite. | |
38 | Problem spotted, and debugging aided, by Wolfgang Breyha. | |
39 | ||
2577f55f JH |
40 | JH/06 Fix issue with continued-connections when the DNS shifts unreliably. |
41 | When none of the hosts presented to a transport match an already-open | |
42 | connection, close it and proceed with the list. Previously we would | |
43 | queue the message. Spotted by Lena with Yahoo, probably involving | |
44 | round-robin DNS. | |
45 | ||
5b6f7658 JH |
46 | JH/07 Bug 2214: Fix SMTP responses resulting from non-accept result of MIME ACL. |
47 | Previously a spurious "250 OK id=" response was appended to the proper | |
48 | failure response. | |
49 | ||
c11d665d JH |
50 | JH/08 The "support for" informational output now, which built with Content |
51 | Scanning support, has a line for the malware scanner interfaces compiled | |
52 | in. Interface can be individually included or not at build time. | |
e5ba8aa7 JH |
53 | |
54 | JH/09 The "aveserver", "kavdaemon" and "mksd" interfaces are now not included | |
55 | by the template makefile "src/EDITME". The "STREAM" support for an older | |
56 | ClamAV interface method is removed. | |
c11d665d | 57 | |
ba0e37b1 JH |
58 | JH/10 Bug 2223: Fix mysql lookup returns for the no-data case (when the number of |
59 | rows affected is given instead). | |
60 | ||
96508de1 JH |
61 | JH/11 The runtime Berkeley DB library version is now additionally output by |
62 | "exim -d -bV". Previously only the compile-time version was shown. | |
63 | ||
06fdb9f7 JH |
64 | JH/12 Bug 2230: Fix cutthrough routing for nonfirst messages in an initiating |
65 | SMTP connection. Previously, when one had more receipients than the | |
66 | first, an abortive onward connection was made. Move to full support for | |
67 | multiple onward connections in sequence, handling cutthrough connection | |
68 | for all multi-message initiating connections. | |
69 | ||
f83a760f JH |
70 | JH/13 Bug 2229: Fix cutthrough routing for nonstandard port numbers defined by |
71 | routers. Previously, a multi-recipient message would fail to match the | |
72 | onward-connection opened for the first recipient, and cause its closure. | |
73 | ||
f1fed05b JH |
74 | JH/14 Bug 2174: A timeout on connect for a callout was also erroneously seen as |
75 | a timeout on read on a GnuTLS initiating connection, resulting in the | |
76 | initiating connection being dropped. This mattered most when the callout | |
77 | was marked defer_ok. Fix to keep the two timeout-detection methods | |
78 | separate. | |
79 | ||
051d5efa JH |
80 | JH/15 Relax results from ACL control request to enable cutthrough, in |
81 | unsupported situations, from error to silently (except under debug) | |
82 | ignoring. This covers use with PRDR, frozen messages, queue-only and | |
83 | fake-reject. | |
84 | ||
cf3cd306 HSHR |
85 | HS/01 Fix Buffer overflow in base64d() (CVE-2018-6789) |
86 | ||
744976d4 JH |
87 | JH/16 Fix bug in DKIM verify: a buffer overflow could corrupt the malloc |
88 | metadata, resulting in a crash in free(). | |
89 | ||
aab9a843 | 90 | PP/01 Fix broken Heimdal GSSAPI authenticator integration. |
7be14582 | 91 | Broken in f2ed27cf5, missing an equals sign for specified-initialisers. |
aab9a843 | 92 | Broken also in d185889f4, with init system revamp. |
7be14582 | 93 | |
83d2a861 JH |
94 | JH/17 Bug 2113: Fix conversation closedown with the Avast malware scanner. |
95 | Previously we abruptly closed the connection after reading a malware- | |
96 | found indication; now we go on to read the "scan ok" response line, | |
97 | and send a quit. | |
98 | ||
165acdd1 JH |
99 | JH/18 Convert macro handling to be tree-based, from the previous linear list. |
100 | With the number of builtin macros we now have this is worthwhile, | |
101 | dropping the config-file read time (during which new macros are checked | |
102 | and registered, and macros are expanded) from about 500 usec to about 180. | |
103 | ||
bbfb5dcd | 104 | |
acfc18c3 PP |
105 | Exim version 4.90 |
106 | ----------------- | |
107 | ||
108 | JH/01 Rework error string handling in TLS interface so that the caller in | |
109 | more cases is responsible for logging. This permits library-sourced | |
110 | string to be attached to addresses during delivery, and collapses | |
111 | pairs of long lines into single ones. | |
112 | ||
856d1e16 PP |
113 | PP/01 Allow PKG_CONFIG_PATH to be set in Local/Makefile and use it correctly |
114 | during configuration. Wildcards are allowed and expanded. | |
115 | ||
b9df1829 JH |
116 | JH/02 Rework error string handling in DKIM to pass more info back to callers. |
117 | This permits better logging. | |
118 | ||
875512a3 JH |
119 | JH/03 Rework the transport continued-connection mechanism: when TLS is active, |
120 | do not close it down and have the child transport start it up again on | |
121 | the passed-on TCP connection. Instead, proxy the child (and any | |
122 | subsequent ones) for TLS via a unix-domain socket channel. Logging is | |
123 | affected: the continued delivery log lines do not have any DNSSEC, TLS | |
5013d912 | 124 | Certificate or OCSP information. TLS cipher information is still logged. |
875512a3 | 125 | |
fc3f96af JH |
126 | JH/04 Shorten the log line for daemon startup by collapsing adjacent sets of |
127 | identical IP addresses on different listening ports. Will also affect | |
128 | "exiwhat" output. | |
129 | ||
98913c8e BK |
130 | PP/02 Bug 2070: uClibc defines __GLIBC__ without providing glibc headers; |
131 | add noisy ifdef guards to special-case this sillyness. | |
132 | Patch from Bernd Kuhls. | |
133 | ||
8d909960 JH |
134 | JH/05 Tighten up the checking in isip4 (et al): dotted-quad components larger |
135 | than 255 are no longer allowed. | |
136 | ||
7006ee24 JH |
137 | JH/06 Default openssl_options to include +no_ticket, to reduce load on peers. |
138 | Disable the session-cache too, which might reduce our load. Since we | |
139 | currrectly use a new context for every connection, both as server and | |
140 | client, there is no benefit for these. | |
141 | GnuTLS appears to not support tickets server-side by default (we don't | |
142 | call gnutls_session_ticket_enable_server()) but client side is enabled | |
143 | by default on recent versions (3.1.3 +) unless the PFS priority string | |
144 | is used (3.2.4 +). | |
145 | ||
6e411084 PP |
146 | PP/03 Add $SOURCE_DATE_EPOCH support for reproducible builds, per spec at |
147 | <https://reproducible-builds.org/specs/source-date-epoch/>. | |
148 | ||
4c2471ca JH |
149 | JH/07 Fix smtp transport use of limited max_rcpt under mua_wrapper. Previously |
150 | the check for any unsuccessful recipients did not notice the limit, and | |
151 | erroneously found still-pending ones. | |
152 | ||
4e910c01 JH |
153 | JH/08 Pipeline CHUNKING command and data together, on kernels that support |
154 | MSG_MORE. Only in-clear (not on TLS connections). | |
155 | ||
42055a33 JH |
156 | JH/09 Avoid using a temporary file during transport using dkim. Unless a |
157 | transport-filter is involved we can buffer the headers in memory for | |
158 | creating the signature, and read the spool data file once for the | |
159 | signature and again for transmission. | |
160 | ||
eeb35890 JH |
161 | JH/10 Enable use of sendfile in Linux builds as default. It was disabled in |
162 | 4.77 as the kernel support then wasn't solid, having issues in 64bit | |
7d758a6a | 163 | mode. Now, it's been long enough. Add support for FreeBSD also. |
eeb35890 | 164 | |
b7d3afcf JH |
165 | JH/11 Bug 2104: Fix continued use of a transport connection with TLS. In the |
166 | case where the routing stage had gathered several addresses to send to | |
167 | a host before calling the transport for the first, we previously failed | |
168 | to close down TLS in the old transport process before passing the TCP | |
169 | connection to the new process. The new one sent a STARTTLS command | |
170 | which naturally failed, giving a failed delivery and bloating the retry | |
171 | database. Investigation and fix prototype from Wolfgang Breyha. | |
172 | ||
40525d07 JH |
173 | JH/12 Fix check on SMTP command input synchronisation. Previously there were |
174 | false-negatives in the check that the sender had not preempted a response | |
175 | or prompt from Exim (running as a server), due to that code's lack of | |
a5ffa9b4 | 176 | awareness of the SMTP input buffering. |
40525d07 | 177 | |
f33875c3 PP |
178 | PP/04 Add commandline_checks_require_admin option. |
179 | Exim drops privileges sanely, various checks such as -be aren't a | |
180 | security problem, as long as you trust local users with access to their | |
181 | own account. When invoked by services which pass untrusted data to | |
182 | Exim, this might be an issue. Set this option in main configuration | |
183 | AND make fixes to the calling application, such as using `--` to stop | |
184 | processing options. | |
185 | ||
a5ffa9b4 JH |
186 | JH/13 Do pipelining under TLS. Previously, although safe, no advantage was |
187 | taken. Now take care to pack both (client) MAIL,RCPT,DATA, and (server) | |
188 | responses to those, into a single TLS record each way (this usually means | |
189 | a single packet). As a side issue, smtp_enforce_sync now works on TLS | |
190 | connections. | |
925ac8e4 | 191 | |
6600985a PP |
192 | PP/05 OpenSSL/1.1: use DH_bits() for more accurate DH param sizes. This |
193 | affects you only if you're dancing at the edge of the param size limits. | |
194 | If you are, and this message makes sense to you, then: raise the | |
195 | configured limit or use OpenSSL 1.1. Nothing we can do for older | |
196 | versions. | |
197 | ||
ac4d558b JH |
198 | JH/14 For the "sock" variant of the malware scanner interface, accept an empty |
199 | cmdline element to get the documented default one. Previously it was | |
200 | inaccessible. | |
201 | ||
e69636bc JH |
202 | JH/15 Fix a crash in the smtp transport caused when two hosts in succession |
203 | are unsuable for non-message-specific reasons - eg. connection timeout, | |
204 | banner-time rejection. | |
205 | ||
a843a57e JH |
206 | JH/16 Fix logging of delivery remote port, when specified by router, under |
207 | callout/hold. | |
208 | ||
8e041ae0 PP |
209 | PP/06 Repair manualroute's ability to take options in any order, even if one |
210 | is the name of a transport. | |
833c70bc PP |
211 | Fixes bug 2140. |
212 | ||
35a04365 HSHR |
213 | HS/01 Cleanup, prevent repeated use of -p/-oMr (CVE-2017-1000369) |
214 | ||
4226691b JH |
215 | JH/17 Change the list-building routines interface to use the expanding-string |
216 | triplet model, for better allocation and copying behaviour. | |
217 | ||
d185889f JH |
218 | JH/18 Prebuild the data-structure for "builtin" macros, for faster startup. |
219 | Previously it was constructed the first time a possibly-matching string | |
220 | was met in the configuration file input during startup; now it is done | |
221 | during compilation. | |
222 | ||
0a6c178c JH |
223 | JH/19 Bug 2141: Use the full-complex API for Berkeley DB rather than the legacy- |
224 | compatible one, to avoid the (poorly documented) possibility of a config | |
225 | file in the working directory redirecting the DB files, possibly correpting | |
02745400 | 226 | some existing file. CVE-2017-10140 assigned for BDB. |
0a6c178c | 227 | |
fae8970d JH |
228 | JH/20 Bug 2147: Do not defer for a verify-with-callout-and-random which is not |
229 | cache-hot. Previously, although the result was properly cached, the | |
230 | initial verify call returned a defer. | |
231 | ||
ad1a76fe | 232 | JH/21 Bug 2151: Avoid using SIZE on the MAIL for a callout verify, on any but |
14de8063 JH |
233 | the main verify for receipient in uncached-mode. |
234 | ||
ad1a76fe JH |
235 | JH/22 Retire historical build files to an "unsupported" subdir. These are |
236 | defined as "ones for which we have no current evidence of testing". | |
237 | ||
135e9496 JH |
238 | JH/23 DKIM: enforce the DNS pubkey record "h" permitted-hashes optional field, |
239 | if present. Previously it was ignored. | |
240 | ||
f2ed27cf JH |
241 | JH/24 Start using specified-initialisers in C structure init coding. This is |
242 | a C99 feature (it's 2017, so now considered safe). | |
243 | ||
7eb0e5d2 JH |
244 | JH/25 Use one-bit bitfields for flags in the "addr" data structure. Previously |
245 | if was a fixed-sized field and bitmask ops via macros; it is now more | |
246 | extensible. | |
247 | ||
4f9f4be4 JÅ |
248 | PP/07 GitHub PR 56: Apply MariaDB build fix. |
249 | Patch provided by Jaroslav Å karvada. | |
250 | ||
dc4de9cc PP |
251 | PP/08 Bug 2161: Fix regression in sieve quoted-printable handling introduced |
252 | during Coverity cleanups [4.87 JH/47] | |
253 | Diagnosis and fix provided by Michael Fischer v. Mollard. | |
254 | ||
ea18931d JH |
255 | JH/26 Fix DKIM bug: when the pseudoheader generated for signing was exactly |
256 | the right size to place the terminating semicolon on its own folded | |
257 | line, the header hash was calculated to an incorrect value thanks to | |
258 | the (relaxed) space the fold became. | |
259 | ||
2cee425a HSHR |
260 | HS/02 Fix Bug 2130: large writes from the transport subprocess where chunked |
261 | and confused the parent. | |
262 | ||
848214f7 JH |
263 | JH/27 Fix SOCKS bug: an unitialized pointer was deref'd by the transport process |
264 | which could crash as a result. This could lead to undeliverable messages. | |
265 | ||
9e0ed81f JH |
266 | JH/28 Logging: "next input sent too soon" now shows where input was truncated |
267 | for log purposes. | |
268 | ||
2540f2f8 JH |
269 | JH/29 Fix queue_run_in_order to ignore the PID portion of the message ID. This |
270 | matters on fast-turnover and PID-randomising systems, which were getting | |
271 | out-of-order delivery. | |
272 | ||
e5ab0ba9 JH |
273 | JH/30 Fix a logging bug on aarch64: an unsafe routine was previously used for |
274 | a possibly-overlapping copy. The symptom was that "Remote host closed | |
275 | connection in response to HELO" was logged instead of the actual 4xx | |
276 | error for the HELO. | |
277 | ||
e99a3a6c JH |
278 | JH/31 Fix CHUNKING code to properly flush the unwanted chunk after an error. |
279 | Previously only that bufferd was discarded, resulting in SYMTP command | |
280 | desynchronisation. | |
281 | ||
18067c75 JH |
282 | JH/32 DKIM: when a message has multiple signatures matching an identity given |
283 | in dkim_verify_signers, run the dkim acl once for each. Previously only | |
284 | one run was done. Bug 2189. | |
285 | ||
72934ba7 JH |
286 | JH/33 Downgrade an unfound-list name (usually a typo in the config file) from |
287 | "panic the current process" to "deliberately defer". The panic log is | |
288 | still written with the problem list name; the mail and reject logs now | |
289 | get a temp-reject line for the message that was being handled, saying | |
290 | something like "domains check lookup or other defer". The SMTP 451 | |
291 | message is still "Temporary local problem". | |
292 | ||
625667b6 JH |
293 | JH/34 Bug 2199: Fix a use-after-free while reading smtp input for header lines. |
294 | A crafted sequence of BDAT commands could result in in-use memory beeing | |
b488395f JH |
295 | freed. CVE-2017-16943. |
296 | ||
297 | HS/03 Bug 2201: Fix checking for leading-dot on a line during headers reading | |
298 | from SMTP input. Previously it was always done; now only done for DATA | |
299 | and not BDAT commands. CVE-2017-16944. | |
625667b6 | 300 | |
d21bf202 JH |
301 | JH/35 Bug 2201: Flush received data in BDAT mode after detecting an error fatal |
302 | to the message (such as an overlong header line). Previously this was | |
303 | not done and we did not exit BDAT mode. Followon from the previous item | |
304 | though a different problem. | |
305 | ||
acfc18c3 | 306 | |
fd047340 | 307 | Exim version 4.89 |
acfc18c3 | 308 | ----------------- |
4c57a40e | 309 | |
9427e879 | 310 | JH/01 Bug 1922: Support IDNA2008. This has slightly different conversion rules |
4c04137d | 311 | than -2003 did; needs libidn2 in addition to libidn. |
fd047340 | 312 | |
7b283890 JH |
313 | JH/02 The path option on a pipe transport is now expanded before use. |
314 | ||
4c57a40e PP |
315 | PP/01 GitHub PR 50: Do not call ldap_start_tls_s on ldapi:// connections. |
316 | Patch provided by "Björn", documentation fix added too. | |
317 | ||
5d036699 JH |
318 | JH/03 Bug 2003: fix Proxy Protocol v2 handling: the address size field was |
319 | missing a wire-to-host endian conversion. | |
320 | ||
f4630439 JH |
321 | JH/04 Bug 2004: fix CHUNKING in non-PIPELINEING mode. Chunk data following |
322 | close after a BDAT command line could be taken as a following command, | |
323 | giving a synch failure. Fix by only checking for synch immediately | |
324 | before acknowledging the chunk. | |
325 | ||
f988ce57 JS |
326 | PP/02 GitHub PR 52: many spelling fixes, which include fixing parsing of |
327 | no_require_dnssec option and creation of _HAVE_TRANSPORT_APPEND_MAILDIR | |
328 | macro. Patches provided by Josh Soref. | |
329 | ||
bd8fbe36 JH |
330 | JH/05 Have the EHLO response advertise VRFY, if there is a vrfy ACL defined. |
331 | Previously we did not; the RFC seems ambiguous and VRFY is not listed | |
332 | by IANA as a service extension. However, John Klensin suggests that we | |
333 | should. | |
334 | ||
335 | JH/06 Bug 2017: Fix DKIM verification in -bh test mode. The data feed into | |
b895f4b2 JH |
336 | the dkim code may be unix-mode line endings rather than smtp wire-format |
337 | CRLF, so prepend a CR to any bare LF. | |
fd047340 | 338 | |
bd8fbe36 | 339 | JH/07 Rationalise the coding for callout smtp conversations and transport ones. |
902fbd69 JH |
340 | As a side-benfit, callouts can now use PIPELINING hence fewer round-trips. |
341 | ||
bd8fbe36 JH |
342 | JH/08 Bug 2016: Fix DKIM verification vs. CHUNKING. Any BDAT commands after |
343 | the first were themselves being wrongly included in the feed into dkim | |
344 | processing; with most chunk sizes in use this resulted in an incorrect | |
345 | body hash calculated value. | |
346 | ||
eea19017 JH |
347 | JH/09 Bug 2014: permit inclusion of a DKIM-Signature header in a received |
348 | DKIM signature block, for verification. Although advised against by | |
349 | standards it is specifically not ruled illegal. | |
350 | ||
44e6651b JH |
351 | JH/10 Bug 2025: Fix reception of (quoted) local-parts with embedded spaces. |
352 | ||
353 | JH/11 Bug 2029: Fix crash in DKIM verification when a message signature block is | |
354 | missing a body hash (the bh= tag). | |
355 | ||
356 | JH/12 Bug 2018: Re-order Proxy Protocol startup versus TLS-on-connect startup. | |
357 | It seems that HAProxy sends the Proxy Protocol information in clear and | |
358 | only then does a TLS startup, so do the same. | |
359 | ||
360 | JH/13 Bug 2027: Avoid attempting to use TCP Fast Open for non-transport client | |
361 | TCP connections (such as for Spamd) unless the daemon successfully set | |
362 | Fast Open mode on its listening sockets. This fixes breakage seen on | |
363 | too-old kernels or those not configured for Fast Open, at the cost of | |
364 | requiring both directions being enabled for TFO, and TFO never being used | |
365 | by non-daemon-related Exim processes. | |
366 | ||
367 | JH/14 Bug 2000: Reject messages recieved with CHUNKING but with malformed line | |
368 | endings, at least on the first header line. Try to canonify any that get | |
369 | past that check, despite the cost. | |
370 | ||
b6040544 JH |
371 | JH/15 Angle-bracket nesting (an error inserted by broken sendmails) levels are |
372 | now limited to an arbitrary five deep, while parsing addresses with the | |
373 | strip_excess_angle_brackets option enabled. | |
374 | ||
f700ea4d PP |
375 | PP/03 Bug 2018: For Proxy Protocol and TLS-on-connect, do not over-read and |
376 | instead leave the unprompted TLS handshake in socket buffer for the | |
377 | TLS library to consume. | |
378 | ||
da88acae PP |
379 | PP/04 Bug 2018: Also handle Proxy Protocol v2 safely. |
380 | ||
f6ef9370 PP |
381 | PP/05 FreeBSD compat: handle that Ports no longer create /usr/bin/perl |
382 | ||
90341c71 JH |
383 | JH/16 Drop variables when they go out of scope. Memory management drops a whole |
384 | region in one operation, for speed, and this leaves assigned pointers | |
385 | dangling. Add checks run only under the testsuite which checks all | |
386 | variables at a store-reset and panics on a dangling pointer; add code | |
387 | explicitly nulling out all the variables discovered. Fixes one known | |
388 | bug: a transport crash, where a dangling pointer for $sending_ip_address | |
389 | originally assigned in a verify callout, is re-used. | |
390 | ||
1ec2ab36 PP |
391 | PP/06 Drop '.' from @INC in various Perl scripts. |
392 | ||
393 | PP/07 Switch FreeBSD iconv to always use the base-system libc functions. | |
394 | ||
395 | PP/08 Reduce a number of compilation warnings under clang; building with | |
396 | CC=clang CFLAGS+=-Wno-dangling-else -Wno-logical-op-parentheses | |
397 | should be warning-free. | |
398 | ||
8b2b9480 PP |
399 | JH/17 Fix inbound CHUNKING when DKIM disabled at runtime. |
400 | ||
401 | HS/01 Fix portability problems introduced by PP/08 for platforms where | |
402 | realloc(NULL) is not equivalent to malloc() [SunOS et al]. | |
403 | ||
d953610f HSHR |
404 | HS/02 Bug 1974: Fix missing line terminator on the last received BDAT |
405 | chunk. This allows us to accept broken chunked messages. We need a more | |
406 | general solution here. | |
407 | ||
7dc5f827 PP |
408 | PP/09 Wrote util/chunking_fixqueue_finalnewlines.pl to help recover |
409 | already-broken messages in the queue. | |
410 | ||
4bb432cb PP |
411 | JH/18 Bug 2061: Fix ${extract } corrupting an enclosing ${reduce } $value. |
412 | ||
3b1a84c8 PP |
413 | JH/19 Fix reference counting bug in routing-generated-address tracking. |
414 | ||
902fbd69 | 415 | |
8d042305 JH |
416 | Exim version 4.88 |
417 | ----------------- | |
4c57a40e | 418 | |
9094b84b JH |
419 | JH/01 Use SIZE on MAIL FROM in a cutthrough connection, if the destination |
420 | supports it and a size is available (ie. the sending peer gave us one). | |
8d042305 | 421 | |
03d5892b JH |
422 | JH/02 The obsolete acl condition "demime" is removed (finally, after ten |
423 | years of being deprecated). The replacements are the ACLs | |
424 | acl_smtp_mime and acl_not_smtp_mime. | |
425 | ||
4b0fe319 JH |
426 | JH/03 Upgrade security requirements imposed for hosts_try_dane: previously |
427 | a downgraded non-dane trust-anchor for the TLS connection (CA-style) | |
428 | or even an in-clear connection were permitted. Now, if the host lookup | |
429 | was dnssec and dane was requested then the host is only used if the | |
430 | TLSA lookup succeeds and is dnssec. Further hosts (eg. lower priority | |
431 | MXs) will be tried (for hosts_try_dane though not for hosts_require_dane) | |
432 | if one fails this test. | |
433 | This means that a poorly-configured remote DNS will make it incommunicado; | |
434 | but it protects against a DNS-interception attack on it. | |
435 | ||
789f8a4f JH |
436 | JH/04 Bug 1810: make continued-use of an open smtp transport connection |
437 | non-noisy when a race steals the message being considered. | |
438 | ||
23bb6982 | 439 | JH/05 If main configuration option tls_certificate is unset, generate a |
f59aaaaa | 440 | self-signed certificate for inbound TLS connections. |
23bb6982 | 441 | |
0bd1b1ed | 442 | JH/06 Bug 165: hide more cases of password exposure - this time in expansions |
f42deca9 | 443 | in rewrites and routers. |
0bd1b1ed | 444 | |
20b9a2dc JH |
445 | JH/07 Retire gnutls_require_mac et.al. These were nonfunctional since 4.80 |
446 | and logged a warning sing 4.83; now they are a configuration file error. | |
447 | ||
05392bbc JH |
448 | JH/08 Bug 1836: Fix crash in VRFY handling when handed an unqualified name |
449 | (lacking @domain). Apply the same qualification processing as RCPT. | |
450 | ||
1a6230a3 JH |
451 | JH/09 Bug 1804: Avoid writing msglog files when in -bh or -bhc mode. |
452 | ||
cfab9d68 JH |
453 | JH/10 Support ${sha256:} applied to a string (as well as the previous |
454 | certificate). | |
455 | ||
98c82a3d JH |
456 | JH/11 Cutthrough: avoid using the callout hints db on a verify callout when |
457 | a cutthrough deliver is pending, as we always want to make a connection. | |
458 | This also avoids re-routing the message when later placing the cutthrough | |
459 | connection after a verify cache hit. | |
460 | Do not update it with the verify result either. | |
461 | ||
462 | JH/12 Cutthrough: disable when verify option success_on_redirect is used, and | |
463 | when routing results in more than one destination address. | |
464 | ||
ae8386f0 JH |
465 | JH/13 Cutthrough: expand transport dkim_domain option when testing for dkim |
466 | signing (which inhibits the cutthrough capability). Previously only | |
467 | the presence of an option was tested; now an expansion evaluating as | |
468 | empty is permissible (obviously it should depend only on data available | |
469 | when the cutthrough connection is made). | |
470 | ||
0d9fa8c0 JH |
471 | JH/14 Fix logging of errors under PIPELINING. Previously the log line giving |
472 | the relevant preceding SMTP command did not note the pipelining mode. | |
473 | ||
3581f321 JH |
474 | JH/15 Fix counting of empty lines in $body_linecount and $message_linecount. |
475 | Previously they were not counted. | |
476 | ||
ef3a1a30 JH |
477 | JH/16 DANE: treat a TLSA lookup response having all non-TLSA RRs, the same |
478 | as one having no matching records. Previously we deferred the message | |
479 | that needed the lookup. | |
480 | ||
4c04137d | 481 | JH/17 Fakereject: previously logged as a normal message arrival "<="; now |
27b9e5f4 JH |
482 | distinguished as "(=". |
483 | ||
1435d4b2 JH |
484 | JH/18 Bug 1867: make the fail_defer_domains option on a dnslookup router work |
485 | for missing MX records. Previously it only worked for missing A records. | |
486 | ||
eea0defe JB |
487 | JH/19 Bug 1850: support Radius libraries that return REJECT_RC. |
488 | ||
489 | JH/20 Bug 1872: Ensure that acl_smtp_notquit is run when the connection drops | |
490 | after the data-go-ahead and data-ack. Patch from Jason Betts. | |
860cdda2 | 491 | |
4c04137d | 492 | JH/21 Bug 1846: Send DMARC forensic reports for reject and quarantine results, |
72a201e2 TM |
493 | even for a "none" policy. Patch from Tony Meyer. |
494 | ||
1c788856 JH |
495 | JH/22 Fix continued use of a connection for further deliveries. If a port was |
496 | specified by a router, it must also match for the delivery to be | |
497 | compatible. | |
498 | ||
e3b1f624 JH |
499 | JH/23 Bug 1874: fix continued use of a connection for further deliveries. |
500 | When one of the recipients of a message was unsuitable for the connection | |
501 | (has no matching addresses), we lost track of needing to mark it | |
502 | deferred. As a result mail would be lost. | |
503 | ||
a57ce043 JH |
504 | JH/24 Bug 1832: Log EHLO response on getting conn-close response for HELO. |
505 | ||
f59aaaaa | 506 | JH/25 Decoding ACL controls is now done using a binary search; the source code |
2d009132 JH |
507 | takes up less space and should be simpler to maintain. Merge the ACL |
508 | condition decode tables also, with similar effect. | |
d7bed771 | 509 | |
d1f9fb42 JH |
510 | JH/26 Fix problem with one_time used on a redirect router which returned the |
511 | parent address unchanged. A retry would see the parent address marked as | |
512 | delivered, so not attempt the (identical) child. As a result mail would | |
513 | be lost. | |
514 | ||
92b0827a JH |
515 | JH/27 Fix a possible security hole, wherein a process operating with the Exim |
516 | UID can gain a root shell. Credit to http://www.halfdog.net/ for | |
517 | discovery and writeup. Ubuntu bug 1580454; no bug raised against Exim | |
518 | itself :( | |
519 | ||
ddf1b11a JH |
520 | JH/28 Enable {spool,log} filesystem space and inode checks as default. |
521 | Main config options check_{log,spool}_{inodes,space} are now | |
522 | 100 inodes, 10MB unless set otherwise in the configuration. | |
523 | ||
3cc3f762 JH |
524 | JH/29 Fix the connection_reject log selector to apply to the connect ACL. |
525 | Previously it only applied to the main-section connection policy | |
526 | options. | |
527 | ||
ae5afa61 JH |
528 | JH/30 Bug 1897: fix callouts connection fallback from TLS to cleartext. |
529 | ||
317e40ac PP |
530 | PP/01 Changed default Diffie-Hellman parameters to be Exim-specific, created |
531 | by me. Added RFC7919 DH primes as an alternative. | |
532 | ||
8b0fb68e PP |
533 | PP/02 Unbreak build via pkg-config with new hash support when crypto headers |
534 | are not in the system include path. | |
535 | ||
ad7fc6eb | 536 | JH/31 Fix longstanding bug with aborted TLS server connection handling. Under |
f59aaaaa | 537 | GnuTLS, when a session startup failed (eg because the client disconnected) |
ad7fc6eb JH |
538 | Exim did stdio operations after fclose. This was exposed by a recent |
539 | change which nulled out the file handle after the fclose. | |
ad7fc6eb | 540 | |
ee5b1e28 JH |
541 | JH/32 Bug 1909: Fix OCSP proof verification for cases where the proof is |
542 | signed directly by the cert-signing cert, rather than an intermediate | |
543 | OCSP-signing cert. This is the model used by LetsEncrypt. | |
544 | ||
5ddc9771 JH |
545 | JH/33 Bug 1914: Ensure socket is nonblocking before draining after SMTP QUIT. |
546 | ||
8d73599f JH |
547 | HS/01 Fix leak in verify callout under GnuTLS, about 3MB per recipient on |
548 | an incoming connection. | |
549 | ||
446415f5 HSHR |
550 | HS/02 Bug 1802: Do not half-close the connection after sending a request |
551 | to rspamd. | |
552 | ||
8e53a4fc HSHR |
553 | HS/03 Use "auto" as the default EC curve parameter. For OpenSSL < 1.0.2 |
554 | fallback to "prime256v1". | |
8d042305 | 555 | |
87cb4a16 | 556 | JH/34 SECURITY: Use proper copy of DATA command in error message. |
4c57a40e | 557 | Could leak key material. Remotely exploitable. CVE-2016-9963. |
87cb4a16 JH |
558 | |
559 | ||
0d9b78be JH |
560 | Exim version 4.87 |
561 | ----------------- | |
4c57a40e | 562 | |
82d14d6a JH |
563 | JH/01 Bug 1664: Disable OCSP for GnuTLS library versions at/before 3.3.16 |
564 | and 3.4.4 - once the server is enabled to respond to an OCSP request | |
565 | it does even when not requested, resulting in a stapling non-aware | |
566 | client dropping the TLS connection. | |
0d9b78be | 567 | |
6c6d6e48 TF |
568 | TF/01 Code cleanup: Overhaul the debug_selector and log_selector machinery to |
569 | support variable-length bit vectors. No functional change. | |
570 | ||
ac881e27 TF |
571 | TF/02 Improve the consistency of logging incoming and outgoing interfaces. |
572 | The I= interface field on outgoing lines is now after the H= remote | |
573 | host field, same as incoming lines. There is a separate | |
574 | outgoing_interface log selector which allows you to disable the | |
575 | outgoing I= field. | |
576 | ||
c8899c20 JH |
577 | JH/02 Bug 728: Close logfiles after a daemon-process "exceptional" log write. |
578 | If not running log_selector +smtp_connection the mainlog would be held | |
579 | open indefinitely after a "too many connections" event, including to a | |
580 | deleted file after a log rotate. Leave the per net connection logging | |
581 | leaving it open for efficiency as that will be quickly detected by the | |
582 | check on the next write. | |
583 | ||
f1b81d81 HSHR |
584 | HS/01 Bug 1671: Fix post transport crash. |
585 | Processing the wait-<transport> messages could crash the delivery | |
586 | process if the message IDs didn't exist for some reason. When | |
587 | using 'split_spool_directory=yes' the construction of the spool | |
588 | file name failed already, exposing the same netto behaviour. | |
589 | ||
f38917cc JH |
590 | JH/03 Bug 425: Capture substrings in $regex1, $regex2 etc from regex & |
591 | mime_regex ACL conditions. | |
592 | ||
895fbaf2 JH |
593 | JH/04 Bug 1686: When compiled with EXPERIMENTAL_DSN_INFO: Add extra information |
594 | to DSN fail messages (bounces): remote IP, remote greeting, remote response | |
595 | to HELO, local diagnostic string. | |
596 | ||
805bb5c3 JH |
597 | JH/05 Downgrade message for a TLS-certificate-based authentication fail from |
598 | log line to debug. Even when configured with a tls authenticator many | |
599 | client connections are expected to not authenticate in this way, so | |
600 | an authenticate fail is not an error. | |
601 | ||
56c2a7be HSHR |
602 | HS/02 Add the Exim version string to the process info. This way exiwhat |
603 | gives some more detail about the running daemon. | |
604 | ||
4c04137d | 605 | JH/06 Bug 1395: time-limit caching of DNS lookups, to the TTL value. This may |
14b3c5bc JH |
606 | matter for fast-change records such as DNSBLs. |
607 | ||
6f6dedcc JH |
608 | JH/07 Bug 1678: Always record an interface option value, if set, as part of a |
609 | retry record, even if constant. There may be multiple transports with | |
610 | different interface settings and the retry behaviour needs to be kept | |
611 | distinct. | |
612 | ||
0f557e90 JH |
613 | JH/08 Bug 1586: exiqgrep now refuses to run if there are unexpected arguments. |
614 | ||
615 | JH/09 Bug 1700: ignore space & tab embedded in base64 during decode. | |
616 | ||
ec0eb1a3 JH |
617 | JH/10 Bug 840: fix log_defer_output option of pipe transport |
618 | ||
41e93589 JH |
619 | JH/11 Bug 830: use same host for all RCPTS of a message, even under |
620 | hosts_randomize. This matters a lot when combined with mua_wrapper. | |
621 | ||
98b98887 | 622 | JH/12 Bug 1706: percent and underbar characters are no longer escaped by the |
376d2ec0 JH |
623 | ${quote_pgsql:<string>} operator. |
624 | ||
98b98887 JH |
625 | JH/13 Bug 1708: avoid misaligned access in cached lookup. |
626 | ||
858e91c2 JH |
627 | JH/14 Change header file name for freeradius-client. Relevant if compiling |
628 | with Radius support; from the Gentoo tree and checked under Fedora. | |
629 | ||
630 | JH/15 Bug 1712: Introduce $prdr_requested flag variable | |
631 | ||
6ff55e50 JH |
632 | JH/16 Bug 1714: Permit an empty string as expansion result for transport |
633 | option transport_filter, meaning no filtering. | |
634 | ||
3b957582 JB |
635 | JH/17 Bug 1713: Fix non-PDKIM_DEBUG build. Patch from Jasen Betts. |
636 | ||
23f3dc67 JH |
637 | JH/18 Bug 1709: When built with TLS support, the tls_advertise_hosts option now |
638 | defaults to "*" (all hosts). The variable is now available when not built | |
4c04137d | 639 | with TLS, default unset, mainly to enable keeping the testsuite sane. |
23f3dc67 JH |
640 | If a server certificate is not supplied (via tls_certificate) an error is |
641 | logged, and clients will find TLS connections fail on startup. Presumably | |
642 | they will retry in-clear. | |
643 | Packagers of Exim are strongly encouraged to create a server certificate | |
644 | at installation time. | |
645 | ||
240c288f JH |
646 | HS/03 Add -bP config_file as a synonym for -bP configure_file, for consistency |
647 | with the $config_file variable. | |
648 | ||
5ef5dd52 JB |
649 | JH/19 Two additional event types: msg:rcpt:defer and msg:rcpt:host:defer. Both |
650 | in transport context, after the attempt, and per-recipient. The latter type | |
651 | is per host attempted. The event data is the error message, and the errno | |
652 | information encodes the lookup type (A vs. MX) used for the (first) host, | |
4c04137d | 653 | and the trailing two digits of the smtp 4xx response. |
5ef5dd52 | 654 | |
e161710d GF |
655 | GF/01 Bug 1715: Fix for race condition in exicyclog, where exim could attempt |
656 | to write to mainlog (or rejectlog, paniclog) in the window between file | |
657 | creation and permissions/ownership being changed. Particularly affects | |
658 | installations where exicyclog is run as root, rather than exim user; | |
659 | result is that the running daemon panics and dies. | |
660 | ||
a159f203 JH |
661 | JH/20 Bug 1701: For MySQL lookups, support MySQL config file option group names. |
662 | ||
7f06582c JH |
663 | JH/21 Bug 1720: Add support for priority groups and weighted-random proxy |
664 | selection for the EXPERIMENTAL_SOCKS feature, via new per-proxy options | |
665 | "pri" and "weight". Note that the previous implicit priority given by the | |
666 | list order is no longer honoured. | |
667 | ||
4c04137d | 668 | JH/22 Bugs 963, 1721: Fix some corner cases in message body canonicalization |
abe1010c JH |
669 | for DKIM processing. |
670 | ||
f0989ec0 JH |
671 | JH/23 Move SOCKS5 support from Experimental to mainline, enabled for a build |
672 | by defining SUPPORT_SOCKS. | |
74f150bf | 673 | |
cee5f132 JH |
674 | JH/26 Move PROXY support from Experimental to mainline, enabled for a build |
675 | by defining SUPPORT_PROXY. Note that the proxy_required_hosts option | |
e6d2a989 JH |
676 | is renamed to hosts_proxy, and the proxy_{host,target}_{address,port}. |
677 | variables are renamed to proxy_{local,external}_{address,port}. | |
cee5f132 | 678 | |
8c5d388a JH |
679 | JH/27 Move Internationalisation support from Experimental to mainline, enabled |
680 | for a build by defining SUPPORT_I18N | |
681 | ||
2d8d625b JH |
682 | JH/28 Bug 1745: Fix redis lookups to handle (quoted) spaces embedded in parts |
683 | of the query string, and make ${quote_redis:} do that quoting. | |
684 | ||
0cbf2b82 JH |
685 | JH/29 Move Events support from Experimental to mainline, enabled by default |
686 | and removable for a build by defining DISABLE_EVENT. | |
687 | ||
f2f2c91b JH |
688 | JH/30 Updated DANE implementation code to current from Viktor Dukhovni. |
689 | ||
ce325893 JH |
690 | JH/31 Fix bug with hosts_connection_nolog and named-lists which were wrongly |
691 | cached by the daemon. | |
692 | ||
de78e2d5 JH |
693 | JH/32 Move Redis support from Experimental to mainline, enabled for a build |
694 | by defining LOOKUP_REDIS. The libhiredis library is required. | |
695 | ||
379ba7d0 JH |
696 | JH/33 Bug 1748: Permit ACL dnslists= condition in non-smtp ACLs if explicit |
697 | keys are given for lookup. | |
698 | ||
f444c2c7 JH |
699 | JH/34 Bug 1192: replace the embedded copy of PolarSSL RSA routines in the DKIM |
700 | support, by using OpenSSL or GnuTLS library ones. This means DKIM is | |
07c73177 JH |
701 | only supported when built with TLS support. The PolarSSL SHA routines |
702 | are still used when the TLS library is too old for convenient support. | |
f444c2c7 | 703 | |
a57b6200 JH |
704 | JH/35 Require SINGLE_DH_USE by default in OpenSSL (main config option |
705 | openssl_options), for security. OpenSSL forces this from version 1.1.0 | |
706 | server-side so match that on older versions. | |
707 | ||
07c73177 | 708 | JH/36 Bug 1778: longstanding bug in memory use by the ${run } expansion: A fresh |
fa01e4f8 | 709 | allocation for $value could be released as the expansion processing |
07c73177 | 710 | concluded, but leaving the global pointer active for it. |
fa01e4f8 | 711 | |
4f6ae5c3 JH |
712 | JH/37 Bug 1769: Permit a VRFY ACL to override the default 252 response, |
713 | and to use the domains and local_parts ACL conditions. | |
714 | ||
1bc460a6 JH |
715 | JH/38 Fix cutthrough bug with body lines having a single dot. The dot was |
716 | incorrectly not doubled on cutthrough transmission, hence seen as a | |
717 | body-termination at the receiving system - resulting in truncated mails. | |
62ac2eb7 | 718 | Commonly the sender saw a TCP-level error, and retransmitted the message |
1bc460a6 JH |
719 | via the normal store-and-forward channel. This could result in duplicates |
720 | received - but deduplicating mailstores were liable to retain only the | |
721 | initial truncated version. | |
722 | ||
ab9152ff | 723 | JH/39 Bug 1781: Fix use of DKIM private-keys having trailing '=' in the base-64. |
df3def24 | 724 | |
67e87fcf JH |
725 | JH/40 Fix crash in queryprogram router when compiled with EXPERIMENTAL_SRS. |
726 | ||
ab9152ff JH |
727 | JH/41 Bug 1792: Fix selection of headers to sign for DKIM: bottom-up. While |
728 | we're in there, support oversigning also; bug 1309. | |
729 | ||
af483912 JH |
730 | JH/42 Bug 1796: Fix error logged on a malware scanner connection failure. |
731 | ||
bc3c7bb7 | 732 | HS/04 Add support for keep_environment and add_environment options. |
df3def24 | 733 | |
13559da6 JH |
734 | JH/43 Tidy coding issues detected by gcc --fsanitize=undefined. Some remain; |
735 | either intentional arithmetic overflow during PRNG, or testing config- | |
736 | induced overflows. | |
737 | ||
59eaad2b JH |
738 | JH/44 Bug 1800: The combination of a -bhc commandline option and cutthrough |
739 | delivery resulted in actual delivery. Cancel cutthrough before DATA | |
740 | stage. | |
741 | ||
f9334a28 JH |
742 | JH/45 Fix cutthrough, when connection not opened by verify and target hard- |
743 | rejects a recipient: pass the reject to the originator. | |
744 | ||
dc8091e7 JH |
745 | JH/46 Multiple issues raised by Coverity. Some were obvious or plausible bugs. |
746 | Many were false-positives and ignorable, but it's worth fixing the | |
747 | former class. | |
748 | ||
dfe7d917 JH |
749 | JH/47 Fix build on HP-UX and older Solaris, which need (un)setenv now also |
750 | for the new environment-manipulation done at startup. Move the routines | |
751 | from being local to tls.c to being global via the os.c file. | |
752 | ||
93cc2d6e JH |
753 | JH/48 Bug 1807: Fix ${extract } for the numeric/3-string case. While preparsing |
754 | an extract embedded as result-arg for a map, the first arg for extract | |
755 | is unavailable so we cannot tell if this is a numbered or keyed | |
756 | extraction. Accept either. | |
757 | ||
13559da6 | 758 | |
9c695f6d JH |
759 | Exim version 4.86 |
760 | ----------------- | |
4c57a40e | 761 | |
9c695f6d JH |
762 | JH/01 Bug 1545: The smtp transport option "retry_include_ip_address" is now |
763 | expanded. | |
764 | ||
506900af JH |
765 | JH/02 The smtp transport option "multi_domain" is now expanded. |
766 | ||
ad07e9ad JH |
767 | JH/03 The smtp transport now requests PRDR by default, if the server offers |
768 | it. | |
769 | ||
01a4a5c5 | 770 | JH/04 Certificate name checking on server certificates, when exim is a client, |
b3ef41c9 | 771 | is now done by default. The transport option tls_verify_cert_hostnames |
01a4a5c5 JH |
772 | can be used to disable this per-host. The build option |
773 | EXPERIMENTAL_CERTNAMES is withdrawn. | |
774 | ||
cb1d7830 | 775 | JH/05 The value of the tls_verify_certificates smtp transport and main options |
0e0f3f56 | 776 | default to the word "system" to access the system default CA bundle. |
cb1d7830 JH |
777 | For GnuTLS, only version 3.0.20 or later. |
778 | ||
610ff438 | 779 | JH/06 Verification of the server certificate for a TLS connection is now tried |
6d580f19 JH |
780 | (but not required) by default. The verification status is now logged by |
781 | default, for both outbound TLS and client-certificate supplying inbound | |
782 | TLS connections | |
610ff438 | 783 | |
f926e272 JH |
784 | JH/07 Changed the default rfc1413 lookup settings to disable calls. Few |
785 | sites use this now. | |
786 | ||
50dc7409 JH |
787 | JH/08 The EXPERIMENTAL_DSN compile option is no longer needed; all Delivery |
788 | Status Notification (bounce) messages are now MIME format per RFC 3464. | |
789 | Support for RFC 3461 DSN options NOTIFY,ENVID,RET,ORCPT can be advertised | |
790 | under the control of the dsn_advertise_hosts option, and routers may | |
791 | have a dsn_lasthop option. | |
792 | ||
0f0c8159 JH |
793 | JH/09 A timeout of 2 minutes is now applied to all malware scanner types by |
794 | default, modifiable by a malware= option. The list separator for | |
23763898 | 795 | the options can now be changed in the usual way. Bug 68. |
4e71661f | 796 | |
1ad6489e JH |
797 | JH/10 The smtp_receive_timeout main option is now expanded before use. |
798 | ||
aeaf5db3 JH |
799 | JH/11 The incoming_interface log option now also enables logging of the |
800 | local interface on delivery outgoing connections. | |
801 | ||
5032d1cf JH |
802 | JH/12 The cutthrough-routing facility now supports multi-recipient mails, |
803 | if the interface and destination host and port all match. | |
804 | ||
7e8360e6 JH |
805 | JH/13 Bug 344: The verify = reverse_host_lookup ACL condition now accepts a |
806 | /defer_ok option. | |
807 | ||
c5f280e2 AL |
808 | JH/14 Bug 1573: The spam= ACL condition now additionally supports Rspamd. |
809 | Patch from Andrew Lewis. | |
810 | ||
fd4d8871 | 811 | JH/15 Bug 670: The spamd_address main option (for the spam= ACL condition) |
dc7b3d36 | 812 | now supports optional time-restrictions, weighting, and priority |
fd4d8871 R |
813 | modifiers per server. Patch originally by <rommer@active.by>. |
814 | ||
815 | JH/16 The spamd_address main option now supports a mixed list of local | |
2aad5761 JH |
816 | and remote servers. Remote servers can be IPv6 addresses, and |
817 | specify a port-range. | |
fd4d8871 | 818 | |
23763898 JH |
819 | JH/17 Bug 68: The spamd_address main option now supports an optional |
820 | timeout value per server. | |
821 | ||
2ad78978 JH |
822 | JH/18 Bug 1581: Router and transport options headers_add/remove can |
823 | now have the list separator specified. | |
824 | ||
8a512ed5 | 825 | JH/19 Bug 392: spamd_address, and clamd av_scanner, now support retry |
cfab9d68 | 826 | option values. |
8a512ed5 | 827 | |
82c0c8ea | 828 | JH/20 Bug 1571: Ensure that $tls_in_peerdn is set, when verification fails |
f69979cf JH |
829 | under OpenSSL. |
830 | ||
cc00f4af JH |
831 | JH/21 Support for the A6 type of dns record is withdrawn. |
832 | ||
82c0c8ea JH |
833 | JH/22 Bug 608: The result of a QUIT or not-QUIT toplevel ACL now matters |
834 | rather than the verbs used. | |
835 | ||
b980ed83 JH |
836 | JH/23 Bug 1572: Increase limit on SMTP confirmation message copy size |
837 | from 255 to 1024 chars. | |
838 | ||
6c9ed72e JH |
839 | JH/24 Verification callouts now attempt to use TLS by default. |
840 | ||
cfab9d68 | 841 | HS/01 DNSSEC options (dnssec_require_domains, dnssec_request_domains) |
99c1bb4e | 842 | are generic router options now. The defaults didn't change. |
50dc7409 | 843 | |
f846c8f5 JH |
844 | JH/25 Bug 466: Add RFC2322 support for MIME attachment filenames. |
845 | Original patch from Alexander Shikoff, worked over by JH. | |
846 | ||
fd4c285c HSHR |
847 | HS/02 Bug 1575: exigrep falls back to autodetection of compressed |
848 | files if ZCAT_COMMAND is not executable. | |
849 | ||
4c04137d | 850 | JH/26 Bug 1539: Add timeout/retry options on dnsdb lookups. |
fd7f7910 | 851 | |
d2a2c69b JH |
852 | JH/27 Bug 286: Support SOA lookup in dnsdb lookups. |
853 | ||
8241d8dd JH |
854 | JH/28 Bug 1588: Do not use the A lookup following an AAAA for setting the FQDN. |
855 | Normally benign, it bites when the pair was led to by a CNAME; | |
4c04137d | 856 | modern usage is to not canonicalize the domain to a CNAME target |
8241d8dd JH |
857 | (and we were inconsistent anyway for A-only vs AAAA+A). |
858 | ||
1f12df4d JH |
859 | JH/29 Bug 1632: Removed the word "rejected" from line logged for ACL discards. |
860 | ||
1f155f8e JH |
861 | JH/30 Check the forward DNS lookup for DNSSEC, in addition to the reverse, |
862 | when evaluating $sender_host_dnssec. | |
863 | ||
1705dd20 JH |
864 | JH/31 Check the HELO verification lookup for DNSSEC, adding new |
865 | $sender_helo_dnssec variable. | |
866 | ||
038597d2 PP |
867 | JH/32 Bug 1397: Enable ECDHE on OpenSSL, just the NIST P-256 curve. |
868 | ||
474f71bf JH |
869 | JH/33 Bug 1346: Note MAIL cmd seen in -bS batch, to avoid smtp_no_mail log. |
870 | ||
7137ca4b JH |
871 | JH/34 Bug 1648: Fix a memory leak seen with "mailq" and large queues. |
872 | ||
dcb1095c JH |
873 | JH/35 Bug 1642: Fix support of $spam_ variables at delivery time. Was |
874 | documented as working, but never had. Support all but $spam_report. | |
875 | ||
2f460950 JH |
876 | JH/36 Bug 1659: Guard checking of input smtp commands again pseudo-command |
877 | added for tls authenticator. | |
878 | ||
2f680c0c HSHR |
879 | HS/03 Add perl_taintmode main config option |
880 | ||
9c695f6d | 881 | |
e449c3b0 TL |
882 | Exim version 4.85 |
883 | ----------------- | |
4c57a40e | 884 | |
e449c3b0 TL |
885 | TL/01 When running the test suite, the README says that variables such as |
886 | no_msglog_check are global and can be placed anywhere in a specific | |
887 | test's script, however it was observed that placement needed to be near | |
888 | the beginning for it to behave that way. Changed the runtest perl | |
889 | script to read through the entire script once to detect and set these | |
890 | variables, reset to the beginning of the script, and then run through | |
891 | the script parsing/test process like normal. | |
892 | ||
ac20058f TL |
893 | TL/02 The BSD's have an arc4random API. One of the functions to induce |
894 | adding randomness was arc4random_stir(), but it has been removed in | |
895 | OpenBSD 5.5. Detect this OpenBSD version and skip calling this | |
896 | function when detected. | |
897 | ||
a9b8ec8b JH |
898 | JH/01 Expand the EXPERIMENTAL_TPDA feature. Several different events now |
899 | cause callback expansion. | |
900 | ||
6286d7c4 TL |
901 | TL/03 Bugzilla 1518: Clarify "condition" processing in routers; that |
902 | syntax errors in an expansion can be treated as a string instead of | |
903 | logging or causing an error, due to the internal use of bool_lax | |
904 | instead of bool when processing it. | |
905 | ||
0f06b4f2 | 906 | JH/02 Add EXPERIMENTAL_DANE, allowing for using the DNS as trust-anchor for |
d567a64d JH |
907 | server certificates when making smtp deliveries. |
908 | ||
be36e572 JH |
909 | JH/03 Support secondary-separator specifier for MX, SRV, TLSA lookups. |
910 | ||
ac4ef9bd JH |
911 | JH/04 Add ${sort {list}{condition}{extractor}} expansion item. |
912 | ||
0eb51736 TL |
913 | TL/04 Bugzilla 1216: Add -M (related messages) option to exigrep. |
914 | ||
c713ca4b TL |
915 | TL/05 GitHub Issue 18: Adjust logic testing for true/false in redis lookups. |
916 | Merged patch from Sebastian Wiedenroth. | |
e449c3b0 | 917 | |
bd21a787 WB |
918 | JH/05 Fix results-pipe from transport process. Several recipients, combined |
919 | with certificate use, exposed issues where response data items split | |
920 | over buffer boundaries were not parsed properly. This eventually | |
921 | resulted in duplicates being sent. This issue only became common enough | |
4c04137d | 922 | to notice due to the introduction of connection certificate information, |
bd21a787 WB |
923 | the item size being so much larger. Found and fixed by Wolfgang Breyha. |
924 | ||
8bc732e8 JH |
925 | JH/06 Bug 1533: Fix truncation of items in headers_remove lists. A fixed |
926 | size buffer was used, resulting in syntax errors when an expansion | |
927 | exceeded it. | |
928 | ||
a7fec7a7 JH |
929 | JH/07 Add support for directories of certificates when compiled with a GnuTLS |
930 | version 3.3.6 or later. | |
931 | ||
4c04137d | 932 | JH/08 Rename the TPDA experimental facility to Event Actions. The #ifdef |
774ef2d7 JH |
933 | is EXPERIMENTAL_EVENT, the main-configuration and transport options |
934 | both become "event_action", the variables become $event_name, $event_data | |
aec45841 | 935 | and $event_defer_errno. There is a new variable $verify_mode, usable in |
723fe533 JH |
936 | routers, transports and related events. The tls:cert event is now also |
937 | raised for inbound connections, if the main configuration event_action | |
938 | option is defined. | |
774ef2d7 | 939 | |
eca4debb TL |
940 | TL/06 In test suite, disable OCSP for old versions of openssl which contained |
941 | early OCSP support, but no stapling (appears to be less than 1.0.0). | |
942 | ||
8d692470 JH |
943 | JH/09 When compiled with OpenSSL and EXPERIMENTAL_CERTNAMES, the checks on |
944 | server certificate names available under the smtp transport option | |
945 | "tls_verify_cert_hostname" now do not permit multi-component wildcard | |
946 | matches. | |
947 | ||
e9477a08 JH |
948 | JH/10 Time-related extraction expansions from certificates now use the main |
949 | option "timezone" setting for output formatting, and are consistent | |
950 | between OpenSSL and GnuTLS compilations. Bug 1541. | |
951 | ||
ad4c5ff9 JH |
952 | JH/11 Fix a crash in mime ACL when meeting a zero-length, quoted or RFC2047- |
953 | encoded parameter in the incoming message. Bug 1558. | |
8dea5edf JH |
954 | |
955 | JH/12 Bug 1527: Autogrow buffer used in reading spool files. Since they now | |
956 | include certificate info, eximon was claiming there were spoolfile | |
957 | syntax errors. | |
958 | ||
3394b36a | 959 | JH/13 Bug 1521: Fix ldap lookup for single-attr request, multiple-attr return. |
8dea5edf JH |
960 | |
961 | JH/14 Log delivery-related information more consistently, using the sequence | |
962 | "H=<name> [<ip>]" wherever possible. | |
963 | ||
3394b36a TL |
964 | TL/07 Bug 1547: Omit RFCs from release. Draft and RFCs have licenses which |
965 | are problematic for Debian distribution, omit them from the release | |
966 | tarball. | |
967 | ||
ad4c5ff9 JH |
968 | JH/15 Updates and fixes to the EXPERIMENTAL_DSN feature. |
969 | ||
4c04137d | 970 | JH/16 Fix string representation of time values on 64bit time_t architectures. |
ad4c5ff9 JH |
971 | Bug 1561. |
972 | ||
973 | JH/17 Fix a null-indirection in certextract expansions when a nondefault | |
974 | output list separator was used. | |
975 | ||
8bc732e8 | 976 | |
1f0ebb98 TL |
977 | Exim version 4.84 |
978 | ----------------- | |
09728d20 TL |
979 | TL/01 Bugzilla 1506: Re-add a 'return NULL' to silence complaints from static |
980 | checkers that were complaining about end of non-void function with no | |
981 | return. | |
1f0ebb98 | 982 | |
a612424f | 983 | JH/01 Bug 1513: Fix parsing of quoted parameter values in MIME headers. |
4c04137d | 984 | This was a regression introduced in 4.83 by another bugfix. |
a612424f JH |
985 | |
986 | JH/02 Fix broken compilation when EXPERIMENTAL_DSN is enabled. | |
987 | ||
988 | TL/02 Bug 1509: Fix exipick for enhanced spoolfile specification used when | |
a9b8ec8b | 989 | EXPERIMENTAL_DSN is enabled. Fix from Wolfgang Breyha. |
a612424f | 990 | |
1f0ebb98 | 991 | |
c0e56233 TF |
992 | Exim version 4.83 |
993 | ----------------- | |
994 | ||
995 | TF/01 Correctly close the server side of TLS when forking for delivery. | |
996 | ||
997 | When a message was received over SMTP with TLS, Exim failed to clear up | |
998 | the incoming connection properly after forking off the child process to | |
999 | deliver the message. In some situations the subsequent outgoing | |
1000 | delivery connection happened to have the same fd number as the incoming | |
1001 | connection previously had. Exim would try to use TLS and fail, logging | |
1002 | a "Bad file descriptor" error. | |
1003 | ||
7245734e TF |
1004 | TF/02 Portability fix for building lookup modules on Solaris when the xpg4 |
1005 | utilities have not been installed. | |
1006 | ||
fd5dad68 JH |
1007 | JH/01 Fix memory-handling in use of acl as a conditional; avoid free of |
1008 | temporary space as the ACL may create new global variables. | |
1009 | ||
5428a946 TL |
1010 | TL/01 LDAP support uses per connection or global context settings, depending |
1011 | upon the detected version of the libraries at build time. | |
1012 | ||
a3c86431 TL |
1013 | TL/02 Experimental Proxy Protocol support: allows a proxied SMTP connection |
1014 | to extract and use the src ip:port in logging and expansions as if it | |
8ded8589 TL |
1015 | were a direct connection from the outside internet. PPv2 support was |
1016 | updated based on HAProxy spec change in May 2014. | |
a3c86431 | 1017 | |
aa26e137 JH |
1018 | JH/02 Add ${listextract {number}{list}{success}{fail}}. |
1019 | ||
5a1b8443 WB |
1020 | TL/03 Bugzilla 1433: Fix DMARC SEGV with specific From header contents. |
1021 | Properly escape header and check for NULL return. | |
1022 | ||
72c9e342 PP |
1023 | PP/01 Continue incomplete 4.82 PP/19 by fixing docs too: use dns_dnssec_ok |
1024 | not dns_use_dnssec. | |
1025 | ||
76f44207 WB |
1026 | JH/03 Bugzilla 1157: support log_selector smtp_confirmation for lmtp. |
1027 | ||
770747fd MFM |
1028 | TL/04 Add verify = header_names_ascii check to reject email with non-ASCII |
1029 | characters in header names, implemented as a verify condition. | |
1030 | Contributed by Michael Fischer v. Mollard. | |
1031 | ||
8ddef691 | 1032 | TL/05 Rename SPF condition results err_perm and err_temp to standardized |
982650ec TL |
1033 | results permerror and temperror. Previous values are deprecated but |
1034 | still accepted. In a future release, err_perm and err_temp will be | |
1035 | completely removed, which will be a backward incompatibility if the | |
1036 | ACL tests for either of these two old results. Patch contributed by | |
8ddef691 | 1037 | user bes-internal on the mailing list. |
c0e56233 | 1038 | |
b9c2e32f AR |
1039 | JH/04 Add ${utf8clean:} operator. Contributed by Alex Rau. |
1040 | ||
e45a1c37 JH |
1041 | JH/05 Bugzilla 305: Log incoming-TLS details on rejects, subject to log |
1042 | selectors, in both main and reject logs. | |
1043 | ||
67d81c10 JH |
1044 | JH/06 Log outbound-TLS and port details, subject to log selectors, for a |
1045 | failed delivery. | |
1046 | ||
b1f8e4f8 JH |
1047 | JH/07 Add malware type "sock" for talking to simple daemon. |
1048 | ||
511a6c14 | 1049 | JH/08 Bugzilla 1371: Add tls_{,try_}verify_hosts to smtp transport. |
511a6c14 JH |
1050 | |
1051 | JH/09 Bugzilla 1431: Support (with limitations) headers_add/headers_remove in | |
1052 | routers/transports under cutthrough routing. | |
214042d2 | 1053 | |
51c7471d JH |
1054 | JH/10 Bugzilla 1005: ACL "condition =" should accept values which are negative |
1055 | numbers. Touch up "bool" conditional to keep the same definition. | |
1056 | ||
3695be34 TL |
1057 | TL/06 Remove duplicated language in spec file from 4.82 TL/16. |
1058 | ||
1e06383a TL |
1059 | JH/11 Add dnsdb tlsa lookup. From Todd Lyons. |
1060 | ||
76146973 JH |
1061 | JH/12 Expand items in router/transport headers_add or headers_remove lists |
1062 | individually rather than the list as a whole. Bug 1452. | |
1063 | ||
1064 | Required for reasonable handling of multiple headers_ options when | |
1065 | they may be empty; requires that headers_remove items with embedded | |
1066 | colons must have them doubled (or the list-separator changed). | |
1067 | ||
8c8b8274 TL |
1068 | TL/07 Add new dmarc expansion variable $dmarc_domain_policy to directly |
1069 | view the policy declared in the DMARC record. Currently, $dmarc_status | |
1070 | is a combined value of both the record presence and the result of the | |
1071 | analysis. | |
b1f8e4f8 | 1072 | |
35aba663 JH |
1073 | JH/13 Fix handling of $tls_cipher et.al. in (non-verify) transport. Bug 1455. |
1074 | ||
8c51eead | 1075 | JH/14 New options dnssec_request_domains, dnssec_require_domains on the |
578897ea JH |
1076 | dnslookup router and the smtp transport (applying to the forward |
1077 | lookup). | |
8c51eead | 1078 | |
deae092e HS |
1079 | TL/08 Bugzilla 1453: New LDAP "SERVERS=" option allows admin to override list |
1080 | of ldap servers used for a specific lookup. Patch provided by Heiko | |
1081 | Schlichting. | |
35aba663 | 1082 | |
fd3b6a4a | 1083 | JH/18 New options dnssec_lax, dnssec_strict on dnsdb lookups. |
4e0983dc | 1084 | New variable $lookup_dnssec_authenticated for observability. |
fd3b6a4a | 1085 | |
8d91c6dc LT |
1086 | TL/09 Bugzilla 609: Add -C option to exiqgrep, specify which exim.conf to use. |
1087 | Patch submitted by Lars Timman. | |
1088 | ||
2b4a568d JH |
1089 | JH/19 EXPERIMENTAL_OCSP support under GnuTLS. Bug 1459. |
1090 | ||
d2af03f4 HS |
1091 | TL/10 Bugzilla 1454: New -oMm option to pass message reference to Exim. |
1092 | Requires trusted mode and valid format message id, aborts otherwise. | |
1093 | Patch contributed by Heiko Schlichting. | |
1094 | ||
9d1c15ef JH |
1095 | JH/20 New expansion variables tls_(in,out)_(our,peer)cert, and expansion item |
1096 | certextract with support for various fields. Bug 1358. | |
1097 | ||
44662487 JH |
1098 | JH/21 Observability of OCSP via variables tls_(in,out)_ocsp. Stapling |
1099 | is requested by default, modifiable by smtp transport option | |
6a8a60e0 JH |
1100 | hosts_request_ocsp. |
1101 | ||
ed3bba5f | 1102 | JH/22 Expansion operators ${md5:string} and ${sha1:string} can now |
6a8a60e0 | 1103 | operate on certificate variables to give certificate fingerprints |
9ef9101c | 1104 | Also new ${sha256:cert_variable}. |
44662487 | 1105 | |
8ccd00b1 JH |
1106 | JH/23 The PRDR feature is moved from being Experimental into the mainline. |
1107 | ||
8ded8589 TL |
1108 | TL/11 Bug 1119: fix memory allocation in string_printing2(). Patch from |
1109 | Christian Aistleitner. | |
1110 | ||
f2de3a33 JH |
1111 | JH/24 The OCSP stapling feature is moved from Experimental into the mainline. |
1112 | ||
6eb02f88 TL |
1113 | TL/12 Bug 1444: Fix improper \r\n sequence handling when writing spool |
1114 | file. Patch from Wolfgang Breyha. | |
1115 | ||
00bff6f6 JH |
1116 | JH/25 Expand the coverage of the delivery $host and $host_address to |
1117 | client authenticators run in verify callout. Bug 1476. | |
1118 | ||
071c51f7 JH |
1119 | JH/26 Port service names are now accepted for tls_on_connect_ports, to |
1120 | align with daemon_smtp_ports. Bug 72. | |
1121 | ||
a6d4c44e TF |
1122 | TF/03 Fix udpsend. The ip_connectedsocket() function's socket type |
1123 | support and error reporting did not work properly. | |
1124 | ||
3ae173e7 ACK |
1125 | TL/13 Bug 1495: Exiqgrep check if -C config file specified on cli exists |
1126 | and is readable. Patch from Andrew Colin Kissa. | |
1127 | ||
c13d09b8 TL |
1128 | TL/14 Enhance documentation of ${run expansion and how it parses the |
1129 | commandline after expansion, particularly in the case when an | |
1130 | unquoted variable expansion results in an empty value. | |
1131 | ||
0df4ab80 JH |
1132 | JH/27 The TLS SNI feature was broken in 4.82. Fix it. |
1133 | ||
66be95e0 PP |
1134 | PP/02 Fix internal collision of T_APL on systems which support RFC3123 |
1135 | by renaming away from it. Addresses GH issue 15, reported by | |
1136 | Jasper Wallace. | |
1137 | ||
1bd0d12b JH |
1138 | JH/28 Fix parsing of MIME headers for parameters with quoted semicolons. |
1139 | ||
0de7239e TL |
1140 | TL/15 SECURITY: prevent double expansion in math comparison functions |
1141 | (can expand unsanitized data). Not remotely exploitable. | |
1142 | CVE-2014-2972 | |
1143 | ||
fd3b6a4a | 1144 | |
2c422e6f | 1145 | Exim version 4.82 |
98a90c36 PP |
1146 | ----------------- |
1147 | ||
1148 | PP/01 Add -bI: framework, and -bI:sieve for querying sieve capabilities. | |
1149 | ||
12f69989 PP |
1150 | PP/02 Make -n do something, by making it not do something. |
1151 | When combined with -bP, the name of an option is not output. | |
1152 | ||
54c90be1 PP |
1153 | PP/03 Added tls_dh_min_bits SMTP transport driver option, only honoured |
1154 | by GnuTLS. | |
1155 | ||
1f4a55da PP |
1156 | PP/04 First step towards DNSSEC, provide $sender_host_dnssec for |
1157 | $sender_host_name and config options to manage this, and basic check | |
1158 | routines. | |
1159 | ||
13363eba | 1160 | PP/05 DSCP support for outbound connections and control modifier for inbound. |
36a3ae5f | 1161 | |
66645890 | 1162 | PP/06 Cyrus SASL: set local and remote IP;port properties for driver. |
e402235f PP |
1163 | (Only plugin which currently uses this is kerberos4, which nobody should |
1164 | be using, but we should make it available and other future plugins might | |
1165 | conceivably use it, even though it would break NAT; stuff *should* be | |
1166 | using channel bindings instead). | |
66645890 | 1167 | |
a3fb9793 | 1168 | PP/07 Handle "exim -L <tag>" to indicate to use syslog with tag as the process |
f4ee74ac PP |
1169 | name; added for Sendmail compatibility; requires admin caller. |
1170 | Handle -G as equivalent to "control = suppress_local_fixups" (we used to | |
1171 | just ignore it); requires trusted caller. | |
a3fb9793 | 1172 | Also parse but ignore: -Ac -Am -X<logfile> |
f4ee74ac | 1173 | Bugzilla 1117. |
a3fb9793 | 1174 | |
d27f98fe | 1175 | TL/01 Bugzilla 1258 - Refactor MAIL FROM optional args processing. |
98a90c36 | 1176 | |
6822b909 TL |
1177 | TL/02 Add +smtp_confirmation as a default logging option. |
1178 | ||
e7568d51 TL |
1179 | TL/03 Bugzilla 198 - Implement remove_header ACL modifier. |
1180 | Patch by Magnus Holmgren from 2007-02-20. | |
1181 | ||
ae0e32ee | 1182 | TL/04 Bugzilla 1281 - Spec typo. |
ca0ff207 | 1183 | Bugzilla 1283 - Spec typo. |
97f42f10 | 1184 | Bugzilla 1290 - Spec grammar fixes. |
ca0ff207 TL |
1185 | |
1186 | TL/05 Bugzilla 1285 - Spec omission, fix docbook errors for spec.txt creation. | |
ae0e32ee | 1187 | |
e2658fff TL |
1188 | TL/06 Add Experimental DMARC support using libopendmarc libraries. |
1189 | ||
83712b39 TL |
1190 | TL/07 Fix an out of order global option causing a segfault. Reported to dev |
1191 | mailing list by by Dmitry Isaikin. | |
1192 | ||
976b7e9f JH |
1193 | JH/01 Bugzilla 1201 & 304 - New cutthrough-delivery feature, with TLS support. |
1194 | ||
be4a1376 JH |
1195 | JH/02 Support "G" suffix to numbers in ${if comparisons. |
1196 | ||
ec4b68e5 PP |
1197 | PP/08 Handle smtp transport tls_sni option forced-fail for OpenSSL. |
1198 | ||
d7148a07 NM |
1199 | NM/01 Bugzilla 1197 - Spec typo |
1200 | Bugzilla 1196 - Spec examples corrections | |
ec4b68e5 | 1201 | |
585121e2 | 1202 | JH/03 Add expansion operators ${listnamed:name} and ${listcount:string} |
ec4b68e5 | 1203 | |
2519e60d TL |
1204 | PP/09 Add gnutls_allow_auto_pkcs11 option (was originally called |
1205 | gnutls_enable_pkcs11, but renamed to more accurately indicate its | |
1206 | function. | |
a5f239e4 | 1207 | |
13d08c90 PP |
1208 | PP/10 Let Linux makefile inherit CFLAGS/CFLAGS_DYNAMIC. |
1209 | Pulled from Debian 30_dontoverridecflags.dpatch by Andreas Metzler. | |
1210 | ||
bef3ea7f JH |
1211 | JH/04 Add expansion item ${acl {name}{arg}...}, expansion condition |
1212 | "acl {{name}{arg}...}", and optional args on acl condition | |
1213 | "acl = name arg..." | |
a5f239e4 | 1214 | |
846726c5 JH |
1215 | JH/05 Permit multiple router/transport headers_add/remove lines. |
1216 | ||
3a796370 JH |
1217 | JH/06 Add dnsdb pseudo-lookup "a+" to do an "aaaa" + "a" combination. |
1218 | ||
ea722490 | 1219 | JH/07 Avoid using a waiting database for a single-message-only transport. |
8b260705 PP |
1220 | Performance patch from Paul Fisher. Bugzilla 1262. |
1221 | ||
b1b05573 JH |
1222 | JH/08 Strip leading/trailing newlines from add_header ACL modifier data. |
1223 | Bugzilla 884. | |
1224 | ||
362145b5 JH |
1225 | JH/09 Add $headers_added variable, with content from use of ACL modifier |
1226 | add_header (but not yet added to the message). Bugzilla 199. | |
1227 | ||
3c0a92dc JH |
1228 | JH/10 Add 8bitmime log_selector, for 8bitmime status on the received line. |
1229 | Pulled from Bugzilla 817 by Wolfgang Breyha. | |
1230 | ||
6d7c6175 PP |
1231 | PP/11 SECURITY: protect DKIM DNS decoding from remote exploit. |
1232 | CVE-2012-5671 | |
e78e6ecf | 1233 | (nb: this is the same fix as in Exim 4.80.1) |
6d7c6175 | 1234 | |
6f123593 JH |
1235 | JH/11 Add A= logging on delivery lines, and a client_set_id option on |
1236 | authenticators. | |
1237 | ||
c8e2fc1e JH |
1238 | JH/12 Add optional authenticated_sender logging to A= and a log_selector |
1239 | for control. | |
1240 | ||
005ac57f PP |
1241 | PP/12 Unbreak server_set_id for NTLM/SPA auth, broken by 4.80 PP/29. |
1242 | ||
3f1df0e3 PP |
1243 | PP/13 Dovecot auth: log better reason to rejectlog if Dovecot did not |
1244 | advertise SMTP AUTH mechanism to us, instead of a generic | |
1245 | protocol violation error. Also, make Exim more robust to bad | |
1246 | data from the Dovecot auth socket. | |
1247 | ||
67bd1ab3 TF |
1248 | TF/01 Fix ultimate retry timeouts for intermittently deliverable recipients. |
1249 | ||
1250 | When a queue runner is handling a message, Exim first routes the | |
1251 | recipient addresses, during which it prunes them based on the retry | |
1252 | hints database. After that it attempts to deliver the message to | |
1253 | any remaining recipients. It then updates the hints database using | |
1254 | the retry rules. | |
1255 | ||
1256 | So if a recipient address works intermittently, it can get repeatedly | |
1257 | deferred at routing time. The retry hints record remains fresh so the | |
1258 | address never reaches the final cutoff time. | |
1259 | ||
1260 | This is a fairly common occurrence when a user is bumping up against | |
1261 | their storage quota. Exim had some logic in its local delivery code | |
1262 | to deal with this. However it did not apply to per-recipient defers | |
1263 | in remote deliveries, e.g. over LMTP to a separate IMAP message store. | |
1264 | ||
1ddeb334 TF |
1265 | This change adds a proper retry rule check during routing so that the |
1266 | final cutoff time is checked against the message's age. We only do | |
1267 | this check if there is an address retry record and there is not a | |
1268 | domain retry record; this implies that previous attempts to handle | |
1269 | the address had the retry_use_local_parts option turned on. We use | |
1270 | this as an approximation for the destination being like a local | |
1271 | delivery, as in LMTP. | |
67bd1ab3 TF |
1272 | |
1273 | I suspect this new check makes the old local delivery cutoff check | |
1274 | redundant, but I have not verified this so I left the code in place. | |
1275 | ||
326cdc37 TF |
1276 | TF/02 Correct gecos expansion when From: is a prefix of the username. |
1277 | ||
1278 | Test 0254 submits a message to Exim with the header | |
1279 | ||
1280 | Resent-From: f | |
1281 | ||
1282 | When I ran the test suite under the user fanf2, Exim expanded | |
1283 | the header to contain my full name, whereas it should have added | |
1284 | a Resent-Sender: header. It erroneously treats any prefix of the | |
1285 | username as equal to the username. | |
1286 | ||
1287 | This change corrects that bug. | |
1288 | ||
f62514b3 GF |
1289 | GF/01 DCC debug and logging tidyup |
1290 | Error conditions log to paniclog rather than rejectlog. | |
1291 | Debug lines prefixed by "DCC: " to remove any ambiguity. | |
1292 | ||
eb505532 TF |
1293 | TF/03 Avoid unnecessary rebuilds of lookup-related code. |
1294 | ||
14c7b357 PP |
1295 | PP/14 Fix OCSP reinitialisation in SNI handling for Exim/TLS as server. |
1296 | Bug spotted by Jeremy Harris; was flawed since initial commit. | |
1297 | Would have resulted in OCSP responses post-SNI triggering an Exim | |
1298 | NULL dereference and crash. | |
1299 | ||
94eaf700 PP |
1300 | JH/13 Add $router_name and $transport_name variables. Bugzilla 308. |
1301 | ||
6f5a440a PP |
1302 | PP/15 Define SIOCGIFCONF_GIVES_ADDR for GNU Hurd. |
1303 | Bug detection, analysis and fix by Samuel Thibault. | |
1304 | Bugzilla 1331, Debian bug #698092. | |
1305 | ||
514ee161 SC |
1306 | SC/01 Update eximstats to watch out for senders sending 'HELO [IpAddr]' |
1307 | ||
fd98a5c6 JH |
1308 | JH/14 SMTP PRDR (http://www.eric-a-hall.com/specs/draft-hall-prdr-00.txt). |
1309 | Server implementation by Todd Lyons, client by JH. | |
1310 | Only enabled when compiled with EXPERIMENTAL_PRDR. A new | |
1311 | config variable "prdr_enable" controls whether the server | |
1312 | advertises the facility. If the client requests PRDR a new | |
1313 | acl_data_smtp_prdr ACL is called once for each recipient, after | |
1314 | the body content is received and before the acl_smtp_data ACL. | |
4c04137d | 1315 | The client is controlled by both of: a hosts_try_prdr option |
fd98a5c6 JH |
1316 | on the smtp transport, and the server advertisement. |
1317 | Default client logging of deliveries and rejections involving | |
1318 | PRDR are flagged with the string "PRDR". | |
1319 | ||
035c7f1e PP |
1320 | PP/16 Fix problems caused by timeouts during quit ACLs trying to double |
1321 | fclose(). Diagnosis by Todd Lyons. | |
1322 | ||
ff284120 PP |
1323 | PP/17 Update configure.default to handle IPv6 localhost better. |
1324 | Patch by Alain Williams (plus minor tweaks). | |
1325 | Bugzilla 880. | |
1326 | ||
26e72755 PP |
1327 | PP/18 OpenSSL made graceful with empty tls_verify_certificates setting. |
1328 | This is now consistent with GnuTLS, and is now documented: the | |
1329 | previous undocumented portable approach to treating the option as | |
1330 | unset was to force an expansion failure. That still works, and | |
1331 | an empty string is now equivalent. | |
1332 | ||
0fbd9bff PP |
1333 | PP/19 Renamed DNSSEC-enabling option to "dns_dnssec_ok", to make it |
1334 | clearer that Exim is using the DO (DNSSEC OK) EDNS0 resolver flag, | |
1335 | not performing validation itself. | |
1336 | ||
700d22f3 PP |
1337 | PP/20 Added force_command boolean option to pipe transport. |
1338 | Patch from Nick Koston, of cPanel Inc. | |
1339 | ||
fcc8e047 JH |
1340 | JH/15 AUTH support on callouts (and hence cutthrough-deliveries). |
1341 | Bugzilla 321, 823. | |
1342 | ||
4c04137d | 1343 | TF/04 Added udpsend ACL modifier and hexquote expansion operator |
7142daca | 1344 | |
8c020188 PP |
1345 | PP/21 Fix eximon continuous updating with timestamped log-files. |
1346 | Broken in a format-string cleanup in 4.80, missed when I repaired the | |
1347 | other false fix of the same issue. | |
1348 | Report and fix from Heiko Schlichting. | |
1349 | Bugzilla 1363. | |
1350 | ||
d13cdd30 PP |
1351 | PP/22 Guard LDAP TLS usage against Solaris LDAP variant. |
1352 | Report from Prashanth Katuri. | |
1353 | ||
e2fbf4a2 PP |
1354 | PP/23 Support safari_ecdhe_ecdsa_bug for openssl_options. |
1355 | It's SecureTransport, so affects any MacOS clients which use the | |
1356 | system-integrated TLS libraries, including email clients. | |
1357 | ||
f4c1088b PP |
1358 | PP/24 Fix segfault from trying to fprintf() to a NULL stdio FILE* if |
1359 | using a MIME ACL for non-SMTP local injection. | |
1360 | Report and assistance in diagnosis by Warren Baker. | |
1361 | ||
c5c2182f PP |
1362 | TL/08 Adjust exiqgrep to be case-insensitive for sender/receiver. |
1363 | ||
73431ca9 JH |
1364 | JH/16 Fix comparisons for 64b. Bugzilla 1385. |
1365 | ||
2d07a215 TL |
1366 | TL/09 Add expansion variable $authenticated_fail_id to keep track of |
1367 | last id that failed so it may be referenced in subsequent ACL's. | |
1368 | ||
a30a8861 TL |
1369 | TL/10 Bugzilla 1375 - Prevent TLS rebinding in ldap. Patch provided by |
1370 | Alexander Miroch. | |
1371 | ||
33382dd9 TL |
1372 | TL/11 Bugzilla 1382 - Option ldap_require_cert overrides start_tls |
1373 | ldap library initialization, allowing self-signed CA's to be | |
1374 | used. Also properly sets require_cert option later in code by | |
1375 | using NULL (global ldap config) instead of ldap handle (per | |
1376 | session). Bug diagnosis and testing by alxgomz. | |
6d7c6175 | 1377 | |
046172e6 TL |
1378 | TL/12 Enhanced documentation in the ratelimit.pl script provided in |
1379 | the src/util/ subdirectory. | |
1380 | ||
581d7bee | 1381 | TL/13 Bug 1031 - Imported transport SQL logging patch from Axel Rau |
1a7b746d | 1382 | renamed to Transport Post Delivery Action by Jeremy Harris, as |
9bdd29ad TL |
1383 | EXPERIMENTAL_TPDA. |
1384 | ||
1385 | TL/14 Bugzilla 1217 - Redis lookup support has been added. It is only enabled | |
1386 | when Exim is compiled with EXPERIMENTAL_REDIS. A new config variable | |
1387 | redis_servers = needs to be configured which will be used by the redis | |
1388 | lookup. Patch from Warren Baker, of The Packet Hub. | |
1389 | ||
237b2cf2 TL |
1390 | TL/15 Fix exiqsumm summary for corner case. Patch provided by Richard Hall. |
1391 | ||
9fc5a352 TL |
1392 | TL/16 Bugzilla 1289 - Clarify host/ip processing when have errors looking up a |
1393 | hostname or reverse DNS when processing a host list. Used suggestions | |
1394 | from multiple comments on this bug. | |
1a7b746d | 1395 | |
b10e4ec2 TL |
1396 | TL/17 Bugzilla 1057 - Multiple clamd TCP targets patch from Mark Zealey. |
1397 | ||
e2cebd74 TL |
1398 | TL/18 Had previously added a -CONTINUE option to runtest in the test suite. |
1399 | Missed a few lines, added it to make the runtest require no keyboard | |
1400 | interaction. | |
1401 | ||
1402 | TL/19 Bugzilla 1402 - Test 533 fails if any part of the path to the test suite | |
1403 | contains upper case chars. Make router use caseful_local_part. | |
1404 | ||
2519e60d TL |
1405 | TL/20 Bugzilla 1400 - Add AVOID_GNUTLS_PKCS11 build option. Allows GnuTLS |
1406 | support when GnuTLS has been built with p11-kit. | |
1407 | ||
e78e6ecf | 1408 | |
4263f395 PP |
1409 | Exim version 4.80.1 |
1410 | ------------------- | |
1411 | ||
1412 | PP/01 SECURITY: protect DKIM DNS decoding from remote exploit. | |
1413 | CVE-2012-5671 | |
2c422e6f | 1414 | This, or similar/improved, will also be change PP/11 of 4.82. |
3c0a92dc | 1415 | |
ea722490 | 1416 | |
b1770b6e | 1417 | Exim version 4.80 |
0599f9cf PP |
1418 | ----------------- |
1419 | ||
1420 | PP/01 Handle short writes when writing local log-files. | |
1421 | In practice, only affects FreeBSD (8 onwards). | |
1422 | Bugzilla 1053, with thanks to Dmitry Isaikin. | |
1423 | ||
23c7e742 NM |
1424 | NM/01 Bugzilla 949 - Documentation tweak |
1425 | ||
b322aac8 NM |
1426 | NM/02 Bugzilla 1093 - eximstats DATA reject detection regexps |
1427 | improved. | |
1428 | ||
4a891427 NM |
1429 | NM/03 Bugzilla 1169 - primary_hostname spelling was incorrect in docs. |
1430 | ||
c1e794ba | 1431 | PP/02 Implemented gsasl authenticator. |
b322aac8 | 1432 | |
97753960 PP |
1433 | PP/03 Implemented heimdal_gssapi authenticator with "server_keytab" option. |
1434 | ||
1435 | PP/04 Local/Makefile support for (AUTH|LOOKUP)_*_PC=foo to use | |
1436 | `pkg-config foo` for cflags/libs. | |
1437 | ||
df6303fa PP |
1438 | PP/05 Swapped $auth1/$auth2 for gsasl GSSAPI mechanism, to be more consistent |
1439 | with rest of GSASL and with heimdal_gssapi. | |
1440 | ||
7e6a8985 PP |
1441 | PP/06 Local/Makefile support for USE_(GNUTLS|OPENSSL)_PC=foo to use |
1442 | `pkg-config foo` for cflags/libs for the TLS implementation. | |
1443 | ||
f1e05cc7 | 1444 | PP/07 New expansion variable $tls_bits; Cyrus SASL server connection |
20aa9dbd PP |
1445 | properties get this fed in as external SSF. A number of robustness |
1446 | and debugging improvements to the cyrus_sasl authenticator. | |
b322aac8 | 1447 | |
4c287009 PP |
1448 | PP/08 cyrus_sasl server now expands the server_realm option. |
1449 | ||
b98bb9ac PP |
1450 | PP/09 Bugzilla 1214 - Log authentication information in reject log. |
1451 | Patch by Jeremy Harris. | |
1452 | ||
4a6a987a PP |
1453 | PP/10 Added dbmjz lookup type. |
1454 | ||
c45dd180 | 1455 | PP/11 Let heimdal_gssapi authenticator take a SASL message without an authzid. |
c7955b11 | 1456 | |
7db8d074 PP |
1457 | PP/12 MAIL args handles TAB as well as SP, for better interop with |
1458 | non-compliant senders. | |
1459 | Analysis and variant patch by Todd Lyons. | |
1460 | ||
eae0036b | 1461 | NM/04 Bugzilla 1237 - fix cases where printf format usage not indicated |
cfab9d68 | 1462 | Bug report from Lars Müller <lars@samba.org> (via SUSE), |
e0df1c83 DM |
1463 | Patch from Dirk Mueller <dmueller@suse.com> |
1464 | ||
dec5017e PP |
1465 | PP/13 tls_peerdn now print-escaped for spool files. |
1466 | Observed some $tls_peerdn in wild which contained \n, which resulted | |
1467 | in spool file corruption. | |
1468 | ||
c80c5570 PP |
1469 | PP/14 TLS fixes for OpenSSL: support TLS 1.1 & 1.2; new "openssl_options" |
1470 | values; set SSL_MODE_AUTO_RETRY so that OpenSSL will retry a read | |
1471 | or write after TLS renegotiation, which otherwise led to messages | |
1472 | "Got SSL error 2". | |
1473 | ||
076b11e2 PP |
1474 | TK/01 Bugzilla 1239 - fix DKIM verification when signature was not inserted |
1475 | as a tracking header (ie: a signed header comes before the signature). | |
1476 | Patch from Wolfgang Breyha. | |
1477 | ||
5407bfff JH |
1478 | JH/01 Bugzilla 660 - Multi-valued attributes from ldap now parseable as a |
1479 | comma-sep list; embedded commas doubled. | |
1480 | ||
9e45c72b PP |
1481 | JH/02 Refactored ACL "verify =" logic to table-driven dispatch. |
1482 | ||
e74376d8 PP |
1483 | PP/15 LDAP: Check for errors of TLS initialisation, to give correct |
1484 | diagnostics. | |
1485 | Report and patch from Dmitry Banschikov. | |
1486 | ||
4c04137d | 1487 | PP/16 Removed "dont_insert_empty_fragments" from "openssl_options". |
da3ad30d PP |
1488 | Removed SSL_clear() after SSL_new() which led to protocol negotiation |
1489 | failures. We appear to now support TLS1.1+ with Exim. | |
1490 | ||
7be682ca PP |
1491 | PP/17 OpenSSL: new expansion var $tls_sni, which if used in tls_certificate |
1492 | lets Exim select keys and certificates based upon TLS SNI from client. | |
3f0945ff PP |
1493 | Also option tls_sni on SMTP Transports. Also clear $tls_bits correctly |
1494 | before an outbound SMTP session. New log_selector, +tls_sni. | |
7be682ca | 1495 | |
ef840681 PP |
1496 | PP/18 Bugzilla 1122 - check localhost_number expansion for failure, avoid |
1497 | NULL dereference. Report and patch from Alun Jones. | |
1498 | ||
5bfb4cdf PP |
1499 | PP/19 DNS resolver init changes for NetBSD compatibility. (Risk of breakage |
1500 | on less well tested platforms). Obviates NetBSD pkgsrc patch-ac. | |
1501 | Not seeing resolver debug output on NetBSD, but suspect this is a | |
1502 | resolver implementation change. | |
1503 | ||
c6e95d22 PP |
1504 | PP/20 Revert part of NM/04, it broke log_path containing %D expansions. |
1505 | Left warnings. Added "eximon gdb" invocation mode. | |
1506 | ||
9cbad13b PP |
1507 | PP/21 Defaulting "accept_8bitmime" to true, not false. |
1508 | ||
9ee44efb PP |
1509 | PP/22 Added -bw for inetd wait mode support. |
1510 | ||
6a6084f8 PP |
1511 | PP/23 Added PCRE_CONFIG=yes support to Makefile for using pcre-config to |
1512 | locate the relevant includes and libraries. Made this the default. | |
1513 | ||
12dd53c7 PP |
1514 | PP/24 Fixed headers_only on smtp transports (was not sending trailing dot). |
1515 | Bugzilla 1246, report and most of solution from Tomasz Kusy. | |
1516 | ||
9e45c72b | 1517 | JH/03 ${eval } now uses 64-bit and supports a "g" suffix (like to "k" and "m"). |
97d17305 JH |
1518 | This may cause build issues on older platforms. |
1519 | ||
17c76198 PP |
1520 | PP/25 Revamped GnuTLS support, passing tls_require_ciphers to |
1521 | gnutls_priority_init, ignoring Exim options gnutls_require_kx, | |
1522 | gnutls_require_mac & gnutls_require_protocols (no longer supported). | |
1523 | Added SNI support via GnuTLS too. | |
af3498d6 | 1524 | Made ${randint:..} supplier available, if using not-too-old GnuTLS. |
17c76198 | 1525 | |
53947857 | 1526 | PP/26 Added EXPERIMENTAL_OCSP for OpenSSL. |
3f7eeb86 | 1527 | |
eae0036b | 1528 | PP/27 Applied dnsdb SPF support patch from Janne Snabb. |
8ee4b30e PP |
1529 | Applied second patch from Janne, implementing suggestion to default |
1530 | multiple-strings-in-record handling to match SPF spec. | |
eae0036b | 1531 | |
9e45c72b | 1532 | JH/04 Added expansion variable $tod_epoch_l for a higher-precision time. |
2605c55b | 1533 | |
7390e768 PP |
1534 | PP/28 Fix DCC dcc_header content corruption (stack memory referenced, |
1535 | read-only, out of scope). | |
1536 | Patch from Wolfgang Breyha, report from Stuart Northfield. | |
1537 | ||
08488c86 PP |
1538 | PP/29 Fix three issues highlighted by clang analyser static analysis. |
1539 | Only crash-plausible issue would require the Cambridge-specific | |
1540 | iplookup router and a misconfiguration. | |
1541 | Report from Marcin Mirosław. | |
1542 | ||
6475bd82 PP |
1543 | PP/30 Another attempt to deal with PCRE_PRERELEASE, this one less buggy. |
1544 | ||
81f91683 PP |
1545 | PP/31 %D in printf continues to cause issues (-Wformat=security), so for |
1546 | now guard some of the printf checks behind WANT_DEEPER_PRINTF_CHECKS. | |
1547 | As part of this, removing so much warning spew let me fix some minor | |
1548 | real issues in debug logging. | |
1549 | ||
5779e6aa PP |
1550 | PP/32 GnuTLS was always using default tls_require_ciphers, due to a missing |
1551 | assignment on my part. Fixed. | |
1552 | ||
3375e053 PP |
1553 | PP/33 Added tls_dh_max_bits option, defaulting to current hard-coded limit |
1554 | of NSS, for GnuTLS/NSS interop. Problem root cause diagnosis by | |
1555 | Janne Snabb (who went above and beyond: thank you). | |
1556 | ||
1557 | PP/34 Validate tls_require_ciphers on startup, since debugging an invalid | |
1558 | string otherwise requires a connection and a bunch more work and it's | |
78e0c7a3 PP |
1559 | relatively easy to get wrong. Should also expose TLS library linkage |
1560 | problems. | |
3375e053 | 1561 | |
9d26b8c0 PP |
1562 | PP/35 Pull in <features.h> on Linux, for some portability edge-cases of |
1563 | 64-bit ${eval} (JH/03). | |
1564 | ||
57eb9e91 | 1565 | PP/36 Define _GNU_SOURCE in exim.h; it's needed for some releases of |
b87a6e0e PP |
1566 | GNU libc to support some of the 64-bit stuff, should not lead to |
1567 | conflicts. Defined before os.h is pulled in, so if a given platform | |
1568 | needs to override this, it can. | |
1569 | ||
16880d1a PP |
1570 | PP/37 Unbreak Cyrus SASL auth: SSF retrieval was incorrect, Exim thought |
1571 | protection layer was required, which is not implemented. | |
1572 | Bugzilla 1254, patch from Wolfgang Breyha. | |
1573 | ||
a799883d PP |
1574 | PP/38 Overhaul DH prime handling, supply RFC-specified DH primes as built |
1575 | into Exim, default to IKE id 23 from RFC 5114 (2048 bit). Make | |
1576 | tls_dhparam take prime identifiers. Also unbreak combination of | |
1577 | OpenSSL+DH_params+TLSSNI. | |
1578 | ||
3ecab157 | 1579 | PP/39 Disable SSLv2 by default in OpenSSL support. |
f0f5a555 | 1580 | |
0599f9cf | 1581 | |
867fcbf5 PP |
1582 | Exim version 4.77 |
1583 | ----------------- | |
1584 | ||
1585 | PP/01 Solaris build fix for Oracle's LDAP libraries. | |
1586 | Bugzilla 1109, patch from Stephen Usher. | |
1587 | ||
f1a29782 TF |
1588 | TF/01 HP/UX build fix: avoid arithmetic on a void pointer. |
1589 | ||
ab42bd23 TK |
1590 | TK/01 DKIM Verification: Fix relaxed canon for empty headers w/o |
1591 | whitespace trailer | |
867fcbf5 | 1592 | |
0ca0cf52 TF |
1593 | TF/02 Fix a couple more cases where we did not log the error message |
1594 | when unlink() failed. See also change 4.74-TF/03. | |
1595 | ||
921b12ca TF |
1596 | TF/03 Make the exiwhat support code safe for signals. Previously Exim might |
1597 | lock up or crash if it happened to be inside a call to libc when it | |
1598 | got a SIGUSR1 from exiwhat. | |
1599 | ||
1600 | The SIGUSR1 handler appends the current process status to the process | |
1601 | log which is later printed by exiwhat. It used to use the general | |
1602 | purpose logging code to do this, but several functions it calls are | |
1603 | not safe for signals. | |
1604 | ||
1605 | The new output code in the SIGUSR1 handler is specific to the process | |
1606 | log, and simple enough that it's easy to inspect for signal safety. | |
1607 | Removing some special cases also simplifies the general logging code. | |
1608 | Removing the spurious timestamps from the process log simplifies | |
1609 | exiwhat. | |
1610 | ||
c99ce5c9 TF |
1611 | TF/04 Improved ratelimit ACL condition. |
1612 | ||
1613 | The /noupdate option has been deprecated in favour of /readonly which | |
1614 | has clearer semantics. The /leaky, /strict, and /readonly update modes | |
1615 | are mutually exclusive. The update mode is no longer included in the | |
1616 | database key; it just determines when the database is updated. (This | |
4c04137d | 1617 | means that when you upgrade Exim will forget old rate measurements.) |
c99ce5c9 TF |
1618 | |
1619 | Exim now checks that the per_* options are used with an update mode that | |
1620 | makes sense for the current ACL. For example, when Exim is processing a | |
1621 | message (e.g. acl_smtp_rcpt or acl_smtp_data, etc.) you can specify | |
1622 | per_mail/leaky or per_mail/strict; otherwise (e.g. in acl_smtp_helo) you | |
1623 | must specify per_mail/readonly. If you omit the update mode it defaults to | |
1624 | /leaky where that makes sense (as before) or /readonly where required. | |
1625 | ||
1626 | The /noupdate option is now undocumented but still supported for | |
1627 | backwards compatibility. It is equivalent to /readonly except that in | |
1628 | ACLs where /readonly is required you may specify /leaky/noupdate or | |
1629 | /strict/noupdate which are treated the same as /readonly. | |
1630 | ||
1631 | A useful new feature is the /count= option. This is a generalization | |
1632 | of the per_byte option, so that you can measure the throughput of other | |
1633 | aggregate values. For example, the per_byte option is now equivalent | |
1634 | to per_mail/count=${if >{0}{$message_size} {0} {$message_size} }. | |
1635 | ||
1636 | The per_rcpt option has been generalized using the /count= mechanism | |
1637 | (though it's more complicated than the per_byte equivalence). When it is | |
1638 | used in acl_smtp_rcpt, the per_rcpt option adds recipients to the | |
1639 | measured rate one at a time; if it is used later (e.g. in acl_smtp_data) | |
1640 | or in a non-SMTP ACL it adds all the recipients in one go. (The latter | |
1641 | /count=$recipients_count behaviour used to work only in non-SMTP ACLs.) | |
1642 | Note that using per_rcpt with a non-readonly update mode in more than | |
1643 | one ACL will cause the recipients to be double-counted. (The per_mail | |
1644 | and per_byte options don't have this problem.) | |
1645 | ||
1646 | The handling of very low rates has changed slightly. If the computed rate | |
1647 | is less than the event's count (usually one) then this event is the first | |
1648 | after a long gap. In this case the rate is set to the same as this event's | |
1649 | count, so that the first message of a spam run is counted properly. | |
1650 | ||
1651 | The major new feature is a mechanism for counting the rate of unique | |
1652 | events. The new per_addr option counts the number of different | |
1653 | recipients that someone has sent messages to in the last time period. It | |
1654 | behaves like per_rcpt if all the recipient addresses are different, but | |
1655 | duplicate recipient addresses do not increase the measured rate. Like | |
1656 | the /count= option this is a general mechanism, so the per_addr option | |
1657 | is equivalent to per_rcpt/unique=$local_part@$domain. You can, for | |
1658 | example, measure the rate that a client uses different sender addresses | |
1659 | with the options per_mail/unique=$sender_address. There are further | |
1660 | details in the main documentation. | |
1661 | ||
3634fc25 TF |
1662 | TF/05 Removed obsolete $Cambridge$ CVS revision strings. |
1663 | ||
792e8a19 TF |
1664 | TF/06 Removed a few PCRE remnants. |
1665 | ||
5901f0ab TF |
1666 | TF/07 Automatically extract Exim's version number from tags in the git |
1667 | repository when doing development or release builds. | |
1668 | ||
7f2a2a43 PP |
1669 | PP/02 Raise smtp_cmd_buffer_size to 16kB. |
1670 | Bugzilla 879. Patch from Paul Fisher. | |
e2ca7082 | 1671 | |
061b7ebd PP |
1672 | PP/03 Implement SSL-on-connect outbound with protocol=smtps on smtp transport. |
1673 | Heavily based on revision 40f9a89a from Simon Arlott's tree. | |
1674 | Bugzilla 97. | |
1675 | ||
e12f8c32 PP |
1676 | PP/04 Use .dylib instead of .so for dynamic library loading on MacOS. |
1677 | ||
9e949f00 | 1678 | PP/05 Variable $av_failed, true if the AV scanner deferred. |
7f2a2a43 PP |
1679 | Bugzilla 1078. Patch from John Horne. |
1680 | ||
1681 | PP/06 Stop make process more reliably on build failure. | |
1682 | Bugzilla 1087. Patch from Heiko Schlittermann. | |
9e949f00 | 1683 | |
555ae6af | 1684 | PP/07 Make maildir_use_size_file an _expandable_ boolean. |
ac53fcda PP |
1685 | Bugzilla 1089. Patch from Heiko Schlittermann. |
1686 | ||
1687 | PP/08 Handle ${run} returning more data than OS pipe buffer size. | |
1688 | Bugzilla 1131. Patch from Holger Weiß. | |
555ae6af | 1689 | |
6f7fe114 PP |
1690 | PP/09 Handle IPv6 addresses with SPF. |
1691 | Bugzilla 860. Patch from Wolfgang Breyha. | |
1692 | ||
c566dd90 PP |
1693 | PP/10 GnuTLS: support TLS 1.2 & 1.1. |
1694 | Bugzilla 1156. | |
89f897c3 PP |
1695 | Use gnutls_certificate_verify_peers2() [patch from Andreas Metzler]. |
1696 | Bugzilla 1095. | |
c566dd90 | 1697 | |
d6cc7c78 | 1698 | PP/11 match_* no longer expand right-hand-side by default. |
39257585 PP |
1699 | New compile-time build option, EXPAND_LISTMATCH_RHS. |
1700 | New expansion conditions, "inlist", "inlisti". | |
1701 | ||
0d0e4455 PP |
1702 | PP/12 fix uninitialised greeting string from PP/03 (smtps client support). |
1703 | ||
3399bb60 | 1704 | PP/13 shell and compiler warnings fixes for RC1-RC4 changes. |
d690cbdc PP |
1705 | |
1706 | PP/14 fix log_write() format string regression from TF/03. | |
1707 | Bugzilla 1152. Patch from Dmitry Isaikin. | |
1708 | ||
0ca0cf52 | 1709 | |
10906672 PP |
1710 | Exim version 4.76 |
1711 | ----------------- | |
1712 | ||
1713 | PP/01 The new ldap_require_cert option would segfault if used. Fixed. | |
1714 | ||
754a0503 PP |
1715 | PP/02 Harmonised TLS library version reporting; only show if debugging. |
1716 | Layout now matches that introduced for other libraries in 4.74 PP/03. | |
1717 | ||
c0c7b2da PP |
1718 | PP/03 New openssl_options items: no_sslv2 no_sslv3 no_ticket no_tlsv1 |
1719 | ||
e97d1f08 PP |
1720 | PP/04 New "dns_use_edns0" global option. |
1721 | ||
084c1d8c PP |
1722 | PP/05 Don't segfault on misconfiguration of ref:name exim-user as uid. |
1723 | Bugzilla 1098. | |
1724 | ||
4e7ee012 PP |
1725 | PP/06 Extra paranoia around buffer usage at the STARTTLS transition. |
1726 | nb: Exim is not vulnerable to http://www.kb.cert.org/vuls/id/555316 | |
da80c2a8 | 1727 | |
c8d52a00 PP |
1728 | TK/01 Updated PolarSSL code to 0.14.2. |
1729 | Bugzilla 1097. Patch from Andreas Metzler. | |
1730 | ||
54e7ce4a PP |
1731 | PP/07 Catch divide-by-zero in ${eval:...}. |
1732 | Fixes bugzilla 1102. | |
1733 | ||
5ee6f336 PP |
1734 | PP/08 Condition negation of bool{}/bool_lax{} did not negate. Fixed. |
1735 | Bugzilla 1104. | |
1736 | ||
c8d52a00 | 1737 | TK/02 Bugzilla 1106: CVE-2011-1764 - DKIM log line was subject to a |
6ea4a851 PP |
1738 | format-string attack -- SECURITY: remote arbitrary code execution. |
1739 | ||
1740 | TK/03 SECURITY - DKIM signature header parsing was double-expanded, second | |
1741 | time unintentionally subject to list matching rules, letting the header | |
1742 | cause arbitrary Exim lookups (of items which can occur in lists, *not* | |
1743 | arbitrary string expansion). This allowed for information disclosure. | |
1744 | ||
1745 | PP/09 Fix another SIGFPE (x86) in ${eval:...} expansion, this time related to | |
1746 | INT_MIN/-1 -- value coerced to INT_MAX. | |
c8d52a00 | 1747 | |
10906672 | 1748 | |
aa097c4c NM |
1749 | Exim version 4.75 |
1750 | ----------------- | |
1751 | ||
4c04137d | 1752 | NM/01 Workaround for PCRE version dependency in version reporting |
aa097c4c NM |
1753 | Bugzilla 1073 |
1754 | ||
7f3d9eff TF |
1755 | TF/01 Update valgrind.h and memcheck.h to copies from valgrind-3.6.0. |
1756 | This fixes portability to compilers other than gcc, notably | |
1757 | Solaris CC and HP-UX CC. Fixes Bugzilla 1050. | |
1758 | ||
159f52d2 TF |
1759 | TF/02 Bugzilla 139: Avoid using the += operator in the modular lookup |
1760 | makefiles for portability to HP-UX and POSIX correctness. | |
1761 | ||
0cc9542a PP |
1762 | PP/01 Permit LOOKUP_foo enabling on the make command-line. |
1763 | Also via indented variable definition in the Makefile. | |
1764 | (Debugging by Oliver Heesakkers). | |
1765 | ||
f7274286 PP |
1766 | PP/02 Restore caching of spamd results with expanded spamd_address. |
1767 | Patch from author of expandable spamd_address patch, Wolfgang Breyha. | |
1768 | ||
7b797365 PP |
1769 | PP/03 Build issue: lookups-Makefile now exports LC_ALL=C |
1770 | Improves build reliability. Fix from: Frank Elsner | |
1771 | ||
caacae52 NM |
1772 | NM/02 Fix wide character breakage in the rfc2047 coding |
1773 | Fixes bug 1064. Patch from Andrey N. Oktyabrski | |
1774 | ||
09dcaba9 NM |
1775 | NM/03 Allow underscore in dnslist lookups |
1776 | Fixes bug 1026. Patch from Graeme Fowler | |
1777 | ||
bc19a55b PP |
1778 | PP/04 Bugzilla 230: Support TLS-enabled LDAP (in addition to ldaps). |
1779 | Code patches from Adam Ciarcinski of NetBSD. | |
caacae52 | 1780 | |
bd4c9759 NM |
1781 | NM/04 Fixed exiqgrep to cope with mailq missing size issue |
1782 | Fixes bug 943. | |
1783 | ||
b72aab72 PP |
1784 | PP/05 Bugzilla 1083: when lookup expansion defers, escape the output which |
1785 | is logged, to avoid truncation. Patch from John Horne. | |
1786 | ||
2fe76745 PP |
1787 | PP/06 Bugzilla 1042: implement freeze_signal on pipe transports. |
1788 | Patch from Jakob Hirsch. | |
1789 | ||
76aa570c PP |
1790 | PP/07 Bugzilla 1061: restrict error messages sent over SMTP to not reveal |
1791 | SQL string expansion failure details. | |
1792 | Patch from Andrey Oktyabrski. | |
1793 | ||
f1e5fef5 PP |
1794 | PP/08 Bugzilla 486: implement %M datestamping in log filenames. |
1795 | Patch from Simon Arlott. | |
1796 | ||
4d805ee9 PP |
1797 | PP/09 New lookups functionality failed to compile on old gcc which rejects |
1798 | extern declarations in function scope. | |
1799 | Patch from Oliver Fleischmann | |
1800 | ||
cd59ab18 PP |
1801 | PP/10 Use sig_atomic_t for flags set from signal handlers. |
1802 | Check getgroups() return and improve debugging. | |
1803 | Fixed developed for diagnosis in bug 927 (which turned out to be | |
1804 | a kernel bug). | |
1805 | ||
332f5cf3 PP |
1806 | PP/11 Bugzilla 1055: Update $message_linecount for maildir_tag. |
1807 | Patch from Mark Zealey. | |
1808 | ||
29cfeb94 PP |
1809 | PP/12 Bugzilla 1056: Improved spamd server selection. |
1810 | Patch from Mark Zealey. | |
1811 | ||
660242ad PP |
1812 | PP/13 Bugzilla 1086: Deal with maildir quota file races. |
1813 | Based on patch from Heiko Schlittermann. | |
1814 | ||
bc4bc4c5 PP |
1815 | PP/14 Bugzilla 1019: DKIM multiple signature generation fix. |
1816 | Patch from Uwe Doering, sign-off by Michael Haardt. | |
1817 | ||
2e64baa9 NM |
1818 | NM/05 Fix to spam.c to accommodate older gcc versions which dislike |
1819 | variable declaration deep within a block. Bug and patch from | |
1820 | Dennis Davis. | |
1821 | ||
4c04137d | 1822 | PP/15 lookups-Makefile IRIX compatibility coercion. |
bddd7526 | 1823 | |
6bac1a9a PP |
1824 | PP/16 Make DISABLE_DKIM build knob functional. |
1825 | ||
552193f0 NM |
1826 | NM/06 Bugzilla 968: child_open_uid: restore default SIGPIPE handler |
1827 | Patch by Simon Arlott | |
baeee2c1 | 1828 | |
1b587e48 TF |
1829 | TF/03 Fix valgrind.h portability to C89 compilers that do not support |
1830 | variable argument macros. Our copy now differs from upstream. | |
1831 | ||
aa097c4c | 1832 | |
8c07b69f TF |
1833 | Exim version 4.74 |
1834 | ----------------- | |
1835 | ||
1836 | TF/01 Failure to get a lock on a hints database can have serious | |
1837 | consequences so log it to the panic log. | |
1838 | ||
c0ea85ab TF |
1839 | TF/02 Log LMTP confirmation messages in the same way as SMTP, |
1840 | controlled using the smtp_confirmation log selector. | |
1841 | ||
0761d44e TF |
1842 | TF/03 Include the error message when we fail to unlink a spool file. |
1843 | ||
0a349494 PP |
1844 | DW/01 Bugzilla 139: Support dynamically loaded lookups as modules. |
1845 | With thanks to Steve Haslam, Johannes Berg & Serge Demonchaux | |
1846 | for maintaining out-of-tree patches for some time. | |
1847 | ||
1848 | PP/01 Bugzilla 139: Documentation and portability issues. | |
1849 | Avoid GNU Makefile-isms, let Exim continue to build on BSD. | |
1850 | Handle per-OS dynamic-module compilation flags. | |
1851 | ||
fea24b2e PP |
1852 | PP/02 Let /dev/null have normal permissions. |
1853 | The 4.73 fixes were a little too stringent and complained about the | |
1854 | permissions on /dev/null. Exempt it from some checks. | |
1855 | Reported by Andreas M. Kirchwitz. | |
1856 | ||
6545de78 PP |
1857 | PP/03 Report version information for many libraries, including |
1858 | Exim version information for dynamically loaded libraries. Created | |
1859 | version.h, now support a version extension string for distributors | |
1860 | who patch heavily. Dynamic module ABI change. | |
1861 | ||
1670ef10 PP |
1862 | PP/04 CVE-2011-0017 - check return value of setuid/setgid. This is a |
1863 | privilege escalation vulnerability whereby the Exim run-time user | |
1864 | can cause root to append content of the attacker's choosing to | |
1865 | arbitrary files. | |
1866 | ||
c0886197 PP |
1867 | PP/05 Bugzilla 1041: merged DCC maintainer's fixes for return code. |
1868 | (Wolfgang Breyha) | |
1869 | ||
b7487bce PP |
1870 | PP/06 Bugzilla 1071: fix delivery logging with untrusted macros. |
1871 | If dropping privileges for untrusted macros, we disabled normal logging | |
1872 | on the basis that it would fail; for the Exim run-time user, this is not | |
1873 | the case, and it resulted in successful deliveries going unlogged. | |
1874 | Fixed. Reported by Andreas Metzler. | |
1875 | ||
8c07b69f | 1876 | |
97fd1e48 | 1877 | Exim version 4.73 |
ed7f7860 | 1878 | ----------------- |
97fd1e48 PP |
1879 | |
1880 | PP/01 Date: & Message-Id: revert to normally being appended to a message, | |
1881 | only prepend for the Resent-* case. Fixes regression introduced in | |
1882 | Exim 4.70 by NM/22 for Bugzilla 607. | |
1883 | ||
6901c596 PP |
1884 | PP/02 Include check_rfc2047_length in configure.default because we're seeing |
1885 | increasing numbers of administrators be bitten by this. | |
1886 | ||
a8c8d6b5 JJ |
1887 | JJ/01 Added DISABLE_DKIM and comment to src/EDITME |
1888 | ||
77bb000f PP |
1889 | PP/03 Bugzilla 994: added openssl_options main configuration option. |
1890 | ||
a29e5231 PP |
1891 | PP/04 Bugzilla 995: provide better SSL diagnostics on failed reads. |
1892 | ||
ec5a0394 | 1893 | PP/05 Bugzilla 834: provide a permit_coredump option for pipe transports. |
a29e5231 | 1894 | |
55c75993 PP |
1895 | PP/06 Adjust NTLM authentication to handle SASL Initial Response. |
1896 | ||
453a6645 | 1897 | PP/07 If TLS negotiated an anonymous cipher, we could end up with SSL but |
ec5a0394 PP |
1898 | without a peer certificate, leading to a segfault because of an |
1899 | assumption that peers always have certificates. Be a little more | |
453a6645 PP |
1900 | paranoid. Problem reported by Martin Tscholak. |
1901 | ||
8544e77a PP |
1902 | PP/08 Bugzilla 926: switch ClamAV to use the new zINSTREAM API for content |
1903 | filtering; old API available if built with WITH_OLD_CLAMAV_STREAM=yes | |
1904 | NB: ClamAV planning to remove STREAM in "middle of 2010". | |
3346ab01 PP |
1905 | CL also introduces -bmalware, various -d+acl logging additions and |
1906 | more caution in buffer sizes. | |
8544e77a | 1907 | |
83e029d5 PP |
1908 | PP/09 Implemented reverse_ip expansion operator. |
1909 | ||
ed7f7860 PP |
1910 | PP/10 Bugzilla 937: provide a "debug" ACL control. |
1911 | ||
7d9f747b PP |
1912 | PP/11 Bugzilla 922: Documentation dusting, patch provided by John Horne. |
1913 | ||
4b2241d2 PP |
1914 | PP/12 Bugzilla 973: Implement --version. |
1915 | ||
10385c15 PP |
1916 | PP/13 Bugzilla 752: Refuse to build/run if Exim user is root/0. |
1917 | ||
dbc4b90d PP |
1918 | PP/14 Build without WITH_CONTENT_SCAN. Path from Andreas Metzler. |
1919 | ||
532be449 PP |
1920 | PP/15 Bugzilla 816: support multiple condition rules on Routers. |
1921 | ||
6a8de854 | 1922 | PP/16 Add bool_lax{} expansion operator and use that for combining multiple |
71265ae9 PP |
1923 | condition rules, instead of bool{}. Make both bool{} and bool_lax{} |
1924 | ignore trailing whitespace. | |
6a8de854 | 1925 | |
5dc43717 JJ |
1926 | JJ/02 prevent non-panic DKIM error from being sent to paniclog |
1927 | ||
1928 | JJ/03 added tcp_wrappers_daemon_name to allow host entries other than | |
1929 | "exim" to be used | |
55c75993 | 1930 | |
3346ab01 PP |
1931 | PP/17 Fix malware regression for cmdline scanner introduced in PP/08. |
1932 | Notification from Dr Andrew Aitchison. | |
1933 | ||
491fab4c PP |
1934 | PP/18 Change ClamAV response parsing to be more robust and to handle ClamAV's |
1935 | ExtendedDetectionInfo response format. | |
1936 | Notification from John Horne. | |
1937 | ||
13eb9497 PP |
1938 | PP/19 OpenSSL 1.0.0a compatibility const-ness change, should be backwards |
1939 | compatible. | |
1940 | ||
1941 | PP/20 Added a CONTRIBUTING file. Fixed the documentation build to use http: | |
1942 | XSL and documented dependency on system catalogs, with examples of how | |
1943 | it normally works. | |
1944 | ||
7f36d675 DW |
1945 | DW/21 Added Valgrind hooks in store.c to help it capture out-of-bounds store |
1946 | access. | |
1947 | ||
c1d94452 DW |
1948 | DW/22 Bugzilla 1044: CVE-2010-4345 - partial fix: restrict default behaviour |
1949 | of CONFIGURE_OWNER and CONFIGURE_GROUP options to no longer allow a | |
1950 | configuration file which is writeable by the Exim user or group. | |
1951 | ||
e2f5dc15 DW |
1952 | DW/23 Bugzilla 1044: CVE-2010-4345 - part two: extend checks for writeability |
1953 | of configuration files to cover files specified with the -C option if | |
1954 | they are going to be used with root privileges, not just the default | |
1955 | configuration file. | |
1956 | ||
cd25e41d DW |
1957 | DW/24 Bugzilla 1044: CVE-2010-4345 - part three: remove ALT_CONFIG_ROOT_ONLY |
1958 | option (effectively making it always true). | |
1959 | ||
261dc43e DW |
1960 | DW/25 Add TRUSTED_CONFIG_PREFIX_FILE option to allow alternative configuration |
1961 | files to be used while preserving root privileges. | |
1962 | ||
fa32850b DW |
1963 | DW/26 Set FD_CLOEXEC on SMTP sockets after forking in the daemon, to ensure |
1964 | that rogue child processes cannot use them. | |
1965 | ||
79d4bc3d PP |
1966 | PP/27 Bugzilla 1047: change the default for system_filter_user to be the Exim |
1967 | run-time user, instead of root. | |
1968 | ||
43236f35 | 1969 | PP/28 Add WHITELIST_D_MACROS option to let some macros be overridden by the |
2cfd3221 PP |
1970 | Exim run-time user without dropping privileges. |
1971 | ||
fb08281f DW |
1972 | DW/29 Remove use of va_copy() which breaks pre-C99 systems. Duplicate the |
1973 | result string, instead of calling string_vformat() twice with the same | |
1974 | arguments. | |
3346ab01 | 1975 | |
74935b98 DW |
1976 | DW/30 Allow TRUSTED_CONFIG_PREFIX_FILE only for Exim or CONFIGURE_OWNER, not |
1977 | for other users. Others should always drop root privileges if they use | |
1978 | -C on the command line, even for a whitelisted configure file. | |
1979 | ||
90b6341f DW |
1980 | DW/31 Turn TRUSTED_CONFIG_PREFIX_FILE into TRUSTED_CONFIG_FILE. No prefixes. |
1981 | ||
57730b52 ML |
1982 | NM/01 Fixed bug #1002 - Message loss when using multiple deliveries |
1983 | ||
66581d1e | 1984 | |
465e92cf JJ |
1985 | Exim version 4.72 |
1986 | ----------------- | |
1987 | ||
453a6645 PP |
1988 | JJ/01 installed exipick 20100104.1, adding $max_received_linelength, |
1989 | $data_path, and $header_path variables; fixed documentation bugs and | |
1990 | typos | |
465e92cf | 1991 | |
453a6645 PP |
1992 | JJ/02 installed exipick 20100222.0, added --input-dir and --finput to allow |
1993 | exipick to access non-standard spools, including the "frozen" queue | |
1994 | (Finput) | |
edae0343 | 1995 | |
9bd3e22c NM |
1996 | NM/01 Bugzilla 965: Support mysql stored procedures. |
1997 | Patch from Alain Williams | |
1998 | ||
bb576ff7 NM |
1999 | NM/02 Bugzilla 961: Spacing fix (syntax error) on Makefile directives for NetBSD |
2000 | ||
5a1a5845 NM |
2001 | NM/03 Bugzilla 955: Documentation fix for max_rcpts. |
2002 | Patch from Andreas Metzler | |
2003 | ||
981a9fad NM |
2004 | NM/04 Bugzilla 954: Fix for unknown responses from Dovecot authenticator. |
2005 | Patch from Kirill Miazine | |
2006 | ||
7fc497ee NM |
2007 | NM/05 Bugzilla 671: Added umask to procmail example. |
2008 | ||
1a41defa JJ |
2009 | JJ/03 installed exipick 20100323.0, fixing doc bug |
2010 | ||
a466095c | 2011 | NM/06 Bugzilla 988: CVE-2010-2023 - prevent hardlink attack on sticky mail |
b26eacf1 | 2012 | directory. Notification and patch from Dan Rosenberg. |
a466095c | 2013 | |
94a6bd0b NM |
2014 | TK/01 PDKIM: Upgrade PolarSSL files to upstream version 0.12.1. |
2015 | ||
2016 | TK/02 Improve log output when DKIM signing operation fails. | |
2017 | ||
2018 | MH/01 Treat the transport option dkim_domain as a colon separated | |
2019 | list, not as a single string, and sign the message with each element, | |
2020 | omitting multiple occurences of the same signer. | |
2021 | ||
c1b141a8 NM |
2022 | NM/07 Null terminate DKIM strings, Null initialise DKIM variable |
2023 | Bugzilla 985, 986. Patch by Simon Arlott | |
94a6bd0b | 2024 | |
b26eacf1 | 2025 | NM/08 Bugzilla 967. dnsdb DNS TXT record bug fix (DKIM-related) |
0d0c6357 NM |
2026 | Patch by Simon Arlott |
2027 | ||
179c5980 | 2028 | PP/01 Bugzilla 989: CVE-2010-2024 - work round race condition on |
b26eacf1 | 2029 | MBX locking. Notification from Dan Rosenberg. |
179c5980 | 2030 | |
9bd3e22c | 2031 | |
7c6d71af NM |
2032 | Exim version 4.71 |
2033 | ----------------- | |
2034 | ||
7d9f747b | 2035 | TK/01 Bugzilla 912: Fix DKIM segfault on empty headers/body. |
7c6d71af | 2036 | |
f013fb92 NM |
2037 | NM/01 Bugzilla 913: Documentation fix for gnutls_* options. |
2038 | ||
0eb8eedd NM |
2039 | NM/02 Bugzilla 722: Documentation for randint. Better randomness defaults. |
2040 | ||
663ee6d9 NM |
2041 | NM/03 Bugzilla 847: Enable DNSDB lookup by default. |
2042 | ||
177ebd9b NM |
2043 | NM/04 Bugzilla 915: Flag broken perl installation during build. |
2044 | ||
7c6d71af | 2045 | |
210f147e NM |
2046 | Exim version 4.70 |
2047 | ----------------- | |
2048 | ||
cdd3bb85 | 2049 | TK/01 Added patch by Johannes Berg that expands the main option |
e739e3d9 | 2050 | "spamd_address" if it starts with a dollar sign. |
cdd3bb85 TK |
2051 | |
2052 | TK/02 Write list of recipients to X-Envelope-Sender header when building | |
2053 | the mbox-format spool file for content scanning (suggested by Jakob | |
7d9f747b | 2054 | Hirsch). |
cdd3bb85 TK |
2055 | |
2056 | TK/03 Added patch by Wolfgang Breyha that adds experimental DCC | |
2057 | (http://www.dcc-servers.net/) support via dccifd. Activated by | |
e739e3d9 | 2058 | setting EXPERIMENTAL_DCC=yes in Local/Makefile. |
cdd3bb85 TK |
2059 | |
2060 | TK/04 Bugzilla 673: Add f-protd malware scanner support. Patch submitted | |
2061 | by Mark Daniel Reidel <mr@df.eu>. | |
2062 | ||
210f147e NM |
2063 | NM/01 Bugzilla 657: Embedded PCRE removed from the exim source tree. |
2064 | When building exim an external PCRE library is now needed - | |
2065 | PCRE is a system library on the majority of modern systems. | |
2066 | See entry on PCRE_LIBS in EDITME file. | |
2067 | ||
deafd5b3 NM |
2068 | NM/02 Bugzilla 646: Removed unwanted C/R in Dovecot authenticator |
2069 | conversation. Added nologin parameter to request. | |
7d9f747b | 2070 | Patch contributed by Kirill Miazine. |
deafd5b3 | 2071 | |
089793a4 TF |
2072 | TF/01 Do not log submission mode rewrites if they do not change the address. |
2073 | ||
5f16ca82 TF |
2074 | TF/02 Bugzilla 662: Fix stack corruption before exec() in daemon.c. |
2075 | ||
dae9d94e | 2076 | NM/03 Bugzilla 602: exicyclog now handles panic log, and creates empty |
7d9f747b | 2077 | log files in place. Contributed by Roberto Lima. |
dae9d94e | 2078 | |
7d9f747b | 2079 | NM/04 Bugzilla 667: Close socket used by dovecot authenticator. |
3f0da4d0 | 2080 | |
06864c44 TF |
2081 | TF/03 Bugzilla 615: When checking the local_parts router precondition |
2082 | after a local_part_suffix or local_part_prefix option, Exim now | |
2083 | does not use the address's named list lookup cache, since this | |
2084 | contains cached lookups for the whole local part. | |
2085 | ||
65a7d8c3 | 2086 | NM/05 Bugzilla 521: Integrated SPF Best Guess support contributed by |
7d9f747b | 2087 | Robert Millan. Documentation is in experimental-spec.txt. |
65a7d8c3 | 2088 | |
23510047 | 2089 | TF/04 Bugzilla 668: Fix parallel build (make -j). |
65a7d8c3 | 2090 | |
7d9f747b | 2091 | NM/05.2 Bugzilla 437: Prevent Maildir aux files being created with mode 000. |
5f28a6e8 | 2092 | |
7d8eec3a | 2093 | NM/05.3 Bugzilla 598: Improvement to Dovecot authenticator handling. |
7d9f747b | 2094 | Patch provided by Jan Srzednicki. |
6c588e74 | 2095 | |
89dec7b6 TF |
2096 | TF/05 Leading white space used to be stripped from $spam_report which |
2097 | wrecked the formatting. Now it is preserved. | |
5f28a6e8 | 2098 | |
a99de90c TF |
2099 | TF/06 Save $spam_score, $spam_bar, and $spam_report in spool files, so |
2100 | that they are available at delivery time. | |
2101 | ||
e2803e40 TF |
2102 | TF/07 Fix the way ${extract is skipped in the untaken branch of a conditional. |
2103 | ||
7199e1ee TF |
2104 | TF/08 TLS error reporting now respects the incoming_interface and |
2105 | incoming_port log selectors. | |
2106 | ||
e276e04b TF |
2107 | TF/09 Produce a more useful error message if an SMTP transport's hosts |
2108 | setting expands to an empty string. | |
2109 | ||
ce552449 | 2110 | NM/06 Bugzilla 744: EXPN did not work under TLS. |
7d9f747b | 2111 | Patch provided by Phil Pennock. |
ce552449 | 2112 | |
e765a0f1 | 2113 | NM/07 Bugzilla 769: Extraneous comma in usage fprintf |
7d9f747b | 2114 | Patch provided by Richard Godbee. |
e765a0f1 | 2115 | |
4f054c63 | 2116 | NM/08 Fixed erroneous documentation references to smtp_notquit_acl to be |
447de4b0 | 2117 | acl_smtp_notquit, added index entry. |
4f054c63 | 2118 | |
7d9f747b PP |
2119 | NM/09 Bugzilla 787: Potential buffer overflow in string_format. |
2120 | Patch provided by Eugene Bujak. | |
24c929a2 | 2121 | |
7d9f747b PP |
2122 | NM/10 Bugzilla 770: Problem on some platforms modifying the len parameter to |
2123 | accept(). Patch provided by Maxim Dounin. | |
cf73943b | 2124 | |
b52bc06e | 2125 | NM/11 Bugzilla 749: Preserve old behaviour of blanks comparing equal to zero. |
7d9f747b | 2126 | Patch provided by Phil Pennock. |
b52bc06e | 2127 | |
447de4b0 NM |
2128 | NM/12 Bugzilla 497: Correct behaviour of exiwhat when no config exists. |
2129 | ||
4c69d561 | 2130 | NM/13 Bugzilla 590: Correct handling of Resent-Date headers. |
7d9f747b | 2131 | Patch provided by Brad "anomie" Jorsch. |
4c69d561 | 2132 | |
d5c39246 | 2133 | NM/14 Bugzilla 622: Added timeout setting to transport filter. |
7d9f747b | 2134 | Patch provided by Dean Brooks. |
9b989985 | 2135 | |
0b23848a TK |
2136 | TK/05 Add native DKIM support (does not depend on external libraries). |
2137 | ||
8f3414a1 | 2138 | NM/15 Bugzilla 854: Removed code that symlinks to pcre as its no longer useful. |
7d9f747b | 2139 | Patch provided by Graeme Fowler. |
e2aacdfd | 2140 | |
fb6f955d NM |
2141 | NM/16 Bugzilla 851: Documentation example syntax fix. |
2142 | ||
2143 | NM/17 Changed NOTICE file to remove references to embedded PCRE. | |
8f3414a1 | 2144 | |
7d9f747b PP |
2145 | NM/18 Bugzilla 894: Fix issue with very long lines including comments in |
2146 | lsearch. | |
dbb0bf41 | 2147 | |
7d9f747b PP |
2148 | NM/19 Bugzilla 745: TLS version reporting. |
2149 | Patch provided by Phil Pennock. | |
f3766eb5 | 2150 | |
7d9f747b PP |
2151 | NM/20 Bugzilla 167: bool: condition support. |
2152 | Patch provided by Phil Pennock. | |
36f12725 | 2153 | |
7d9f747b PP |
2154 | NM/21 Bugzilla 665: gnutls_compat_mode to allow compatibility with broken |
2155 | clients. Patch provided by Phil Pennock. | |
e6060e2c | 2156 | |
7d9f747b PP |
2157 | NM/22 Bugzilla 607: prepend (not append) Resent-Message-ID and Resent-Date. |
2158 | Patch provided by Brad "anomie" Jorsch. | |
5eb690a1 | 2159 | |
7d9f747b PP |
2160 | NM/23 Bugzilla 687: Fix misparses in eximstats. |
2161 | Patch provided by Heiko Schlittermann. | |
d5c13d66 | 2162 | |
7d9f747b PP |
2163 | NM/24 Bugzilla 688: Fix exiwhat to handle log_selector = +pid. |
2164 | Patch provided by Heiko Schlittermann. | |
b2335c0b | 2165 | |
7d9f747b | 2166 | NM/25 Bugzilla 727: Use transport mode as default mode for maildirsize file. |
1da77999 | 2167 | plus update to original patch. |
f4cd9433 | 2168 | |
7d9f747b | 2169 | NM/26 Bugzilla 799: Documentation correction for ratelimit. |
dc988b7e | 2170 | |
7d9f747b PP |
2171 | NM/27 Bugzilla 802: Improvements to local interface IP addr detection. |
2172 | Patch provided by David Brownlee. | |
8dc71ab3 | 2173 | |
7d9f747b | 2174 | NM/28 Bugzilla 807: Improvements to LMTP delivery logging. |
400eda43 | 2175 | |
7d9f747b | 2176 | NM/29 Bugzilla 862, 866, 875: Documentation bugfixes. |
ec5a421b | 2177 | |
7d9f747b | 2178 | NM/30 Bugzilla 888: TLS documentation bugfixes. |
07af267e | 2179 | |
7d9f747b | 2180 | NM/31 Bugzilla 896: Dovecot buffer overrun fix. |
51473862 | 2181 | |
17792b53 | 2182 | NM/32 Bugzilla 889: Change all instances of "expr" in shell scripts to "expr --" |
7d9f747b | 2183 | Unlike the original bugzilla I have changed all shell scripts in src tree. |
17792b53 | 2184 | |
7d9f747b PP |
2185 | NM/33 Bugzilla 898: Transport filter timeout fix. |
2186 | Patch by Todd Rinaldo. | |
52383f8f | 2187 | |
91576cec | 2188 | NM/34 Bugzilla 901: Fix sign/unsigned and UTF mismatches. |
7d9f747b | 2189 | Patch by Serge Demonchaux. |
5ca6d115 | 2190 | |
7d9f747b PP |
2191 | NM/35 Bugzilla 39: Base64 decode bug fixes. |
2192 | Patch by Jakob Hirsch. | |
baee9eee | 2193 | |
7d9f747b | 2194 | NM/36 Bugzilla 909: Correct connect() call in dcc code. |
e93a964c | 2195 | |
7d9f747b | 2196 | NM/37 Bugzilla 910: Correct issue with relaxed/simple handling. |
9bf3d68f | 2197 | |
7d9f747b | 2198 | NM/38 Bugzilla 908: Removed NetBSD3 support as no longer needed. |
96535b98 | 2199 | |
7d9f747b | 2200 | NM/39 Bugzilla 911: Fixed MakeLinks build script. |
30339e0f | 2201 | |
deafd5b3 | 2202 | |
47db1125 NM |
2203 | Exim version 4.69 |
2204 | ----------------- | |
2205 | ||
4b3504d0 TK |
2206 | TK/01 Add preliminary DKIM support. Currently requires a forked version of |
2207 | ALT-N's libdkim that I have put here: | |
2208 | http://duncanthrax.net/exim-experimental/ | |
2209 | ||
2210 | Note to Michael Haardt: I had to rename some vars in sieve.c. They | |
2211 | were called 'true' and it seems that C99 defines that as a reserved | |
2212 | keyword to be used with 'bool' variable types. That means you could | |
2213 | not include C99-style headers which use bools without triggering | |
2214 | build errors in sieve.c. | |
2215 | ||
81ea09ca NM |
2216 | NM/01 Bugzilla 592: --help option is handled incorrectly if exim is invoked |
2217 | as mailq or other aliases. Changed the --help handling significantly | |
2218 | to do whats expected. exim_usage() emits usage/help information. | |
2219 | ||
f13cddcb SC |
2220 | SC/01 Added the -bylocaldomain option to eximstats. |
2221 | ||
7d9f747b | 2222 | NM/02 Bugzilla 619: Defended against bad data coming back from gethostbyaddr. |
8ad076b2 | 2223 | |
7d9f747b | 2224 | NM/03 Bugzilla 613: Documentation fix for acl_not_smtp. |
a843aaa6 | 2225 | |
7d9f747b | 2226 | NM/04 Bugzilla 628: PCRE update to 7.4 (work done by John Hall). |
47db1125 NM |
2227 | |
2228 | ||
eb4c0de6 PH |
2229 | Exim version 4.68 |
2230 | ----------------- | |
2231 | ||
2232 | PH/01 Another patch from the Sieve maintainer. | |
2233 | ||
6a3bceb1 PH |
2234 | PH/02 When an IPv6 address is converted to a string for single-key lookup |
2235 | in an address list (e.g. for an item such as "net24-dbm;/net/works"), | |
2236 | dots are used instead of colons so that keys in lsearch files need not | |
2237 | contain colons. This was done some time before quoting was made available | |
2238 | in lsearch files. However, iplsearch files do require colons in IPv6 keys | |
2239 | (notated using the quote facility) so as to distinguish them from IPv4 | |
2240 | keys. This meant that lookups for IP addresses in host lists did not work | |
2241 | for iplsearch lookups. | |
2242 | ||
2243 | This has been fixed by arranging for IPv6 addresses to be expressed with | |
2244 | colons if the lookup type is iplsearch. This is not incompatible, because | |
2245 | previously such lookups could never work. | |
2246 | ||
4c04137d | 2247 | The situation is now rather anomalous, since one *can* have colons in |
6a3bceb1 PH |
2248 | ordinary lsearch keys. However, making the change in all cases is |
2249 | incompatible and would probably break a number of configurations. | |
2250 | ||
2e30fa9d TK |
2251 | TK/01 Change PRVS address formatting scheme to reflect latests BATV draft |
2252 | version. | |
2253 | ||
0806a9c5 MH |
2254 | MH/01 The "spam" ACL condition code contained a sscanf() call with a %s |
2255 | conversion specification without a maximum field width, thereby enabling | |
2256 | a rogue spamd server to cause a buffer overflow. While nobody in their | |
2257 | right mind would setup Exim to query an untrusted spamd server, an | |
2258 | attacker that gains access to a server running spamd could potentially | |
2259 | exploit this vulnerability to run arbitrary code as the Exim user. | |
2260 | ||
ae276964 TK |
2261 | TK/02 Bugzilla 502: Apply patch to make the SPF-Received: header use |
2262 | $primary_hostname instead of what libspf2 thinks the hosts name is. | |
2263 | ||
0f2cbd1b MH |
2264 | MH/02 The dsearch lookup now uses lstat(2) instead of stat(2) to look for |
2265 | a directory entry by the name of the lookup key. Previously, if a | |
2266 | symlink pointed to a non-existing file or a file in a directory that | |
2267 | Exim lacked permissions to read, a lookup for a key matching that | |
2268 | symlink would fail. Now it is enough that a matching directory entry | |
2269 | exists, symlink or not. (Bugzilla 503.) | |
2270 | ||
2b85bce7 PH |
2271 | PH/03 The body_linecount and body_zerocount variables are now exported in the |
2272 | local_scan API. | |
2273 | ||
93655c46 PH |
2274 | PH/04 Added the $dnslist_matched variable. |
2275 | ||
6c512171 PH |
2276 | PH/05 Unset $tls_cipher and $tls_peerdn before making a connection as a client. |
2277 | This means they are set thereafter only if the connection becomes | |
2278 | encrypted. | |
2279 | ||
2280 | PH/06 Added the client_condition to authenticators so that some can be skipped | |
2281 | by clients under certain conditions. | |
2282 | ||
aa6dc513 PH |
2283 | PH/07 The error message for a badly-placed control=no_multiline_responses left |
2284 | "_responses" off the end of the name. | |
2285 | ||
a96603a0 PH |
2286 | PH/08 Added -Mvc to output a copy of a message in RFC 2822 format. |
2287 | ||
8f240103 PH |
2288 | PH/09 Tidied the code for creating ratelimiting keys, creating them explicitly |
2289 | (without spaces) instead of just copying the configuration text. | |
2290 | ||
2291 | PH/10 Added the /noupdate option to the ratelimit ACL condition. | |
2292 | ||
d677b2f2 PH |
2293 | PH/11 Added $max_received_linelength. |
2294 | ||
d52120f2 PH |
2295 | PH/12 Added +ignore_defer and +include_defer to host lists. |
2296 | ||
64f2600a PH |
2297 | PH/13 Installed PCRE version 7.2. This needed some changes because of the new |
2298 | way in which PCRE > 7.0 is built. | |
2299 | ||
8669f003 PH |
2300 | PH/14 Implemented queue_only_load_latch. |
2301 | ||
a4dc33a8 PH |
2302 | PH/15 Removed an incorrect (int) cast when reading the value of SIZE in a |
2303 | MAIL command. The effect was to mangle the value on 64-bit systems. | |
2304 | ||
d6a60c0f PH |
2305 | PH/16 Another patch from the Sieve maintainer. |
2306 | ||
8f128379 PH |
2307 | PH/17 Added the NOTQUIT ACL, based on a patch from Ted Cooper. |
2308 | ||
8932dffe PH |
2309 | PH/18 If a system quota error occurred while trying to create the file for |
2310 | a maildir delivery, the message "Mailbox is full" was not appended to the | |
2311 | bounce if the delivery eventually timed out. Change 4.67/27 below applied | |
2312 | only to a quota excession during the actual writing of the file. | |
d6a60c0f | 2313 | |
ddea74fa | 2314 | PH/19 It seems that peer DN values may contain newlines (and other non-printing |
48ed62d9 PH |
2315 | characters?) which causes problems in log lines. The DN values are now |
2316 | passed through string_printing() before being added to log lines. | |
2317 | ||
ddea74fa | 2318 | PH/20 Added the "servers=" facility to MySQL and PostgreSQL lookups. (Oracle |
b7670459 PH |
2319 | and InterBase are left for another time.) |
2320 | ||
ddea74fa PH |
2321 | PH/21 Added message_body_newlines option. |
2322 | ||
ce9f225c PH |
2323 | PH/22 Guard against possible overflow in moan_check_errorcopy(). |
2324 | ||
19897d52 PH |
2325 | PH/23 POSIX allows open() to be a macro; guard against that. |
2326 | ||
bc64a74d PH |
2327 | PH/24 If the recipient of an error message contained an @ in the local part |
2328 | (suitably quoted, of course), incorrect values were put in $domain and | |
2329 | $local_part during the evaluation of errors_copy. | |
2330 | ||
eb4c0de6 | 2331 | |
b4ed4da0 PH |
2332 | Exim version 4.67 |
2333 | ----------------- | |
2334 | ||
22ad45c9 MH |
2335 | MH/01 Fix for bug #448, segfault in Dovecot authenticator when interface_address |
2336 | is unset (happens when testing with -bh and -oMi isn't used). Thanks to | |
2337 | Jan Srzednicki. | |
2338 | ||
b4ed4da0 PH |
2339 | PH/01 Added a new log selector smtp_no_mail, to log SMTP sessions that do not |
2340 | issue a MAIL command. | |
2341 | ||
431b7361 PH |
2342 | PH/02 In an ACL statement such as |
2343 | ||
2344 | deny dnslists = X!=127.0.0.2 : X=127.0.0.2 | |
2345 | ||
2346 | if a client was not listed at all, or was listed with a value other than | |
2347 | 127.0.0.2, in the X list, but was listed with 127.0.0.2 in the Y list, | |
2348 | the condition was not true (as it should be), so access was not denied. | |
2349 | The bug was that the ! inversion was incorrectly passed on to the second | |
2350 | item. This has been fixed. | |
2351 | ||
2352 | PH/03 Added additional dnslists conditions == and =& which are different from | |
2353 | = and & when the dns lookup returns more than one IP address. | |
2354 | ||
83da1223 PH |
2355 | PH/04 Added gnutls_require_{kx,mac,protocols} to give more control over the |
2356 | cipher suites used by GnuTLS. These options are ignored by OpenSSL. | |
2357 | ||
54fc8428 PH |
2358 | PH/05 After discussion on the list, added a compile time option ENABLE_DISABLE_ |
2359 | FSYNC, which compiles an option called disable_fsync that allows for | |
2360 | bypassing fsync(). The documentation is heavily laced with warnings. | |
2361 | ||
34c5e8dd SC |
2362 | SC/01 Updated eximstats to collate all SpamAssassin rejects into one bucket. |
2363 | ||
bbe15da8 PH |
2364 | PH/06 Some tidies to the infrastructure of the Test Suite that is concerned |
2365 | with the auxiliary C programs that it uses: (1) Arrange for BIND_8_COMPAT | |
2366 | to be defined when compiling on OSX (Darwin); (2) Tidies to the Makefile, | |
2367 | including adding "make clean"; (3) Added -fPIC when compiling the test | |
2368 | dynamically loaded module, to get rid of a warning. | |
2369 | ||
0e8a9471 MH |
2370 | MH/02 Fix for bug #451, causing paniclog entries to be written if a bounce |
2371 | message fails, move_frozen_messages = true and ignore_bounce_errors_after | |
2372 | = 0s. The bug is otherwise harmless. | |
2373 | ||
f0872424 PH |
2374 | PH/07 There was a bug in the dovecot authenticator such that the value of |
2375 | $auth1 could be overwritten, and so not correctly preserved, after a | |
2376 | successful authentication. This usually meant that the value preserved by | |
2377 | the server_setid option was incorrect. | |
2378 | ||
b01dd148 PH |
2379 | PH/08 Added $smtp_count_at_connection_start, deliberately with a long name. |
2380 | ||
6bf342e1 PH |
2381 | PH/09 Installed PCRE release 7.0. |
2382 | ||
273f34d0 PH |
2383 | PH/10 The acl_not_smtp_start ACL was, contrary to the documentation, not being |
2384 | run for batched SMTP input. It is now run at the start of every message | |
2385 | in the batch. While fixing this I discovered that the process information | |
2386 | (output by running exiwhat) was not always getting set for -bs and -bS | |
2387 | input. This is fixed, and it now also says "batched" for BSMTP. | |
2388 | ||
cf8b11a5 PH |
2389 | PH/11 Added control=no_pipelining. |
2390 | ||
41c7c167 PH |
2391 | PH/12 Added $sending_ip_address and $sending_port (mostly Magnus Holmgren's |
2392 | patch, slightly modified), and move the expansion of helo_data till after | |
2393 | the connection is made in the smtp transport (so it can use these | |
2394 | values). | |
2395 | ||
9c57cbc0 PH |
2396 | PH/13 Added ${rfc2047d: to decoded RFC 2047 strings. |
2397 | ||
f3f065bb PH |
2398 | PH/14 Added log_selector = +pid. |
2399 | ||
047bdd8c PH |
2400 | PH/15 Flush SMTP output before delaying, unless control=no_delay_flush is set. |
2401 | ||
0ce9abe6 PH |
2402 | PH/16 Add ${if forany and ${if forall. |
2403 | ||
0e22dfd1 PH |
2404 | PH/17 Added dsn_from option to vary the From: line in DSNs. |
2405 | ||
4c590bd1 PH |
2406 | PH/18 Flush SMTP output before performing a callout, unless control = |
2407 | no_callout_flush is set. | |
2408 | ||
09945f1e PH |
2409 | PH/19 Change 4.64/PH/36 introduced a bug: when address_retry_include_sender |
2410 | was true (the default) a successful delivery failed to delete the retry | |
2411 | item, thus causing premature timeout of the address. The bug is now | |
2412 | fixed. | |
2413 | ||
c51b8e75 PH |
2414 | PH/20 Added hosts_avoid_pipelining to the smtp transport. |
2415 | ||
e28326d8 | 2416 | PH/21 Long custom messages for fakedefer and fakereject are now split up |
4c04137d | 2417 | into multiline responses in the same way that messages for "deny" and |
e28326d8 PH |
2418 | other ACL rejections are. |
2419 | ||
75b1493f PH |
2420 | PH/22 Applied Jori Hamalainen's speed-up changes and typo fixes to exigrep, |
2421 | with slight modification. | |
2422 | ||
7c5214ec PH |
2423 | PH/23 Applied sieve patches from the maintainer "tracking the latest notify |
2424 | draft, changing the syntax and factoring some duplicate code". | |
2425 | ||
4311097e PH |
2426 | PH/24 When the log selector "outgoing_port" was set, the port was shown as -1 |
2427 | for deliveries of the second and subsequent messages over the same SMTP | |
2428 | connection. | |
2429 | ||
29f89cad PH |
2430 | PH/25 Applied Magnus Holmgren's patch for ${addresses, ${map, ${filter, and |
2431 | ${reduce, with only minor "tidies". | |
2432 | ||
5e687460 SC |
2433 | SC/02 Applied Daniel Tiefnig's patch to improve the '($parent) =' pattern match. |
2434 | ||
c3611384 PH |
2435 | PH/26 Added a "continue" ACL modifier that does nothing, for the benefit of its |
2436 | expansion side effects. | |
2437 | ||
5a11a7b4 PH |
2438 | PH/27 When a message times out after an over-quota error from an Exim-imposed |
2439 | quota, the bounce message says "mailbox is full". This message was not | |
2440 | being given when it was a system quota that was exceeded. It now should | |
2441 | be the same. | |
2442 | ||
0e20aff9 MH |
2443 | MH/03 Made $recipients available in local_scan(). local_scan() already has |
2444 | better access to the recipient list through recipients_list[], but | |
2445 | $recipients can be useful in postmaster-provided expansion strings. | |
2446 | ||
ca86f471 PH |
2447 | PH/28 The $smtp_command and $smtp_command_argument variables were not correct |
2448 | in the case of a MAIL command with additional options following the | |
2449 | address, for example: MAIL FROM:<foo@bar> SIZE=1234. The option settings | |
2450 | were accidentally chopped off. | |
2451 | ||
a14e5636 PH |
2452 | PH/29 SMTP synchronization checks are implemented when a command is read - |
2453 | there is a check that no more input is waiting when there shouldn't be | |
2454 | any. However, for some commands, a delay in an ACL can mean that it is | |
2455 | some time before the response is written. In this time, more input might | |
2456 | arrive, invalidly. So now there are extra checks after an ACL has run for | |
2457 | HELO/EHLO and after the predata ACL, and likewise for MAIL and RCPT when | |
2458 | pipelining has not been advertised. | |
2459 | ||
ec95d1a6 PH |
2460 | PH/30 MH's patch to allow iscntrl() characters to be list separators. |
2461 | ||
42855d71 PH |
2462 | PH/31 Unlike :fail:, a custom message specified with :defer: was not being |
2463 | returned in the SMTP response when smtp_return_error_details was false. | |
2464 | This has been fixed. | |
2465 | ||
57c2c631 PH |
2466 | PH/32 Change the Dovecot authenticator to use read() and write() on the socket |
2467 | instead of the C I/O that was originally supplied, because problems were | |
2468 | reported on Solaris. | |
2469 | ||
58c01c94 PH |
2470 | PH/33 Compile failed with OpenSSL 0.9.8e. This was due to a coding error in |
2471 | Exim which did not show up earlier: it was assuming that a call to | |
2472 | SSL_CTX_set_info_callback() might give an error value. In fact, there is | |
2473 | no error. In previous releases of OpenSSL, SSL_CTX_set_info_callback() | |
2474 | was a macro that became an assignment, so it seemed to work. This has | |
2475 | changed to a proper function call with a void return, hence the compile | |
2476 | error. Exim's code has been fixed. | |
2477 | ||
dee5a20a PH |
2478 | PH/34 Change HDA_SIZE in oracle.c from 256 to 512. This is needed for 64-bit |
2479 | cpus. | |
2480 | ||
d2ee6114 PH |
2481 | PH/35 Applied a patch from the Sieve maintainer which fixes a bug in "notify". |
2482 | ||
b2d5182b PH |
2483 | PH/36 Applied John Jetmore's patch to add -v functionality to exigrep. |
2484 | ||
79749a79 PH |
2485 | PH/37 If a message is not accepted after it has had an id assigned (e.g. |
2486 | because it turns out to be too big or there is a timeout) there is no | |
3ce62588 PH |
2487 | "Completed" line in the log. When some messages of this type were |
2488 | selected by exigrep, they were listed as "not completed". Others were | |
2489 | picked up by some special patterns. I have improved the selection | |
2490 | criteria to be more general. | |
79749a79 | 2491 | |
c456d9bb PH |
2492 | PH/38 The host_find_failed option in the manualroute router can now be set |
2493 | to "ignore", to completely ignore a host whose IP address cannot be | |
2494 | found. If all hosts are ignored, the behaviour is controlled by the new | |
2495 | host_all_ignored option. | |
2496 | ||
cd9868ec PH |
2497 | PH/39 In a list of hosts for manualroute, if one item (either because of multi- |
2498 | homing or because of multiple MX records with /mx) generated more than | |
2499 | one IP address, and the following item turned out to be the local host, | |
2500 | all the secondary addresses of the first item were incorrectly removed | |
2501 | from the list, along with the local host and any following hosts (which | |
2502 | is what is supposed to happen). | |
2503 | ||
ebeaf996 PH |
2504 | PH/40 When Exim receives a message, it writes the login name, uid, and gid of |
2505 | whoever called Exim into the -H file. In the case of the daemon it was | |
2506 | behaving confusingly. When first started, it used values for whoever | |
2507 | started the daemon, but after a SIGHUP it used the Exim user (because it | |
2508 | calls itself on a restart). I have changed the code so that it now always | |
2509 | uses the Exim user. | |
2510 | ||
2679d413 PH |
2511 | PH/41 (Following a suggestion from Tony Finch) If all the RCPT commands in a |
2512 | message are rejected with the same error (e.g. no authentication or bad | |
2513 | sender address), and a DATA command is nevertheless sent (as can happen | |
2514 | with PIPELINING or a stupid MUA), the error message that was given to the | |
2515 | RCPT commands is included in the rejection of the DATA command. This is | |
2516 | intended to be helpful for MUAs that show only the final error to their | |
2517 | users. | |
2518 | ||
84024b72 PH |
2519 | PH/42 Another patch from the Sieve maintainer. |
2520 | ||
8005d38e SC |
2521 | SC/02 Eximstats - Differentiate between permanent and temporary rejects. |
2522 | Eximstats - Fixed some broken HTML links and added missing column headers | |
2523 | (Jez Hancock). | |
2524 | Eximstats - Fixed Grand Total Summary Domains, Edomains, and Email | |
2525 | columns for Rejects, Temp Rejects, Ham, and Spam rows. | |
2526 | ||
3298c6c6 SC |
2527 | SC/03 Eximstats - V1.58 Fix to get <> and blackhole to show in edomain tables. |
2528 | ||
a43a27c5 PH |
2529 | PH/43 Yet another patch from the Sieve maintainer. |
2530 | ||
58eb016e | 2531 | PH/44 I found a way to check for a TCP/IP connection going away before sending |
563b63fa PH |
2532 | the response to the final '.' that terminates a message, but only in the |
2533 | case where the client has not sent further data following the '.' | |
2534 | (unfortunately, this is allowed). However, in many cases there won't be | |
2535 | any further data because there won't be any more messages to send. A call | |
2536 | to select() can be used: if it shows that the input is "ready", there is | |
2537 | either input waiting, or the socket has been closed. An attempt to read | |
2538 | the next input character can distinguish the two cases. Previously, Exim | |
58eb016e | 2539 | would have sent an OK response which the client would never have see. |
563b63fa PH |
2540 | This could lead to message repetition. This fix should cure that, at |
2541 | least in a lot of common cases. | |
58eb016e | 2542 | |
b43a74ea PH |
2543 | PH/45 Do not advertise STARTTLS in response to HELP unless it would be |
2544 | advertised in response to EHLO. | |
2545 | ||
b4ed4da0 | 2546 | |
5dd1517f PH |
2547 | Exim version 4.66 |
2548 | ----------------- | |
2549 | ||
2550 | PH/01 Two more bugs that were introduced by 4.64/PH/07, in addition to the one | |
2551 | fixed by 4.65/MH/01 (is this a record?) are fixed: | |
2552 | ||
2553 | (i) An empty string was always treated as zero by the numeric comparison | |
2554 | operators. This behaviour has been restored. | |
2555 | ||
2556 | (ii) It is documented that the numeric comparison operators always treat | |
2557 | their arguments as decimal numbers. This was broken in that numbers | |
2558 | starting with 0 were being interpreted as octal. | |
2559 | ||
2560 | While fixing these problems I realized that there was another issue that | |
2561 | hadn't been noticed. Values of message_size_limit (both the global option | |
2562 | and the transport option) were treated as octal if they started with 0. | |
2563 | The documentation was vague. These values are now always treated as | |
2564 | decimal, and I will make that clear in the documentation. | |
2565 | ||
2566 | ||
93cfa765 TK |
2567 | Exim version 4.65 |
2568 | ----------------- | |
2569 | ||
2570 | TK/01 Disable default definition of HAVE_LINUX_SENDFILE. Clashes with | |
2571 | Linux large file support (_FILE_OFFSET_BITS=64) on older glibc | |
2572 | versions. (#438) | |
2573 | ||
d6066548 MH |
2574 | MH/01 Don't check that the operands of numeric comparison operators are |
2575 | integers when their expansion is in "skipping" mode (fixes bug | |
2576 | introduced by 4.64-PH/07). | |
2577 | ||
4362ff0d PH |
2578 | PH/01 If a system filter or a router generates more than SHRT_MAX (32767) |
2579 | child addresses, Exim now panics and dies. Previously, because the count | |
2580 | is held in a short int, deliveries were likely to be lost. As such a | |
2581 | large number of recipients for a single message is ridiculous | |
2582 | (performance will be very, very poor), I have chosen to impose a limit | |
2583 | rather than extend the field. | |
2584 | ||
93cfa765 | 2585 | |
944e9e9c TF |
2586 | Exim version 4.64 |
2587 | ----------------- | |
aa41d2de | 2588 | |
21d74bd9 TK |
2589 | TK/01 Bugzilla #401. Fix DK spooling code so that it can overwrite a |
2590 | leftover -K file (the existence of which was triggered by #402). | |
2591 | While we were at it, introduced process PID as part of the -K | |
2592 | filename. This should rule out race conditions when creating | |
2593 | these files. | |
2594 | ||
2595 | TK/02 Bugzilla #402. Apply patch from Simon Arlott, speeding up DK signing | |
2596 | processing considerably. Previous code took too long for large mails, | |
2597 | triggering a timeout which in turn triggers #401. | |
2598 | ||
2599 | TK/03 Introduced HAVE_LINUX_SENDFILE to os.h-Linux. Currently only used | |
2600 | in the DK code in transports.c. sendfile() is not really portable, | |
2601 | hence the _LINUX specificness. | |
944e9e9c TF |
2602 | |
2603 | TF/01 In the add_headers option to the mail command in an Exim filter, | |
2604 | there was a bug that Exim would claim a syntax error in any | |
2605 | header after the first one which had an odd number of characters | |
2606 | in the field name. | |
2607 | ||
2b1c6e3a PH |
2608 | PH/01 If a server that rejects MAIL FROM:<> was the target of a sender |
2609 | callout verification, Exim cached a "reject" for the entire domain. This | |
2610 | is correct for most verifications, but it is not correct for a recipient | |
2611 | verification with use_sender or use_postmaster set, because in that case | |
2612 | the callout does not use MAIL FROM:<>. Exim now distinguishes the special | |
2613 | case of MAIL FROM:<> rejection from other early rejections (e.g. | |
2614 | rejection of HELO). When verifying a recipient using a non-null MAIL | |
2615 | address, the cache is ignored if it shows MAIL FROM:<> rejection. | |
2616 | Whatever the result of the callout, the value of the domain cache is | |
2617 | left unchanged (for any other kind of callout, getting as far as trying | |
2618 | RCPT means that the domain itself is ok). | |
2619 | ||
1f872c80 PH |
2620 | PH/02 Tidied a number of unused variable and signed/unsigned warnings that |
2621 | gcc 4.1.1 threw up. | |
2622 | ||
2623 | PH/03 On Solaris, an unexpectedly close socket (dropped connection) can | |
2624 | manifest itself as EPIPE rather than ECONNECT. When tidying away a | |
2625 | session, the daemon ignores ECONNECT errors and logs others; it now | |
2626 | ignores EPIPE as well. | |
2627 | ||
d203e649 PH |
2628 | PH/04 Applied Nico Erfurth's refactoring patch to tidy up mime.c |
2629 | (quoted-printable decoding). | |
2630 | ||
cc2ed8f7 | 2631 | PH/05 Applied Nico Erfurth's refactoring patch to tidy up spool_mbox.c, and |
21a04aa3 | 2632 | later the small subsequent patch to fix an introduced bug. |
f951fd57 | 2633 | |
ddfcd446 PH |
2634 | PH/06 Installed the latest Cygwin Makefile from the Cygwin maintainer. |
2635 | ||
d45b1de8 PH |
2636 | PH/07 There was no check for overflow in expansions such as ${if >{1}{4096M}}. |
2637 | ||
2638 | PH/08 An error is now given if message_size_limit is specified negative. | |
2639 | ||
38a0a95f | 2640 | PH/09 Applied and tidied up Jakob Hirsch's patch for allowing ACL variables |
641cb756 | 2641 | to be given (somewhat) arbitrary names. |
38a0a95f | 2642 | |
a2405d83 JJ |
2643 | JJ/01 exipick 20060919.0, allow for arbitrary acl_ variables introduced |
2644 | in 4.64-PH/09. | |
2645 | ||
2646 | JJ/02 exipick 20060919.0, --show-vars args can now be regular expressions, | |
2647 | miscellaneous code fixes | |
2648 | ||
6ea85e9a PH |
2649 | PH/10 Added the log_reject_target ACL modifier to specify where to log |
2650 | rejections. | |
2651 | ||
26da7e20 PH |
2652 | PH/11 Callouts were setting the name used for EHLO/HELO from $smtp_active_ |
2653 | hostname. This is wrong, because it relates to the incoming message (and | |
2654 | probably the interface on which it is arriving) and not to the outgoing | |
2655 | callout (which could be using a different interface). This has been | |
2656 | changed to use the value of the helo_data option from the smtp transport | |
2657 | instead - this is what is used when a message is actually being sent. If | |
2658 | there is no remote transport (possible with a router that sets up host | |
2659 | addresses), $smtp_active_hostname is used. | |
6ea85e9a | 2660 | |
14aa5a05 | 2661 | PH/12 Installed Andrey Panin's patch to add a dovecot authenticator. Various |
7befa435 | 2662 | tweaks were necessary in order to get it to work (see also 21 below): |
14aa5a05 PH |
2663 | (a) The code assumed that strncpy() returns a negative number on buffer |
2664 | overflow, which isn't the case. Replaced with Exim's string_format() | |
2665 | function. | |
2666 | (b) There were several signed/unsigned issues. I just did the minimum | |
2667 | hacking in of casts. There is scope for a larger refactoring. | |
2668 | (c) The code used strcasecmp() which is not a standard C function. | |
2669 | Replaced with Exim's strcmpic() function. | |
2670 | (d) The code set only $1; it now sets $auth1 as well. | |
2671 | (e) A simple test gave the error "authentication client didn't specify | |
2672 | service in request". It would seem that Dovecot has changed its | |
2673 | interface. Fortunately there's a specification; I followed it and | |
2674 | changed what the client sends and it appears to be working now. | |
2675 | ||
ff75a1f7 PH |
2676 | PH/13 Added $message_headers_raw to provide the headers without RFC 2047 |
2677 | decoding. | |
2678 | ||
e6f6568e PH |
2679 | PH/14 Corrected misleading output from -bv when -v was also used. Suppose the |
2680 | address A is aliased to B and C, where B exists and C does not. Without | |
2681 | -v the output is "A verified" because verification stops after a | |
2682 | successful redirection if more than one address is generated. However, | |
2683 | with -v the child addresses are also verified. Exim was outputting "A | |
2684 | failed to verify" and then showing the successful verification for C, | |
2685 | with its parentage. It now outputs "B failed to verify", showing B's | |
2686 | parentage before showing the successful verification of C. | |
2687 | ||
d6f6e0dc PH |
2688 | PH/15 Applied Michael Deutschmann's patch to allow DNS black list processing to |
2689 | look up a TXT record in a specific list after matching in a combined | |
2690 | list. | |
2691 | ||
322050c2 PH |
2692 | PH/16 It seems that the options setting for the resolver (RES_DEFNAMES and |
2693 | RES_DNSRCH) can affect the behaviour of gethostbyname() and friends when | |
2694 | they consult the DNS. I had assumed they would set it the way they | |
2695 | wanted; and indeed my experiments on Linux seem to show that in some | |
2696 | cases they do (I could influence IPv6 lookups but not IPv4 lookups). | |
2697 | To be on the safe side, however, I have now made the interface to | |
2698 | host_find_byname() similar to host_find_bydns(), with an argument | |
2699 | containing the DNS resolver options. The host_find_byname() function now | |
2700 | sets these options at its start, just as host_find_bydns() does. The smtp | |
2701 | transport options dns_qualify_single and dns_search_parents are passed to | |
2702 | host_find_byname() when gethostbyname=TRUE in this transport. Other uses | |
2703 | of host_find_byname() use the default settings of RES_DEFNAMES | |
2704 | (qualify_single) but not RES_DNSRCH (search_parents). | |
2705 | ||
08955dd3 PH |
2706 | PH/17 Applied (a modified version of) Nico Erfurth's patch to make |
2707 | spool_read_header() do less string testing, by means of a preliminary | |
2708 | switch on the second character of optional "-foo" lines. (This is | |
2709 | overdue, caused by the large number of possibilities that now exist. | |
2710 | Originally there were few.) While I was there, I also converted the | |
2711 | str(n)cmp tests so they don't re-test the leading "-" and the first | |
2712 | character, in the hope this might squeeze out yet more improvement. | |
2713 | ||
1eccaa59 PH |
2714 | PH/18 Two problems with "group" syntax in header lines when verifying: (1) The |
2715 | flag allowing group syntax was set by the header_syntax check but not | |
2716 | turned off, possible causing trouble later; (2) The flag was not being | |
2717 | set at all for the header_verify test, causing "group"-style headers to | |
2718 | be rejected. I have now set it in this case, and also caused header_ | |
2719 | verify to ignore an empty address taken from a group. While doing this, I | |
2720 | came across some other cases where the code for allowing group syntax | |
2721 | while scanning a header line wasn't quite right (mostly, not resetting | |
2722 | the flag correctly in the right place). These bugs could have caused | |
2723 | trouble for malformed header lines. I hope it is now all correct. | |
2724 | ||
602e59e5 PH |
2725 | PH/19 The functions {pwcheck,saslauthd}_verify_password() are always called |
2726 | with the "reply" argument non-NULL. The code, however (which originally | |
2727 | came from elsewhere) had *some* tests for NULL when it wrote to *reply, | |
2728 | but it didn't always do it. This confused somebody who was copying the | |
2729 | code for some other use. I have removed all the tests. | |
2730 | ||
411ef850 PH |
2731 | PH/20 It was discovered that the GnuTLS code had support for RSA_EXPORT, a |
2732 | feature that was used to support insecure browsers during the U.S. crypto | |
2733 | embargo. It requires special client support, and Exim is probably the | |
2734 | only MTA that supported it -- and would never use it because real RSA is | |
2735 | always available. This code has been removed, because it had the bad | |
2736 | effect of slowing Exim down by computing (never used) parameters for the | |
2737 | RSA_EXPORT functionality. | |
2738 | ||
7befa435 PH |
2739 | PH/21 On the advice of Timo Sirainen, added a check to the dovecot |
2740 | authenticator to fail if there's a tab character in the incoming data | |
2741 | (there should never be unless someone is messing about, as it's supposed | |
2742 | to be base64-encoded). Also added, on Timo's advice, the "secured" option | |
2743 | if the connection is using TLS or if the remote IP is the same as the | |
2744 | local IP, and the "valid-client-cert option" if a client certificate has | |
2745 | been verified. | |
2746 | ||
48da4259 | 2747 | PH/22 As suggested by Dennis Davis, added a server_condition option to *all* |
16ff981e PH |
2748 | authenticators. This can be used for authorization after authentication |
2749 | succeeds. (In the case of plaintext, it servers for both authentication | |
2750 | and authorization.) | |
2751 | ||
48da4259 PH |
2752 | PH/23 Testing for tls_required and lost_connection in a retry rule didn't work |
2753 | if any retry times were supplied. | |
2754 | ||
d1d5595c PH |
2755 | PH/24 Exim crashed if verify=helo was activated during an incoming -bs |
2756 | connection, where there is no client IP address to check. In this | |
2757 | situation, the verify now always succeeds. | |
2758 | ||
0ef732d9 PH |
2759 | PH/25 Applied John Jetmore's -Mset patch. |
2760 | ||
328895cc PH |
2761 | PH/26 Added -bem to be like -Mset, but loading a message from a file. |
2762 | ||
fd700877 PH |
2763 | PH/27 In a string expansion for a processed (not raw) header when multiple |
2764 | headers of the same name were present, leading whitespace was being | |
2765 | removed from all of them, but trailing whitespace was being removed only | |
2766 | from the last one. Now trailing whitespace is removed from each header | |
f6c332bd PH |
2767 | before concatenation. Completely empty headers in a concatenation (as |
2768 | before) are ignored. | |
fd700877 | 2769 | |
8dce1a6f PH |
2770 | PH/28 Fixed bug in backwards-compatibility feature of PH/09 (thanks to John |
2771 | Jetmore). It would have mis-read ACL variables from pre-4.61 spool files. | |
2772 | ||
17af4a17 PH |
2773 | PH/29 [Removed. This was a change that I later backed out, and forgot to |
2774 | correct the ChangeLog entry (that I had efficiently created) before | |
2775 | committing the later change.] | |
f6c332bd PH |
2776 | |
2777 | PH/30 Exim was sometimes attempting to deliver messages that had suffered | |
2778 | address errors (4xx response to RCPT) over the same connection as other | |
2779 | messages routed to the same hosts. Such deliveries are always "forced", | |
2780 | so retry times are not inspected. This resulted in far too many retries | |
2781 | for the affected addresses. The effect occurred only when there were more | |
2782 | hosts than the hosts_max_try setting in the smtp transport when it had | |
2783 | the 4xx errors. Those hosts that it had tried were not added to the list | |
2784 | of hosts for which the message was waiting, so if all were tried, there | |
2785 | was no problem. Two fixes have been applied: | |
2786 | ||
2787 | (i) If there are any address or message errors in an SMTP delivery, none | |
2788 | of the hosts (tried or untried) are now added to the list of hosts | |
2789 | for which the message is waiting, so the message should not be a | |
2790 | candidate for sending over the same connection that was used for a | |
2791 | successful delivery of some other message. This seems entirely | |
2792 | reasonable: after all the message is NOT "waiting for some host". | |
2793 | This is so "obvious" that I'm not sure why it wasn't done | |
2794 | previously. Hope I haven't missed anything, but it can't do any | |
2795 | harm, as the worst effect is to miss an optimization. | |
2796 | ||
2797 | (ii) If, despite (i), such a delivery is accidentally attempted, the | |
2798 | routing retry time is respected, so at least it doesn't keep | |
2799 | hammering the server. | |
2800 | ||
c1114884 PH |
2801 | PH/31 Installed Andrew Findlay's patch to close the writing end of the socket |
2802 | in ${readsocket because some servers need this prod. | |
2803 | ||
7a0743eb PH |
2804 | PH/32 Added some extra debug output when updating a wait-xxx database. |
2805 | ||
0d85fa3f PH |
2806 | PH/33 The hint "could be header name not terminated by colon", which has been |
2807 | given for certain expansion errors for a long time, was not being given | |
2808 | for the ${if def:h_colon_omitted{... case. | |
2809 | ||
1bf43b78 PH |
2810 | PH/34 The spec says: "With one important exception, whenever a domain list is |
2811 | being scanned, $domain contains the subject domain." There was at least | |
2812 | one case where this was not true. | |
2813 | ||
520de300 PH |
2814 | PH/35 The error "getsockname() failed: connection reset by peer" was being |
2815 | written to the panic log as well as the main log, but it isn't really | |
2816 | panic-worthy as it just means the connection died rather early on. I have | |
2817 | removed the panic log writing for the ECONNRESET error when getsockname() | |
2818 | fails. | |
2819 | ||
48c7f9e2 PH |
2820 | PH/36 After a 4xx response to a RCPT error, that address was delayed (in queue |
2821 | runs only) independently of the message's sender address. This meant | |
2822 | that, if the 4xx error was in fact related to the sender, a different | |
2823 | message to the same recipient with a different sender could confuse | |
4c04137d | 2824 | things. In particular, this can happen when sending to a greylisting |
48c7f9e2 PH |
2825 | server, but other circumstances could also provoke similar problems. |
2826 | I have changed the default so that the retry time for these errors is now | |
2827 | based a combination of the sender and recipient addresses. This change | |
2828 | can be overridden by setting address_retry_include_sender=false in the | |
2829 | smtp transport. | |
2830 | ||
99ea1c86 PH |
2831 | PH/37 For LMTP over TCP/IP (the smtp transport), error responses from the |
2832 | remote server are returned as part of bounce messages. This was not | |
2833 | happening for LMTP over a pipe (the lmtp transport), but now it is the | |
2834 | same for both kinds of LMTP. | |
2835 | ||
a2042e78 PH |
2836 | PH/38 Despite being documented as not happening, Exim was rewriting addresses |
2837 | in header lines that were in fact CNAMEs. This is no longer the case. | |
2838 | ||
4fbcfc2e PH |
2839 | PH/39 If -R or -S was given with -q<time>, the effect of -R or -S was ignored, |
2840 | and queue runs started by the daemon processed all messages. This has | |
2841 | been fixed so that -R and -S can now usefully be given with -q<time>. | |
2842 | ||
aa41d2de PH |
2843 | PH/40 Import PCRE release 6.7 (fixes some bugs). |
2844 | ||
af561417 PH |
2845 | PH/41 Add bitwise logical operations to eval (courtesy Brad Jorsch). |
2846 | ||
3cc66b45 PH |
2847 | PH/42 Give an error if -q is specified more than once. |
2848 | ||
194cc0e4 PH |
2849 | PH/43 Renamed the variables $interface_address and $interface_port as |
2850 | $received_ip_address and $received_port, to make it clear that these | |
2851 | values apply to message reception, and not to the outgoing interface when | |
2852 | a message is delivered. (The old names remain recognized, of course.) | |
2853 | ||
a401ddaa PH |
2854 | PH/44 There was no timeout on the connect() call when using a Unix domain |
2855 | socket in the ${readsocket expansion. There now is. | |
2856 | ||
4e88a19f PH |
2857 | PH/45 Applied a modified version of Brad Jorsch's patch to allow "message" to |
2858 | be meaningful with "accept". | |
2859 | ||
d7d7b289 SC |
2860 | SC/01 Eximstats V1.43 |
2861 | Bug fix for V1.42 with -h0 specified. Spotted by Chris Lear. | |
2862 | ||
2863 | SC/02 Eximstats V1.44 | |
2864 | Use a glob alias rather than an array ref in the generated | |
2865 | parser. This improves both readability and performance. | |
2866 | ||
2867 | SC/03 Eximstats V1.45 (Marco Gaiarin / Steve Campbell) | |
2868 | Collect SpamAssassin and rejection statistics. | |
2869 | Don't display local sender or destination tables unless | |
2870 | there is data to show. | |
2871 | Added average volumes into the top table text output. | |
2872 | ||
2873 | SC/04 Eximstats V1.46 | |
2874 | Collect data on the number of addresses (recipients) | |
2875 | as well as the number of messages. | |
2876 | ||
2877 | SC/05 Eximstats V1.47 | |
2878 | Added 'Message too big' to the list of mail rejection | |
2879 | reasons (thanks to Marco Gaiarin). | |
2880 | ||
2881 | SC/06 Eximstats V1.48 | |
2882 | Mainlog lines which have GMT offsets and are too short to | |
2883 | have a flag are now skipped. | |
2884 | ||
2885 | SC/07 Eximstats V1.49 (Alain Williams) | |
2886 | Added the -emptyok flag. | |
2887 | ||
2888 | SC/08 Eximstats V1.50 | |
2889 | Fixes for obtaining the IP address from reject messages. | |
2890 | ||
0ea2a468 JJ |
2891 | JJ/03 exipick.20061117.2, made header handling as similar to exim as possible |
2892 | (added [br]h_ prefixes, implemented RFC2047 decoding. Fixed | |
4c04137d | 2893 | whitespace changes from 4.64-PH/27 |
0ea2a468 JJ |
2894 | |
2895 | JJ/04 exipick.20061117.2, fixed format and added $message_headers_raw to | |
2896 | match 4.64-PH/13 | |
2897 | ||
2898 | JJ/05 exipick.20061117.2, bug fixes (error out sooner when invalid criteria | |
2899 | are found, allow negative numbers in numeric criteria) | |
2900 | ||
2901 | JJ/06 exipick.20061117.2, added new $message_body_missing variable | |
2902 | ||
2903 | JJ/07 exipick.20061117.2, added $received_ip_address and $received_port | |
2904 | to match changes made in 4.64-PH/43 | |
2905 | ||
8a10f5a4 PH |
2906 | PH/46 Applied Jori Hamalainen's patch to add features to exiqsumm. |
2907 | ||
30e18802 PH |
2908 | PH/47 Put in an explicit test for a DNS lookup of an address record where the |
2909 | "domain" is actually an IP address, and force a failure. This locks out | |
2910 | those revolvers/nameservers that support "A-for-A" lookups, in | |
2911 | contravention of the specifications. | |
2912 | ||
55728a4f PH |
2913 | PH/48 When a host name was looked up from an IP address, and the subsequent |
2914 | forward lookup of the name timed out, the host name was left in | |
2915 | $sender_host_name, contrary to the specification. | |
d7d7b289 | 2916 | |
d7837193 PH |
2917 | PH/49 Although default lookup types such as lsearch* or cdb*@ have always been |
2918 | restricted to single-key lookups, Exim was not diagnosing an error if | |
2919 | * or *@ was used with a query-style lookup. | |
2920 | ||
87054a31 PH |
2921 | PH/50 Increased the value of DH_BITS in tls-gnu.c from 768 to 1024. |
2922 | ||
ea2c01d2 MH |
2923 | MH/01 local_scan ABI version incremented to 1.1. It should have been updated |
2924 | long ago, but noone interested enough thought of it. Let's just say that | |
2925 | the "1.1" means that there are some new functions that weren't there at | |
2926 | some point in the past. | |
2927 | ||
e4fa6968 PH |
2928 | PH/51 Error processing for expansion failure of helo_data from an smtp |
2929 | transport during callout processing was broken. | |
2930 | ||
56f5d9bd PH |
2931 | PH/52 Applied John Jetmore's patch to allow tls-on-connect and STARTTLS to be |
2932 | tested/used via the -bh/-bhc/-bs options. | |
2933 | ||
922e1c28 PH |
2934 | PH/53 Added missing "#include <time.h>" to pcre/pcretest.c (this was a PCRE |
2935 | bug, fixed in subsequent PCRE releases). | |
2936 | ||
21eb6e72 PH |
2937 | PH/54 Applied Robert Bannocks' patch to avoid a problem with references that |
2938 | arises when using the Solaris LDAP libraries (but not with OpenLDAP). | |
2939 | ||
a0540757 PH |
2940 | PH/55 Check for a ridiculously long file name in exim_dbmbuild. |
2941 | ||
944e9e9c | 2942 | |
478be7b0 SC |
2943 | Exim version 4.63 |
2944 | ----------------- | |
2945 | ||
2946 | SC/01 Use a glob alias rather than an array ref in eximstats generated | |
2947 | parser. This improves both readability and performance. | |
2948 | ||
2949 | SC/02 Collect SpamAssassin and rejection statistics in eximstats. | |
2950 | Don't display local sender or destination tables in eximstats unless | |
2951 | there is data to show. | |
2952 | Added average volumes into the eximstats top table text output. | |
2953 | ||
2954 | SC/03 Collect data on the number of addresses (recipients) as well | |
2955 | as the number of messages in eximstats. | |
2956 | ||
2b965a65 TF |
2957 | TF/01 Correct an error in the documentation for the redirect router. Exim |
2958 | does (usually) call initgroups() when daemonizing. | |
478be7b0 | 2959 | |
45b91596 PH |
2960 | TF/02 Call initgroups() when dropping privilege in exim.c, so that Exim runs |
2961 | with consistent privilege compared to when running as a daemon. | |
478be7b0 | 2962 | |
c59f5781 TF |
2963 | TF/03 Note in the spec that $authenticated_id is not set for local |
2964 | submissions from trusted users. | |
2965 | ||
90fc3069 TF |
2966 | TF/04 The ratelimit per_rcpt option now works correctly in acl_not_smtp. |
2967 | Thanks to Dean Brooks <dean@iglou.com> for the patch. | |
2968 | ||
6083aca0 TF |
2969 | TF/05 Make it easier to get SMTP authentication and TLS/SSL support working |
2970 | by adding some example configuration directives to the default | |
2971 | configuration file. A little bit of work is required to uncomment the | |
2972 | directives and define how usernames and passwords are checked, but | |
2973 | there is now a framework to start from. | |
2974 | ||
765b530f PH |
2975 | PH/01 Added #define LDAP_DEPRECATED 1 to ldap.c because some of the "old" |
2976 | functions that Exim currently uses aren't defined in ldap.h for OpenLDAP | |
2977 | without this. I don't know how relevant this is to other LDAP libraries. | |
2978 | ||
4e167a8c PH |
2979 | PH/02 Add the verb name to the "unknown ACL verb" error. |
2980 | ||
4608d683 PH |
2981 | PH/03 Magnus Holmgren's patch for filter_prepend_home. |
2982 | ||
b8dc3e4a PH |
2983 | PH/03 Fixed Bugzilla #101: macro definition between ACLs doesn't work. |
2984 | ||
5418e93b PH |
2985 | PH/04 Applied Magnus Holmgren's patch to fix Bugzilla #98: transport's home |
2986 | directory not expanded when it should be if an expanded home directory | |
2987 | was set for the address (which is overridden by the transport). | |
2988 | ||
b4a9bda2 PH |
2989 | PH/05 Applied Alex Kiernan's patch to fix Bugzilla #99: a problem with |
2990 | libradius. | |
2991 | ||
45b91596 PH |
2992 | PH/06 Added acl_not_smtp_start, based on Johannes Berg's patch, and set the |
2993 | bit to forbid control=suppress_local_fixups in the acl_not_smtp ACL, | |
2994 | because it is too late at that time, and has no effect. | |
2995 | ||
5547e2c5 PH |
2996 | PH/07 Changed ${quote_pgsql to quote ' as '' instead of \' because of a |
2997 | security issue with \' (bugzilla #107). I could not use the | |
2998 | PQescapeStringConn() function, because it needs a PGconn value as one of | |
2999 | its arguments. | |
3000 | ||
dbcef0ea PH |
3001 | PH/08 When testing addresses using -bt, indicate those final addresses that |
3002 | are duplicates that would not cause an additional delivery. At least one | |
3003 | person was confused, thinking that -bt output corresponded to deliveries. | |
3004 | (Suppressing duplicates isn't a good idea as you lose the information | |
3005 | about possibly different redirections that led to the duplicates.) | |
3006 | ||
25257489 PH |
3007 | PH/09 Applied patch from Erik to use select() instead of poll() in spam.c on |
3008 | systems where poll() doesn't work, in particular OS X. | |
3009 | ||
c816d124 PH |
3010 | PH/10 Added more information to debugging output for retry time not reached. |
3011 | ||
a9ccd69a PH |
3012 | PH/11 Applied patch from Arkadiusz Miskiewicz to apply a timeout to read |
3013 | operations in malware.c. | |
3014 | ||
75fa1910 PH |
3015 | PH/12 Applied patch from Magnus Holmgren to include the "h" tag in Domain Keys |
3016 | signatures. | |
3017 | ||
a7d7aa58 PH |
3018 | PH/13 If write_rejectlog was set false when logging was sent to syslog with |
3019 | syslog_duplication set false, log lines that would normally be written | |
3020 | both the the main log and to the reject log were not written to syslog at | |
3021 | all. | |
3022 | ||
42119b09 PH |
3023 | PH/14 In the default configuration, change the use of "message" in ACL warn |
3024 | statements to "add_header". | |
3025 | ||
41609df5 PH |
3026 | PH/15 Diagnose a filter syntax error for "seen", "unseen", or "noerror" if not |
3027 | not followed by a command (e.g. "seen endif"). | |
3028 | ||
a5bd321b PH |
3029 | PH/16 Recognize SMTP codes at the start of "message" in ACLs and after :fail: |
3030 | and :defer: in a redirect router. Add forbid_smtp_code to suppress the | |
3031 | latter. | |
3032 | ||
e85a7ad5 | 3033 | PH/17 Added extra conditions to the default value of delay_warning_condition |
5dff5817 PH |
3034 | so that it is now: |
3035 | ||
e85a7ad5 PH |
3036 | ${if or { \ |
3037 | { !eq{$h_list-id:$h_list-post:$h_list-subscribe:}{} } \ | |
3038 | { match{$h_precedence:}{(?i)bulk|list|junk} } \ | |
3039 | { match{$h_auto-submitted:}{(?i)auto-generated|auto-replied} } \ | |
5dff5817 PH |
3040 | }{no}{yes}} |
3041 | ||
e85a7ad5 PH |
3042 | The Auto-Submitted: and various List- headers are standardised, whereas I |
3043 | don't think Precedence: ever was. | |
5dff5817 | 3044 | |
d8fe1c03 PH |
3045 | PH/18 Refactored debugging code in route_finduser() to show more information, |
3046 | in particular, the error code if getpwnam() issues one. | |
3047 | ||
16282d2b PH |
3048 | PH/19 Added PQsetClientEncoding(conn, "SQL_ASCII") to the pgsql code module. |
3049 | This is apparently needed in addition to the PH/07 change above to avoid | |
3050 | any possible encoding problems. | |
3051 | ||
35d40a98 PH |
3052 | PH/20 Perl can change the locale. Exim was resetting it after a ${perl call, |
3053 | but not after initializing Perl. | |
3054 | ||
034d99ab PH |
3055 | PH/21 Added a call to PQsetNoticeProcessor() to catch pgsql "notices" and |
3056 | output them only if debugging. By default they are written stderr, | |
3057 | apparently, which is not desirable. | |
3058 | ||
6ec97b1b PH |
3059 | PH/22 Added Alain Williams' LDAP patch to support setting REFERRALS=off on |
3060 | queries. | |
3061 | ||
e22ca4ac JJ |
3062 | JJ/01 exipick: added --reverse (and -R synonym), --random, --size, --sort and |
3063 | --not options | |
3064 | ||
3065 | JJ/02 exipick: rewrote --help documentation to hopefully make more clear. | |
3066 | ||
33d73e3b PH |
3067 | PH/23 Made -oMaa and -oMt work with -bh and -bs to pretend the connection is |
3068 | authenticated or an ident call has been made. Suppress the default | |
3069 | values for $authenticated_id and $authenticated_sender (but permit -oMai | |
3070 | and -oMas) when testing with -bh. | |
3071 | ||
9ecb03f3 PH |
3072 | PH/24 Re-jigged the order of the tests in the default configuration so that the |
3073 | tests for valid domains and recipients precede the DNS black list and CSA | |
3074 | tests, on the grounds that those ones are more expensive. | |
3075 | ||
084efe8d PH |
3076 | PH/25 Exim was not testing for a space following SMTP commands such as EHLO |
3077 | that require one. Thus, EHLORHUBARB was interpreted as a valid command. | |
3078 | This bug exists in every version of Exim that I still have, right back to | |
3079 | 0.12. | |
3080 | ||
366fc9f0 PH |
3081 | PH/26 (n)wildlsearch lookups are documented as being done case-insensitively. |
3082 | However, an attempt to turn on case-sensitivity in a regex key by | |
3083 | including (?-i) didn't work because the subject string was already | |
3084 | lowercased, and the effects were non-intuitive. It turns out that a | |
3085 | one-line patch can be used to allow (?-i) to work as expected. | |
3086 | ||
c59f5781 | 3087 | |
c887c79e TF |
3088 | Exim version 4.62 |
3089 | ----------------- | |
3090 | ||
3091 | TF/01 Fix the add_header change below (4.61 PH/55) which had a bug that (amongst | |
3092 | other effects) broke the use of negated acl sub-conditions. | |
3093 | ||
1cce3af8 PH |
3094 | PH/01 ${readsocket now supports Internet domain sockets (modified John Jetmore |
3095 | patch). | |
3096 | ||
afb3eaaf PH |
3097 | PH/02 When tcp-wrappers is called from Exim, it returns only "deny" or "allow". |
3098 | "Deny" causes Exim to reject the incoming connection with a 554 error. | |
3099 | Unfortunately, if there is a major crisis, such as a disk failure, | |
3100 | tcp-wrappers gives "deny", whereas what one would like would be some | |
3101 | kind of temporary error. A kludge has been added to help with this. | |
3102 | Before calling hosts_ctl(), errno is set zero. If the result is "deny", a | |
3103 | 554 error is used if errno is still zero or contains ENOENT (which occurs | |
3104 | if either of the /etc/hosts.{allow,deny} files is missing). Otherwise, a | |
3105 | 451 error is used. | |
3106 | ||
e173618b PH |
3107 | PH/03 Add -lutil to the default FreeBSD LIBS setting. |
3108 | ||
dd16e114 PH |
3109 | PH/04 Change PH/19 for 4.61 was too wide. It should not be applied to host |
3110 | errors. Otherwise a message that provokes a temporary error (when other | |
3111 | messages do not) can cause a whole host to time out. | |
3112 | ||
f7fd3850 PH |
3113 | PH/05 Batch deliveries by appendfile and pipe transports did not work when the |
3114 | addresses were routed directly to files or pipes from a redirect router. | |
3115 | File deliveries just didn't batch; pipe deliveries might have suffered | |
3116 | odd errors. | |
3117 | ||
d87df92c PH |
3118 | PH/06 A failure to get a lock for a hints database would erroneously always say |
3119 | "Failed to get write lock", even when it was really a read lock. | |
3120 | ||
7e9f683d PH |
3121 | PH/07 The appendfile transport was creating MBX lock files with a fixed mode |
3122 | of 0600. This has been changed to use the value of the lockfile_mode | |
3123 | option (which defaults to 0600). | |
3124 | ||
bfad5236 PH |
3125 | PH/08 Applied small patch from the Sieve maintainer. |
3126 | ||
01c490df PH |
3127 | PH/09 If maildir_quota_directory_regex was set to exclude (say) the .Trash |
3128 | folder from quota calculations, a direct delivery into this folder messed | |
3129 | up the contents of the maildirsize file. This was because the regex was | |
3130 | used only to exclude .Trash (or whatever) when the size of the mailbox | |
3131 | was calculated. There was no check that a delivery was happening into an | |
3132 | excluded directory. This bug has been fixed by ignoring all quota | |
3133 | processing for deliveries into excluded directories. | |
3134 | ||
d6629cdc PH |
3135 | PH/10 Added the maildirfolder_create_regex option to appendfile. |
3136 | ||
1cce3af8 | 3137 | |
214e2000 PH |
3138 | Exim version 4.61 |
3139 | ----------------- | |
3140 | ||
3141 | PH/01 The code for finding all the local interface addresses on a FreeBSD | |
3142 | system running IPv6 was broken. This may well have applied to all BSD | |
3143 | systems, as well as to others that have similar system calls. The broken | |
3144 | code found IPv4 interfaces correctly, but gave incorrect values for the | |
3145 | IPv6 interfaces. In particular, ::1 was not found. The effect in Exim was | |
3146 | that it would not match correctly against @[] and not recognize the IPv6 | |
3147 | addresses as local. | |
3148 | ||
f9daeae0 PH |
3149 | PH/02 The ipliteral router was not recognizing addresses of the form user@ |
3150 | [ipv6:....] because it didn't know about the "ipv6:" prefix. | |
3151 | ||
7e66e54d PH |
3152 | PH/03 Added disable_ipv6. |
3153 | ||
c8ea1597 PH |
3154 | PH/04 Changed $reply_address to use the raw form of the headers instead of the |
3155 | decoded form, because it is most often used to construct To: headers | |
3156 | lines in autoreplies, and the decoded form may well be syntactically | |
3157 | invalid. However, $reply_address has leading white space removed, and all | |
3158 | newlines turned into spaces so that the autoreply transport does not | |
3159 | grumble. | |
3160 | ||
911f6fde PH |
3161 | PH/05 If group was specified without a user on a router, and no group or user |
3162 | was specified on a transport, the group from the router was ignored. | |
3163 | ||
47ca6d6c PH |
3164 | PH/06 Increased the number of ACL variables to 20 of each type, and arranged |
3165 | for visible compile-time settings that can be used to change these | |
3166 | numbers, for those that want even more. Backwards compatibility with old | |
3167 | spool files has been maintained. However, going back to a previous Exim | |
3168 | release will lost any variables that are in spool files. | |
3169 | ||
ed0e9820 PH |
3170 | PH/07 Two small changes when running in the test harness: increase delay when |
3171 | passing a TCP/IP connection to a new process, in case the original | |
3172 | process has to generate a bounce, and remove special handling of | |
3173 | 127.0.0.2 (sic), which is no longer necessary. | |
3174 | ||
eff37e47 PH |
3175 | PH/08 Changed debug output of dbfn_open() flags from numbers to names, so as to |
3176 | be the same on different OS. | |
3177 | ||
1921d2ea PH |
3178 | PH/09 Moved a debug statement in filter processing to avoid a race problem when |
3179 | testing. | |
3180 | ||
b3f69ca8 JJ |
3181 | JJ/01 exipick: fixed bug where -b (brief) output option showed "Vars:" |
3182 | whether --show-vars was specified or not | |
3183 | ||
3184 | JJ/02 exipick: Added support for new ACL variable spool format introduced | |
3185 | in 4.61-PH/06 | |
3186 | ||
424a1c63 PH |
3187 | PH/10 Fixed another bug related to PH/04 above: if an incoming message had a |
3188 | syntactically invalid From: or Reply-to: line, and a filter used this to | |
3189 | generate an autoreply, and therefore failed to obtain an address for the | |
3190 | autoreply, Exim could try to deliver to a non-existent relative file | |
3191 | name, causing unrelated and misleading errors. What now happens is that | |
3192 | it logs this as a hard delivery error, but does not attempt to create a | |
3193 | bounce message. | |
3194 | ||
7a100415 PH |
3195 | PH/11 The exinext utility has a -C option for testing purposes, but although |
3196 | the given file was scanned by exinext itself; it wasn't being passed on | |
3197 | when Exim was called. | |
3198 | ||
19b9dc85 PH |
3199 | PH/12 In the smtp transport, treat an explicit ECONNRESET error the same as |
3200 | an end-of-file indication when reading a command response. | |
3201 | ||
309bd837 PH |
3202 | PH/13 Domain literals for IPv6 were not recognized unless IPv6 support was |
3203 | compiled. In many other places in Exim, IPv6 addresses are always | |
3204 | recognized, so I have changed this. It also means that IPv4 domain | |
3205 | literals of the form [IPV4:n.n.n.n] are now always recognized. | |
3206 | ||
59e82a2a PH |
3207 | PH/14 When a uid/gid is specified for the queryprogram router, it cannot be |
3208 | used if the router is not running as root, for example, when verifying at | |
3209 | ACL time, or when using -bh. The debugging output from this situation was | |
3210 | non-existent - all you got was a failure to exec. I have made two | |
3211 | changes: | |
3212 | ||
3213 | (a) Failures to set uid/gid, the current directory, or a process leader | |
3214 | in a subprocess such as that created by queryprogram now generate | |
4c04137d | 3215 | suitable debugging output when -d is set. |
59e82a2a PH |
3216 | |
3217 | (b) The queryprogram router detects when it is not running as root, | |
3218 | outputs suitable debugging information if -d is set, and then runs | |
3219 | the subprocess without attempting to change uid/gid. | |
3220 | ||
9edc04ce PH |
3221 | PH/15 Minor change to Makefile for building test_host (undocumented testing |
3222 | feature). | |
3223 | ||
1349e1e5 PH |
3224 | PH/16 As discussed on the list in Nov/Dec: Exim no longer looks at the |
3225 | additional section of a DNS packet that returns MX or SRV records. | |
3226 | Instead, it always explicitly searches for A/AAAA records. This avoids | |
3227 | major problems that occur when a DNS server includes only records of one | |
3228 | type (A or AAAA) in an MX/SRV packet. A byproduct of this change has | |
3229 | fixed another bug: if SRV records were looked up and the corresponding | |
3230 | address records were *not* found in the additional section, the port | |
3231 | values from the SRV records were lost. | |
3232 | ||
ea49d0e1 PH |
3233 | PH/17 If a delivery to a pipe, file, or autoreply was deferred, Exim was not |
3234 | using the correct key (the original address) when searching the retry | |
3235 | rules in order to find which one to use for generating the retry hint. | |
3236 | ||
064a94c9 PH |
3237 | PH/18 If quota_warn_message contains a From: header, Exim now refrains from |
3238 | adding the default one. Similarly, if it contains a Reply-To: header, the | |
3239 | errors_reply_to option, if set, is not used. | |
3240 | ||
727071f8 PH |
3241 | PH/19 When calculating a retry time, Exim used to measure the "time since |
3242 | failure" by looking at the "first failed" field in the retry record. Now | |
3243 | it does not use this if it is later than than the arrival time of the | |
3244 | message. Instead it uses the arrival time. This makes for better | |
3245 | behaviour in cases where some deliveries succeed, thus re-setting the | |
3246 | "first failed" field. An example is a quota failure for a huge message | |
3247 | when small messages continue to be delivered. Without this change, the | |
3248 | "time since failure" will always be short, possible causing more frequent | |
3249 | delivery attempts for the huge message than are intended. | |
dd16e114 | 3250 | [Note: This change was subsequently modified - see PH/04 for 4.62.] |
727071f8 | 3251 | |
f78eb7c6 PH |
3252 | PH/20 Added $auth1, $auth2, $auth3 to contain authentication data (as well as |
3253 | $1, $2, $3) because the numerical variables can be reset during some | |
3254 | expansion items (e.g. "match"), thereby losing the authentication data. | |
3255 | ||
21c28500 PH |
3256 | PH/21 Make -bV show the size of off_t variables so that the test suite can |
3257 | decide whether to run tests for quotas > 2G. | |
3258 | ||
3259 | PH/22 Test the values given for quota, quota_filecount, quota_warn_threshold, | |
3260 | mailbox_size, and mailbox_filecount in the appendfile transport. If a | |
3261 | filecount value is greater than 2G or if a quota value is greater than 2G | |
3262 | on a system where the size of off_t is not greater than 4, a panic error | |
3263 | is given. | |
3264 | ||
1688f43b PH |
3265 | PH/23 When a malformed item such as 1.2.3/24 appears in a host list, it can |
3266 | never match. The debug and -bh output now contains an explicit error |