$Id: ChangeLog,v 1.309 2007/11/18 20:52:41 ca Exp $

2007-11-10
Allow address_delimiter to be a list of characters.

2007-11-08
Further improve the handling of DESTDIR in the setup script.  Based
on patches by Sergey.

2007-11-04
smar now reads the list of nameservers from /etc/resolv.conf
unless at least one nameserver is explicitly specified in the
configuration file or the option use_resolvconf is turned off.

2007-10-24
The reuse of allocated data structures could cause display problems
because some parts were not cleared properly. This did affect DSNs
showing an error message from a previous session in one specific
case, and the "times=" part of the log message showing that the
number of open session was exceeded.

2007-10-18
smtps: increase size of buffer for inter-module communication to
allow storing many recipients which is necessary due to an earlier
change which sends all recipients of a transaction together (instead
of individually) to qmgr.  Previously this could trigger a consistency
check in qmgr because of a missing return code check in smtps.
Problem reported by Matthias Waechter.

2007-10-08
smtps: force shutdown (after a certain time: twice the I/O timeout)
in case of communication errors with smar (or qmgr), previously
smtps would wait until all sessions are terminated, which may
take too long.

2007-09-28
Two new exit codes allow processes to request that mcp
- restarts all processes again,
- restarts all processes on which the exited process depends.
The latter is used by smtps in case the communication with smar
(or qmgr) causes a problem (I/O error).

2007-09-24
Change location of pid file in mcp.sh script to /var/run because
that directory is usually cleaned up at startup and hence there
will not be a problem with a "left over" pid file after a system
crash.

2007-08-06
Change the name string from MeTA1.VERSION to MeTA1-VERSION to avoid
confusion (mistaking the "1" from "MeTA1" as part of the version
string).  Suggested by Jose Marcio Martins da Cruz.

2007-07-28
Add support for Sun's SASL library. Patch from Alex Kiernan.

2007-07-26
Fix a length check in smtpc when determining whether the client is
talking to a server with the same host name. The programming error
could trigger an assertion. Bug found by Alex Kiernan (who also
suggested the fix).

2007-07-22
Several fixes related to the handling of DESTDIR in sm.setup.sh
based on a patch by Alex Kiernan.

2007-07-14
New option for qmgr: double_bounce_address; RFC 2821 address for
double bounces; defaults to <postmaster@hostname> (see also -P
option).

2007-07-01
Cyrus-SASL 2.1.22 changed the behaviour of sasl_decode64() hence
smtps needs to deal with the input "=" itself.

2007-06-20
Some DNS blacklists return multiple A records. Previously only the
first one was checked against the access map. Now all A records are
checked (in the order returned by the DNS server) until an access
map entry is found. Note: this is an intermediate solution as it
may cause random results if multiple access map entries for a DNS
blacklist exist.  However, as long as all of them have the same
return code type (i.e., temporary or permanent), this behavior is
sufficient.

2007-06-12
cipher_bits_min has been renamed to min_cipher_bits for consistency
with other option names.  This change can also be handled by the
conversion script scripts/sessfeatmerge.awk.

2007-06-10
Map entries of type session_features have been merged into
smtps_session_conf, and the compile time option SS_SE_FEATURES has
been removed. A simple conversion script for access maps is available:
scripts/sessfeatmerge.awk.

2007-06-09
Incompatible change: map entries for the SMTP server and client which
contain configuration data (smtps_session_conf, smtpc_session_conf, and
smtpc_rcpt_conf) now require tls_requirements as section around
previous data. That is, if the entry was before:

smtpc_session_conf:127.0.0.1	cert_issuer="/C=US/ST=CA/L=SF/O=Org/CN=CA/emailAddress=ca@example.org";

then it needs to be now:

smtpc_session_conf:127.0.0.1	tls_requirements {cert_issuer="/C=US/ST=CA/L=SF/O=Org/CN=CA/emailAddress=ca@example.org";}

This change is in preparation of consolidating various configuration
data in maps into structured (i.e., following the common configuration
syntax) entries.

2007-06-03
New configuration option in the smtpc subsection of the qmgr
configuration section: rcpt_conf_lookup_flags to specify which
lookups to perform for smtpc_rcpt_conf entries.

2007-06-02
New map entry types:
smtpc_session_conf (qmgr_conf map)
smtpc_rcpt_conf (access map)
which can be used to specify options for an SMTP client session and
recipient respectively.  The lookups must be requested via flags
in the smtpc subsection of the qmgr configuration section:
lookup_session_conf and lookup_rcpt_conf, respectively.  Currently
it allows to specify TLS related requirements, e.g., to allow only
verified connections to specified servers or for specified recipients.

2007-05-31
New configuration flags for SMTP server: lookup_session_conf
to turn on smtps_session_conf lookups in the access map.

2007-05-04
If only an SMTP server was restarted then it may reuse old ids
because the initial value is stored inside qmgr and was only updated
at a restart.  This could lead to temporary errors if some messages
were still queued and id collisions happened.

2007-05-03
The strings for STARTTLS related values, e.g., certissuser, were not
large enough to cover all encoding cases.  If that happened, the
value would show up as empty.

2007-04-29
New access map entry type: smtps_session_conf which can be used to
specify options for an SMTP server session. This is a more generic
version of session_features, which it will probably replace in a
later version. Moreover, the syntax of the RHS is likely to change.
Currently it allows to specify TLS related requirements, e.g.,
to allow only verified connections from some clients.

2007-03-28
If smtps used session_features then an access map entry for cltaddr
would not be considered properly. This was a regression introduced
in 1.0.PreAlpha14.

2007-03-05
Enable "per RCPT status after data" in the SMTP server only if a
policy_milter is specified as that is currently the only way to
generate individual replies for RCPT commands after the end of data.

2007-02-15
Support "per RCPT status after data" as specified in an upcoming
draft.  This requires a new libpmilter function sm_pmfi_setreplies().

2007-02-13
If sm.check.sh -P is invoked by a non-root user, it complains about
its usage.

2007-02-10
Install libraries for pmilter. Requested by Jose Marcio Martins da
Cruz.

2007-01-30
If MTA_TIMING/MTA_TEST_DNS_TIMING is not set then some (DNS) tests
that are timing dependent are skipped.

2007-01-14
Do not query DNS blacklists if a previous test (e.g., an access
map lookup) already returned a result.

2007-01-08
To further restrict the length of syslog(3) messages the compile
time options MTA_LOG_LEN and MTA_LOG_LEN_MAX have been added.

2007-01-05
Do not log a warning in smar about a missing access map at startup.
Instead wait for an SMTP server to request an access map during its
initial connection and log an error if the map is not available.
Requested by Tim Brazil.

2006-12-27
Treat "empty" MX records as invalid and reject mails from domains
using those (see also the expired internet draft
draft-delany-nullmx-00.txt: A NULL MX Resource Record means "I never
accept email").

2006-11-26
New compile time option SS_EHLO_ACCESS_CHK to enable lookups of the
EHLO/HELO argument in the access map. This must be enabled at runtime
via the flag "check_ehlo" (and "access" of course).

2006-11-08
Mailertable can now take flags to specify different types of lookups
including "full_address" to use the entire address as key instead of
just its domain.

2006-11-05
Terminate the SMTP server (smtps) if it cannot connect to the address
resolver (smar) when a new SMTP connection is made, i.e., treat
this just like a connection failure with qmgr and let mcp restart
the SMTP server.

2006-11-04
Log a textual description of the exit(3) code in mcp when a program
terminates instead of its numeric value.

2006-10-29
Better logging for invalid EHLO/HELO in smtps: log the used command
and add a stat= field.

2006-10-17
If a delivery attempt takes too long and the recipient is removed
from the active queue in the mean time (because the "timeout for a
single delivery attempt" triggers), the subsequent attempt to update
the recipient may cause a core dump.

2006-10-15
Better logging for discarded MAIL and RCPT in smtps: use SMTP_R_DISCARD
(see include/sm/smreplycodes.h) as stat= value.

2006-10-05
Enable use of Berkeley DB 4.5.

2006-10-05
Recognition of Berkeley DB was not working properly in all cases
if --disable-included-bdb was used.  Problem found by Sergey.

2006-10-01
Renamed to MeTA1.

2006-09-09
smtps used a pointer to a local variable in a session context, the
local variable could have been overwritten if new threads had been
created, thus misleading data could show up in log entries.

2006-08-11
Disable a hack in smar which suppressed IPv4 A records with value
0 (which were considered "not used") as some bozos may actually use
0.0.0.0 which in turn would cause a protocol error in the communication
with qmgr.

2006-08-04
If an aborted transaction had unknown recipients before valid
recipients, the IBDB cache would not cancel all recipients, hence
the IBDB files could not be cleaned up.

2006-06-13
Reduce the number of possible concurrent sessions if an SMTP server
does not respond to a connection attempt.

2006-06-10
<postmaster> was not looked up properly in aliases or a local user
map.

2006-05-31
statethreads: updated to 1.7.

2006-05-30
Fix compilation problem on MacOS 10.4 (and 10.3 at least): DNS
related structures were not defined.  Problem found by Manon Goo.

2006-05-21
Add support for "cdb" as map type (based on tinycdb 0.75 from
Michael Tokarev).

2006-05-17
Note: the pmilter API is undergoing some changes. In this version,
sm_pmfi_rcpt_add() and sm_pmfi_mail_rplc() received an additional
argument to specify SMTP parameters. However, those parameters are
not yet supported, the change is only for future extensions.

2006-05-13
Allowing relaying to a recipient address should not disable
greylisting.  To disable greylisting for a recipient now requires
the quick modifier.  Note: this does not work as expected if there
are multiple recipients with different greylisting preferences as
currently the session is terminated.  Suggestions for enhancements
are welcome.
Problem noted by Matthias Waechter.

2006-05-13
Enabling zlib compression in OpenSSL 0.9.8[ab] breaks the padding
bug work-around.  Hence if sendmail is linked against either of
these versions and compression is available, the padding bug
work-around is turned off.  Based on patch from Victor Duchovni of
Morgan Stanley.

2006-05-08
Allow access map entries to override "relaying denied" rejections
by other error messages (see the example in Section "Using sendmail
X as Backup MX Server").  Problem noted by Matthias Waechter.

2006-05-18
Try to work around changes and bugs in glibc 2.4 that cause problems
for statethreads by turning off "jmp_buf fortification".  Note:
this seems to be broken in early glibc 2.4 versions.

2006-05-16
NOTE: the license for sendmail X has been changed to use the same
license as sendmail 8.

2006-04-19
smar did not recognize all possible error codes from the various
map types properly. Problem found by Jean-Marc Pouchoulon.

2006-04-17
The default Makefile that is installed in ${SMXCONFDIR:-/etc/smx}
contained a sequence of operations that could cause a problem if a
process was signalled to reload a database while it was rebuilt.

2006-04-15
socket maps were not recognized properly. Problem noted by Jean-Marc
Pouchoulon.

2006-04-15
Fix a test in sm.check.sh for -P which wrongly complained about
qmsmtps qmsmtpc, and qmsmar.  Problem noted by Jean-Marc Pouchoulon.

2006-04-01
Fix a memory leak in the "cstr" library that only shows up on OS
that allocate memory for a mutex, e.g., OpenBSD.

2006-03-07
smtps: the mechanism for SMTP AUTH was not saved properly and hence
relaying could not be allowed based on it. Problem detected by
Hideki ONO.

2006-03-06
An internal data structure was accessed without being locked which
can cause a crash on multi-CPU system under high load (to trigger
that race condition).

2006-01-29
smtpc: a hostname set in the configuration file was not used
(for EHLO etc).  Problem found by Jose Marcio Martins da Cruz.

2006-01-16
pmilter: pmfi_helo() has an extra argument that indicates whether
EHLO or HELO was used by a client.

2006-01-04
sm.check.sh failed on some OS versions with bogus errors messages
which are ultimately a result from an "unusual" getopt(3) implementation.
A workaround has been implemented in the program that triggered the
error.  Noted by Stephane Lentz.

2006-01-04
Change "head -1" to "head -n1" as the former is considered obsolete
syntax.  Noted by Stephane Lentz.

2006-01-04
libpmilter: add function to modify the envelope sender address (MAIL).

2006-01-03
smtpc: add a flag to turn on reading the reply to a QUIT command;
this has been disabled by default.

2006-01-03
smtpc: send final dot and QUIT command in a single packet if
PIPELINING has been offered by the server.

2006-01-02
libpmilter: add functions to add or delete recipients.

2005-12-25
libpmilter: add functions to replace a message.

2005-12-21
libpmilter: more macros are available for a pmilter to access
MTA/SMTP status informations.

2005-12-20
Add support for VERP.

2005-12-16
A simple mail submission program written by Henning Brauer (originally
called "femail") has been added to the contrib/ directory. It is only
compiled if --enable-msp is specified as argument for configure.

2005-12-12
README: fix formatting problem for text and HTML version: "--" was
shown as "-" which is a problem for commands at least.

2005-12-07
smtps: setup TLS session cache to avoid problems with clients that
try to resume a session. Two new options control the size of the
cache and when to expire entries.

2005-12-03
smar: allow to select a declared map for aliases and access_map
(instead of the default Berkeley DB).

2005-11-28
smar: all DNS related options have been moved into their own
subsection and a new option to limit the number of retries has been
added.  For backward compatibility the old options are still
supported.

2005-11-25
smar: eliminate duplicate A records when performing MX/A lookups
for delivery.

2005-11-24
qmgr: the format of the databases IBDB and DEFEDB has been changed.
While X.1 can read databases written by X.0, the opposite is not
true. Hence after upgrading to X.1 it is not possible to downgrade
to X.0 without removing those databases first (which requires that
no entries are in the queues, otherwise they are lost!).

2005-11-24
Added header modifications capabilities: prepending, inserting,
removing, replacing, and appending a header.  These can be invoked
from a pmilter.

2005-11-20
Change configure to apply  chmod +x sm.setup.sh sm.check.sh
Problem noted by Chris Markle.

2005-11-18
qmgrctl: new option -s to ask qmgr to schedule a recipient as soon
as possible.

2005-11-09
smar: local_user_map was not used during address resolution for
delivery.  Problem found by Sergey.

2005-11-08
smtps: the default value for max_hops has been increased to 25.

2005-11-05
Fix name of configuration test program in install script.  Patch
from Dirk Meyer.

2005-11-01
mailq.sh has been added as a wrapper for mailq: it changes to the main
queue directory and uses runas to invoke mailq as the correct user.

2005-11-01
Avoid failure from "make check" in libpmilter if pmilter is not enabled.
Problem found by Tim Brazil.

2005-10-30
sendmail X.0.0.0. released.
