doc update
[exim-website.git] / changelogs / ChangeLog-3.00.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3   <head>
4     <title>exim changelogs - Version 3.00 (previous main release 2.12)</title>
5   </head>
6
7   <body bgcolor="#FFFFBF" text="#00005A" link="#000060" alink="#E8700D" vlink="#003050">
8     <h1>Exim changelog for Version 3.00 (previous main release 2.12)</h1>
9
10     <h2>Version 3.00</h2>
11
12     <ol>
13       <li>
14         The documentation has been brought up-to-date for release
15         3.00.
16       </li>
17       <li>
18         The -oMr option is documented as working for non-SMTP and
19         batch SMTP input.  It was being ignored for batch SMTP. This
20         has been fixed.
21       </li>
22       <li>
23         Add #define DN_EXPAND_ARG4_TYPE u_char * to OS/os.h-SCO
24         because it seems that it is one of the operating systems that
25         defines the fourth argument of dn_expand this way.
26       </li>
27     </ol>
28
29
30     <h2>Version 2.954</h2>
31
32     <ol>
33       <li>
34         Log reception of the SMTP "debug" command.
35       </li>
36       <li>
37         Bug introduced by 2.950/15: Exim was incorrectly assuming a
38         dropped SMTP call if the message's data contained a byte with
39         the value 255. (Signed character problem in the private
40         "getc()" code. Sigh.)
41       </li>
42     </ol>
43
44
45     <h2>Version 2.953</h2>
46
47     <ol>
48       <li>
49         Typo in filter.c fixed; some compilers didn't like it, while
50         others were happy.
51         </li><li>
52         Make "fail_soft" for the "self" and host_find_failed domainlist
53         options override a generic setting of no_more.
54       </li><li>
55         Set $self_hostname when self=fail_soft in a router.
56       </li><li>
57         Added /warn and /reject to rbl_domains.
58       </li><li>
59         Reject messages with too many headers instead of just silently
60         pushing the rest into the body.
61       </li><li>
62         Recoded handling of multiple headers in expansion to be
63         (hopefully) more efficient in store usage.
64       </li><li>
65         Restrict the amount of store used by a $h_ expansion to 64K (to
66         catch lunatic messages with a zillion To: headers).
67       </li><li>
68         Add the operator "escape" to string expansions: it escapes all
69         non-printing characters in its argument.
70       </li><li>
71         Make HEADER_MAXHEADERS into a config.h macro to match
72         HEADER_MAXLENGTH so it can be changed easily.
73       </li><li>
74         If Exim reads EOF on an incoming SMTP connection, it assumes a
75         broken connection, but neverthless writes an error response. This
76         was erroneously using a 554 error code instead of 421.
77       </li><li>
78         The private "getc()" code for TCP/IP inputs had the feof and
79         ferror tests the wrong way round (but it shouldn't have mattered
80         much).
81       </li><li>
82         Blank lines were getting written to the log after some "no
83         immediate delivery" messages.
84       </li><li>
85         Increase the maximum length of RBL TXT record data that Exim reads
86         from 127 to 511.
87       </li><li>
88         Include IP address in RBL rejection message.
89       </li><li>
90         To aid in debugging "unexpected disconnection" errors, if the
91         result of read() is negative, the errno message is now added to
92         the logged error.
93       </li>
94     </ol>
95
96     <h2>Version 2.952</h2>
97
98     <ol>
99       <li>
100         White space was not being ignored after a search type ending in
101         "*" or "@*" in a lookup expression in an expansion.
102       </li><li>
103         If the smtp waiting database failed to open, the error message
104         wasn't printing out the interpretation of the value of errno.
105       </li><li>
106         The negative item "!@" was not being correctly handled in a host
107         list.
108       </li><li>
109         Changed the expansion of $tod_full so that the day number is
110         always given as two digits (to match the times, and it helps for
111         regression testing).
112       </li>
113     </ol>
114
115     <h2>Version 2.951</h2>
116
117     <ol>
118       <li>
119         Installed PCRE 2.05 (anchoring bug fix).
120       </li><li>
121         Retrying was not timing out properly when a message suffered a
122         temporary address error. This could result in retrying every queue
123         run after the time when it should have bounced.
124       </li><li>
125         Implemented once_repeat option for the autoreply transport, and a
126         corresponding "once_repeat" option for the mail and vacation
127         commands in mail filters. The vacation command now defaults
128         once_repeat to 7 days.
129       </li><li>
130         Added $message_body_size.
131       </li>
132     </ol>
133
134     <h2>Version 2.950</h2>
135
136     <ol>
137       <li>
138         Big, INCOMPATIBLE re-arrangement of the handling of
139         domain/host/net/address lists by adding negation and reducing the
140         number of options.
141       </li><li>
142         Remove a number of obsolete features; another INCOMPATIBLE change.
143         <ol>
144           <li>
145             Obsolete options - see README.UPDATING.
146           </li><li>
147             No longer allow for pre-0.57 spool files without their names 
148             at the top.
149          </li><li>
150             No longer cater for spool files that don't have a -body_linecount
151             setting. This came in at 1.91, but affects only SIZE for 
152             smtp output, so older spool files might still work.
153           </li><li>
154             No longer ignore commas and semicolons for driver options.
155           </li>
156         </ol>
157       </li><li>
158         Installed PCRE 2.04 - bug fixes and tidies.
159       </li><li>
160
161         The API of DB 2 changed at release 2.5.x by adding an
162         additional option field to the function for starting a
163         cursor. Fixed dbfn.h to cope with both styles - luckily the
164         version number is defined by macros.
165       </li><li>
166         The LDAP library in Solaris 7 has yet another way of handling
167         errors from the search functions - different from either UMich
168         LDAP or the Netscape LDAP SDK. (A pity, since everything else
169         appears to be source-compatible.) It does not seem to be
170         possible to detect the differences automatically. There was a
171         previous fudge to distinguish UMich and Netscape, but I
172         haven't found out how to extend it. Anyway, it gets messier
173         and messier. Instead, there is now a configuration option
174         LDAP_LIB_TYPE which the builder of Exim must set. (If not, the
175         current heuristic still applies.)
176       </li><li>
177         Some tidies in the smtp transport; some error status
178         information might have got lost when debugging was turned on
179         (failing to preserve errno).
180       </li><li>
181         Host names used as part of keys in the retry database were not
182         getting lower cased; consequently if a host appeared in two
183         differently-cased forms (e.g. in MX records, or in a
184         domainlist rule), separate retry records were being created.
185       </li><li>
186         Improve wording of some expansion errors.
187       </li><li>
188         Exim now takes note of the list of alias host names when it
189         uses gethostbyaddr() to look up a host name. Host checks for
190         relaying etc. now check against the alias list as well as
191         against the primary name.
192       </li><li>
193         In the smtp transport, Exim was relying on errno remaining
194         zero after a valid read() call, though one shouldn't really
195         look at its value except in cases of error. It was getting set
196         on at least one OS.
197       </li><li>
198         Because "service" is not what people expect, add "port" as a
199         synonym to all the relevant options.
200       </li><li>
201         The -bh option wasn't giving any commentary on the testing of
202         the sender address (or any other address testing).
203       </li><li>
204
205         Lower case local parts as well as domains when doing tests of
206         address lists, but allow for exception with +caseful.
207       </li><li>
208
209         Make scripts/os-type recognize "sunos4*" instead of just
210         "sunos4".
211       </li><li>
212
213         When reading from an incoming SMTP call, Exim was always
214         flushing the output after every command. This causes an
215         unnecessary number of TCP/IP packets to be used when the
216         remote client is using pipelining. Instead of using the
217         standard C library functions (getc() etc.) in this case, Exim
218         now reads directly from the socket, and flushes the output
219         only when it needs to refill its input buffer.
220
221 16. Re-vamp of the handling of incoming batch SMTP, as suggested by Ian
222 Jackson: (i) sender_verify_batch defaults false. (ii) Always give up entirely
223 on encountering any error while receiving, writing to stdout/stderr and setting
224 a return code. (iii) EOF is now an error.
225
226 17. Make -R[f] and -qf skip frozen messages by default, and implement -Rff
227 etc to force thawing.
228
229 18. Log ETRN from hosts that are not in the permitted list.
230
231 19. The use of log_level to cut out "retry time not reached" from the message
232 log file now applies only to second and subsequent delivery attempts. This
233 means that during the first attempt, something gets written to the file for all
234 addresses, both toplevel ones and generated ones.
235
236 20. Added START_SMALL to monitor build-time configuration to start up with
237 small sized window.
238
239 21. Added $interface_address to hold the incoming interface address, and -oMi
240 to force it.
241
242 22. Cast uids and gids to long int when [s]printf-ing them.
243
244 23. Typo in source: if an alias file used :fail: for an address that was being
245 verified, a 450 rather than a 550 error was given.
246
247 24. Log (main and reject logs) when a VRFY or EXPN command is rejected on
248 policy grounds. Also log (on main log) when an accepted VRFY command fails to
249 verify the address - this is already done for failing verification of RCPT.
250
251 25. For RBL rejections, if prohibition_message is set, use it, with the RBL
252 text in $rbl_text. Otherwise show the text as before.
253
254 26. Implemented $message_body_end. In the process, fixed a possible bug
255 involved with $message_body - the data was being put into non-permanent store,
256 so if the variable was used more than once, there could have been problems.
257
258 27. If the pattern in a route_list item in the domainlist router is a lookup,
259 the data looked up is now available as $value in the hostlist item.
260
261 28. Added the "environment" option to the pipe transport.
262
263 29. If -odi is set (synchronous delivery), pass it on to any re-execs or other
264 calls of Exim (e.g. to send error messages). This helps with automatic testing.
265
266 30. The converter to Texinfo format was turning @sc{xxx} into actual capital
267 letters in section headings, but not in menu items that refer to them. The
268 latest version of Texinfo picks this up. Menu items are now also capitalized.
269
270 31. The change that forces euid=uid when Exim is called by root broke the
271 special processing when CONFIGURE_FILE_USE_EUID is set. This has been fixed.
272
273 32. If an LDAP lookup found an entry, but it had no attributes, it was
274 returning junk. Now it behaves as if the entry was not found.
275
276 33. During a -qq run, delay warnings were being sent after the first pass.
277
278 34. Access to headers in expansion strings is documented only via the syntax
279 $h_name: or $header_name: but *not* using {}. For example, ${h_to} is not
280 documented as legal; by accident it used to work, but ${h_to:} did not because
281 it was taken as an invalid abbreviation for ${hash_to:}. The "accident" has
282 been undone.
283
284 35. Patch to scripts/os-type to cater for Unixware 7 and 7.1.
285
286 36. Changed SCO_SV configuration (for SCO 5) using Tony Earnshaw's information.
287
288 37. Created a Unixware7 configuration using James FitzGibbon's information.
289
290 ****
291       </li>
292     </ol>
293     <hr>
294     <h6>$Id: ChangeLog-3.00.html,v 1.2 1999/05/25 20:46:06 nigel Exp $</h6>
295 <!-- Created: Mon Aug 25 13:12:18 BST 1997 -->
296   </body>
297 </html>