A new release of the UIUC/NIU version of IDA sendmail is now available for
anon-FTP from uxc.cso.uiuc.edu in pub/sendmail-5.67a+IDA-1.5.tar.Z .
Because of the size of this release, the RCS files are not included, but
are available as pub/sendmail-5.67a-RCS.tar.Z .


New features:

* Support added for Dan Bernstein's (brnstnd@nyu.edu) RFC 931 authentication
server.  Original patches wrapped with #ifdef AUTH.  Requires linking with
-lauthuser (not supplied, obtain file /networking/rfc921-authd.3.01.shar.Z
from uunet.uu.net).

* Better HDBM (Berkeley hash package) support contributed by Marc Boucher
<marc@cam.org>.

* Features added from Paul Vixie's King James sendmail (DECWRL).

1) New command line (sendmail.cf) settings:

variable	option		means
-----------------------------------------------------------------------------
NiceDelivery	-ojN		do deliveries at nice() value N
BigLogFile	-ol/File	log full envelopes and headers to /File
				(useful but it slows things down a lot)

2) sfgets() now uses a running timer instead of setting and clearing a timer
per line of input.  All clients of sfgets() need to call sfgets_init() before
they read the first line and sfgets_fini() after they've read the last line.
This reduces the number of system calls per line of input from ~13 down to ~1.

3) deliver.c: If no !-address is found in the UUCP envelope, one is created
from the domain name (if '@' is present) or from the local UUCP name ($k)
(if not).

4) savemail.c: Delivery failure notices now note which addresses bounced,
which are still queued, and which have been successfully sent.

* Lifted frozen config file restriction for the IBM PC/RT under AIX.

* Add hosts with unresponsive name servers to symbol table along with
unresponsive hosts.  Wrapped also with HOSTINFO.

* Checkpoint the queue file after every CheckPointLimit transactions.  Set
with the OC[n] option in sendmail.cf.  Default is 10 if n is not specified.
Adapted from the original patch by Craig Everhart (Craig_Everhart@transarc.com)
after modification by Christopher Davis (ckd@eff.org).  Revamped after 
reviewing a similar patch in DEWRL sendmail.

* Re-did entire environment munging section.  Eliminated UserEnviron[]
in favor of SavedEnv which preserves NAME, HOME, LOGNAME, TZ, and a few
others.  After those values are saved, the environment is cleared and reset.
The preserved values are then restored followed by setting PATH to
"/bin:/usr/bin" and SHELL to "/bin/sh".  Inspired by a suggestion from
Neil Rickert (rickert@cs.niu.edu).

* rewrite() in parseaddr.c re-written by Neil Rickert.  See the extensive
note in the RCS file for details and discussion.

* Added support for straight logfile use by syslog - no UNIX domain sockets.
Contributed by Marc Boucher <marc@cam.org>.

* logdelivery() re-written by Andy Linton (Andy.Linton@comp.vuw.ac.nz) to
accomodate hosts with short syslog() buffers.


Bug fixes:

* Replaced creat() calls with equivalent open() calls.  Supplied all open()
calls with the regulation three arguments.

* Null-terminate entries in the alias dbm file for consumption by SUN's
mkalias program.

* The arpatounix() routine had a fencepost error and day of week error fixed.

* Changed sigset_t set = SIGALRM to
	sigemptyset(&set);       sigaddset(&set, SIGALRM);
Contributed by Marc Boucher <marc@cam.org>.

* Remove gratuitous locks supplied by gdbm's dbm_open() routine.

* Open the alias database r/w if AutoRebuild is set.  If the open fails,
clear AutoRebuild, do the sleep, and try again.

* Re-dup stdout and stderr to OutChannel during queue runs (Eric Wassenaar,
e07@nikhef.nl).  Be more conservative in sending error reports to cases
where the failure was not re-queued (Paul Vixie, vixie@pa.dec.com).

* Renamed putmsg() to Xputmsg() because of conflict with System 5 system
call of the same name.  Reported by Bernard Steiner <bs@Germany.EU.net>.

* System 5 changes suggested by Marc Boucher <marc@cam.org>.  Neil Rickert
<rickert@cs.niu.edu> noted that several getloadavg() variants were missing
the return (0) at the end of the function.

* Three fixes from Eric Wassenaar (e07@nikhef.nl).  One is for the mangling
of header lines, second is for spurious control chars in addresses, and
last is a fix for unsafe test for invalid control chars.

* Downgraded missing sendmail.fc from LOG_WARNING to LOG_NOTICE.

* Don't eliminate ";" inside quoted strings.

* By calling rewrite() instead of _rewrite() in recursive cases, nrw is zeroed
each time.  callsubr() now uses _rewrite().  Noted by Tor Lillqvist
<tml@tik.vtt.fi>.

* Stephen Cliffe (steve@cs.uow.edu.au) noted that safefile() fails if
the uid value is large and compares as a negative number.  The fix
is to cast the incoming value of uid to (uid_t).


ida/cf/Sendmail.mc:

  Major Changes:

A list of the major changes to Sendmail.mc since the last major IDA
release.  These are based on suggestions and solutions to problems raised
by a number of contributors.

  1.	If ISOLATED_DOMAINS is defined, don't send mail for the
	ISOLATED_DOMAINS to your RELAY_MAILER.  Usually this
	will result in their being rejected as Unknown Host, unless
	they are found in your nameserver or hosts table if a nameserver
	is not in use.

  2.	The RELAY_ONLY option allows restricting which domains will be
	forwarded to the relay.

  3.	If defined, DEFAULT_DOMAIN will now be appended to any host whose
	name is unqualified after a successful hosts lookup.  This should
	better support hosts not using the nameserver, and which put
	unqualified names first in /etc/hosts.

  4.	Added CHECKPOINT as support for the new checkpointing options
	in sendmail.

  5.	The keyword VALIDATION_DOMAINS can be used to greatly reduce the
	number of nameserver lookups.  Read the documentation carefully
	(in Sendmail.mc) before using, since this may have effects on
	when a PATHTABLE lookup is performed.

	The benefit is that processing time is reduced, particularly when
	a name server is temporarily inaccessible.  This should be of
	particular used to those with poor connectivity to Internet, and
	to those who run large mailing lists.

  6.	Enhanced PATHTABLE support now allows an PATHTABLE entry of the
	form:  .domain1		%s.domain2
	in which everything preceeding the '.' in the original address
	is expanded into the '%s' in the final address.  This would
	allow an entry: .bn.niu.edu	%s.bitnet@cunyvm.cuny.edu
	which would rewrite 'user@host.bn.niu.edu' to
	'@cunyvm.cuny.edu:user@host.bitnet'

	The new format entries are recognized by the '.' after the %s.

  7.	Added USERMAILER to allow all mail for a specific host to be
	dropped into the mailbox of a local user.  This is mainly for
	mail addressed to single user workstations which don't want
	to do their own mail support.

  In addition various bugs have been fixed.

========

The original IDA enhancements, plus the UIUC/NIU and contributed changes,
provide the following:

    * support for mail11v3 for DECnet sites (optional)
    * support for Dbm(3) files - dbm, ndbm, sdbm, mdbm, and gdbm
    	- allows pathalias database to be directly used
    	- allows choice of mailer to be table driven
    	- allows UUCP and domain name aliasing
    	- optional support to access Sun NIS (aka YP) DBM databases
    * improved support of MX records
    * split header rewriting between envelope and headers
    * improved test mode
    * support for multi-token matches in .cf macros and classes
    * batched SMTP support
    * allow set (class) declarations to use programs as well as files
      to define a set
    * delayed macro evaluation using $&x syntax
    * RFC822 quoted macro expansion using $!x syntax
    * an excellent general purpose m4 template for .cf file generation
    	- supports pure UUCP site requirements
    	- supports pure Internet site requirements
    	- supports a hybrid of UUCP site and Internet site
    	- supports hidden and isolated local area networks connected
    	  via a gateway (either UUCP or IP) to the Internet
    	- provides NIS (aka YP) aliases (optional)
    	- provides DECnet gateway support
    	- supports genericfrom database mapping actual user names to
          generic user names.
    	- supports pathalias database
    	- support UUCP and domain name aliasing

