* Changes in release 0.8.1

A new, more permissive license allows people to distribute versions of
Mail Avenger that are linked with OpenSSL.

Some minor corrections to manual pages, thanks to Dererk.

* Changes in release 0.8.0

Minor changes for compilation under gcc 4.3.0.

Fsync the destination directory and expliticly update its times when
delivering a message to a maildir.

* Changes in release 0.7.9

Added LogTag option to asmtpd.conf.

Fix err_accum in default unknown script, as Tim Kientzle reports the
old script did not work on FreeBSD.

Added MSGID environment variable.

Added IdentTimeout option to asmtpd.conf.

Addes support for newer DB versions.

* Changes in release 0.7.8

Fixed bug where first group of avenger user could disappear on systems
with HAVE_EGID_IN_GROUPLIST defined (i.e., FreeBSD).

Added --map option to aliascheck.  Make sample unknown file check
recipient in virtusertable.db if one exists.

SMTPCB can now take on three values, 0, 1, and 2.  2 is equivalent to
the old behavior (do SMTP callbacks and reject mail when the callback
fails).  0 disabled the callbacks entirely.  1 performs the callbacks
but does not reject mail that fails.

Added an InsecureSASL option to asmtpd.conf.

Make SASL accept plaintext authentication after STARTTLS, even if
there was an EHLO call before the STARTTLS.

Fixed a bug in avenger.local when no .avenger/local file exists.

* Changes in release 0.7.7

If a unanticipated locking error occurs when delivering mail, print a
message to standard error.

Fixed a bug in rbl avenger command.

Added a --nowait option to dotlock.

* Changes in release 0.7.6

Work around a bug in FreeBSD's dn_expand function that could cause
certain weird SPF records to return TempFail inappropriately.

Relax bodytest restrictions slightly.

Fixed a bug in the < and <! avenger.local commands.

* Changes in release 0.7.5

Be more strict about requiring bodytest or (absence of a bodytest) to
match for every recipient.

Don't apply connection limits to TrustedNet/TrustedDomain clients.

Fixed the MaxRcpts directive, thanks to Robert Theisen.  Added the
MaxRelayRcpts directive.

More SPF changes.  Changed to a Received-SPF: instead of the older
SPF-Received: header.  Changed default SPF explanation to use
www.openspf.org instead of spf.pobox.com.

Prepare to switch over to a newer SPF standard in a future release of
Mail Avenger.  Added an spf0 avenger command synonymous with spf, and
an SPF0 environment variable set to the same as SPF.  In a later
release, spf may become synonymous with spf1, and SPF may be set to
SPF1.  (The *1 versions use keywords None, Neutral, Pass, Fail,
SoftFail, TempError, and PermError, while the *0 versions use none,
neutral, pass, fail, softfail, error, and unknown).

* Changes in release 0.7.4

asmtpd no longer passes a UNIX mailbox "From " line to the sendmail
program by default.  Added SendmailFromLine option for asmtpd.conf (0
by default) allows the old behavior to be restored if you set it to
1.  Bodytest programs still see the "From " line.

The avenger script no longer uses the -a option to sh (meaning export
all shell variables as environment variables).

Added --skipfrom option to edinplace.

If an rcpt script defers mail, but the relay script rejects it, asmtpd
now defers the mail.  Before it rejected it.

Fixed a couple of very minor memory errors that could potentially have
caused core dumps, but probably never did.

Fixed the rbl command, thanks to Robert Theisen.

Fixed a core dump that only occurs with dmalloc enabled.

* Changes in release 0.7.3

Changed the format of Received headers to "Received: from HELO-host
(reverse-DNS [IP-address]) ...", which is what sendmail.cf contains by
default.  The old format, while legal, was not parsed correctly by
SpamAssassin 3.1.0, which led to some false positives.

Use the Operating System's /etc/pf.os as a last resort, if none is
found in /usr/local.

Added --fcntl option to avenger.local, dotlock, and deliver.

Fixed a configure error where --enable-sasl worked, but
--enable-sasl=/usr/local was broken.

* Changes in release 0.7.2

Fixed a potential core dump from reading the byte beyond the end of
a string.

Documented X-Avenger: header field in asmtpd(8) man page.

Added data-bytes to X-Avenger: header field.

* Changes in release 0.7.1

In certain situations, avoid sending overly many copies of the same
message to the system logs.

Fix a bug that prevented /etc/avenger/default from running if the
avenger user's home directory did not exist.

It is now possible to put multiple BindAddr directives in the
asmtpd.conf file, to listen on multiple ports.

Fixed a race condition in handling avenger processes with invalid
output that could cause occasional core dumps.

Fixed a bug where TempError and PermError were swapped in the spf1
function and $SPF1 variable.  The regular spf and $SPF were fine.  An
SPF result of "error" corresponds to the SPF1 result "TempError",
while "unknown" corresponds to "PermError".

avenger.local configuration files can now be shell scripts, if the
first line begins #!/bin/sh and the file is executable.

Added a -g option to match, to use parentheses for grouping.

macutil has a new, incompatible format.  The old version is still
included under the name omacutil.

avsendmail.m4 file has been greatly improved.  Now checks the sendmail
alias file, and stops expanding avenger aliases when it hits a
sendmail alias.  (Thus, for example, you can map postmaster to
user+postmaster for rcpt checks, but still have sendmail expand the
postmaster alias as usual.)

* Changes in release 0.7

Added an example smtp-filter.iptables script, to allow integration with
the Linux iptables firewall.

Added --nosync (-N) option to dbutil.

Added experimental support for the STARTTLS command when the OpenSSL
library is present.  Adds several new asmtpd.conf configuration
directives.

Added experimental support for Cyrus SASL
(http://asg.web.cmu.edu/sasl/) if you give configure the --enable-sasl
argument.  A new SASL configuration option in asmtpd.conf enables
this.

When AllowDNSFail is set to 2, don't reject mail by default if the
client's IP address produces a DNS failure.  (With AllowDNSFail set to
1, mail is still rejected by default, even though this can be
overridden by an rcpt script.)

Fixed bug where the CLIENT environment variable might not be defined.

Added escape utility, making it easier to pass arguments to bodytest
commands.

Added SMTPCB option to asmtpd.conf, allowing people who object to SMTP
callbacks to disable them.  Note, however, that the reasons given for
disabling callbacks usually stem from misconceptions.  In particular,
even when enabled, asmtpd never issues SMTP callbacks in response to
bounce messages or to forged sender addresses (with SPF failures).
Moreover, two sites both using SMTP callbacks cannot create any kind
of loop, because the callbacks are always from the empty envelope
sender (like bounces).  Finally, asmtpd caches the results of negative
callbacks.

* Changes in release 0.6.5

Recover if temporary spool directory in /var/tmp gets deleted.

Added AllowDNSFail directive to asmtpd.conf, and a corresponding
CLIENT_DNSFAIL environment variable for avenger scripts.

Fixed a bug when dbutil was compiled against DB library version 4.1,
which has an older, slightly different interface to log_archive.  This
should eliminate spurious warnings about "log_archive: Invalid
argument" (which are innocuous), and also fix a core dump if you are
using --home or the DB_HOME environment variable.

* Changes in release 0.6.4

Fixes compilation problems on some 64-bit platforms.  There is no need
to upgrade if you already successfully compiled 0.6.3.

* Changes in release 0.6.3

Added SPF1 environment variable, and spf1 command, for compatibility
with newer revisions of the SPF specification.

Fixed bug in SPF implementation that could miss include directives for
domain names with '_' characters.

Added --disable-synfp configure option to disable TCP SYN fingerprint
collection on hosts that don't have pcap and bpf.  Should be disabled
automatically if configure cannot find pcap.h.

* Changes in release 0.6.2

Fixed a bug that caused asmtpd to stop collecting SYN fingerprints
after a while.

* Changes in release 0.6.1

Perform SMTP callbacks to the relay host, when applicable.

Fixed a bug in domain downcasing code for SMTP callback cache.

* Changes in release 0.6

Allow bodytest in secondary and relay files.

Fix possible core dump in spf.C.

Cache negative results of SMTP callbacks.  New VrfyCacheTime option in
asmtpd.conf.

* Changes in release 0.5.9

Fixed yet another bug in avenger.local that could result in a core
dump.

* Changes in release 0.5.8

Fixed a bug in avenger.local and deliver that could cause extra
characters to be inserted into long mail messages.

* Changes in release 0.5.7

Fixed a bunch of C++ things to make mail avenger compile with gcc
3.4.x.  Also worked around weird offsetof brokenness on some linux/gcc
combos.

Fixed avenger.local --falback option.

Don't reject connections from 127.0.0.1 even when a reverse DNS lookup
results in a temporary DNS error.

Fixed a core dump in smtpdcheck when hostnames were not preceded by an
MX priority.

* Changes in release 0.5.6

Added mailexec utility.

Handle quoting of lines beginning "From " better in avenger.local and
deliver.  The tools are now compatible with the so-called "mboxrd"
variant of the mbox format, which is also what qmail uses.  See
http://homepages.tesco.net./~J.deBoynePollard/FGA/mail-mbox-formats.html
for a description of mboxrd.

deliver - sends message to standard output, prepending mbox From line
if necessary.

Added -i flag to match.

Don't require avenger user to have valid shell.

Added AVUSER environment variable for avenger.

* Changes in release 0.5.5

Record a guess of the client operating system type in the X-Avenger
header field, as part of the syn-fingerprint value.

Added synos utility.

* Changes in release 0.5.4

Added support for BerkeleyDB 4.3.

* Changes in release 0.5.3

match can now take multiple -p arguments.

deliver (and avenger.local) can now infer the sender address from a
message whose first line is "Return-Path: ..." instead of "From ...".
This means you can now take a file in a maildir and deliver it to an
mbox.

Added -L option to dotlock.

Added --umask option to deliver.

Fixed the errcheck function in avenger.

* Changes in release 0.5.2

In diagnostic output report system avenger files as, for example,
"+unknown", to differentiate them from "avenger+unknown", which could
conceivably correspond to a ~avenger/.avenger/rcpt+unknown file.

match -f file now considers multi-line files with one pattern per
line.

Fix a bug where dbutil -d failed to dump records with zero-length
values.

Redirect standard error of bodytest programs to the same place as rcpt
and mail scripts.

New errcheck command in avenger scripts.

Fix the fix from version 0.4.1.  Now an spf check on an empty envelope
sender really does set the from address to the helo host.  (This is
important because often one doesn't care about the from address, but
just wants to check the source of the mail, as in "spf FROM_MIT
ip4:18.0.0.0/8 ptr:mit.edu -all".)

* Changes in release 0.5.1

Fixed a *critical* bug in which the deliver and avenger.local
utilities would overwrite free memory.

Added SendmailPriv option to asmtpd.conf.

* Changes in release 0.5

Sending a SIGUSR1 to asmtpd now causes it to dump its statistics to
the system log.

Fix several bugs in the DNS resolver code that could cause some DNS
requests over TCP never to return.

When verifying a bounce address, if the server has an MX record, but
the host pointed to by the MX record does not exist or does not have
any A records, then treat this as a hard error.

* Changes in release 0.4.9

When verifying a bounce address, asmtpd no longer considers it an
error if the remote server does not understand the SMTP NOOP
instruction.  Apparently postfix does not accept NOOP with any
arguments.  While RFC 2821 requires implementations to accept such
NOOPs, RFC 821 does not explicitly say arguments are required.

Many bug fixes in avenger.local.

Added --from and --sender options to sendmac.

Fixed a bug in which aliases containing multiple separator characters
weren't handled properly.

Added match utility.

* Changes in relesae 0.4.8

Report RBL errors in X-Avenger header.

Changed the algorithm for macutil.  Got rid of not very useful --n
option, and added new --aux option, instead.

Added dotlock and deliver utility programs.

Added avenger.local, a qmail-like local delivery agent.  Allows you to
deliver mail addressed to different extension addresses to different
mail folders.

Always check bpf for readability when gathering SYN fingerprints, as
on some OSes the pcap_next routine can occasionally wait for much
longer than it is supposed to.

Added smtpdcheck utility.

Added AllowPercent option to asmtpd.conf.

* Changes in release 0.4.1

Checked for /usr/include/pcap/pcap.h and /usr/include/db1/ndbm.h,
which seems to be required for old versions of Linux.

Fixed a core dump when sending SIGHUP and SMTPFilter is not defined.
Fixed another much more subtle and unlikely coredump in netpath.C.

When an avenger script uses the spf command and the envelope sender is
empty (because the message is a bounce), do the SPF check as if the
sender is actually the helo hostname.  Previously, the result was
always unknown for a bounce message.

Fixed a problem where mailavenger didn't quite work with FreeBSD's
/bin/sh, which does not appear to be fully POSIX-compliant.

Edinplace with no command argument rewinds the standard input.

* Changes in release 0.4

Fixed a compilation problem on Linux, when ndbm.h includes the wrong
db.h file.

Fixed a fairly serious documentation bug in aliascheck.

* Changes in release 0.3

Fixed fairly serious problem where file rcpt+default wouldn't be found
(though rcpt+anything+default did work as expected).

Added --avenge option to asmtpd for manually testing rcpt scripts.

New Env directive in asmtpd.conf.

The HOST and LOCAL variables have been renamed to RECIPIENT_HOST and
RECIPIENT_LOCAL.  HOST is now the name of the server as specified by
HostName in asmtpd.conf.

When exiting, do not delete a pid file that was created by another
instance of asmtpd.  (This may happen because amstpd immediately stops
listening on port 25 when it receives a termination signal, but may
not exit immediately if existing clients are in the middle of sending
mail messages.)

Make sendmail use -oee instead of -oem to avoid duplicate bounces on
some systems.

New configuration option EmptySender works around problem of invalid
"From " line in bounce messages with old versions of sendmail.  Try
"EmptySender @" if your bounces do not have "From MAILER-DAEMON".

* Changes in release 0.2

Fix a problem on at least some versions of FreeBSD where the kernel
swaps the byte order of the ip_len field.

System scripts that run as the avenger user now have auxiliary groups
from /etc/group (which is what you might expect, but wasn't the case
in the last release).

Fixed a compilation problem when clock_gettime not present (which
affected the utilities on MacOS X).

* Changes in release 0.1

Added aliascheck utility.
