+++ /dev/null
-Version 2.10
-------------
-
-1. The log message for a skipped syntax error in a filter file needed tidying.
-
-2. After a "foranyaddress" condition succeeds in a filter file, the value of
-$thisaddress is available in the commands. It holds whatever what the last
-value tested.
-
-3. Another adjustment to the FreeBSD makefile to make it work in ports and
-non-ports environments.
-
-4. scripts/Configure-Makefile was testing for PERL_COMMAND in the local
-configuration without anchoring the check to the start of a line.
-
-5. Give the error "no local part" instead of "missing colon in route" for
-addresses like <@abcd>.
-
-6. Nested ${lookup} and ${if} items in expanded strings were not working
-correctly if "fail" was present in one of the internal items.
-
-7. A macro expansion at the start of a continuation line of a string was
-getting ignored.
-
-8. Escapes such as \n are now handled conventionally in string expansions.
-
-9. Added numeric comparisons to string expansions.
-
-10. Changed the space checking to use the f_bavail field returned by the
-stat(v)fs function instead of f_bfree, thus testing non-superuser space only.
-Also, for those OS which have it, changed from f_ffree to f_favail for checking
-the number of inodes.
-
-11. Errors in expanding the name of a perl function or its arguments were not
-being passed back correctly.
-
-12. The count of lines in a message (which is used for computing the value for
-the SIZE option on outgoing messages) was not being correctly set for incoming
-non-local SMTP mail.
-
-13. If no_smtp_check_spool_space is set, Exim refrains from checking that there
-is enough space in the spool partition when it receives a SIZE setting on an
-incoming message.
-
-14. Added message_size_limit_count_recipients.
-
-15. Implemented quota_warn_threshold in appendfile.
-
-16. Running exim with -q but without -bd could cause it to crash.
-
-17. In the delivery log line, don't print the original address in <> if the
-only difference from the original address is in the case of the domain(s).
-
-18. Removed the "debug" transport as I haven't used it for years and it is
-simply clutter.
-
-19. Write a log line when a message is abandoned because of a ridiculously long
-header line.
-
-20. If an error is detected while receiving a batch SMTP message (using -bS)
-the error message that is sent now contains information about the sender and
-recipients, and a copy of the headers, when such information has been read
-before the error was detected.
-
-21. If errors_to was set in forwardfile, and a headers_add option used
-$local_part or any other address-specific expansion, the expansion went wrong.
-(The verification of the errors_to address was clobbering the values.) This
-could have applied to other directors and routers too.
-
-22. The smtp_log_connections option should really be called
-log_smtp_connections to fit in with other naming. Added the "correct" name as
-a synonym, and hide the old one in displays.
-
-23. If daemon_smtp_service was set to a named service on a machine with a byte
-order different to network byte order, Exim listened on the wrong port. This
-might have been introduced by change 12 of 2.03.
-
-24. helo_verify wasn't working in the case where the helo argument was a valid
-(but incorrect) host name.
-
-25. Missing information in log for failures from multiple remote hosts.
-
-26. If a malformed response to an SMTP command contained newlines, they were
-written verbatim to the log. They are now converted to \n (and other
-non-printing characters are also escaped).
-
-
-Version 2.054
--------------
-
-1. Insert missing fflush() if starting an SMTP session is rejected.
-
-2. In the default configuration, changed the retry specification to
-
- * * F,2h,15m; G,16h,1h,1.5; F,4d,8h
-
-The difference is that after trying every 15 minutes for 2 hours, it next tries
-one hour later rather than two hours later.
-
-3. Remove the definition of os_strsignal from the FreeBSD os.h, as it seems it
-doesn't have it (ditto BSDI) and also from OpenBSD, just in case. My assumption
-that it's on all BSD systems (based on NetBSD) is clearly false.
-
-4. Updated exim_tidydb so that with the -f flag, it checks for the continued
-presence of a message that has a message-specific retry record.
-
-5. Fix exiqsumm so that it correctly recognizes domain literals in recipient
-addresses.
-
-6. The install script should now install the Texinfo documentation if
-INFO_DIRECTORY is defined, and the source is available.
-
-7. If a screwed-up host sent an SMTP response that contained LF characters,
-they got left as LFs when included in the retry database. This could mess up
-the format of the output from exim_dumpdb. They are now converted into \n.
-
-8. Multiline responses from a remote host are better formatted when -d is set
-for the smtp transport.
-
-9. Fixed a very low-probability file descriptor leak in eximon; if a -J file
-existed and reading the -H file failed, the -J file didn't get closed.
-
-10. Added to the FreeBSD makefile, on Sheldon Hearn's recommendation:
-
-.if ${PORTOBJFORMAT} == "elf"
-XLFLAGS+=-Wl,-rpath,${X11BASE}/lib
-.endif
-
-It allows eximon to be built on FreeBSD ELF systems.
-
-11. Fixed bug in libident/support.c causing crashes on malformed ident data.
-Also fixed another typo bug in libident.
-
-12. If headers_sender_verify was set and there was a syntax error in a header,
-the error message just said "no valid sender". Now it gives details of the
-syntax error.
-
-13. If the expansion of headers_add for pipe and smtp transports failed, the
-reason for the failure was not included in the error message (it was for
-appendfile).
-
-14. Added the "check_local_user" magic to {current,home}_directory in
-forwardfile.
-
-15. Changed the way the Makefile works when embedding Perl. The user need now
-specify only EXIM_PERL=perl.o. The Makefile builder sets default values for the
-other parameters at the top of the file, using the setting of PERL_COMMAND to
-run Perl, when EXIM_PERL is set.
-
-16. When an alias lookup defers because no addresses generated, include the
-syntax error message in the message.
-
-17. In the forwardfile director, the skip_syntax_errors option now applies to
-filter files as well as to conventional .forward files. Added
-syntax_errors_text option to forwardfile and aliasfile.
-
-18. Fixed potential segfault crash in MBX delivery (while computing the
-timestamp).
-
-19. Added $parent_domain, $parent_local_part, $address_file, $address_pipe.
-
-20. The router and director options "domains", "local_parts", "senders", and
-their matching "except_" partners are now expanded.
-
-21. The -bp option wasn't reading messages' -J files, and so wasn't marking
-addresses "delivered" as early as it could.
-
-22. Added the queue_only_file option.
-
-23. The autoreply transport now has a reply_to option, and the "mail" command
-in filters supports "from" and "reply-to" keywords.
-
-24. Pedantic message correction: "all its recipients" => "all of its
-recipients".
-
-25. Added default definition of EX_CONFIG for systems that don't have it.
-
-26. Set no_expn on the forwardfile director in the default configuration.
-
-27. Skip logwrite in filter files when run as a result of EXPN.
-
-28. Allow leading dots in local parts. Exim is already extended to allow null
-components inside or at the end of local parts (e.g. a..b.@xyz) so it doesn't
-seem worth making this extension specifically configurable.
-
-29. Added rbl_log_rcpt_count and rbl_log_headers.
-
-30. The setting of KEEPALIVE on an incoming socket was not being bypassed when
--bh was in use, leading to a warning message.
-
-31. There was a long-standing problem with queue runners when a delivery that
-was started by a queue runner passed on one or more TCP/IP connections to
-another process. The problem was that the queue runner did not know this, and
-went on to start more deliveries. If there were a large number of messages
-queued for one host, this could cause too many delivery processes to be
-running. The queue runner process is now told about additional descendent
-processes, and it waits for them all to finish before moving on to the next
-message.
-
-
-
-Version 2.053
--------------
-
-1. Reword message for not-found driver to emphasize which kind of driver.
-
-2. Give pid and ppid in message about process creation failure.
-
-3. If addresses on the command line for a -t message cause all included
-addresses to get deleted, give a special "no recipients" error, mentioning the
-cause. (Previously the message just never got delivered to anybody.)
-
-4. If a user's filter file has "seen finish" with no significant deliveries,
-write a log line of the form "=> discarded <address> D=director" to indicate
-what has happened.
-
-5. Added match_directory to forwardfile.
-
-6. If match_directory was set on localuser, and it was an expanded string, and
-the resulting pattern was a regular expression, and more than one address was
-processed by this director such that the expansions gave differing patterns,
-then things went wrong because the first pattern was used every time owing to
-caching of the compiled regular expression.
-
-7. When doing a 2-stage queue run (using the -qq option) a message about
-queue_smtp was written to each individual message log (though suppressed on the
-main log).
-
-8. If the log level is set less than 5, messages about retry time not reached
-are no longer written to individual message logs.
-
-9. If the replacement string for a rewrite rule is "*" then addresses matching
-the patterns and the flags are not rewritten, and no further rules are tried.
-
-10. Added -bpr, -bpru, -bpra which are like the versions without the 'r', but
-display the list in random order.
-
-11. Added log_smtp_syntax_errors.
-
-12. Added ${uc:} operator.
-
-13. Added ignore_fromline_nets and ignore_fromline_local.
-
-14. After SMTP transport errors such as "connection reset by peer" the text of
-the error appeared twice in the log line.
-
-15. Added :unknown: for use in alias files.
-
-16. Give full search_type in debugging info for aliasfile.
-
-17. Added generic transport option message_size_limit.
-
-18. Added quota_filecount to appendfile, to apply when delivering into a
-directory.
-
-19. When delivering into a directory and quota was exceeded, the "time since
-last read" field, which applies to individual mailboxes, was getting set to to
-junk values, and could cause a retry record to time out prematurely.
-
-20. Show sender address in debugging output.
-
-21. Allow non-trusted users to use -f when running -bt or -bv.
-
-22. If a transport returns PANIC, Exim used to panic log and die. Now it just
-panic logs - so other addresses do get processed.
-
-23. In aliasfile and forwardfile, the *_transport options can now be expanded
-strings. If the result isn't a named transport, the address gets deferred, and
-the message gets frozen.
-
-24. Expanded transport names on directors and routers are now checked only if
-the driver handles the address.
-
-25. Bug introduced in new SMTP temporary problem handling meant that the
-wait-smtp database wasn't always updated when it should have been.
-
-26. Added support for MBX mailboxes (a) the format and (b) the locking.
-Upgraded exim_lock.
-
-27. Added body_only and headers_only generic transport options.
-
-
-Version 2.052
--------------
-
-1. Added return_path generic option to the transports. This can re-expand the
-return path at transport time and do things like sticking in the recipient's
-address (i.e. it makes VERP support possible).
-
-2. If, during a remote parallel delivery in a subprocess, an SMTP error
-response had a humongously long text associated with it, Exim crashed.
-
-3. When there are no deferred addresses, convert any message-specific retry
-record updates into deletes. This does some useful tidying in cases when one
-host produces such an error and a subsequent one succeeds or fails hard.
-
-4. If retry_include_ip_address was set false in an SMTP transport, then the
-retrying was not searching for a rule keyed on the domain in addition to a rule
-keyed on the host.
-
-5. Added "rewrite" option to smartuser, cf aliasfile and forwardfile.
-
-6. When verifying or testing an address, if both a director and router are set,
-show both in the output, as is done on log lines for deliveries.
-
-7. Implemented lookup_open_max for controlling the maximum number of cached
-lookup opens for lookup types that use real files.
-
-
-Version 2.051
--------------
-
-1. Added bsdi4.0 as an os-type, equivalent to BSDI.
-
-2. Removed definition of DN_EXPAND_ARG4_TYPE as u_char * for IRIX 6.5, as that
-release of IRIX is now compatible with most other OS so the default is OK.
-
-3. The exiwhat script no longer uses "cut" to fish the process numbers out of
-"ps" output because it doesn't work on all systems. (IRIX 6.5 has longer pids.)
-It now uses awk instead, to get the first field, whatever length it is.
-
-4. Installed PCRE version 2.01 (Perl 5.005 compatible).
-
-5. Revamped the way the working makefile in the build directory is created.
-This also involved some modification to some of the files in the scripts
-directory. At the top level one still runs "make" on its own, but this no
-longer involves a nested call to "make" in order to create the lower-level
-makefile (which is now called Makefile with a capital M). If run from within
-the build directory, it is no longer capable of re-building itself. Further
-revampings were done to ensure that the behaviour is the same on IRIX as on
-other systems with regard to rebuilding. The "make" program on IRIX behaves
-differently in regard to targets that are forced but don't actually rebuild the
-file of that name.
-
-6. The source has been tidied in places as a result of a -fullwarn run on the
-IRIX 6.5 compiler. In Exim itself, one set of warnings, in store.c, remains; I
-haven't been able to find a way to write the code so that it doesn't generate
-them. In the Exim monitor, there are warnings for the modified StripChart and
-TextPop modules taken from the Athena widgets.
-
-7. LFLAGS has been set to -Wl,-LD_MSG:off=85 for IRIX 6.5. This suppresses the
-warning about StripChart and TextPop overriding those in the Xaw library when
-linking eximon.bin.
-
-8. Unwanted \n at end of log message for too many message in one connection
-removed.
-
-9. Log entries for queued messages on a single SMTP connection other than the
-first such message were incorrectly given as if the queueing was for too many
-SMTP connections, instead of for too many messages or load average too high.
-
-10. Changed the OS/Makefile-FreeBSD setting to X11=$(X11BASE) instead of
-X11=/usr/X11.
-
-11. Improved the output for host testing with the -bh option; more detail of
-the order of testing accept/reject lists etc. is now given.
-
-12. The pipe transport now gives the signal name in the log message when its
-child is ended by signal. For Solaris 2, BSD-derived systems, and Linux, the
-strsignal() function is called. For the rest, there is a built-in function that
-covers the most important signals.
-
-13. The pipe transport now attempts to give a possible explanation when its
-child is ended by a non-zero exit code. As these aren't standardised, it has to
-use the uncertain phrase "could mean".
-
-14. Helo_accept_junk_hosts wasn't allowing the junk to start with [.
-
-15. Remove trailing spaces from Local/Makefile when building Makefile, as
-they can cause trouble in some of the sed commands for building scripts.
-
-16. A new test for options settings threw up two obscure ones that were out of
-alphabetical order in the source. Also some poorly worded configuration error
-messages.
-
-17. The domainlist router wasn't accepting the route_queries option if
-route_list wasn't set, complaining "either route_list or route_file or
-route_query required".
-
-18. The queryprogram router had options called "user" and "group" which
-conflicted with the generic options of the same name (which got invented
-later, for 1.929). The options for queryprogram have been renamed
-"command_user" and "command_group".
-
-19. When the -t option was set, Exim was barfing at header lines like
-
- To: Recipient list not shown:;
-
-and complaining about "empty address", even if there were valid addresses in
-the Cc or Bcc headers.
-
-20. The second part of change 10 for 2.05 was a disaster in the case of
-temporary errors after MAIL FROM, DATA, and ".", because it meant that one
-dodgy message could hold up other mail for the recipients involved. Backed it
-out. However, the action after RCPT TO is OK, and remains.
-
-21. If a listening daemon was run without a -q option to start queue-runners,
-it could occasionally crash when a message-accepting process ended.
-
-22. Added smtp_accept_max_per_host. Required smtp_accept_max to be set if this
-or smtp_accept_queue is set.
-
-23. Added keepalive options for incoming and outgoing SMTP.
-
-24. Reworded the message that is output at the end of filter testing, as it was
-confusing to users. (It wasn't clear that 'delivered is false' meant that the
-message would be delivered normally.)
-
-25. Bug in handling exceedingly long configuration lines fixed.
-
-26. Added Malcolm Beattie's patch for calling Perl from string expansion.
-
-27. A new approach to handling temporary errors in the smtp transport. Details
-documented in NewStuff.
-
-28. Bug in exiqsumm showed up under Perl 5.005; the sorting wasn't working
-correctly.
+++ /dev/null
-Version 2.11
-------------
-
-1. Adjustment of code for catching over-long multi-line SMTP responses to
-do a better job in the case of packets not ending in \r\n.
-
-2. Ignore any user-supplied whitespace (in particular, newlines) at the end of
-smtp_banner; previously it was starting a continuation response, and then never
-completing it, as there was nothing left.
-
-3. Eximstats: computed incorrect total size of local deliveries.
-
-4. If NO_SYSEXITS is set, don't make assumptions about the existence of exit
-definitions in the strexits() function in os.c.
-
-5. Tweak DGUX os.h file for strsignal and add HAVE_MMAP.
-
-6. If a bounce message was constructed without any directing/routing having
-occurred, Exim crashed. This could be provoked by -Mg, or if routing/directing
-was deferred until the message retry time was exceeded. The bounce message
-could be sent multiple times in the latter case, and did not contain a copy of
-the original.
-
-7. Don't insist on a transport for the domainlist router if verify_only is set.
-
-8. The count of lines in messages read from stdin with the -i option (ended
-only by EOF) was not getting set correctly.
-
-9. When calling itself to send an error or a warning message, Exim wasn't
-setting the -oi option, thus causing truncation of any enclosed text such as a
-copy of the incoming message or the output of a pipe if it contained a line
-with only a full stop in it.
-
-10. Added dns_check_names_pattern to provide control over the syntax check.
-
-11. If a DNS MX lookup fails the syntax check, don't go on to look for an A
-record; and if called from lookuphost, don't go on to try widening the name.
-
-12. Add the identity of the RBL domain to the log when in RBL warning mode,
-and also to the messages output during -bh testing.
-
-13. Do not stop scanning the list of RBL domains when one matches in warning
-mode; ensure that X-RBL-Warning headers are added for all that match.
-
-14. When testing with -bh, output a reminder after the final 250 after "." that
-this is not for real.
-
-15. Added max_username_length.
-
-16. The log phrase "Error while handling error message" has been made more
-accurate by changing it to "Error while reading a message with no usable sender
-address", and a reference to the generating message added if there is one.
-
-17. If -oee was set and the sender of a malformed incoming message was <>, so
-that no error message could be sent, the return code was zero rather than 1
-(i.e. it wasn't noticing it hadn't sent an error message).
-
-18. If a non-SMTP message contains no recipients and error reporting is by mail
-and no error message can be sent, the return code from Exim is now 2 instead of
-1. This is so it can detect this case in the autoreply transport.
-
-19. If the autoreply transport detects return code 2 for the message it has
-submitted (no recipients) it no longer defers delivery. This means that
-autoreplies to $sender_address when that is <> just get ignored (but there is
-an entry on the log for the error).
-
-20. Improved the error message that is given when an alias file or route list
-file has the wrong mode, since this seems to confuse people.
-
-21. Treat disconnection after end of data as a message error rather than a host
-error.
-
-22. Expanded the "file has wrong uid/gid" message to include the uids or gids
-which don't match.
-
-23. Installed PCRE 2.02 (minor tidies).
-
-24. If a system filter discarded a message (by "seen finish" or similar) then
-the log said "original recipients ignored", but had no => line. Now it contains
-"=> discarded (message_filter)" instead, to be like the logging that happens
-when a user filter discards a message.
-
-25. Exinext was not displaying routing delays for specific addresses if the
-domain successfully routed to a remote host. These can now exist in these
-circumstances after temporary recipient-specific errors. Likewise it was not
-capable of picking out message-specific retry data when given a message id.
-
-26. Pipe delivery timeouts were not working if the writes to the pipe got
-blocked (they only worked while waiting for the process to complete after doing
-all the writing). Furthermore, after a timeout Exim just killed the process it
-had created; if that process created further subprocesses they got left
-running. It now makes the created process a process group leader, and kills the
-whole process group, which will catch simple cases that don't themselves start
-new process groups. Also, after detecting a timeout and killing the subprocess,
-the third process that was reading from the output pipe didn't always die
-immediately. The reading process is now forcibly killed along with the timed
-out process group.
-
-27. If a queryprogram process timed out, Exim wasn't killing it. It now kills
-the whole process group, as for pipes (see 26 above).
-
-28. If a pipe produced output, any error message was omitted from the bounce
-message (this was to avoid "output message generated"), but this omitted
-information about timeouts. The error information is now included except for
-DEFER and OK returns.
-
-29. Added "hosts_override" to the smtp transport.
-
-30. Fixed two code infelicities in mailstore format delivery: (a) after opening
-RDONLY, a stream of type "w+" was made (this fails on Linux), and the call to
-fdopen() was not checked for errors; (b) the fd was closed directly, instead of
-the stream.
+++ /dev/null
-Version 2.12
-------------
-
-1. Adjusted scripts/os-type to cope with IRIX 6.5.2m which annoyingly has to be
-treated as a different OS.
-
-2. Removed #define SYSCTL_IP_INTERFACES from OS/os.h-IRIX, because this feature
-is only in IRIX versions greater than or equal to 6.2.
-
-3. Removed the optimization for copying routing from one address to another
-with the same domain. This should have been cut out as soon as the possibility
-of using $local_part in router configurations was recognized. Also, using
-"unseen" on a router causes problems as well.
-
-4. The use of "unseen" on a router or director was not working properly if
-there was a deferment of delivery. Whichever of the unseen/real deliveries
-deferred did not get tried again because Exim thought it had delivered the
-original address.
-
-5. Error message when remote closed connection had spurious ": NULL" on the end
-of it.
-
-6. Eximon: if a message had no undelivered addresses, Eximon was omitting it
-from its queue listing.
-
-7. The name of a driver was not being macro-expanded.
-
-8. Remove the old "expiring address" code from smartuser, as it hasn't been
-compiled for a long time, and was throwing up comments in Y2K testing.
-
-9. Added USE_DB=yes to the FreeBSD Makefile, since all versions come with
-Berkeley DB.
-
-10. Added /usr/include/mit in the XINCLUDE for Ultrix, since some versions need
-it.
-
-11. Modified the arch-type script to call uname -m if uname -p returns
-"unknown", which apparently happens on some Linux systems.
-
-12. If a forward file contained an unterminated quote or comment, it caused the
-address not to be terminated at the end of the line, thus swallowing subsequent
-lines.
-
-13. Split the HP-UX configuration files into HP-UX-9 for release 9 and HP-UX
-for the current release, which is more POSIX compliant. This has been tested on
-release 11.00. Anybody using release 10 may have to fiddle with them.
-
-14. Changed tests on __hpux in the libident library to tests on hpux. This
-picks out the pre-POSIX releases of HP-UX where different argument types are
-required for select(). In the current release, hpux is, quite correctly, not
-defined (__hpux is defined).
-
-15. Fiddled with the dummy functions in various places to stop the picky HP-UX
-ANSI compiler from complaining that they were infinite loops.
-
-16. Fixed problem which occurred when a source-routed address was routed to the
-local host. It should get rewritten with the first host stripped off; this was
-screwing up the original address, causing problems with (a) logging and (b) the
-contents of the header file if the delivery was deferred.
-
-17. Added qualify_single and search_parents options to domainlist router.
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>exim changelogs - Version 3.00 (previous main release 2.12)</title>
- </head>
-
- <body bgcolor="#FFFFBF" text="#00005A" link="#000060" alink="#E8700D" vlink="#003050">
- <h1>Exim changelog for Version 3.00 (previous main release 2.12)</h1>
-
- <h2>Version 3.00</h2>
-
- <ol>
- <li>
- The documentation has been brought up-to-date for release
- 3.00.
- </li>
- <li>
- The -oMr option is documented as working for non-SMTP and
- batch SMTP input. It was being ignored for batch SMTP. This
- has been fixed.
- </li>
- <li>
- Add #define DN_EXPAND_ARG4_TYPE u_char * to OS/os.h-SCO
- because it seems that it is one of the operating systems that
- defines the fourth argument of dn_expand this way.
- </li>
- </ol>
-
-
- <h2>Version 2.954</h2>
-
- <ol>
- <li>
- Log reception of the SMTP "debug" command.
- </li>
- <li>
- Bug introduced by 2.950/15: Exim was incorrectly assuming a
- dropped SMTP call if the message's data contained a byte with
- the value 255. (Signed character problem in the private
- "getc()" code. Sigh.)
- </li>
- </ol>
-
-
- <h2>Version 2.953</h2>
-
- <ol>
- <li>
- Typo in filter.c fixed; some compilers didn't like it, while
- others were happy.
- </li><li>
- Make "fail_soft" for the "self" and host_find_failed domainlist
- options override a generic setting of no_more.
- </li><li>
- Set $self_hostname when self=fail_soft in a router.
- </li><li>
- Added /warn and /reject to rbl_domains.
- </li><li>
- Reject messages with too many headers instead of just silently
- pushing the rest into the body.
- </li><li>
- Recoded handling of multiple headers in expansion to be
- (hopefully) more efficient in store usage.
- </li><li>
- Restrict the amount of store used by a $h_ expansion to 64K (to
- catch lunatic messages with a zillion To: headers).
- </li><li>
- Add the operator "escape" to string expansions: it escapes all
- non-printing characters in its argument.
- </li><li>
- Make HEADER_MAXHEADERS into a config.h macro to match
- HEADER_MAXLENGTH so it can be changed easily.
- </li><li>
- If Exim reads EOF on an incoming SMTP connection, it assumes a
- broken connection, but neverthless writes an error response. This
- was erroneously using a 554 error code instead of 421.
- </li><li>
- The private "getc()" code for TCP/IP inputs had the feof and
- ferror tests the wrong way round (but it shouldn't have mattered
- much).
- </li><li>
- Blank lines were getting written to the log after some "no
- immediate delivery" messages.
- </li><li>
- Increase the maximum length of RBL TXT record data that Exim reads
- from 127 to 511.
- </li><li>
- Include IP address in RBL rejection message.
- </li><li>
- To aid in debugging "unexpected disconnection" errors, if the
- result of read() is negative, the errno message is now added to
- the logged error.
- </li>
- </ol>
-
- <h2>Version 2.952</h2>
-
- <ol>
- <li>
- White space was not being ignored after a search type ending in
- "*" or "@*" in a lookup expression in an expansion.
- </li><li>
- If the smtp waiting database failed to open, the error message
- wasn't printing out the interpretation of the value of errno.
- </li><li>
- The negative item "!@" was not being correctly handled in a host
- list.
- </li><li>
- Changed the expansion of $tod_full so that the day number is
- always given as two digits (to match the times, and it helps for
- regression testing).
- </li>
- </ol>
-
- <h2>Version 2.951</h2>
-
- <ol>
- <li>
- Installed PCRE 2.05 (anchoring bug fix).
- </li><li>
- Retrying was not timing out properly when a message suffered a
- temporary address error. This could result in retrying every queue
- run after the time when it should have bounced.
- </li><li>
- Implemented once_repeat option for the autoreply transport, and a
- corresponding "once_repeat" option for the mail and vacation
- commands in mail filters. The vacation command now defaults
- once_repeat to 7 days.
- </li><li>
- Added $message_body_size.
- </li>
- </ol>
-
- <h2>Version 2.950</h2>
-
- <ol>
- <li>
- Big, INCOMPATIBLE re-arrangement of the handling of
- domain/host/net/address lists by adding negation and reducing the
- number of options.
- </li><li>
- Remove a number of obsolete features; another INCOMPATIBLE change.
- <ol>
- <li>
- Obsolete options - see README.UPDATING.
- </li><li>
- No longer allow for pre-0.57 spool files without their names
- at the top.
- </li><li>
- No longer cater for spool files that don't have a -body_linecount
- setting. This came in at 1.91, but affects only SIZE for
- smtp output, so older spool files might still work.
- </li><li>
- No longer ignore commas and semicolons for driver options.
- </li>
- </ol>
- </li><li>
- Installed PCRE 2.04 - bug fixes and tidies.
- </li><li>
-
- The API of DB 2 changed at release 2.5.x by adding an
- additional option field to the function for starting a
- cursor. Fixed dbfn.h to cope with both styles - luckily the
- version number is defined by macros.
- </li><li>
- The LDAP library in Solaris 7 has yet another way of handling
- errors from the search functions - different from either UMich
- LDAP or the Netscape LDAP SDK. (A pity, since everything else
- appears to be source-compatible.) It does not seem to be
- possible to detect the differences automatically. There was a
- previous fudge to distinguish UMich and Netscape, but I
- haven't found out how to extend it. Anyway, it gets messier
- and messier. Instead, there is now a configuration option
- LDAP_LIB_TYPE which the builder of Exim must set. (If not, the
- current heuristic still applies.)
- </li><li>
- Some tidies in the smtp transport; some error status
- information might have got lost when debugging was turned on
- (failing to preserve errno).
- </li><li>
- Host names used as part of keys in the retry database were not
- getting lower cased; consequently if a host appeared in two
- differently-cased forms (e.g. in MX records, or in a
- domainlist rule), separate retry records were being created.
- </li><li>
- Improve wording of some expansion errors.
- </li><li>
- Exim now takes note of the list of alias host names when it
- uses gethostbyaddr() to look up a host name. Host checks for
- relaying etc. now check against the alias list as well as
- against the primary name.
- </li><li>
- In the smtp transport, Exim was relying on errno remaining
- zero after a valid read() call, though one shouldn't really
- look at its value except in cases of error. It was getting set
- on at least one OS.
- </li><li>
- Because "service" is not what people expect, add "port" as a
- synonym to all the relevant options.
- </li><li>
- The -bh option wasn't giving any commentary on the testing of
- the sender address (or any other address testing).
- </li><li>
-
- Lower case local parts as well as domains when doing tests of
- address lists, but allow for exception with +caseful.
- </li><li>
-
- Make scripts/os-type recognize "sunos4*" instead of just
- "sunos4".
- </li><li>
-
- When reading from an incoming SMTP call, Exim was always
- flushing the output after every command. This causes an
- unnecessary number of TCP/IP packets to be used when the
- remote client is using pipelining. Instead of using the
- standard C library functions (getc() etc.) in this case, Exim
- now reads directly from the socket, and flushes the output
- only when it needs to refill its input buffer.
-
-16. Re-vamp of the handling of incoming batch SMTP, as suggested by Ian
-Jackson: (i) sender_verify_batch defaults false. (ii) Always give up entirely
-on encountering any error while receiving, writing to stdout/stderr and setting
-a return code. (iii) EOF is now an error.
-
-17. Make -R[f] and -qf skip frozen messages by default, and implement -Rff
-etc to force thawing.
-
-18. Log ETRN from hosts that are not in the permitted list.
-
-19. The use of log_level to cut out "retry time not reached" from the message
-log file now applies only to second and subsequent delivery attempts. This
-means that during the first attempt, something gets written to the file for all
-addresses, both toplevel ones and generated ones.
-
-20. Added START_SMALL to monitor build-time configuration to start up with
-small sized window.
-
-21. Added $interface_address to hold the incoming interface address, and -oMi
-to force it.
-
-22. Cast uids and gids to long int when [s]printf-ing them.
-
-23. Typo in source: if an alias file used :fail: for an address that was being
-verified, a 450 rather than a 550 error was given.
-
-24. Log (main and reject logs) when a VRFY or EXPN command is rejected on
-policy grounds. Also log (on main log) when an accepted VRFY command fails to
-verify the address - this is already done for failing verification of RCPT.
-
-25. For RBL rejections, if prohibition_message is set, use it, with the RBL
-text in $rbl_text. Otherwise show the text as before.
-
-26. Implemented $message_body_end. In the process, fixed a possible bug
-involved with $message_body - the data was being put into non-permanent store,
-so if the variable was used more than once, there could have been problems.
-
-27. If the pattern in a route_list item in the domainlist router is a lookup,
-the data looked up is now available as $value in the hostlist item.
-
-28. Added the "environment" option to the pipe transport.
-
-29. If -odi is set (synchronous delivery), pass it on to any re-execs or other
-calls of Exim (e.g. to send error messages). This helps with automatic testing.
-
-30. The converter to Texinfo format was turning @sc{xxx} into actual capital
-letters in section headings, but not in menu items that refer to them. The
-latest version of Texinfo picks this up. Menu items are now also capitalized.
-
-31. The change that forces euid=uid when Exim is called by root broke the
-special processing when CONFIGURE_FILE_USE_EUID is set. This has been fixed.
-
-32. If an LDAP lookup found an entry, but it had no attributes, it was
-returning junk. Now it behaves as if the entry was not found.
-
-33. During a -qq run, delay warnings were being sent after the first pass.
-
-34. Access to headers in expansion strings is documented only via the syntax
-$h_name: or $header_name: but *not* using {}. For example, ${h_to} is not
-documented as legal; by accident it used to work, but ${h_to:} did not because
-it was taken as an invalid abbreviation for ${hash_to:}. The "accident" has
-been undone.
-
-35. Patch to scripts/os-type to cater for Unixware 7 and 7.1.
-
-36. Changed SCO_SV configuration (for SCO 5) using Tony Earnshaw's information.
-
-37. Created a Unixware7 configuration using James FitzGibbon's information.
-
-****
- </li>
- </ol>
- <hr>
- <h6>$Id: ChangeLog-3.00.html,v 1.2 1999/05/25 20:46:06 nigel Exp $</h6>
-<!-- Created: Mon Aug 25 13:12:18 BST 1997 -->
- </body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>exim changelogs - Version 3.01</title>
- </head>
-
- <body bgcolor="#FFFFBF" text="#00005A" link="#000060" alink="#E8700D" vlink="#003050">
- <h1>Exim changelog for Version 3.01</h1>
-
- <ol>
- <li>
- Exim wasn't always handling (i.e. ignoring) white space
- following an exclamation mark introducing a negative item in a
- domain, host, or address list.
- </li>
- <li>
- Exim was failing to compile under SunOS4 because on that OS
- getc, ungetc, feof, and ferror are defined only as macros and
- not as assignable functions (which Exim now needs). A suitable
- lash-up has been provided for this operating system.
- </li>
- </ol>
- <hr>
- <h6>$Id: ChangeLog-3.01.html,v 1.2 1999/05/25 20:46:06 nigel Exp $</h6>
-<!-- Created: Mon Aug 25 13:12:18 BST 1997 -->
- </body>
-</html>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>exim changelogs - Version 3.10</title>
- </head>
-
- <body bgcolor="#FFFFFF" text="#00005A" link="#000060" alink="#E8700D" vlink="#003050">
- <h1>Exim changelog for Version 3.10 - last non-testing release was 3.03</h1>
-
-<h2>New Features and user visible changes</h2>
-
-<ol>
-
-<li>The option log_queue_run_level specifies the log level for the
-messages "Start queue run" and "End queue run". The default is 0.</li>
-
-<li>Addition of forbid_lookup, forbid_existstest and forbid_perl to
-the forwardfile director.</li>
-
-<li>All directors except smartuser had current_directory and
-home_directory options, to set values used at transport time. These
-options have now been made generic, so now apply to all
-directors.</li>
-
-<li>If SUPPORT_MOVE_FROZEN_MESSAGES is set at compile time, the new
-option move_frozen_messages causes frozen messages and their message
-logs to be moved from the input and msglog directories on the spool to
-Finput and Fmsglog. There is currently no support in Exim or the
-standard utilities for handling such moved messages and they won't
-show up in lists generated by -bp or eximon.</li>
-
-<li>If no transport is specified for a smartuser director, the
-new_address field may now specify a comma-separated list of new
-addresses, and :blackhole:, :defer: and :fail: can also be used
-there. In otherwords, new_address is like a line from an alias file
-(except that :include: is not supported).</li>
-
-<li>The exigrep utility now automatically zcats any log file whose
-name ends in COMPRESS_SUFFIX, using ZCAT_COMMAND, as defined in
-Local/Makefile.</li>
-
-<li>The expansion condition first_delivery is true for the first
-delivery attempt on a message; queue_running is true when a delivery
-attempt is caused by a queue runner.</li>
-
-<li>When log_refused_recipients is set, each log line now has a reason
-for refusal such as "(RBL)" or "(sender_reject_recipients)".</li>
-
-<li>The magic string "+warn_unknown" behaves like "+allow_unknown",
-but it writes a log line every time it lets through a host whose name
-can't be looked up.</li>
-
-<li>If EXIMON_LOG_FILE_PATH is set in the environment when eximon
-starts up, it overrides the configuration setting. This makes it
-possible to have eximon tailing log data that is written to syslog,
-provided that MAIL.INFO messages are routed to a separate file.</li>
-
-<li>Policy rejections of recipients can now be overridden for certain
-senders by setting recipients_reject_except_senders.</li>
-
-<li>When all deferred addresses have the same domain, it is set in
-$domain during the expansion of delay_warning_condition. For pipes,
-files, or autoreplies, this is the domain of the parent.</li>
-
-<li>-Rr (and -Rrf, -Rrff) treat the string as a regular
-expression.</li>
-
-<li>Added -S (with all variations), which works like -R except that it
-checks the message's sender instead of the undelivered recipients. If
-both -R and -S are given, both conditions must be satisfied.</li>
-
-<li>The new expansion variable $message_age contains the length of
-time since the message was received as a number of seconds.</li>
-
-<li>The syntax of LDAP queries has been extended to allow the passing
-of more information than is available in the LDAP URL. An LDAP query
-may now consist of a URL preceded by any number of "name=value"
-settings, separated by spaces. If a value contains spaces it must be
-enclosed in double quotes, and when double quotes are used, backslash
-is interpreted in the usual way inside them. The following names are
-recognized:
-<dl>
-<dt>USER</dt> <dd>set the DN for authenticating the LDAP bind</dd>
-<dt>PASS</dt> <dd>set the password </dd>
-<dt>SIZE</dt> <dd>set the limit for the number of entries returned</dd>
-<dt>TIME</dt> <dd>set the maximum waiting time for a query</dd>
-</dl>
-</li>
-
-<li>Callers whose gid is Exim's gid are now automatically trusted
-(only the uid was looked at previously).</li>
-
-<li>There's a new option called admin_groups. If the current or any of
-the supplementary groups of the caller is in this list, the caller has
-admin user privileges.</li>
-
-<li>There is now support for PAM (Pluggable Authentication Modules), a
-facility which is available in the latest releases of Solaris and in
-some GNU/Linux distributions (see
- <a href="http://ftp.at.kernel.org/pub/linux/libs/pam/">http://ftp.at.kernel.org/pub/linux/libs/pam/</a>).</li>
-
-<li>The file that the exiwhat mechanism uses for process status
-information is no longer bundled with the log files. Instead,
-"exim-process.info" in the spool directory is used.</li>
-
-<li>Exim can now be configured to log to syslog as well as or instead
-of to local log files. </li>
-
-<li>There's a new expansion operator called "mask" which converts an
-IP address to binary, masks off the least significant bits, and
-converts the result back to text, with mask appended. For example:
-${mask:10.111.131.206/28} returns the string
-"10.111.131.192/28". </li>
-
-<li>There exist some rare networking situations (for example, packet
-radio) where it is helpful to be able to translate IP addresses
-generated by normal routing mechanisms into other IP addresses, thus
-performing a kind of manual IP routing. This should be done only if
-the normal IP routing of the TCP/IP stack is inadequate or
-broken. Exim now has this capability.</li>
-
-<li>A new option called retry_data_expire (default 7d) specifies that
-retry data older than this should be ignored. This means that if, for
-example, a host hasn't been tried for 7 days, Exim will behave as if
-it had no knowledge of past failures.</li>
-
-<li>To help with formulating lookup queries, there is a new expansion
-operator
-
-<tt>${quote_<lookup-type>:<string>}</tt>
-
-which quotes the characters of the string in a lookup-specific way. For
-example, the safest way to write a NIS+ query is
-
-<tt>[name="${quote_nisplus:$local_part}"]</tt>
-</li>
-
-<li>The from_hack option in the appendfile and pipe transports has
-been replaced by two string options, check_string and
-escape_string. When set, the start of each line is tested for matching
-check_string, and if it does, those characters are replaced by the
-contents of escape_string.</li>
-
-<li>The appendfile transport has a new option called file_format,
-defaulting unset. If set, it requests the transport to check the
-format of an existing file before adding to it.</li>
-
-<li>There is a new expansion condition called crypteq, which is
-automatically available if Exim is built to support any authentication
-mechanisms. Otherwise, it is necessary to define SUPPORT_CRYPTEQ to
-get it included in the binary. The crypteq condition has two
-arguments. The first is encrypted and compared against the second,
-which is already encrypted. Two encryption types are currently
-supported:
-<ul>
- <li>md5 first computes the MD5 digest of the string, and
- then expresses this as printable characters by means of the
- base64 encoding.</li>
-
- <li>crypt calls the crypt() function as used for encrypting
- login passwords.</li>
-</li>
-
-<li>There is now support for the AUTH extension to SMTP (RFC 2554),
-both as a client and as a server.</li>
-
-<li>The -bv option now runs interactively, like -bt, if no addresses
-are given on the command line.</li>
-
-<li>There is a new option called -be which is for testing string
-expansion. If no arguments are given it runs interactively. It simply
-does a string expansion on arguments (or data lines) and outputs the
-result.</li>
-
-<li>The GNU/Hurd operating system is now supported.</li>
-
-<li>If quota is specified on an appendfile transport, then
-quota_warn_threshold may optionally be specified as a percentage.</li>
-
-<li>There's an alternative hashing function for expanded strings,
-called "nhash" for "numeric hash". An item of the form
-${nhash_<n>:string} produces a number in the range 0-n, while an item
-of the form ${nhash_<n>_<m>:string} produces two numbers, separated by
-a '/', in the ranges 0-n and 0-m respectively, using a div/mod
-hash.</li>
-
-<li>The expansion variable $host_lookup_failed contains "1" if there
-has been an attempt to look up the sending host's name from its IP
-address, and this has failed to find the name. Otherwise
-$host_lookup_failed contains "0".</li>
-
-<li>The exim_dbmbuild utility now warns if it encounters a duplicate
-key. By default, only the first of a set of duplicates is used - this
-is a change from the previous state, but it does make it compatible
-with lsearch lookups. There is an option -lastdup which causes it to
-use the last instead, which is compatible with what it did
-before. There is also an option -nowarn, which stops it listing
-duplicate keys to stderr. If any duplicates are encountered, the
-return code is 1. For other errors, where it doesn't actually make a
-new file, the return code is 2.</li>
-
-<li>There is a new option called ldap_default_servers which can be
-used to supply a colon-separated list of replicated LDAP servers. If
-an LDAP lookup has no server mentioned in the URL, that is, the URL
-begins "ldap:///...", and ldap_default_servers is set, then the query
-is passed to each of the listed servers in turn.</li>
-
-<li>There is now a variant of the dbm lookup type called dbmnz, which
-does not include a trailing binary zero in the keystring that is
-looked up.</li>
-
-<li>Support for MYSQL is now available when LOOKUP_MYSQL is
-defined.</li>
-
-<li>In a system filter file (but not in a user filter) a "deliver"
-command may now be followed by "errors_to <some address>" in order to
-change the envelope sender (and hence the error reporting) for that
-delivery.</li>
-
-<li>The number can now be omitted from host list net searches, in
-which case the IP address is looked up without masking and without any
-additional text. For example, if an item in a host list is
-net-lsearch;/some/file and the calling host has IP address 10.9.8.7
-then the key that is used in the lookup is "10.9.8.7".</li>
-
-<li>When IPv6 addresses are used in net lookups, the separator between
-the components is "." rather than the conventional ":" because colon
-is the key terminator in lsearch files. The full, unabbreviated IPv6
-address is always used.</li>
-
-<h1>Changelogs</h1>
-
-<h2>Version 3.10</h2>
-<pre>
-
-1. Exim was crashing when lookup_open_max was exceeded if the type of file
-being closed was different to the type of file being opened.
-
-2. Some further tidies of the os-type and arch-type scripts.
-
-3. ENOSPC is not treated in the same way as a quota error for the purposes of
-retrying.
-
-4. The revised exigrep (3.091/26) had "gz" and "Z" built in. Change it to check
-for COMPRESS_SUFFIX.
-
-5. If a reverse lookup done within a message failed because the name looked up
-had no matching forward lookup, the error text for this got obliterated at the
-end of the message, and so if it was needed for a subsequent message on the
-same SMTP connection, junk got logged.
-
-
-Version 3.093
--------------
-
-1. The -bP option wasn't recognizing "authenticator xxx". It was recognizing
-"auths" and "auth_list", but this abbreviation seems unexpected, so changed
-those to use the full word.
-
-2. Removed a now (since 2.12/3) useless optimization in the code for checking
-whether two addresses have the same list of hosts.
-
-3. After some calls to execv() the failure code wasn't being output.
-
-4. Increased field widths in eximstats, as the numbers can be quite big on busy
-systems.
-
-5. Arrange for X-RBL-Warning: headers to be inserted when recipients are
-allowed through by an exception list from an RBL domain that is set to reject.
-
-6. Tidied error messages from -brw. Also, if an SMTP rewrite happens and the
-source address isn't syntactically valid, just skip the other rewrites. Skip
-them in any case if there are no rules with non-S flags. If there are no rules
-at all, say so.
-
-7. Reworded "no valid sender in message headers" error message, because it has
-confused people. Tidied some related messages as well.
-
-8. Added USE_DB=yes to the OpenBSD configuration.
-
-9. Ignore check_log_space if log_file_path just contains "syslog".
-
-10. Add closelog() to the function that closes all log files. The important
-case of this is the call just before the daemon closes all file descriptors,
-because otherwise it is closing the syslog one behind the system's back.
-
-11. Two "frozen" messages were getting written to the message log in some
-circumstances.
-
-12. Bug in 3.091/23 (fixing an earlier bug) caused a crash if a list of MX
-records with some identical host names came in a specific order (so it only
-showed now and again).
-
-13. In the arch-type script, when uname -p gives something containing spaces,
-try uname -m. (Previously it did this only for "" or "unknown".)
-
-14. Recognize i686 in scripts/arch-type.
-
-15. Re-organize the os-type and arch-type scripts so that $OSTYPE and $ARCHTYPE
-are now tried after uname rather than before, as many shells set silly values
-in them. Manual overrides are now provided by EXIM_OSTYPE and EXIM_ARCHTYPE.
-
-
-Version 3.092
--------------
-
-1. Serious bug caused by 1-character typo: In very long messages, characters
-could occasionally be lost (e.g. 3 lost in a 1.5M file). This bug was
-introduced in the changes made for 3.033, so it was never in a main release.
-
-
-Version 3.091
--------------
-
-1. Exim was not reporting the actual error if there was an I/O error while
-reading a message or writing the spool file during message reception. Nor was
-it logging anything.
-
-2. Some reorganization and tidying up of code for handling errors while writing
-the spool header file.
-
-3. When showing log messages for debugging, display the DIE flag when set.
-
-4. Add logging of SMTP AUTH information to the "message received" log line.
-
-5. Added forbid_lookup, forbid_existstest, forbid_perl to forwardfile (later
-changed to better names forbid_filter_lookup etc.).
-
-6. create_file = belowhome in appendfile could be defeated by the use of /../
-in the name. Sigh. I'm not devious enough... Symbolic links could also defeat
-it. These are now checked for by means of realpath(), which all the Unixes I've
-checked do have. Also, Exim was creating any necessary directories before
-checking create_file. It now creates directories only if it is permitted to
-create the file.
-
-7. Add more code to ldap to remember when a bind was done and with what
-credentials so that it doesn't repeat the bind for a subsequent lookup with the
-same credentials.
-
-8. If create_directory was set on appendfile and the directory creation failed
-for some reason, the error was not reported, so it appeared as if
-create_directory had been ignored.
-
-9. All directors except smartuser had current_directory and home_directory
-options, to set values used at transport time. These options have now been made
-generic, so now apply to all directors.
-
-10. If a local delivery failed and created message longer than 256 characters,
-it got truncated when logged.
-
-11. Change "all" to "one or more" in bounce and delay messages.
-
-12. The convert43t conversion utility didn't work for driver names containing
-capital letters.
-
-13. Change autoreply and other generated messages to use "Reply-To" instead of
-"Reply-to" because that's the "suggested" form in RFC 822.
-
-14. Pulled some common code out of aliasfile and forwardfile and made it into a
-separate function which they each call.
-
-15. The function for writing the -H file tried to create the directory if it
-didn't exist, but it always will, because the -H file isn't written until the
--D file has been successfully written. So we can save a bit of code (which in
-fact was buggy because it didn't support sub-directories).
-
-16. Added move_frozen_messages, but only if SUPPORT_MOVE_FROZEN_MESSAGES
-is defined. There is no current support for handling such messages.
-
-17. If queue_smtp or queue_remote got set via queue_only_file for an incoming
-SMTP message received by the daemon, the flag was not being passed on to the
-delivery process.
-
-18. An explanation to the long-standing problem of eximon menus not working
-when num-lock is set has been received, and a workaround implemented.
-
-19. Address rewrites that happened during delivery (typically on new addresses
-from forward or filter files) were causing an X-rewrote-address dummy header to
-be added to the message each time it happened. This could get embarrassing if
-retrying went on for a long time.
-
-20. Only write "children all complete" to the msglog file if the address has no
-parent address with the same original address. Otherwise (e.g. in cases where
-xxx is aliased to xxx and other things, and the new xxx gets further aliased by
-another director) it can be confusing.
-
-21. After successful directing, the debugging line showed the transport field
-from the original address, which could be misleading if copied address had been
-queued (e.g. by smartuser). As the general queuing function now outputs this
-info, remove it at top level.
-
-22. Smartuser was showing the old rather than the new address in its debugging
-output.
-
-23. If a broken MX list contained the same host more than once, Exim was coded
-to keep only the lowest precedence, but if it saw a lower value after a higher
-one, and had seen precedences between the two values, it screwed up the
-sorting.
-
-24. The revision of RFC 822 increases the encouragement for collapsing source
-routed addresses from the MAY of RFC 1123 to SHOULD. I have therefore cut out
-all the source route handling code, with the exception of parsing and
-collapsing. The option collapse_source_routes now has no effect - they are
-always collapsed. This has made it possible to make some tidies in various
-places.
-
-25. Rewrote the smartuser director - if no transport is specified, the
-new_address option may now specify a list of addresses, and it may also specify
-:blackhole:, :defer:, or :fail:.
-
-26. Upgraded exigrep so that it automatically zcats compressed file.
-
-27. Added expansion conditions first_delivery and queue_running.
-
-28. When log_refused_recipients is set, give a reason in each log line.
-
-29. Implemented +warn_unknown.
-
-30. Allow EXIMON_LOG_FILE_PATH to override in eximon - useful when syslog is in
-use.
-
-31. -Mg was not forcing a thaw of frozen messages (an unwanted side effect of
-change 17 in version 2.950).
-
-32. -M and other delivery forcers (e.g. -qf) were not overriding
-queue_remote_domains and queue_smtp_domains.
-
-33. Added recipients_reject_except_senders.
-
-34. When all deferred addresses have the same domain, it is set in $domain
-during the expansion of delay_warning_condition. For pipes, files, or
-autoreplies, this is the domain of the parent.
-
-35. Changed the default configuration file to lock out domain literal support.
-This is strictly contrary to the RFCs, but people don't understand about it and
-it has been abused by spammers seeking open relays.
-
-36. -Rr (and -Rrf, -Rrff) treat the string as a regular expression.
-
-37. Added -S, which works like -R except that it checks the message's sender.
-
-38. Added $message_age.
-
-39. Make Exim ignore -n (no aliasing), and make -oitrue the same as -oi.
-
-40. Typo in ldap code could cause junk to appear in the error message if a
-search call failed (which it normally doesn't).
-
-41. Source tidies to get rid of compiler warnings for possibly uninitialized
-variables.
-
-
-Version 3.040
--------------
-
-1. Added additional parameters to LDAP lookups.
-
-
-Version 3.039
--------------
-
-1. Callers who have exim's gid as the current gid are now trusted.
-
-2. Added new option admin_groups.
-
-3. There was a bug in store handling for expansions involving very large
-strings, e.g. if message_body_size was set large and was the subject of a
-"match" filter condition. The symptom was a bus error.
-
-4. Exim wouldn't build if LOG_FILE_PATH was set to any of the new syslog
-variations.
-
-5. A couple more compile-time tweaks for netBSD (default USE_DB=yes and look
-for chown in /usr/sbin).
-
-
-Version 3.038
--------------
-
-1. Added support for PAM authentication.
-
-
-Version 3.037
--------------
-
-1. When forwardfile defers because it doesn't like the file's permissions,
-include the offending bits in the error message.
-
-2. General tidy of error messages from directors to remove duplicated
-information. (e.g. director names, because they are also shown in the D= item
-of log lines).
-
-3. Pulled some general outgoing SMTP code out of transports/smtp.c and put it
-in functions in smtp_out.c. This is also used by client authenticator code; the
-interface is now cleaner.
-
-4. Added log_queue_run_level.
-
-5. When a message with very long headers was rejected, and the reflection of
-the headers to the rejectlog filled up the log buffer, the terminating
-separator line got lost, and the entry didn't necessarily end with \n. It now
-always puts in the separator, and adds "*** truncated ***" if something has
-been chopped off.
-
-6. Updated eximon to cope with cases when syslog is being used. If only syslog
-is being used, eximon cannot tail a log - omit that part of its window.
-
-7. Updated exicyclog to cope with cases when syslog is being used. If only
-syslog is being used, exicyclog can't cycle anything.
-
-8. Fixed bug in base64 decoding function that was messing up CRAM-MD5
-authentication for certain lengths of user name.
-
-
-Version 3.036
--------------
-
-1. Moved the logging of a message's freezing to just before the -H file is
-updated, to minimize cases when the logging happens but the file doesn't get
-updated (an incident was observed when a system was being shut down).
-
-2. Ignore SIGTERM during the tidying-up phase at the end of a delivery, to
-minimize the chances of things being half done.
-
-3. Don't bother doing an RBL lookup if the host has already matched
-host_reject_recipients.
-
-4. Added "sort | uniq" into the exiwhat script, to cut out duplicates, which
-sometimes happen in "ps" output.
-
-5. Changed the file exiwhat uses to spool/exim-process.info instead of a log
-file. This is so that it will continue to work when syslog logging is used.
-
-6. Added support for syslog, configured in log_file_path.
-
-
-Version 3.035
--------------
-
-1. The debug_print option wasn't working for the smtp transport.
-
-2. The responses to AUTH commands weren't being copied to debug output.
-
-3. Changed the condition handling in the plaintext authenticator to allow for
-forced DEFER returns ("", "0", "no", "false" => FAIL, "1"; "yes", "true" => OK;
-anything else defers, text is message).
-
-4. Added ${mask:} expansion operator.
-
-5. Added translate_ip_address.
-
-
-Version 3.034
--------------
-
-1. When a header syntax check failed, a humungously long address that was too
-much for string_sprintf to fit in the error message caused a panic exit. This
-could happen, for example, if a double quote was omitted in a very long list of
-addresses in a header. It now reflects just the first 1K of the address. Put a
-similar limit on sender addresses in verify failed messages.
-
-
-Version 3.033
--------------
-
-1. Arrange for crypt.h to be included only on those OS that have it (Solaris,
-IRIX 6, modern Linux), and for -lcrypt to be set up for those OS that need it
-(FreeBSD, NetBSD, modern Linux).
-
-2. Made MAXINTERFACES changeable in Local/Makefile.
-
-3. When sending a delay warning message, quote the top-level original address
-only, saying "an address generated from" if the actual problem is with a child.
-
-4. Set a default for delay_warning_condition to skip precedence bulk/list/junk.
-
-5. Allow for spaces around colons in temp_errors setting in smtp transport.
-
-6. The "personal" test in filter files now checks for "list" and "junk" as well
-as "bulk" in the Precedence: header.
-
-7. Added retry_data_expire.
-
-8. If a key in a partial match was very long (longer than the buffer for
-string_sprintf()), Exim couldn't handle it.
-
-9. Added expansion operator ${quote_xxx:} where xxx is a search type. Each
-search type has its own (optional) quoting function. Added suitable functions
-for NIS+, LDAP, and MYSQL.
-
-10. Internal revision of the way the "From hack" and SMTP dot escaping is done
-in preparation for extending appendfile. They are now unified, and are
-therefore mutually exclusive.
-
-11. The "From hack" was failing if the string "From " happened to be split
-between two buffers when transporting the message.
-
-12. If a non-SMTP message that was being read without -oi ended with "\n."
-(no following NL) then the "." got lost.
-
-13. Ensure that all non-SMTP messages have a final NL at input time, instead of
-testing at delivery time. This simplifies the delivery code.
-
-14. Replaced from_hack in appendfile and pipe by check_string and escape_string.
-
-15. Added file_format to appendfile.
-
-
-Version 3.032
--------------
-
-1. If remove_headers contained a "fail" expansion, it caused a crash.
-
-2. The generic headers_remove option in transports is now expanded. (Seems to
-have been an oversight.)
-
-3. Changed $host_authenticated to $sender_host_authenticated (oversight).
-
-4. Added server_set_id generic option to authenticators and $authenticated_id
-for accessing it.
-
-
-Version 3.031
--------------
-
-1. Removed unnecessary #ifdefs from lookups which don't have private header
-files.
-
-2. Added crypteq as a new expansion condition.
-
-3. Make it recognise "netbsd" as equivalent to "NetBSD".
-
-4. Updated the FSF's address in LICENCE and NOTICE files.
-
-5. Code tidies for SMTP input to remove repetition of real and debugging
-output by using a subroutine.
-
-6. Added support for AUTH.
-
-7. Source tidies of a lot of unnecessarily complicated calls to
-string_nextinlist().
-
-8. Source tidies in lookup handling.
-
-9. Set XLFLAGS empty for IRIX6 as it doesn't seem to need anything.
-
-10. Typo in code for decoding quota_<time> fixed; only effect would be to fail
-to diagnose bad syntax.
-
-11. -bv now runs interactively like -bt if no addresses are given.
-
-12. Added -be for string expansion tests with configuration read.
-
-</pre>
-
- <hr>
- <h6>$Id: ChangeLog-3.10.html,v 1.3 1999/11/28 21:00:42 nigel Exp $</h6>
-<!-- Created: Mon Aug 25 13:12:18 BST 1997 -->
- </body>
-</html>