$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 (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 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.