166352Seric			SENDMAIL RELEASE NOTES
2*68503Seric	     @(#)RELEASE_NOTES	8.6.11.1 (Berkeley) 03/08/95
366352Seric
466352SericThis listing shows the version of the sendmail binary, the version
566352Sericof the sendmail configuration files, the date of release, and a
666352Sericsummary of the changes in that release.
766352Seric
8*68503Seric8.6.11/8.6.11	95/03/08
9*68503Seric	The ``possible attack'' message would be logged more often
10*68503Seric		than necessary if you are using Pine as a user agent.
11*68503Seric	The wrong host would be reported in the ``possible attack''
12*68503Seric		message when attempted from IDENT.
13*68503Seric	In some cases the syslog buffer could be overflowed when
14*68503Seric		reporting the ``possible attack'' message.  This can
15*68503Seric		cause denial of service attacks.  Truncate the message
16*68503Seric		to 80 characters to prevent this problem.
17*68503Seric	When reading the IDENT response a loop is needed around the
18*68503Seric		read from the network to ensure that you don't get
19*68503Seric		partial lines.
20*68503Seric	Password entries without any shell listed (that is, a null
21*68503Seric		shell) wouldn't match as "ok".  Problem noted by
22*68503Seric		Rob McMahon.
23*68503Seric	When running BIND 4.9.x a problem could occur because the
24*68503Seric		_res.options field is initialized differently than it
25*68503Seric		was historically -- this requires that sendmail call
26*68503Seric		res_init before it tweaks any bits.
27*68503Seric	Fix an incompatibility in openxscript() between the file open mode
28*68503Seric		and the stdio mode passed to fdopen.  This caused UnixWare
29*68503Seric		2.0 to have conniptions.  Fix from Martin Sohnius of
30*68503Seric		Novell Labs Europe.
31*68503Seric	Fix problem with static linking of local getopt routine when
32*68503Seric		using GNU's ld command.  Fix from John Kennedy of
33*68503Seric		Cal State Chico.
34*68503Seric	It was possible to turn off privacy flags.  Problem noted by
35*68503Seric		*Hobbit*.
36*68503Seric	Be more paranoid about writing files.  Suggestions by *Hobbit*
37*68503Seric		and Liudvikas Bukys.
38*68503Seric	MAKEMAP: fixes for 64 bit machines (DEC Alphas in particular)
39*68503Seric		from Spider Boardman.
40*68503Seric	CONFIG: No changes (version number only, to keep it in sync
41*68503Seric		with the binaries).
42*68503Seric
4368280Seric8.6.10/8.6.10	95/02/10
4468274Seric	SECURITY: Diagnose bogus values to some command line flags that
4568274Seric		could allow trash to get into headers and qf files.
4668274Seric	Validate the name of the user returned by the IDENT protocol.
4768274Seric		Some systems that really dislike IDENT send intentionally
4868274Seric		bogus information.  Problem pointed out by Michael Bushnell
4968274Seric		of the Free Software Foundation.  Has some security
5068274Seric		implications.
5168274Seric	Fix a problem causing error messages about DNS problems when
5268274Seric		the host name contained a percent sign to act oddly
5368274Seric		because it was passed as a printf-style format string.
5468274Seric		In some cases this could cause core dumps.
5568274Seric	Avoid possible buffer overrun in returntosender() if error
5668274Seric		message is quite ling.  From Fletcher Mattox of the
5768274Seric		University of Texas.
5868274Seric	Fix a problem that would silently drop "too many hops" error
5968274Seric		messages if and only if you were sending to an alias.
6068274Seric		From Jon Giltner of the University of Colorado and
6168274Seric		Dan Harton of Oak Ridge National Laboratory.
6268274Seric	Fix a bug that caused core dumps on some systems if -d11.2 was
6368274Seric		set and e->e_message was null.  Fix from Bruce Nagel of
6468274Seric		Data General.
6568274Seric	Fix problem that can still cause df files to be left around
6668274Seric		after "hop count exceeded" messages.  Fix from Andrew
6768274Seric		Chang and Shau-Ping Lo of SunSoft.
6868274Seric	Fix a problem that can cause buffer overflows on very long
6968274Seric		user names (as might occur if you piped to a program
7068274Seric		with a lot of arguments).
7168274Seric	Avoid returning an error and re-queueing if the host signature
7268274Seric		is null; this can occur on addresses like ``user@.''.
7368274Seric		Problem noted by Wesley Craig and the University of
7468274Seric		Michigan.
7568274Seric	Avoid possible calls to malloc(0) if MCI caching is turned
7668274Seric		off.  Bug fix from Pierre David of the Laboratoire
7768274Seric		Parallelisme, Reseaux, Systemes et Modelisation (PRiSM),
7868274Seric		Universite de Versailles - St Quentin, and Jacky
7968274Seric		Thibault.
8068274Seric	Make a local copy of the line being sent via senttolist() -- in
8168274Seric		some cases, buffers could get trashed by map lookups
8268274Seric		causing it to do unexpected things.  This also simplifies
8368274Seric		some of the map code.
84*68503Seric	CONFIG: No changes (version number only, to keep it in sync
85*68503Seric		with the binaries).
8668274Seric
8766956Seric8.6.9/8.6.9	94/04/19
8866920Seric	Do all mail delivery completely disconnected from any terminal.
8966920Seric		This provides consistency with daemon delivery and
9066920Seric		may have some security implications.
9166920Seric	Make sure that malloc doesn't get called with zero size,
9266920Seric		since that fails on some systems.  Reported by Ed
9366920Seric		Hill of the University of Iowa.
9466920Seric	Fix multi-line values for $e (SMTP greeting message).  Reported
9566920Seric		by Mike O'Connor of Ford Motor Company.
9666920Seric	Avoid syserr if no NIS domain name is defined, but the map it
9766920Seric		is trying to open is optional.  From Win Bent of USC.
9866920Seric	Changes for picky compilers from Ed Gould of Digital Equipment.
9966920Seric	Hesiod support for UDB from Todd Miller of the University of
10066920Seric		Colorado.  Use "hesiod" as the service name in the U
10166920Seric		option.
10266920Seric	Fix a problem that failed to set the "authentic" host name (that
10366920Seric		is, the one derived from the socket info) if you called
10466920Seric		sendmail -bs from inetd.  Based on code contributed by
10566920Seric		Todd Miller (this problem was also reported by Guy Helmer
10666920Seric		of Dakota State University).  This also fixes a related
10766996Seric		problem reported by Liudvikas Bukys of the University of
10866996Seric		Rochester.
10966920Seric	Parameterize "nroff -h" in all the Makefiles so people with
11066920Seric		variant versions can use them easily.  Suggested by
11166920Seric		Peter Collinson of Hillside Systems.
11266920Seric	SMTP "MAIL" commands with multiple ESMTP parameters required two
11366920Seric		spaces between parameters instead of one.  Reported by
11466920Seric		Valdis Kletnieks of Virginia Tech.
11566920Seric	Reduce the number of system calls during message collection by
11666920Seric		using global timeouts around the collect() loop.  This
11766920Seric		code was contributed by Eric Wassenaar.
11866920Seric	If the initial hostname name gathering results in a name
11966920Seric		without a dot (usually caused by NIS misconfiguration)
12066920Seric		and BIND is compiled in, directly access DNS to get
12166920Seric		the canonical name.  This should make life easier for
12266920Seric		Solaris systems.  If it still can't be resolved, and
12366920Seric		if the name server is listed as "required", try again
12466920Seric		in 30 seconds.  If that also fails, exit immediately to
12566920Seric		avoid bogus "config error: mail loops back to myself"
12666920Seric		messages.
12766920Seric	Improve the "MAIL DELETED BECAUSE OF LACK OF DISK SPACE" error
12866920Seric		message to explain how much space was available and
12966920Seric		sound a bit less threatening.  Suggested by Stan Janet
13066920Seric		of the National Institute of Standards and Technology.
13166920Seric	If mail is delivered to an alias that has an owner, deliver any
13266920Seric		requested return-receipt immediately, and strip the
13366920Seric		Return-Receipt-To: header from the subsequent message.
13466920Seric		This prevents a certain class of denial of service
13566920Seric		attack, arguably gives more reasonable semantics, and
13666920Seric		moves things more towards what will probably become a
13766920Seric		network standard.  Suggested by Christopher Davis of
13866920Seric		Kapor Enterprises.
13966920Seric	Add a "noreceipts" privacy flag to turn off all return receipts
14066920Seric		without recompiling.
14166920Seric	Avoid printing ESMTP parameters as part of the error message
14266920Seric		if there are errors during parsing.  This change is
14366920Seric		purely cosmetic.
14466920Seric	Avoid sending out error messages during the collect phase of
14566920Seric		SMTP; there is an MVS mailer from UCLA that gets
14666920Seric		confused by this.  Of course, I think it's their bug....
14766920Seric	Check for the $j macro getting undefined, losing a dot, or getting
14866920Seric		lost from $=w in the daemon before accepting a connection;
14966920Seric		if it is, it dumps state, prints a LOG_ALERT message,
15066920Seric		and drops core for debugging.  This is an attempt to
15166920Seric		track down a bug that I thought was long since gone.
15266920Seric		If you see this, please forward the log fragment to
15366920Seric		sendmail@CS.Berkeley.EDU.
15466920Seric	Change OLD_NEWDB from a #ifdef to a #if so it can be turned off
15566920Seric		with -DOLD_NEWDB=0 on the command line.  From Christophe
15666920Seric		Wolfhugel.
15766920Seric	Instead of trying to truncate the listen queue for the server
15866920Seric		SMTP port when the load average is too high, just close
15966920Seric		the port completely and reopen it later as needed.
16066920Seric		This ensures that the other end gets a quick "connection
16166920Seric		refused" response, and that the connection can be
16266920Seric		recovered later.  In particular, some socket emulations
16366920Seric		seem to get confused if you tweak the listen queue
16466920Seric		size around and can never start listening to connections
16566920Seric		again.  The down side is that someone could start up
16666920Seric		another daemon process in the interim, so you could
16766920Seric		have multiple daemons all not listening to connections;
16866920Seric		this could in turn cause the sendmail.pid file to be
16966920Seric		incorrect.  A better approach might be to accept the
17066920Seric		connection and give a 421 code, but that could break
17166920Seric		other mailers in mysterious ways and have paging behaviour
17266920Seric		implications.
17366920Seric	Fix a glitch in TCP-level debugging that caused flag 16.101 to
17466920Seric		set debugging on the wrong socket.  From Eric Wassenaar.
17566920Seric	When creating a df* temporary file, be sure you truncate any
17666920Seric		existing data in the file -- otherwise system crashes
17766920Seric		and the like could result in extra data being sent.
17866920Seric	DOC: Replace the CHANGES-R5-R8 readme file with a paper in the
17966920Seric		doc directory.  This includes some additional
18066920Seric		information.
18166920Seric	CONFIG: change UUCP rules to never add $U! or $k! on the front
18266920Seric		of recipient envelope addresses.  This should have been
18366920Seric		handled by the $&h trick, but broke if people were
18466920Seric		mixing domainized and UUCP addresses.  They should
18566920Seric		probably have converted all the way over to uucp-uudom
18666920Seric		instead of uucp-{new,old}, but the failure mode was to
18766920Seric		loop the mail, which was bad news.
18866920Seric	Portability fixes:
18966920Seric		Newer BSDI systems (several people).
19066920Seric		Older BSDI systems from Christophe Wolfhugel.
19166920Seric		Intergraph CLIX, from Paul Southworth of CICNet.
19266920Seric		UnixWare, from Evan Champion.
19366920Seric		NetBSD from Adam Glass.
19466920Seric		Solaris from Quentin Campbell of the University of
19566920Seric			Newcastle upon Tyne.
19666920Seric		IRIX from Dean Cookson and Bill Driscoll of Mitre
19766920Seric			Corporation.
19866920Seric		NCR 3000 from Kevin Darcy of Chrysler Corporation.
19966920Seric		SunOS (it has setsid() and setvbuf() calls) from
20066920Seric			Jonathan Kamens of OpenVision Technologies.
20166920Seric		HP-UX from Tor Lillqvist.
20266920Seric	New Files:
20366920Seric		src/Makefile.CLIX
20466920Seric		src/Makefile.NCR3000
20566920Seric		doc/changes/Makefile
20666920Seric		doc/changes/changes.me
20766920Seric		doc/changes/changes.ps
20866920Seric
20966432Seric8.6.8/8.6.6	94/03/21
21066432Seric	SECURITY: it was possible to read any file as root using the
21166432Seric		E (error message) option.  Reported by Richard Jones;
21266432Seric		fixed by Michael Corrigan and Christophe Wolfhugel.
21366432Seric
21466356Seric8.6.7/8.6.6	94/03/14
21566356Seric	SECURITY: it was possible to get root access by using wierd
21666356Seric		values to the -d flag.  Thanks to Alain Durand of
21766356Seric		INRIA for forwarding me the notice from the bugtraq
21866356Seric		list.
21966356Seric
22066352Seric8.6.6/8.6.6	94/03/13
22166352Seric	SECURITY: the ability to give files away on System V-based
22266352Seric		systems proved dangerous -- don't run as the owner
22366352Seric		of a :include: file on a system that allows giveaways.
22466352Seric		Unfortunately, this also applies to determining a
22566352Seric		valid shell.
22666352Seric	IMPORTANT: Previous versions weren't expiring old connections
22766352Seric		in the connection cache for a long time under some
22866352Seric		circumstances.  This could result in resource exhaustion,
22966352Seric		both at your end and at the other end.  This checks the
23066352Seric		connections for timeouts much more frequently.  From
23166352Seric		Doug Anderson of NCSC.
23266352Seric	Fix a glitch that snuck in that caused programs to be run as
23366352Seric		the sender instead of the recipient if the mail was
23466352Seric		from a local user to another local user.  From
23566352Seric		Motonori Nakamura of Kyoto University.
23666352Seric	Fix "wildcard" on /etc/shell matching -- instead of looking
23766352Seric		for "*", look for "/SENDMAIL/ANY/SHELL/".  From
23866352Seric		Bryan Costales of ICSI.
23966352Seric	Change the method used to declare the "statfs" availability;
24066352Seric		instead of HASSTATFS and/or HASUSTAT with a ton of
24166352Seric		tweaking in conf.c, there is a single #define called
24266352Seric		SFS_TYPE which takes on one of six values (SFS_NONE
24366352Seric		for no statfs availability, SFS_USTAT for the ustat(2)
24466352Seric		syscall, SFS_4ARGS for a four argument statfs(2) call,
24566352Seric		and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument
24666352Seric		statfs(2) call with the declarations in <sys/vfs.h>,
24766352Seric		<sys/mount.h>, or <sys/statfs.h> respectively).
24866352Seric	Fix glitch in NetInfo support that could return garbage if
24966352Seric		there was no "/locations/sendmail" property.  From
25066352Seric		David Meyer of the University of Virginia.
25166352Seric	Change HASFLOCK from defined/not-defined to a 0/1 definition
25266352Seric		to allow Linux to turn it off even though it is a
25366352Seric		BSD-like system.
25466352Seric	Allow setting of "ident" timeout to zero to turn off the ident
25566352Seric		protocol entirely.
25666352Seric	Make 7-bit stripping local to a connection (instead of to a
25766352Seric		mailer); this allows you to specify that SMTP is a
25866352Seric		7-bit channel, but revert to 8-bit should it advertise
25966352Seric		that it supports 8BITMIME.  You still have to specify
26066352Seric		mailer flag 7 to get this stripping at all.
26166352Seric	Improve makesendmail script so it handles more cases automatically.
26266352Seric	Tighten up restrictions on taking ownership of :include: files
26366352Seric		to avoid problems on systems that allow you to give away
26466352Seric		files.
26566352Seric	Fix a problem that made it impossible to rebuild the alias
26666352Seric		file if it was on a read-only file system.  From
26766352Seric		Harry Edmon of the University of Washington.
26866352Seric	Improve MX randomization function.  From John Gardiner Myers
26966352Seric		of CMU.
27066352Seric	Fix a minor glitch causing a bogus message to be printed (used
27166352Seric		%s instead of %d in a printf string for the line number)
27266352Seric		when a bad queue file was read.  From Harry Edmon.
27366352Seric	Allow $s to remain NULL on locally generated mail.  I'm not
27466352Seric		sure this is necessary, but a lot of people have complained
27566352Seric		about it, and there is a legitimate question as to whether
27666352Seric		"localhost" is legal as an 822-style domain.
27766352Seric	Fix a problem with very short line lengths (mailer L= flag) in
27866352Seric		headers.  This causes a leading space to be added onto
27966352Seric		continuation lines (including in the body!), and also
28066352Seric		tries to wrap headers containing addresses (From:, To:,
28166352Seric		etc) intelligently at the shorter line lengths.  Problem
28266352Seric		Reported by Lars-Johan Liman of SUNET Operations Center.
28366352Seric	Log the real user name when logging syserrs, since these can have
28466352Seric		security implications.  Suggested by several people.
28566352Seric	Fix address logging of cached connections -- it used to always
28666352Seric		log the numeric address as zero.  This is a somewhat
28766352Seric		bogus implementation in that it does an extra system
28866352Seric		call, but it should be an inexpensive one.  Fix from
28966352Seric		Motonori Nakamura.
29066352Seric	Tighten up handling of short syslog buffers even more -- there
29166352Seric		were cases where the outgoing relay= name was too long
29266352Seric		to share a line with delay= and mailer= logging.
29366352Seric	Limit the overhead on split envelopes to one open file descriptor
29466352Seric		per envelope -- previously the overhead was three
29566352Seric		descriptors.  This was in response to a problem reported
29666352Seric		by P{r (Pell) Emanuelsson.
29766352Seric	Fixes to better handle the case of unexpected connection closes;
29866352Seric		this redirects the output to the transcript so the info
29966352Seric		is not lost.  From Eric Wassenaar.
30066352Seric	Fix potential string overrun if you macro evaluate a string that
30166352Seric		has a naked $ at the end.  Problem noted by James Matheson
30266352Seric		<jmrm@eng.cam.ac.uk>.
30366352Seric	Make default error number on $#error messages 553 (``Requested
30466352Seric		action not taken: mailbox name not allowed'') instead of
30566352Seric		501 (``Syntax error in parameters or arguments'') to
30666352Seric		avoid bogus "protocol error" messages.
30766352Seric	Strip off any existing trailing dot on names during $[ ... $]
30866352Seric		lookup.  This prevents it from ending up with two dots
30966352Seric		on the end of dot terminated names.  From Wesley Craig
31066352Seric		of the University of Michigan and Bryan Costales of ICSI.
31166352Seric	Clean up file class reading so that the debugging information is
31266352Seric		more informative.  It hadn't been using setclass, so you
31366352Seric		didn't see the class items being added.
31466352Seric	Avoid core dump if you are running a version of sendmail where
31566352Seric		NIS is compiled in, and you specify an NIS map, but
31666352Seric		NIS is not running.  Fix from John Oleynick of
31766352Seric		Rutgers.
31866352Seric	Diagnose bizarre case where res_search returns a failure value,
31966352Seric		but sets h_errno to a success value.
32066352Seric	Make sure that "too many hops" messages are considered important
32166352Seric		enough to send an error to the Postmaster (that is, the
32266352Seric		address specified in the P option).  This fix should
32366352Seric		help problems that cause the df file to be left around
32466352Seric		sometimes -- unfortunately, I can't seem to reproduce
32566352Seric		the problem myself.
32666352Seric	Avoid core dump (null pointer reference) on EXPN command; this
32766352Seric		only occurred if your log level was set to 10 or higher
32866352Seric		and the target account was an alias or had a .forward file.
32966352Seric		Problem noted by Janne Himanka.
33066352Seric	Avoid "denial of service" attacks by someone who is flooding your
33166352Seric		SMTP port with bad commands by shutting the connection
33266352Seric		after 25 bad commands are issued.  From Kyle Jones of
33366352Seric		UUNET.
33466352Seric	Fix core dump on error messages with very long "to" buffers;
33566352Seric		fmtmsg overflows the message buffer.  Fixed by trimming
33666352Seric		the to address to 203 characters.  Problem reported by
33766352Seric		John Oleynick.
33866352Seric	Fix configuration for HASFLOCK -- there were some spots where
33966352Seric		a #ifndef was incorrectly #ifdef.  Pointed out by
34066352Seric		George Baltz of the University of Maryland.
34166352Seric	Fix a typo in savemail() that could cause the error message To:
34266352Seric		lists to be incorrect in some places.  From Motonori
34366352Seric		Nakamura.
34466352Seric	Fix a glitch that can cause duplicate error messages on split
34566352Seric		envelopes where an address on one of the lists has a
34666352Seric		name server failure.  Fix from Voradesh Yenbut of the
34766352Seric		University of Washington.
34866352Seric	Fix possible bogus pointer reference on ESMTP parameters that
34966352Seric		don't have an ``=value'' part.
35066352Seric	CNAME loops caused an error message to be generated, but also
35166352Seric		re-queued the message.  Changed to just re-queue the
35266352Seric		message (it's really hard to just bounce it because
35366352Seric		of the wierd way the name server works in the presence
35466352Seric		of CNAME loops).  Problem noted by James M.R.Matheson
35566352Seric		of Cambridge University.
35666352Seric	Avoid giving ``warning: foo owned process doing -bs'' messages
35766352Seric		if they use ``MAIL FROM:<foo>'' where foo is their true
35866352Seric		user name.  Suggested by Andreas Stolcke of ICSI.
35966352Seric	Change the NAMED_BIND compile flag to be a 0/1 flag so you can
36066352Seric		override it easily in the Makefile -- that is, you can
36166352Seric		turn it off using -DNAMED_BIND=0.
36266352Seric	If a gethostbyname(...) of an address with a trailing dot fails,
36366352Seric		try it without the trailing dot.  This is because if
36466352Seric		you have a version of gethostbyname() that falls back
36566352Seric		to NIS or the /etc/hosts file it will fail to find
36666352Seric		perfectly reasonable names that just don't happen to
36766352Seric		be dot terminated in the hosts file.  You don't want to
36866352Seric		strip the dot first though because we're trying to ensure
36966352Seric		that country names that match one of your subdomains get
37066352Seric		a chance.
37166352Seric	PRALIASES: fix bogus output on non-null-terminated strings.
37266352Seric		From Bill Gianopoulos of Raytheon.
37366352Seric	CONFIG: Avoid rewriting anything that matches $w to be $j.
37466352Seric		This was in code intended to only catch the self-literal
37566352Seric		address (that is, [1.2.3.4], where 1.2.3.4 is your
37666352Seric		IP address), but the code was broken.  However, it will
37766352Seric		still do this if $M is defined; this is necessary to
37866352Seric		get client configurations to work (sigh).  Note that this
37966352Seric		means that $M overrides :mailname entries in the user
38066352Seric		database!  Problem noted by Paul Southworth.
38166352Seric	CONFIG: Fix definition of Solaris help file location.  From
38266352Seric		Steve Cliffe <steve@gorgon.cs.uow.edu.au>.
38366352Seric	CONFIG: Fix bug that broke news.group.USENET mappings.
38466352Seric	CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX,
38566352Seric		and USENET_MAILER_MAX to tweak the maximum message
38666352Seric		size for various mailers.
38766352Seric	CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0]
38866352Seric		instead of assuming that it is "inews" for consistency
38966352Seric		with other mailers.  From Michael Corrigan of UC San Diego.
39066352Seric	CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB,
39166352Seric		qualify the address in the SMTP envelope as user@{relay|hub}
39266352Seric		instead of user@$j.  From Bill Wisner of The Well.
39366352Seric	CONFIG: Fix route-addr syntax in nullrelay configuration set.
39466352Seric	CONFIG: Don't turn off case mapping of user names in the local
39566352Seric		mailer for IRIX.  This was different than most every other
39666352Seric		system.
39766352Seric	CONFIG: Avoid infinite loops on certainly list:; syntaxes in
39866352Seric		envelope.  Noted by Thierry Besancon
39966352Seric		<besancon@excalibur.ens.fr>.
40066352Seric	CONFIG: Don't include -z by default on uux line -- most systems
40166352Seric		don't want it set by default.  Pointed out by Philippe
40266352Seric		Michel of Thomson CSF.
40366352Seric	CONFIG: Fix some bugs with mailertables -- for example, if your
40466352Seric		host name was foo.bar.ray.com and you matched against
40566352Seric		".ray.com", the old implementation bound %1 to "bar"
40666352Seric		instead of "foo.bar".  Also, allow "." in the mailertable
40766352Seric		to match anything -- essentially, take over SMART_HOST.
40866352Seric		This also moves matching of explicit local host names
40966352Seric		before the mailertable so they don't have to be special
41066352Seric		cased in the mailertable data.  Reported by Bill
41166352Seric		Gianopoulos of Raytheon; the fix for the %1 binding
41266352Seric		problem was contributed by Nicholas Comanos of the
41366352Seric		University of Sydney.
41466352Seric	CONFIG: Don't include "root" in class $=L (users to deliver
41566352Seric		locally, even if a hub or relay exists) by default.
41666352Seric		This is because of the known bug where definition of
41766352Seric		both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore
41866352Seric		both and deliver into the local mailbox.
41966352Seric	CONFIG: Move up bitdomain and uudomain handling so that they
42066352Seric		are done before .UUCP class matching; uudomain was
42166352Seric		reported as ineffective before.  This also frees up
42266352Seric		diversion 8 for future use.  Problem reported by Kimmo
42366352Seric		Suominen.
42466352Seric	CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4])
42566352Seric		into host names.  As pointed out by Jonathan Kamens,
42666352Seric		these are often used because either the forward or reverse
42766352Seric		mapping is broken; this translation makes it broken again.
42866352Seric	DOC: Clarify $@ and $: in the Install & Op Guide.  From Kimmo
42966352Seric		Suominen.
43066352Seric	Portability fixes:
43166352Seric		Unicos from David L. Kensiski of Sterling Sofware.
43266352Seric		DomainOS from Don Lewis of Silicon Systems.
43366352Seric		GNU m4 1.0.3 from Karst Koymans of Utrecht University.
43466352Seric		Convex from Kimmo Suominen <kim@tac.nyc.ny.us>.
43566352Seric		NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>.
43666352Seric		BSD/386 from Tony Sanders of BSDI.
43766352Seric		Apollo from Eric Wassenaar.
43866352Seric		DGUX from Doug Anderson.
43966352Seric		Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent.
44066352Seric	NEW FILES:
44166352Seric		src/Makefile.DomainOS
44266352Seric		src/Makefile.PTX
44366352Seric		src/Makefile.SunOS.5.1
44466352Seric		src/Makefile.SunOS.5.2
44566352Seric		src/Makefile.SunOS.5.x
44666352Seric		src/mailq.1
44766352Seric		cf/ostype/domainos.m4
44866352Seric		doc/op/Makefile
44966352Seric		doc/intro/Makefile
45066352Seric		doc/usenix/Makefile
45166352Seric
45266348Seric8.6.5/8.6.5	94/01/13
45366348Seric	Security fix:  /.forward could be owned by anyone (the test
45466348Seric		to allow root to own any file was backwards).  From
45566348Seric		Bob Campbell at U.C. Berkeley.
45666348Seric	Security fix: group ids were not completely set when programs
45766348Seric		were invoked.  This caused programs to have group
45866348Seric		permissions they should not have had (usually group
45966348Seric		daemon instead of their own group).  In particular,
46066348Seric		Perl scripts would refuse to run.
46166348Seric	Security: check to make sure files that are written are not
46266348Seric		symbolic links (at least under some circumstances).
46366348Seric		Although this does not respond to a specific known
46466348Seric		attack, it's just a good idea.  Suggested by
46566348Seric		Christian Wettergren.
46666348Seric	Security fix: if a user had an NFS mounted home directory on
46766348Seric		a system with a restricted shell listed in their
46866348Seric		/etc/passwd entry, they could still execute any
46966348Seric		program by putting that in their .forward file.
47066348Seric		This fix prevents that by insisting that their shell
47166348Seric		appear in /etc/shells before allowing a .forward to
47266348Seric		execute a program or write a file.  You can disable
47366348Seric		this by putting "*" in /etc/shells.  It also won't
47466348Seric		permit world-writable :include: files to reference
47566348Seric		programs or files (there's no way to disable this).
47666348Seric		These behaviours are only one level deep -- for
47766348Seric		example, it is legal for a world-writable :include:
47866348Seric		file to reference an alias that writes a file, on
47966348Seric		the assumption that the alias file is well controlled.
48066348Seric	Security fix: root was not treated suspiciously enough when
48166348Seric		looking into subdirectories.  This would potentially
48266348Seric		allow a cracker to examine files that were publically
48366348Seric		readable but in a non-publically searchable directory.
48466348Seric	Fix a problem that causes an error on QUIT on a cached
48566348Seric		connection to create problems on the current job.
48666348Seric		These are typically unrelated, so errors occur in
48766348Seric		the wrong place.
48866348Seric	Reset CurrentLA in sendall() -- this makes sendmail queue
48966348Seric		runs more responsive to load average, and fixes a
49066348Seric		problem that ignored the load average in locally
49166348Seric		generated mail.  From Eric Wassenaar.
49266348Seric	Fix possible core dump on aliases with null LHS.  From
49366348Seric		John Orthoefer of BB&N.
49466348Seric	Revert to using flock() whenever possible -- there are just
49566348Seric		too many bugs in fcntl() locking, particularly over
49666348Seric		NFS, that cause sendmail to fail in perverse ways.
49766348Seric	Fix a bug that causes the connection cache to get confused
49866348Seric		when sending error messages.  This resulted in
49966348Seric		"unexpected close" messages.  It should fix itself
50066348Seric		on the following queue run.  Problem noted by
50166996Seric		Liudvikas Bukys of the University of Rochester.
50266348Seric	Include $k in $=k as documented in the Install & Op Guide.
50366348Seric		This seems odd, but it was documented....  From
50466348Seric		Michael Corrigan of UCSD.
50566348Seric	Fix problem that caused :include:s from alias files to be
50666348Seric		forced to be owned by root instead of daemon
50766348Seric		(actually DefUid).  From Tim Irvin.
50866348Seric	Diagnose unrecognized I option values -- from Mortin Forssen
50966348Seric		of the Chalmers University of Technology.
51066348Seric	Make "error" mailer work consistently when there is no error
51166348Seric		code associated with it -- previously it returned OK
51266348Seric		even though there was a real problem.  Now it assumes
51366348Seric		EX_UNAVAILABLE.
51466348Seric	Fix bug that caused the last header line of messages that had
51566348Seric		no body and which were terminated with EOF instead of
51666348Seric		"." to be discarded.  Problem noted by Liudvikas Bukys.
51766348Seric	Fix core dump on SMTP mail to programs that failed -- it tried
51866348Seric		to go to a "next MX host" when none existed, causing
51966348Seric		a core dump.  From der Mouse at McGill University.
52066348Seric	Change IDENTPROTO from a defined/not defined to a 0/1 switch;
52166348Seric		this makes it easier to turn it off (using
52266348Seric		-DIDENTPROTO=0 in the Makefile).  From der Mouse.
52366348Seric	Fix YP_MASTER_NAME store to use the unupdated result of
52466348Seric		gethostname() (instead of myhostname(), which tries
52566348Seric		to fully qualify the name) to be consistent with
52666348Seric		SunOS.  If your hostname is unqualified, this fixes
52766348Seric		transfers to slave servers.  Bug noted by Keith
52866348Seric		McMillan of Ameritech Services, Inc.
52966348Seric	Fix Ultrix problem: gethostbyname() can return a very large
53066348Seric		(> 500) h_length field, which causes the sockaddr
53166348Seric		to be trashed.  Use the size of the sockaddr instead.
53266348Seric		Fix from Bob Manson of Ohio State.
53366348Seric	Don't assume "-a." on host lookups if NAMED_BIND is not
53466348Seric		defined -- this confuses gethostbyname on hosts
53566348Seric		file lookups, which doesn't understand the trailing
53666348Seric		dot convention.
53766348Seric	Log SMTP server subprocesses that die with a signal instead
53866348Seric		of from a clean exit.
53966348Seric	If you don't have option "I" set, don't assume that a DNS
54066348Seric		"host unknown" message is authoritative -- it
54166348Seric		might still be found in /etc/hosts.
54266348Seric	Fix a problem that would cause Deferred: messages to be sent
54366348Seric		as the subject of an error message, even though the
54466348Seric		actual cause of a message was more severe than that.
54566348Seric		Problem noted by Chris Seabrook of OSSI.
54666348Seric	Fix race condition in DBM alias file locking.  From Kyle
54766348Seric		Jones of UUNET.
54866348Seric	Limit delivery syslog line length to avoid bugs in some
54966348Seric		versions of syslog(3).  This adds a new compile time
55066348Seric		variable SYSLOG_BUFSIZE.  From Jay Plett of Princeton
55166348Seric		University, which is in turn derived from IDA.
55266348Seric	Fix quotes inside of comments in addresses -- previously
55366348Seric		it insisted that they be balanced, but the 822 spec
55466348Seric		says that they should be ignored.
55566348Seric	Dump open file state to syslog upon receiving SIGUSR1 (for
55666348Seric		debugging).  This also evaluates ruleset 89, if set
55766348Seric		(with the null input), and logs the result.  This
55866348Seric		should be used sparingly, since the rewrite process
55966348Seric		is not reentrant.
56066348Seric	Change -qI, -qR, and -qS flags to be case-insensitive as
56166348Seric		documented in the Bat Book.
56266348Seric	If the mailer returned EX_IOERR or EX_OSERR, sendmail did not
56366348Seric		return an error message and did not requeue the message.
56466348Seric		Fix based on code from Roland Dirlewanger of
56566348Seric		Reseau Regional Aquarel, Bordeaux, France.
56666348Seric	Fix a problem that caused a seg fault if you got a 421 error
56766348Seric		code during some parts of connection initialization.
56866348Seric		I've only seen this when talking to buggy mailers on
56966348Seric		the other end, but it shouldn't give a seg fault in
57066348Seric		any case.  From Amir Plivatsky.
57166348Seric	Fix core dump caused by a ruleset call that returns null.
57266348Seric		Fix from Bryan Costales of ICSI.
57366348Seric	Full-Name: field was being ignored.  Fix from Motonori Nakamura
57466348Seric		of Kyoto University.
57566348Seric	Fix a possible problem with very long input lines in setproctitle.
57666348Seric		From P{r Emanuelsson.
57766348Seric	Avoid putting "This is a warning message" out on return receipts.
57866348Seric		Suggested by Douglas Anderson.
57966348Seric	Detect loops caused by recursive ruleset calls.  Suggested by
58066348Seric		Bryan Costales.
58166348Seric	Initialize non-alias maps during alias rebuilds -- they may be
58266348Seric		needed for parsing.  Problem noted by Douglas Anderson.
58366348Seric	Log sender address even if no message was collected in SMTP
58466348Seric		(e.g., if all RCPTs failed).  Suggested by Motonori
58566348Seric		Nakamura.
58666348Seric	Don't reflect the owner-list contents into the envelope sender
58766348Seric		address if the value contains ", :, /, or | (to avoid
58866348Seric		illegal addresses appearing there).
58966348Seric	Efficiency hack for toktype macro -- from Craig Partridge of
59066348Seric		BB&N.
59166348Seric	Clean up DNS error printing so that a host name is always
59266348Seric		included.
59366348Seric	Remember to set $i during queue runs.  Reported by Stephen
59466348Seric		Campbell of Dartmouth University.
59566348Seric	If ${HOSTALIASES} is set, use it during canonification so that
59666348Seric		headers are properly mapped.  Reported by Anne Bennett
59766348Seric		of Concordia University.
59866348Seric	Avoid printing misleading error message if SMTP mailer (not
59966348Seric		using [IPC]) should die on a core dump.
60066348Seric	Avoid incorrect diagnosis of "file 1 closed" when it is caused
60166348Seric		by the other end closing the connection.  From
60266348Seric		Dave Morrison of Oracle.
60366348Seric	Improve several of the error messages printed by "mailq"
60466348Seric		to include a host name or other useful information.
60566348Seric	Add NetInfo preliminary support for NeXT systems.  From Vince
60666348Seric		DeMarco.
60766348Seric	Fix a glitch that sometimes caused :include:s that pointed to
60866348Seric		NFS filesystems that were down to give an "aliasing/
60966348Seric		forwarding loop broken" message instead of queueing
61066348Seric		the message for retry.  Noted by William C Fenner of
61166348Seric		the NRL Connection Machine Facility.
61266348Seric	Fix a problem that could cause a core dump if the input sequence
61366348Seric		had (or somehow acquired) a \231 character.
61466348Seric	Make sure that route-addrs always have <angle brackets> around
61566348Seric		them in non-SMTP envelopes (SMTP envelopes already do
61666348Seric		this properly).
61766348Seric	Avoid wierd headers on unbalanced punctuation of the form:
61866348Seric		``Joe User <user)'' -- this caused reference to the
61966348Seric		null macro.  Fix from Rick McCarty of IO.COM.
62066348Seric	Fix a problem that caused an alias "user: user@local.host" to
62166348Seric		not have the QNOTREMOTE bit set; this caused configs
62266348Seric		to act as if FEATURE(notsticky) was defined even when
62366348Seric		it was not.  The effect of the problem was to make it
62466348Seric		very hard to to set up satellite sites that had a few
62566348Seric		local accounts, with everything else forwarded to a
62666348Seric		corporate hub.  Reported by Detlef Drewanz of the
62766348Seric		University of Rostock and Mark Frost of NCD.
62866348Seric	Change queuing to not call rulesets 3, {1 or 2}, 4 on header
62966348Seric		addresses.  This is more efficient (fewer name server
63066348Seric		calls) and fixes certain unusual configurations, such
63166348Seric		as those that have ruleset 4 do something that is
63266348Seric		non-idempotent unless a mailer-specific ruleset did
63366348Seric		something else.  Problem reported by Brian J. Coan
63466348Seric		of the Institute for Global Communications.
63566348Seric	Fix the "obsolete argument" routine in main to better understand
63666348Seric		new arguments.  For example, if you used ``sendmail
63766348Seric		-C config -v -q'' it would choke on the -q because
63866348Seric		the -C would stop looking for old-format arguments.
63966348Seric	Fix the code that was intended to allow two users to forward their
64066348Seric		mail to the same program and have them appear unique.
64166348Seric	Portability fixes for:
64266348Seric		SCO UNIX from Murray Kucherawy.
64366348Seric		SCO Open Server 3.2v4 from Philippe Brand.
64466348Seric		System V Release 4 from Rick Ellis and others.
64566348Seric		OSF/1 from Steve Campbell.
64666348Seric		DG/UX from Ben Mesander of the USGS and Bryan Curnutt
64766348Seric			of Stoner Associates.
64866348Seric		Motorola SysV88 from Kevin Johnson of Motorola.
64966348Seric		Solaris 2.3 from Casper H.S. Dik of the University
65066348Seric			of Amsterdam and John Caruso of University
65166348Seric			of Maryland.
65266348Seric		FreeBSD from Ollivier Robert.
65366348Seric		NetBSD from Adam Glass.
65466348Seric		TitanOS from Kate Hedstrom of Rutgers University.
65566348Seric		Irix from Bryan Curnutt.
65666348Seric		Dynix from Jim Davis of the University of Arizona.
65766348Seric		RISC/os.
65866348Seric		Linux from John Kennedy of California State University
65966348Seric			at Chico.
66066348Seric		Solaris 2.x from Tony Boner of the U.S. Air Force.
66166348Seric		NEXTSTEP 3.x from Vince DeMarco.
66266348Seric		HP-UX from various people.  NOTA BENE:  the location
66366348Seric			of the config file has moved to /usr/lib
66466348Seric			to match the HP-UX version of sendmail.
66566348Seric	CONFIG: Don't do any recipient rewriting on relay mailer;
66666348Seric		since this is intended only for internal use, the
66766348Seric		usual RFC 821/822/1123 rules can be relaxed.  The
66866348Seric		main point of this is to avoid munging (ugh) UUCP
66966348Seric		addresses when relaying internally.
67066348Seric	CONFIG: fix typo in mailer/uucp.m4 that mutilates list:;
67166348Seric		syntax addresses delivered via UUCP.  Solution
67266348Seric		provided by Peter Wemm.
67366348Seric	CONFIG: fix thumb-fumble in default UUCP relaying in ruleset
67466348Seric		zero; it caused double @ signs in addresses.  From
67566348Seric		Irving Reid of the University of Toronto.
67666348Seric	CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1
67766348Seric		from Markku Toijala of ICL Personal Systems Oy.
67866348Seric	CONFIG: Add trailing "." on pseudo-domains for consistency;
67966348Seric		this fixes a problem (noted by Al Whaley of Sunnyside)
68066348Seric		that made it hard to recognize your own pseudodomain
68166348Seric		names.
68266348Seric	CONFIG: catch "@host" syntax errors (i.e., null local-parts)
68366348Seric		rather than letting them get "local configuration
68466348Seric		error"s.  Problem noted by John Gardiner Myers.
68566348Seric	CONFIG: add uucp-uudom mailer variant, based on code posted
68666348Seric		by Spider Boardman <spider@Orb.Nashua.NH.US>; this
68766348Seric		has uucp-dom semantics but old UUCP syntax.  This
68866348Seric		also permits "uucp-old" as an alias for "uucp" and
68966348Seric		"uucp-new" as a synonym for "suucp" for consistency.
69066348Seric	CONFIG: add POP mailer support (from Kimmo Suominen
69166348Seric		<kim@grendel.lut.fi>).
69266348Seric	CONFIG: drop CSNET_RELAY support -- CSNET is long gone.
69366348Seric	CONFIG: fix bug caused with domain literal addresses (e.g.,
69466348Seric		``[128.32.131.12]'') when FEATURE(allmasquerade)
69566348Seric		was set; it would get an additional @masquerade.host
69666348Seric		added to the address.  Problem noted by Peter Wan
69766348Seric		of Georgia Tech.
69866348Seric	CONFIG: make sure that the local UUCP name is in $=w.  From
69966348Seric		Jim Murray of Stratus.
70066348Seric	CONFIG: changes to UUCP rewriting to simulate IDA-style "V"
70166348Seric		mailer flag.  Briefly, if you are sending to host
70266348Seric		"foo", then it rewrites "foo!...!baz" to "...!baz",
70366348Seric		"foo!baz" remains "foo!baz", and anything else has
70466348Seric		the local name prepended.
70566348Seric	CONFIG: portability fixes for HP-UX.
70666348Seric	DOC: several minor problems fixed in the Install & Op Guide.
70766348Seric	MAKEMAP: fix core dump problem on lines that are too long or
70866348Seric		which lack newline.  From Mark Delany.
70966348Seric	MAILSTATS: print sums of columns (total messages & kbytes
71066348Seric		in and out of the system).  From Tom Ferrin of UC
71166348Seric		San Francisco Computer Graphics Lab.
71266348Seric	SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES:
71366348Seric		On HP-UX, /etc/sendmail.cf has been moved to
71466348Seric			/usr/lib/sendmail.cf to match HP sendmail.
71566348Seric		Permissions have been tightened up on world-writable
71666348Seric			:include: files and accounts that have shells
71766348Seric			that are not listed in /etc/shells.  This may
71866348Seric			cause some .forward files that have worked
71966348Seric			before to start failing.
72066348Seric		SIGUSR1 dumps some state to the log.
72166348Seric	NEW FILES:
72266348Seric		src/Makefile.DGUX
72366348Seric		src/Makefile.Dynix
72466348Seric		src/Makefile.FreeBSD
72566348Seric		src/Makefile.Mach386
72666348Seric		src/Makefile.NetBSD
72766348Seric		src/Makefile.RISCos
72866348Seric		src/Makefile.SCO
72966348Seric		src/Makefile.SVR4
73066348Seric		src/Makefile.Titan
73166348Seric		cf/mailer/pop.m4
73266348Seric		cf/ostype/bsdi1.0.m4
73366348Seric		cf/ostype/dgux.m4
73466348Seric		cf/ostype/dynix3.2.m4
73566348Seric		cf/ostype/sco3.2.m4
73666348Seric		makemap/Makefile.dist
73766348Seric		praliases/Makefile.dist
73866348Seric
73966347Seric8.6.4/8.6.4	93/10/31
74066347Seric	Repair core-dump problem (write to read-only memory segment)
74166347Seric		if you fall back to the return-to-Postmaster case in
74266347Seric		savemail.  Problem reported by Richard Liu.
74366347Seric	Immediately diagnose bogus sender addresses in SMTP.  This
74466347Seric		makes quite certain that crackers can't use this
74566347Seric		class of attack.
74666347Seric	Reliability Fix:  check return value from fclose() and fsync()
74766347Seric		in a few critical places.
74866347Seric	Minor problem in initsys() that reversed a condition for
74966347Seric		redirecting the output channel on queue runs.  It's
75066347Seric		not clear this code even does anything.  From Eric
75166347Seric		Wassenaar of the Dutch National Institute for Nuclear
75266347Seric		and High-Energy Physics.
75366347Seric	Fix some problems that caused queue runs to do "too much work",
75466347Seric		such as double-reading the Errors-To: header.  From
75566347Seric		Eric Wassenaar.
75666347Seric	Error messages on writing the temporary file (including the
75766347Seric		data file) were getting suppressed in SMTP -- this
75866347Seric		fix causes them to be properly reported.  From Eric
75966347Seric		Wassenaar.
76066347Seric	Some changes to support AF_UNIX sockets -- this will only
76166347Seric		really become relevant in the next release, but some
76266347Seric		people need it for local patches.  From Michael
76366347Seric		Corrigan of UC San Diego.
76466347Seric	Use dynamically allocated memory (instead of static buffers)
76566347Seric		for macros defined in initsys() and settime(); since
76666347Seric		these can have different values depending on which
76766347Seric		envelope they are in.  From Eric Wassenaar.
76866347Seric	Improve logging to show ctladdr on to= logging; this tells you
76966347Seric		what uid/gid processes ran as.
77066347Seric	Fix a problem that caused error messages to be discarded if
77166347Seric		the sender address was unparseable for some reason;
77266347Seric		this was supposed to fall back to the "return to
77366347Seric		postmaster" case.
77466347Seric	Improve aliaswait backoff algorithm.
77566347Seric	Portability patches for Linux (8.6.3 required another header
77666347Seric		file) (from Karl London) and SCO UNIX.
77766347Seric	CONFIG: patch prog mailer to not strip host name off of envelope
77866347Seric		addresses (so that it matches local again).  From
77966347Seric		Christopher Davis.
78066347Seric	CONFIG: change uucp-dom mailer so that "<>" translates to $n;
78166347Seric		this prevents uux from seeing lines with null names like
78266347Seric		``From   Sat Oct 30 14:55:31 1993''.  From Motonori
78366347Seric		Nakamura of Kyoto University.
78466347Seric	CONFIG: handle <list:;> syntax correctly.  This isn't legal, but
78566347Seric		it shouldn't fail miserably.  From Motonori Nakamura.
78666347Seric
78766346Seric8.6.3/8.6.3	93/10/24
78866346Seric	IMPORTANT FIX: Fix several problems that caused open files to
78966346Seric		be "lost" during queue runs; this overflowed the open
79066346Seric		file table on large runs.  An assumption that fdopen
79166346Seric		always succeeds sometimes resulted in core dumps when
79266346Seric		this happens; sometimes the message is delivered twice,
79366346Seric		sometimes (probably) infinite times.  This problem in
79466346Seric		various form was reported by P{r (Pell) Emanuelsson and
79566346Seric		Robert Campbell of U.C. Berkeley.
79666346Seric	Special diagnosis of EMFILE error conditions -- it now prints
79766346Seric		the known open file descriptors so you can figure out
79866346Seric		what is consuming so much resources.
79966346Seric	Fix a couple of problems caused by early address parsing
80066346Seric		errors -- one caused it to return a "this is only a
80166346Seric		warning" when it really wasn't, and the other started
80266346Seric		parsing through a random pointer.  The first was
80366346Seric		noted by Eric Wassenaar.
80466346Seric	Fix an infinite loop problem caused by null components in the
80566346Seric		host signature.  Problem noted by Jan Sorensen.
80666346Seric	Be sure to reset the "current date" when sending an error
80766346Seric		message -- PostMasterCopy messages were being sent
80866346Seric		with an old Date: header.
80966346Seric	Fix a problem that caused duplicated mail when sendmail was
81066346Seric		(1) compiled without HASFLOCK, (2) you are sending to
81166346Seric		an alias that has an owner-* alias, (3) you execute
81266346Seric		sendmail with -t flag, (4) you run in -odb mode, and
81366346Seric		(5) the sender specifies both the alias name and
81466346Seric		another alias [i.e., the envelope is split], then
81566346Seric		duplicate messages are sent.  The problem description
81666346Seric		and one-line fix are from Motonori Nakamura of Kyoto
81766346Seric		University.
81866346Seric	Avoid a problem that causes error messages to be discarded
81966346Seric		in some cases -- this was the result of a "fix" to
82066346Seric		avoid duplicate error messages, but two are better
82166346Seric		than zero.  Reported by Tim Rylance.
82266346Seric	Fix a minor botch in checkfd012() -- fix from Dave Hill of
82366346Seric		Computervision R&D Ltd.
82466346Seric	Remove "X-Authentication-Warning: <user> set sender to <address>
82566346Seric		using -f" entirely -- it is far too eager to include
82666346Seric		this, and it is confusing folks.  I'll try to make it
82766346Seric		work "right" in 8.7.  Problem noted by Yoshitaka
82866346Seric		Tokugawa of dit Co., Ltd.
82966346Seric	Fix a race condition with the errno value in tick() and
83066346Seric		reapchild() -- this caused occasional misdiagnosis
83166346Seric		of problems.  Kyle Jones of UUNET helped this along.
83266346Seric	Repair rule loop-detection code.  From Michael Corrigan of
83366346Seric		U.C. San Diego.
83466346Seric	Fix a problem that caused sender domain addition (C mailer
83566346Seric		flag to be ignored if you use -odq or use -odb with
83666346Seric		a high load average.  Problem reported by Jim Murray
83766346Seric		of Stratus.
83866346Seric	Fix ident protocol on multi-homed machines.  It was not
83966346Seric		always using the correct interface.  Fix from J.R.
84066346Seric		Oldroyd of Opal.
84166346Seric	Previously, sendmail assumed that any SMTP greeting message
84266346Seric		that wasn't 2xx was a temporary failure -- it should
84366346Seric		only take 4xx as a temporary failure, and return a
84466346Seric		solid error message on anything else -- for example,
84566346Seric		to allow you to reject connections on a workstation
84666346Seric		that is MXed to a mail server.
84766346Seric	Portability enhancements for 386BSD/FreeBSD/NetBSD from
84866346Seric		Ollivier Robert.
84966346Seric	CONFIG: FEATURE(always_add_domain) didn't always add the domain;
85066346Seric		in particular, on local mail it modified the header sender
85166346Seric		but not the header recipient address(es).  Reported by
85266346Seric		Jeffrey Honig of Cornell University.  Also, strip
85366346Seric		any host from envelope recipient address(es), since
85466346Seric		local mailers don't understand host names -- this is
85566346Seric		to help mailertable entries.  From Christopher Davis.
85666346Seric	CONFIG: masquerading didn't apply to addresses that already
85766346Seric		had a domain.  This change replaces a local hostname
85866346Seric		by the masquerade name in the SMTP mailer (previously
85966346Seric		it only added the masquerade name if it didn't already
86066346Seric		have a domain name).  Several people complained about
86166346Seric		this.
86266346Seric
86366345Seric8.6.2/8.6.2	93/10/15
86466345Seric	Put a "successful delivery" message in the transcript for
86566345Seric		addresses that get return-receipts.
86666345Seric	Put a prominent "this is only a warning" message in warning
86766345Seric		messages -- some people don't read carefully enough
86866345Seric		and end up sending the message several times.
86966345Seric	Include reason for temporary failure in the "warning" return
87066345Seric		message.  Currently, it just says "cannot send for
87166345Seric		four hours".
87266345Seric	Fix the "Original message received" time generated for
87366345Seric		returntosender messages.  It was previously listed as
87466345Seric		the current time.  Bug reported by Eric Hagberg of
87566345Seric		Cornell University Medical College.
87666345Seric	If there is an error when writing the body of a message,
87766345Seric		don't send the trailing dot and wait for a response
87866345Seric		in sender SMTP, as this could cause the connection to
87966345Seric		hang up under some bizarre circumstances.  From Eric
88066345Seric		Wassenaar.
88166345Seric	Fix some server SMTP synchronization problems caused when
88266345Seric		connections fail during message collection.  From
88366345Seric		Eric Wassenaar.
88466345Seric	Fix a problem that can cause srvrsmtp to reject mail if the
88566345Seric		name server is down -- it accepts the RCPT but rejects
88666345Seric		the DATA command.  Problem reported by Jim Murray of
88766345Seric		Stratus.
88866345Seric	Fix a problem that can cause core dumps if the config file
88966345Seric		incorrectly resolves to a null hostname.  Reported by
89066345Seric		Allan Johannesen of WPI.
89166345Seric	Non-root use of -C flag, dangerous -f flags, and use of -oQ
89266345Seric		by non-root users were not put into
89366345Seric		X-Authentication-Warning:s as intended because the
89466345Seric		config file hadn't set the PrivacyFlags yet.  Fix
89566345Seric		from Sven-Ove Westberg of the University of Lulea.
89666345Seric	Under very odd circumstances, the alias file rebuild code
89766345Seric		could get confused as to whether a database was
89866345Seric		open or not.
89966345Seric	Check "vendor code" on the end of V lines -- this is
90066345Seric		intended to provide a hook for vendor-specific
90166345Seric		configuration syntax.  (This is a "new feature",
90266345Seric		but I've made an exception to my rule in a belief
90366345Seric		that this is a highly exceptional case.)
90466345Seric	Portability fixes for DG/UX (from Douglas Anderson of NCSC),
90566345Seric		SCO Unix (from Murray Kucherawy), A/UX, and OSF/1
90666345Seric		(from Jon Forrest of UC Berkeley)
90766345Seric	CONFIG: fix ``mailer:host'' form of UUCP relay naming.
90866345Seric
90966344Seric8.6.1/8.6	93/10/08
91066344Seric	Portability fixes for A/UX and Encore UMAX V.
91166344Seric	Fix error message handling -- if you had a name server down
91266344Seric		causing an error during parsing, that message was never
91366344Seric		propogated to the queue file.
91466344Seric
91566343Seric8.6/8.6		93/10/05
91666343Seric	Configuration cleanup: make it easier to undo IDENTPROTO in
91766343Seric		conf.h (other systems have the same bug).
91866343Seric	If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume
91966343Seric		getdtablesize() instead of sysconf(); a disturbingly
92066343Seric		large number of systems defined _SC_OPEN_MAX in the
92166343Seric		header files but don't have the syscall.
92266343Seric	Another patch to really truly ignore MX records in getcanonname
92366343Seric		if trymx == FALSE.
92466343Seric	Fix problem that caused the "250 IAA25499 Message accepted for
92566343Seric		delivery" message to be omitted if there was an error
92666343Seric		in the header of the message (e.g., a bad Errors-To:
92766343Seric		line).  Pointed out by Michael Corrigan of UCSD.
92866343Seric	Announce name of host we are chatting when we get errors; this
92966343Seric		is an IDA-ism suggested by Christophe Wolfhugel.
93066343Seric	Portability fixes for Alpha OSF/1 (from Anthony Baxter of the
93166343Seric		Australian Artificial Intelligence Institute), SCO Unix
93266343Seric		(from Murray Kucherawy of Hookup Communication Corp.),
93366343Seric		NeXT (from Vince DeMarco and myself), Linux (from
93466343Seric		Karl London <karl@borg.demon.co.uk>), BSDI (from
93566343Seric		Christophe Wolfhugel, and SVR4 on Dell (from Kimmo
93666343Seric		Suominen), AUX 3.0 on Macintosh, and ANSI C compilers.
93766343Seric	Some changes to get around gcc optimizer bugs.  From Takahiro
93866343Seric		Kanbe.
93966343Seric	Fix error recovery in queueup if another tf file of the same
94066343Seric		name already exists.  Problem stumbled over by Bill
94166343Seric		Wisner of The Well.
94266343Seric	Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes.
94366343Seric		Problem noted by Keith McMillan of Ameritech Services.
94466343Seric	Deal with group permissions properly when opening .forward and
94566343Seric		:include: files.  This relaxes the 8.1C restrictions
94666343Seric		slightly more.  This includes proper setting of groups
94766343Seric		when reading :include: files, allowing you to read some
94866343Seric		files that you should be able to read but have previously
94966343Seric		been denied unless you owned them or they had "other"
95066343Seric		read permission.
95166343Seric	Make certain that $j is in $=w (after the .cf is read) so that
95266343Seric		if the user is forced to override some silly system,
95366343Seric		MX suppression will still work.
95466343Seric	Fix a couple of efficiency problems where newstr was double-
95566343Seric		calling expensive routines.  In at least one case, it
95666343Seric		wasn't guaranteed that they would always return the
95766343Seric		same result.  Problem noted by Christophe Wolfhugel.
95866343Seric	Fix null pointer dereference in putoutmsg -- only on an error
95966343Seric		condition from a non-SMTP mailer.  From Motonori
96066343Seric		Nakamura.
96166343Seric	Macro expand "C" line class definitions before scanning so that
96266343Seric		"CX $Z" works.
96366343Seric	Fix problem that caused error message to be sent while still
96466343Seric		trying to send the original message if the connection
96566343Seric		is closed during a DATA command after getting an error
96666343Seric		on an RCPT command (pretty obscure).  Problem reported
96766343Seric		by John Myers of CMU.
96866343Seric	Fix reply to NOOP to be 250 instead of 200 -- this is a long
96966343Seric		term bug.
97066343Seric	Fix a nasty bug causing core dumps when returning the "warning:
97166343Seric		cannot deliver for N hours -- will keep trying" message;
97266343Seric		it only occurred if you had PostMasterCopy set and
97366343Seric		only on some architectures.  Although sendmail would
97466343Seric		keep trying, it would send error messages on each
97566343Seric		queue interval.  This is an important fix.
97666343Seric	Allow u and g options to take user and group names respectively.
97766343Seric	Don't do a chdir into the queue directory in -bt mode to make
97866343Seric		ruleset testing a bit easier.
97966343Seric	Don't allow users to turn off logging (using -oL) on the command
98066343Seric		line -- command line can only raise, not lower, logging
98166343Seric		level.
98266343Seric	Set $u to the original recipient on the SMTP transaction or on
98366343Seric		the command line.  This is only done if there is exactly
98466343Seric		one recipient.  Technically, this does not meet the
98566343Seric		specs, because it does not guarantee a domain on the
98666343Seric		address.
98766343Seric	Fix a problem that dumped error messages on bad addresses if
98866343Seric		you used the -t flag.  Problem noted by Josh Smith of
98966343Seric		Harvey Mudd College.
99066343Seric	Given an address such as ``<foo> <bar>'', auto-quote the first
99166343Seric		``<foo>'' part, giving ``"<foo>" <bar>''.  This is to
99266343Seric		avoid the problem of people who use angle brackets in
99366343Seric		their full name information.
99466343Seric	Fix a null pointer dereference if you set option "l", have
99566343Seric		an Errors-To: header in the message, and have Errors-To:
99666343Seric		defined in the config file H lines.  From J.R. Oldroyd.
99766343Seric	Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get
99866343Seric		wrong when compiling.  Suggested by Rick McCarty of TI.
99966343Seric	Fix a problem that could pass negative SIZE parameter if the
100066343Seric		df file got lost; this would cause servers to always
100166343Seric		give a temporary failure, making the problem even worse.
100266343Seric		Problem noted by Allan Johannesen of WPI.
100366343Seric	Add "ident" timeout (one of the "r" option selectors) for IDENT
100466343Seric		protocol timeouts (30s default).  Requested by Murray
100566343Seric		Kucherawy of HookUp Communication Corp. to handle bogus
100666343Seric		PC TCP/IP implementations.
100766343Seric	Change $w default definition to be just the first component of
100866343Seric		the domain name on config level 5.  The $j macro defaults
100966343Seric		to the FQDN; $m remains as before.  This lets well-behaved
101066343Seric		config files use any of the short, long, or subdomain
101166343Seric		names.
101266343Seric	Add makesendmail script in src to try to automate multi-architecture
101366343Seric		builds.  I know, this is sub-optimal, but it is still
101466343Seric		helpful.
101566343Seric	Fix very obscure race condition that can cause a queue run to
101666343Seric		get a queue file for an already completed job.  This
101766343Seric		problem has existed for years.  Problem noted by the
101866343Seric		long suffering Allan Johannesen of WPI.
101966343Seric	Fix a problem that caused the raw sender name to be passed to
102066343Seric		udbsender instead of the canonified name -- this caused
102166343Seric		it to sometimes miss records that it should have found.
102266343Seric	Relax check of name on HELO packet so that a program using -bs
102366343Seric		that claims to be itself works properly.
102466343Seric	Restore rewriting of $: part of address through 2, R, 4 in
102566343Seric		buildaddr -- this requires passing a lot of flags to get
102666343Seric		it right.  Unlike old versions, this ONLY rewrites
102766343Seric		recipient addresses, not sender addresses.
102866343Seric	Fix a bug that caused core dumps in config files that cannot
102966343Seric		resolve /file/name style addresses.  Fix from Jonathan
103066343Seric		Kamens of OpenVision Technologies.
103166343Seric	Fix problem with fcntl locking that can cause error returns to
103266343Seric		be lost if the lock is lost; this required fully
103366343Seric		queueing everything, dropping the envelope (so errors
103466343Seric		would get returned), and then re-reading the queue from
103566343Seric		scratch.
103666343Seric	Fix a problem that caused aliases that redefine an otherwise
103766343Seric		true address to still send to the original address
103866343Seric		if and only if the alias failed in certain bizarre
103966343Seric		ways (e.g, if they pointed at a list:; syntax address).
104066343Seric		Problem pointed out by Jonathan Kamens.
104166343Seric	Remove support for frozen configuration files.  They caused
104266343Seric		more trouble than it was worth.
104366343Seric	Fix problem that can cause error messages to get ignored when
104466343Seric		using both -odb and -t flags.  Problem noted by Rob
104566343Seric		McNicholas at U.C. Berkeley.
104666343Seric	Include all "normal" variations on hostname in $=w.  For example,
104766343Seric		if the host name is vangogh.cs.berkeley.edu, $=w will
104866343Seric		contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu.
104966343Seric	Add "restrictqrun" privacy flag -- without this, anyone can run
105066343Seric		the queue.
105166343Seric	Reset SmtpPhase global on initial connection creation so that
105266343Seric		messages don't come out with stale information.
105366343Seric	Pass an "ext" argument to lockfile so that error/log messages
105466343Seric		will properly reflect the true filename being locked.
105566343Seric	Put all [...] address forms into $=w -- this eliminates the need
105666343Seric		for MAXIPADDR in conf.h.  Suggested by John Gardiner
105766343Seric		Myers of CMU.
105866343Seric	Fix a bug that can cause qf files to be left around even after
105966343Seric		an SMTP RSET command.  Problem and fix from Michael
106066343Seric		Corrigan.
106166343Seric	Don't send a PostMasterCopy to errors when the Precedence: is
106266343Seric		negative.  Error reports still go to the envelope
106366343Seric		sender address.
106466343Seric	Add LA_SHORT for load averages.
106566343Seric	Lock sendmail.st file when posting statistics.
106666343Seric	Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to
106766343Seric		set the size of the TCP send and receive buffers; if you
106866343Seric		run over a slow slip line you may need to set these down
106966343Seric		(although it would be better to fix the SLIP implementation
107066343Seric		so that it's not necessary to recompile every program
107166343Seric		that does bulk data transfer).
107266343Seric	Allow null defaults on $( ... $) lookups.  Problem reported by
107366343Seric		Amir Plivatsky.
107466343Seric	Diagnose crufty S and V config lines.  This resulted from an
107566343Seric		observation that some people were using the SITE macro
107666343Seric		without the SITECONFIG macro first, which was causing
107766343Seric		bogus config files that were not caught.
107866343Seric	Fix makemap -f flag to turn off case folding (it was turning it
107966343Seric		on instead).  THIS IS A USER VISIBLE CHANGE!!!
108066343Seric	Fix a problem that caused multiple error messages to be sent if
108166343Seric		you used "sendmail -t -oem -odb", your system uses fcntl
108266343Seric		locking, and one of the recipient addresses is unknown.
108366343Seric	Reset uid earlier in include() so that recursive .forwards or
108466343Seric		:include:s don't use the wrong uid.
108566343Seric	If file descriptor 0, 1, or 2 was closed when sendmail was
108666343Seric		called, the code to recover the descriptor was broken.
108766343Seric		This sometimes (only sometimes) caused problems with the
108866343Seric		alias file.  Fix from Motonori Nakamura.
108966343Seric	Fix a problem that caused aliaswait to go into infinite recursion
109066343Seric		if the @:@ metasymbol wasn't found in the alias file.
109166343Seric	Improve error message on newaliases if database files cannot be
109266343Seric		opened or if running with no database format defined.
109366343Seric	Do a better estimation of the size of error messages when NoReturn
109466343Seric		is set.  Problem noted by P{r (Pell) Emanuelsson.
109566343Seric	Fix a problem causing the "c" option (don't connect to expensive
109666343Seric		mailers) to be ignored in SMTP.  Problem noted and the
109766343Seric		solution suggested by Robert Elz of Munnari University.
109866343Seric	Improve connection caching algorithm by passing "[host]" to
109966343Seric		hostsignature, which strips the square brackets and
110066343Seric		returns the real name.  This allows mailertable entries
110166343Seric		to match regular entries.
110266343Seric	Re-enable Return-Receipt-To: -- people seem to want this stupid
110366343Seric		feature, even if it doesn't work right.
110466343Seric	Catch and log attempts to try the "wiz" command in server SMTP.
110566343Seric		This also ups the log level from LOG_NOTICE to LOG_CRIT.
110666343Seric	Be more generous at assigning $z to the home directory -- do this
110766343Seric		for programs that are specified through a .forward file.
110866343Seric		Fix from Andrew Chang of Sun Microsystems.
110966343Seric	Always save a fatal error message in preference to a non-fatal
111066343Seric		error message so that the "subject" line of return
111166343Seric		messages is the best possible.
111266343Seric	CONFIG: reduce the number of quotes needed to quote configuration
111366343Seric		parameters with commas: two quotes should work now, e.g.,
111466343Seric		define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local'').
111566343Seric	CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom
111666343Seric		connections (domain-ized UUCP).
111766343Seric	CONFIG: fix bug in default maps (-o must be before database file
111866343Seric		name).  Pointed out by Christophe Wolfhugel.
111966343Seric	CONFIG: add FEATURE(nodns) to state that we are not relying on
112066343Seric		DNS.  This would presumably be used in UUCP islands.
112166343Seric	CONFIG: add OSTYPE(nextstep) and OSTYPE(linux).
112266343Seric	CONFIG: log $u in Received: line.  This is in technical violation
112366343Seric		of the standards, since it doesn't guarantee a domain
112466343Seric		on the address.
112566343Seric	CONFIG: don't assume "m" in local mailer flags -- this means that
112666343Seric		if you redefine LOCAL_MAILER_FLAGS you will have to include
112766343Seric		the "m" flag should you want it.  Apparently some Solaris 2.2
112866343Seric		installations can't handle multiple local recipients.
112966343Seric		Problem noted by Josh Smith.
113066343Seric	CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults).
113166343Seric	CONFIG: change default version level from 4 to 5.
113266343Seric	CONFIG: add FEATURE(nullclient) to create a config file that
113366343Seric		forwards all mail to a hub without ever looking at the
113466343Seric		addresses in any detail.
113566343Seric	CONFIG: properly strip mailer: information off of relays when
113666343Seric		used to change .BITNET form into %-hack form.
113766343Seric	CONFIG: fix a problem that caused infinite loops if presented
113866343Seric		with an address such as "!foo".
113966343Seric	CONFIG: check for self literal (e.g., [128.32.131.12]) even if
114066343Seric		the reverse "PTR" mapping is broken.  There's a better
114166343Seric		way to do this, but the change is fairly major and I
114266343Seric		want to hold it for another release.  Problem noted by
114366343Seric		Bret Marquis.
114466343Seric
114566342Seric8.5/8.5		93/07/23
114666342Seric	Serious bug: if you used a command line recipient that was unknown
114766342Seric		sendmail would not send a return message (it was treating
114866342Seric		everything as though it had an SMTP-style client that
114966342Seric		would do the return itself).  Problem noted by Josh Smith.
115066342Seric	Change "trymx" option in getcanonname() to ignore all MX data,
115166342Seric		even during a T_ANY query.  This actually didn't break
115266342Seric		anything, because the only time you called getcanonname
115366342Seric		with !trymx was if you already knew there were no MX
115466342Seric		records, but it is somewhat cleaner.  From Motonori
115566342Seric		Nakamura.
115666342Seric	Don't call getcanonname from getmxrr if you already know there
115766342Seric		are no DNS records matching the name.
115866342Seric	Fix a problem causing error messages to always include "The
115966342Seric		original message was received ... from localhost".
116066342Seric		The correct original host information is now included.
116166342Seric	Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their
116266342Seric		version of "test" doesn't have the -x flag).  Change it
116366342Seric		to use -f instead.  From John Myers.
116466342Seric	CONFIG: 8.4 mistakenly set the default SMTP-style mailer to
116566342Seric		esmtp -- it should be smtp.
116666342Seric	CONFIG: send all relayed mail using confRELAY_MAILER (defaults
116766342Seric		to "relay" (a variant of "smtp") if MAILER(smtp) is used,
116866342Seric		else "suucp" if MAILER(uucp) is used, else "unknown");
116966342Seric		this cleans up the configs somewhat.  This fixes a serious
117066342Seric		problem that caused route-addrs to get mistaken as relays,
117166342Seric		pointed out by John Myers.  WARNING: this also causes
117266342Seric		the default on SMART_HOST to change from "suucp" to
117366342Seric		"relay" if you have MAILER(smtp) specified.
117466342Seric
117566341Seric8.4/8.4		93/07/22
117666341Seric	Add option `w'.  If you receive a message that comes to you because
117766341Seric		you are the best (lowest preference) target of an MX, and
117866341Seric		you haven't explicitly recognized the source MX host in
117966341Seric		your .cf file, this option will cause you to try the target
118066341Seric		host directly (as if there were no MX for it at all).  If
118166341Seric		`w' is not set, this case is a configuration error.
118266341Seric		Beware: if `w' is set, senders may get bogus errors like
118366341Seric		"message timed out" or "host unknown" for problems that
118466341Seric		are really configuration errors.  This option is
118566341Seric		disrecommended, provided only for compatibility with
118666341Seric		UIUC sendmail.
118766341Seric	Fix a problem that caused the incoming socket to be left open
118866341Seric		when sendmail forks after the DATA command.  This caused
118966341Seric		calling systems to wait in FIN_WAIT_2 state until the
119066341Seric		entire list was processed and the child closed -- a
119166341Seric		potentially prodigious amount of time.  Problem noted
119266341Seric		by Neil Rickert.
119366341Seric	Fix problem (created in 6.64) that caused mail sent to multiple
119466341Seric		addresses, one of which was a bad address, to completely
119566341Seric		suppress the sending of the message.  This changes
119666341Seric		handling of EF_FATALERRS somewhat, and adds an
119766341Seric		EF_GLOBALERRS flag.  This also fixes a potential problem
119866341Seric		with duplicate error messages if there is a syntax error
119966341Seric		in the header of a message that isn't noticed until late
120066341Seric		in processing.  Original problem pointed out by Josh Smith
120166341Seric		of Harvey Mudd College.  This release includes quite a bit
120266341Seric		of dickering with error handling (see below).
120366341Seric	Back out SMTP transaction if MAIL gets nested 501 error.  This
120466341Seric		will only hurt already-broken software and should help
120566341Seric		humans.
120666341Seric	Fix a problem that broke aliases when neither NDBM nor NEWDB were
120766341Seric		compiled in.  It would never read the alias file.
120866341Seric	Repair unbalanced `)' and `>' (the "open" versions are already
120966341Seric		repaired).
121066341Seric	Logging of "done" in dropenvelope() was incorrect: it would
121166341Seric		log this even when the queue file still existed.  Change
121266341Seric		this to only log "done" (at log level 11) when the
121366341Seric		queue file is actually removed.  From John Myers.
121466341Seric	Log "lost connection" in server SMTP at log level 20 if there
121566341Seric		is no pending transaction.  Some senders just close the
121666341Seric		connection rather than sending QUIT.
121766341Seric	Fix a bug causing getmxrr to add a dot to the end of unqualified
121866341Seric		domains that do not have MX records -- this would cause
121966341Seric		the subsequent host name lookup to fail.  The problem
122066341Seric		only occurred if you had FEATURE(nocanonify) set.
122166341Seric		Problem noted by Rick McCarty of Texas Instruments.
122266341Seric	Fix invocation of setvbuf when passed a -X flag -- I had
122366341Seric		unwittingly used an ANSI C extension, and this caused
122466341Seric		core dumps on some machines.
122566341Seric	Diagnose self-destructive alias loops on RCPT as well as EXPN.
122666341Seric		Previously it just gave an empty send queue, which
122766341Seric		then gave either "Need RCPT (recipient)" at the DATA
122866341Seric		(confusing, since you had given an RCPT command which
122966341Seric		returned 250) or just dropped the email, depending on
123066341Seric		whether you were running VERBose mode.  Now it usually
123166341Seric		diagnoses this case as "aliasing/forwarding loop broken".
123266341Seric		Unfortunately, it still doesn't adequately diagnose
123366341Seric		some true error conditions.
123466341Seric	Add internal concept of "warning messages" using 6xx codes.
123566341Seric		These are not reported only to Postmaster.  Unbalanced
123666341Seric		parens, brackets, and quotes are printed as 653 codes.
123766341Seric		They are always mapped to 5xx codes before use in SMTP.
123866341Seric	Clean up error messages to tell both the actual address that
123966341Seric		failed and the alias they arose from.  This makes it
124066341Seric		somewhat easier to diagnose problems.  Difficulty noted
124166341Seric		by Motonori Nakamura.
124266341Seric	Fix a problem that inappropriately added a ctladdr to addresses
124366341Seric		that shouldn't have had one during a queue run.  This
124466341Seric		caused error messages to be handled differently during
124566341Seric		a queue run than a direct run.
124666341Seric	Don't print the qf name and line number if you get errors during
124766341Seric		the direct run of the queue from srvrsmtp -- this was
124866341Seric		just extra stuff for users to crawl through.
124966341Seric	Put command line flags on second line of pid file so you can
125066341Seric		auto-restart the daemon with all appropriate arguments.
125166341Seric		Use "kill `head -1 /etc/sendmail.pid`" to stop the
125266341Seric		daemon, and "eval `tail -1 /etc/sendmail.pid`" to
125366341Seric		restart it.
125466341Seric	Remove the ``setuid(getuid())'' in main -- this caused the
125566341Seric		IDENT daemon to screw up.  This required that I change
125666341Seric		HASSETEUID to HASSETREUID and complicate the mode
125766341Seric		changing somewhat because both Ultrix and SunOS seem
125866341Seric		to have a bug causing seteuid() to set the saved uid
125966341Seric		as well as the effective.  The program test/t_setreuid.c
126066341Seric		will test to see if your implementation of setreuid(2)
126166341Seric		is appropriately functional.
126266341Seric	The FallBackMX (option V) handling failed to properly identify
126366341Seric		fallback to yourself -- most of the code was there,
126466341Seric		but it wasn't being enabled.  Problem noted by Murray
126566341Seric		Kucherawy of the University of Waterloo.
126666341Seric	Change :include: open timeout from ETIMEDOUT to an internal
126766341Seric		code EOPENTIMEOUT; this avoids adding "during SmtpPhase
126866341Seric		with CurHostName" in error messages, which can be
126966341Seric		confusing.  Reported by Jonathan Kamens of OpenVision
127066341Seric		Technologies.
127166341Seric	Back out setpgrp (setpgid on POSIX systems) call to reset the
127266341Seric		process group id.  The original fix was to get around
127366341Seric		some problems with recalcitrant MUAs, but it breaks
127466341Seric		any call from a shell that creates a process group id
127566341Seric		different from the process id.  I could try to fix
127666341Seric		this by diddling the tty owner (using tcsetpgrp or
127766341Seric		equivalent) but this is too likely to break other
127866341Seric		things.
127966341Seric	Portability changes:
128066341Seric		Support -M as equivalent to -oM on Ultrix -- apparently
128166341Seric			DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs
128266341Seric			instead of using standard flags.  Oh joy.  This
128366341Seric			behaviour reported by Jon Giltner of University
128466341Seric			of Colorado.
128566341Seric		SGI IRIX  -- this includes several changes that should
128666341Seric			help other strict ANSI compilers.
128766341Seric		SCO Unix -- from Murray Kucherawy of HookUp Communication
128866341Seric			Corporation.
128966341Seric		Solaris running the Sun C compiler (which despite the
129066341Seric			documentation apparently doesn't define
129166341Seric			__STDC__ by default).
129266341Seric		ConvexOS from Eric Schnoebelen of Convex.
129366341Seric		Sony NEWS workstations and Omron LUNA workstations from
129466341Seric			Motonori Nakamura.
129566341Seric	CONFIG: add confTRY_NULL_MX_LIST to set option `w'.
129666341Seric	CONFIG: delete `C' and `e' from default SMTP mailers flags;
129766341Seric		several people have made a good argument that this
129866341Seric		creates more problems than it solves (although this
129966341Seric		may prove painful in the short run).
130066341Seric	CONFIG: generalize all the relays to accept a "mailer:host"
130166341Seric		format.
130266341Seric	CONFIG: move local processing in ruleset 0 into a new ruleset
130366341Seric		98 (8 on old sendmail).  Domain literal [a.b.c.d]
130466341Seric		addresses are also passed through this ruleset.
130566341Seric	CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined,
130666341Seric		internet-style addresses would "fall off the end" of
130766341Seric		ruleset zero and be interpreted as local -- however,
130866341Seric		the angle brackets confused the recursive call.
130966341Seric		These are now diagnosed as "Unrecognized host name".
131066341Seric	CONFIG: USENET rules weren't included in S0 because of a mistaken
131166341Seric		ifdef(`_MAILER_USENET_') instead of
131266341Seric		ifdef(`_MAILER_usenet_').  Problem found by Rein Tollevik
131366341Seric		of SINTEF RUNIT, Oslo.
131466341Seric	CONFIG: move up LOCAL_RULE_0 processing so that it happens very
131566341Seric		early in ruleset 0; this allows .mc authors to bypass
131666341Seric		things like the "short circuit" code for local addresses.
131766341Seric		Prompted by a comment by Bill Wisner of The Well.
131866341Seric	CONFIG: add confSMTP_MAILER to define the mailer used (smtp or
131966341Seric		esmtp) to send SMTP mail.  This allows you to default
132066341Seric		to esmtp but use a mailertable or other override to
132166341Seric		deal with broken servers.  This logic was pointed out
132266341Seric		to me by Bill Wisner.  Ditto for confLOCAL_MAILER.
132366341Seric	Changes to cf/sh/makeinfo.sh to make it portable to SVR4
132466341Seric		environments.  Ugly as sin.
132566341Seric
132666340Seric8.3/8.3		93/07/13
132766340Seric	Fix setuid problems introduced in 8.2 that caused messages
132866340Seric		like "Cannot create qfXXXXXX: Invalid argument"
132966340Seric		or "Cannot reopen dfXXXXXX: Permission denied".  This
133066340Seric		involved a new compile flag "HASSETEUID" that takes
133166340Seric		the place of the old _POSIX_SAVED_IDS -- it turns out
133266340Seric		that the POSIX interface is broken enough to break
133366340Seric		some systems badly.  This includes some fixes for
133466340Seric		HP-UX.  Also fixes problems where the real uid is
133566340Seric		not reset properly on startup (from Neil Rickert).
133666340Seric	Fix a problem that caused timed out messages to not report the
133766340Seric		addresses that timed out.  Error messages are also more
133866340Seric		"user friendly".
133966340Seric	Drop required bandwidth on connections from 64 bytes/sec to
134066340Seric		16 bytes/sec.
134166340Seric	Further Solaris portability changes -- doesn't require the BSD
134266340Seric		compatibility library.  This also adds a new
134366340Seric		"HASGETDTABLESIZE" compile flag which can be used if
134466340Seric		you want to use getdtablesize(2) instead of sysconf(2).
134566340Seric		These are loosely based on changes from David Meyer at
134666340Seric		University of Oregon.  This now seems to work, at least
134766340Seric		for quick test cases.
134866340Seric	Fix a problem that can cause duplicate error messages to be
134966340Seric		sent if you are in SMTP, you send to multiple addresses,
135066340Seric		and at least one of those addresses is good and points
135166340Seric		to an account that has a .forward file (whew!).
135266340Seric	Fix a problem causing messages to be discarded if checkcompat()
135366340Seric		returned EX_TEMPFAIL (because it didn't properly mark
135466340Seric		the "to" address).  Problem noted by John Myers.
135566340Seric	Fix dfopen to return NULL if the open failed; I was depending
135666340Seric		on fdopen(-1) returning NULL, which isn't the case.  This
135766340Seric		isn't serious, but does result in wierd error diagnoses.
135866340Seric		From Michael Corrigan.
135966340Seric	CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of
136066340Seric		messages sent through UUCP-family mailers.  Suggested
136166340Seric		by Bill Wisner of The Well.
136266340Seric	CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified,
136366340Seric		include a "uucp-dom" mailer that uses domain-style
136466340Seric		addressing.  Suggested by Bill Wisner.
136566340Seric	CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match
136666340Seric		LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS.  Suggested by
136766340Seric		Christophe Wolfhugel.
136866340Seric	CONFIG: Add OSTYPE(aix3).  From Christophe Wolfhugel.
136966340Seric
137066339Seric8.2/8.2		93/07/11
137166339Seric	Don't drop out on config file parse errors in -bt mode.
137266339Seric	On older configuration files, assume option "l" (use Errors-To
137366339Seric		header) for back compatibility.  NOTE:  this DOES NOT
137466339Seric		imply an endorsement of the Errors-To: header in any way.
137566339Seric	Accept -x flag on AIX-3 as well as OSF/1.  Why, why, why???
137666339Seric	Don't log errors on EHLO -- it isn't a "real" error for an old
137766339Seric		SMTP server to give an error on this command, and
137866339Seric		logging it in the transcript can be confusing.  Fix
137966339Seric		from Bill Wisner.
138066339Seric	IRIX compatibility changes provided by Dan Rich
138166339Seric		<drich@sandman.lerc.nasa.gov>.
138266339Seric	Solaris 2 compatibility changes.  Provided by Bob Cunningham
138366339Seric		<bob@kahala.soest.hawaii.edu>, John Oleynick
138466339Seric		<juo@klinzhai.rutgers.edu>
138566339Seric	Debugging: -d17 was overloaded (hostsignature and usersmtp.c);
138666339Seric		move usersmtp (smtpinit and smtpmailfrom) to -d18 to
138766339Seric		match the other flags in that file.
138866339Seric	Flush transcript before fork in mailfile().  From Eric Wassenaar.
138966339Seric	Save h_errno in mci struct and improve error message display.
139066339Seric		Changes from Eric Wassenaar.
139166339Seric	Open /dev/null for the transcript if the create of the xf file
139266339Seric		failed; this avoids at least one possible null pointer
139366339Seric		reference in very wierd cases.  From Eric Wassenaar.
139466339Seric	Clean up statistics gathering; it was over-reporting because of
139566339Seric		forks.  From Eric Wassenaar.
139666339Seric	Fix problem that causes old Return-Path: line to override new
139766339Seric		Return-Path: line (conf.c needs H_FORCE to avoid
139866339Seric		re-using old value).  From Motonori Nakamura.
139966339Seric	Fix broken -m flag in K definition -- even if -m (match only)
140066339Seric		was specified, it would still replace the key with the
140166339Seric		value.  Noted by Rick McCarty of Texas Instruments.
140266339Seric	If the name server timed out over several days, no "timed out"
140366339Seric		message would ever be sent back.  The timeout code
140466339Seric		has been moved from markfailure() to dropenvelope()
140566339Seric		so that all such failures should be diagnosted.  Pointed
140666339Seric		out by Christophe Wolfhugel and others.
140766339Seric	Relax safefile() constraints: directories in an include or
140866339Seric		forward path must be readable by self if the controlling
140966339Seric		user owns the entry, readable by all otherwise (e.g.,
141066339Seric		when reading your .forward file, you have to own and
141166339Seric		have X permssion in it; everyone needs X permission in
141266339Seric		the root and directories leading up to your home);
141366339Seric		include files must be readable by anyone, but need not
141466339Seric		be owned by you.
141566339Seric	If _POSIX_SAVED_IDS is defined, setuid to the owner before
141666339Seric		reading a .forward file; this gets around some problems
141766339Seric		on NFS mounts if root permission is not exported and
141866339Seric		the user's home directory isn't x'able.
141966339Seric	Additional NeXT portability enhancements from Axel Zinser.
142066339Seric	Additional HP-UX portability enhancements from Brian Bullen.
142166339Seric	Add a timeout around SMTP message writes; this assumes you can
142266339Seric		get throughput of at least 64 bytes/second.  Note that
142366339Seric		this does not impact the "datafinal" default, which
142466339Seric		is separate; this is just intended to work around
142566339Seric		network clogs that will occur before the final dot
142666339Seric		is sent.  From Eric Wassenaar.
142766339Seric	Change map code to set the "include null" flag adaptively --
142866339Seric		it initially tries both, but if it finds anything
142966339Seric		matching without a null it never tries again with a
143066339Seric		null and vice versa.  If -N is specified, it never
143166339Seric		tries without the null and creates new maps with a
143266339Seric		null byte.  If -O is specified, it never tries with
143366339Seric		the null (for efficiency).  If -N and -O are specified,
143466339Seric		you get -NO (get it?) lookup at all, so this would
143566339Seric		be a bad idea.  If you don't specify either -N or -O,
143666339Seric		it adapts.
143766339Seric	Fix recognition of "same from address" so that MH submissions
143866339Seric		will insert the appropriate full name information;
143966339Seric		this used to work and got broken somewhere along the
144066339Seric		way.
144166339Seric	Some changes to eliminate some unnecessary SYSERRs in the
144266339Seric		log.  For example, if you lost a connection, don't
144366339Seric		bother reporting that fact on the connection you lost.
144466339Seric	Add some "extended debugging" flags to try to track down
144566339Seric		why we get occassional problems with file descriptor
144666339Seric		one being closed when execing a mailer; it seems to
144766339Seric		only happen when there has been another error in the
144866339Seric		same transaction.  This requires XDEBUG, defined
144966339Seric		by default in conf.h.
145066339Seric	Add "-X filename" command line flag, which logs both sides of
145166339Seric		all SMTP transactions.  This is intended ONLY for
145266339Seric		debugging bad implementations of other mailers; start
145366339Seric		it up, send a message from a mailer that is failing,
145466339Seric		and then kill it off and examine the indicated log.
145566339Seric		This output is not intended to be particularly human
145666339Seric		readable.  This also adds the HASSETVBUF compile
145766339Seric		flag, defaulted on if your compiler defines __STDC__.
145866339Seric	CONFIG: change SMART_HOST to override an SMTP mailer.  If you
145966339Seric		have a local net that should get direct connects, you
146066339Seric		will need to use LOCAL_NET_CONFIG to catch these hosts.
146166339Seric		See cf/README for an example.
146266339Seric	CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle
146366339Seric		sites that don't use the -d flag.
146466339Seric	CONFIG: hide recipient addresses as well as sender addresses
146566339Seric		behind $M if FEATURE(allmasquerade) is specified; this
146666339Seric		has been requested by several people, but can break
146766339Seric		local aliases.  For example, if you mail to "localalias"
146866339Seric		this will be rewritten as "localalias@masqueradehost";
146966339Seric		although initial delivery will work, replies will be
147066339Seric		broken.  Use it sparingly.
147166339Seric	CONFIG: add FEATURE(domaintable).  This maps unqualified domains
147266339Seric		to qualified domains in headers.  I believe this is
147366339Seric		largely equivalent to the IDA feature of the same name.
147466339Seric	CONFIG: use $U as UUCP name instead of $k.  This permits you
147566339Seric		to override the "system name" as your UUCP name --
147666339Seric		in particular, to use domain-ized UUCP names.  From
147766339Seric		Bill Wisner of The Well.
147866339Seric	CONFIG: create new mailer "esmtp" that always tries EHLO
147966339Seric		first.  This is currently unused in the config files,
148066339Seric		but could be used in a mailertable entry.
148166339Seric
148266338Seric8.1C/8.1B	93/06/27
148366338Seric	Serious security bug fix: it was possible to read any file on
148466338Seric		the system, regardless of ownership and permissions.
148566338Seric	If a subroutine returns a fully qualified address, return it
148666338Seric		immediately instead of feeding it back into rewriting.
148766338Seric		This fixes a problem with mailertable lookups.
148866338Seric	CONFIG: fix some M4 frotz (concat => CONCAT)
148966338Seric
149066338Seric8.1B/8.1A	93/06/12
149166338Seric	Serious bug fix: pattern matching backup algorithm stepped by
149266338Seric		two tokens in classes instead of one.  Found by Claus
149366338Seric		Assmann at University of Kiel, Germany.
149466338Seric
149566338Seric8.1A/8.1A	93/06/08
149666338Seric	Another mailertable fix....
149766338Seric
149866338Seric8.1/8.1		93/06/07
149966338Seric	4.4BSD freeze.  No semantic changes.
150066338Seric
150166338Seric6.65/6.34	93/06/06
150266338Seric	Fix some lintish problems.
150366338Seric	Fix some cases where server SMTP behaved poorly when handed bogus
150466338Seric		input, pointed out by Eric Wassenaar.
150566338Seric	CONFIG: fix some more (sigh) mailertable bugs -- thanks to
150666338Seric		Motonori Nakamura of Kyoto University (again).
150766338Seric
150866338Seric6.64/6.33	93/06/05
150966338Seric	Don't send 050 (-v) information after the 250 response to a QUIT
151066338Seric		command in srvrsmtp -- clients usually close the connection
151166338Seric		at this point, and it causes bogus error messages.
151266338Seric	Don't send messages that have errors on input (such as unbalanced
151366338Seric		parentheses) during SMTP transactions, since a return
151466338Seric		message has (probably) already been sent.
151566338Seric	Give better diagnostics on timeouts during network reads, including
151666338Seric		information similar to the SMTP phase.
151766338Seric	Fix bug that caused SMTP messages to deliver synchronously; this
151866338Seric		happened after the DATA 250, and hence caused reading the
151966338Seric		next command to be delayed.
152066338Seric	Ignore Errors-To: header unless 'l' (lower case el) header is
152166338Seric		specified.  The Errors-To: header violates RFC 1123.
152266338Seric		Errors-To: was only needed to take the place of the
152366338Seric		envelope sender in the days when most Unix mailers
152466338Seric		didn't understand about the two kinds of senders.
152566338Seric	Don't send warning messages in response to automatically generated
152666338Seric		messages (that is, those From:<>).
152766338Seric	CONFIG: fix some rather stupid typos in the mailertable code
152866338Seric		pointed out by Motonori Nakamura of Kyoto University.
152966338Seric	CONFIG: add confUSE_ERRORS_TO configuration option.
153066338Seric	CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M
153166338Seric		(masquerade name) instead of $j.
153266338Seric	CONFIG: don't add dots to relay names (added in 6.29); it breaks
153366338Seric		several things, and can be simulated by dot terminating
153466338Seric		the names of relays.  For example, use:
153566338Seric			DBbit.net.relay.
153666338Seric		(note the trailing dot).
153766338Seric
153866338Seric6.63/6.32	93/06/01
153966338Seric	Fix prototypes to eliminate chars in argument lists -- some
154066338Seric		compilers are pissy about this.
154166338Seric	Log protocol ($r) and body type if set so we can determine if
154266338Seric		the adaptive algorithms are working.
154366338Seric	Pessimize on locking of database files (particularly for NEWDB
154466338Seric		databases) during opens.  There were problems with
154566338Seric		processes opening the file while it was rebuilt; since
154666338Seric		NEWDB caches heavily, the reader opened an empty file,
154766338Seric		which is an error.  If your system has the ability to
154866338Seric		lock atomically on open, this works properly; otherwise,
154966338Seric		there are race conditions.
155066338Seric	Check mod time on .pag file instead of .dir in NDBM aliases
155166338Seric		because the .dir file doesn't get updated for small
155266338Seric		alias files.  From John Gardiner Myers of CMU.
155366338Seric	More Solaris portability -- it now compiles on Solaris, but
155466338Seric		hangs up in gethostbyname().
155566338Seric	Move setting of RES_DEBUG flag before first myhostname() call
155666338Seric		so we can see name server traffic on that call.
155766338Seric	Fsync() queue files.
155866338Seric	Fix a problem that causes -bi to try to rebuild maps other than
155966338Seric		the alias file(s).
156066338Seric	Fix a problem that caused udb to reject entries from any but
156166338Seric		the first database listed.
156266338Seric	Rearrange doc subdirectory for 4.4BSD release tape.
156366338Seric	CONFIG: put $r into the Received line.  This was an oversight.
156466338Seric	CONFIG: fix typo (call to ruleset 99 should have been rulset 90).
156566338Seric	CONFIG: move "auxiliary" subroutines to be in ruleset 90-99
156666338Seric		range -- in the long run, single digit rulesets may
156766338Seric		become reserved for builtin use by sendmail.
156866338Seric	CONFIG: fix major problem that causes host aliases (that is,
156966338Seric		anything in $=w != $j) to not be recognized.  This has
157066338Seric		been around since 6.30.
157166338Seric
157266338Seric6.62/6.31	93/05/28
157366338Seric	BETA RELEASE
157466338Seric	Fix recursive syserr (if there is an error printing a syserr
157566338Seric		message).  This makes the code much less eager to consider
157666338Seric		a write error as serious.  This also includes some
157766338Seric		heuristics to be clever about closed connections.
157866338Seric	Lock NEWDB files during gets.  This requires version 1.5 or later
157966338Seric		of the db library.  If you have an older version, you
158066338Seric		can use -DOLD_NEWDB.  This will go away in a few weeks.
158166338Seric	Fix problem causing aliases that use host maps to get overwritten.
158266338Seric	Do appropriate byte swapping on port numbers in ident protocol
158366338Seric		code.  Fix from Allan Johannesen of WPI.
158466338Seric	Defer opening of map files to the same time as alias files so that
158566338Seric		the daemon will tend to pick up new versions more promptly.
158666338Seric	Prototype a bunch more functions.
158766338Seric	Some Solaris 2.1 changes (still doesn't link though).
158866338Seric	Try to simplify Makefiles by including more subordinate #defines
158966338Seric		in conf.h (based on OS type).
159066338Seric	CONFIG: check for domains if FEATURE(mailertable) is defined.
159166338Seric		For example, if the host name is "knecht.cs.berkeley.edu"
159266338Seric		it will search the following mailertable keys:
159366338Seric			knecht.cs.berkeley.edu
159466338Seric			.cs.berkeley.edu
159566338Seric			.berkeley.edu
159666338Seric			.edu
159766338Seric		This could be used to replace the special relays for bitnet
159866338Seric		and similar nets.
159966338Seric
160066338Seric6.61/6.30	93/05/24
160166338Seric	Fix problem that prevented appending dots on canonified host
160266338Seric		names.  This breaks tons of config files -- very
160366338Seric		important fix.
160466338Seric	Fix improper pointer dereference in response to HELO command.
160566338Seric	Fix core dump if debugging set in map_rewrite.
160666338Seric	CONFIG: add FEATURE(always_add_domain) to always attach the
160766338Seric		local domain (only impacts local mail).
160866338Seric	CONFIG: try to avoid turning names into $j -- although
160966338Seric		technically a host can only have one "canonical name",
161066338Seric		it seems to be common practice to have several.
161166338Seric
161266338Seric6.60/6.29	93/05/22
161366338Seric	Major change: merge alias databases with maps.  This expands and
161466338Seric		changes the map class interface but fixes a bunch of bugs.
161566338Seric		The important user-visible change is that the file name
161666338Seric		in a K line now does not include the ".db" extension; this
161766338Seric		is added automatically.  Also, the -d (NIS domain) flag is
161866338Seric		missing from the K config line; use @domain instead.
161966338Seric		When compiling, the *_MAP names are gone -- just compile
162066338Seric		in NDBM, NEWDB, and/or NIS support.
162166338Seric	Announce mailer/host/user triple on -bv flag -- from Brian
162266338Seric		Bullen of Stirling University.
162366338Seric	Don't send more than one line in response to HELO -- it confuses
162466338Seric		Pony Express, which then behaves very badly.  However,
162566338Seric		this change does send two line 220 greetings, with the
162666338Seric		second line reading "ESMTP spoken here".  The usersmtp
162766338Seric		module recognizes this and goes into ESMTP mode regardless
162866338Seric		of the setting of the "a" mailer flag.  Thus, "a" means
162966338Seric		"always try EHLO".
163066338Seric	AIX portability changes (thanks to Christophe Wolfhugel of
163166338Seric		Herve Schauer Consultants (Paris) for providing me with
163266338Seric		an INSA account for this purpose).  Lightly tested.  Use
163366338Seric		-D_AIX3.  This probably breaks compatibility with some
163466338Seric		older systems (e.g., 4.2bsd) but still works on SunOS
163566338Seric		4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3.
163666338Seric	Fix a problem causing an error message loop if the output channel
163766338Seric		is hosed.
163866338Seric	Add the Makefiles that I use for various environments -- some are
163966338Seric		Berkeley make versions and some are old make versions.
164066338Seric		My makefile for the NeXT box has gotten lost, alas!
164166338Seric	PRALIASES: support for printing NEWDB databases.  From
164266338Seric		Michael J. Corrigan of U.C. San Diego.
164366338Seric	CONFIG: don't pass pseudo-domains to $[ ... $] (if you have
164466338Seric		a wildcard MX it can have wierd results).  From
164566338Seric		Christophe Wolfhugel.
164666338Seric	CONFIG: dot terminate relay hostnames in S0.  From Christophe
164766338Seric		Wolfhugel.
164866338Seric
164966338Seric6.59/6.28	93/05/13
165066338Seric	Log version with SMTP daemon startup message.
165166338Seric	Adjust setproctitle to work on NetBSD and BSD/386.
165266338Seric	Fix null pointer reference in MX fallback code.
165366338Seric	A bunch of minor fixes from Eric Wassenaar:
165466338Seric		If deliver cannot execv the mailer, return EX_OSERR
165566338Seric			instead of EX_TEMPFAIL (to give better
165666338Seric			error messages).
165766338Seric		Consistently malloc e_message.
165866338Seric		Catch degenerate case of calling returntosender()
165966338Seric			with an empty returnq.
166066338Seric		MIME reformatting.
166166338Seric
166266338Seric6.58/6.28	93/05/13
166366338Seric	Fix bug that can cause incorrect verbose display of user smtp
166466338Seric		messages.
166566338Seric	Disable SMTP VERB command if PRIV_NOEXPN is set (since this
166666338Seric		could reveal the same information.
166766338Seric	Allow failure when reading SMTP greeting message to go on to
166866338Seric		next MX host.
166966338Seric	Add "MIME-Version: 1.0" header if using MIME (this was NOT
167066338Seric		included in RFC 1344, but Bill King of Allan-Bradley
167166338Seric		Company forwarded me email from Nathaniel Borenstein
167266338Seric		claiming that it was an inadvertent omission).
167366338Seric	Don't use Content-Type: X-message-header.  According to John
167466338Seric		Myers of CMU, many MIME readers will completely ignore
167566338Seric		the data if they don't recognize it.  Instead, just
167666338Seric		add a blank line to make it a legal (empty) message.
167766338Seric	Fix problem causing dots to keep getting appended to cached
167866338Seric		hostnames.  This can cause buffer overrun conditions.
167966338Seric		The problem was found by Erik Forsberg of Retix,
168066338Seric		although I used a different bug fix than he provided.
168166338Seric	Fix parsing of split header/envelope rewriting specs -- from
168266338Seric		Eric Forsberg.
168366338Seric	Fix from Eric Wassenaar to correct To: lists in error messages.
168466338Seric
168566338Seric6.57/6.28	93/05/11
168666338Seric	Fix minor glitch causing extra ctladdrs to be output to queue
168766338Seric		file.  Just an annoyance.
168866338Seric	Cache results of name server canonification lookups to avoid
168966338Seric		backed up queue runs.
169066338Seric	Major rewrite of alias.c: considerable cleanup, plus sample
169166338Seric		(untested) support for NIS aliases.  The "A" option
169266338Seric		can now be a comma separated list (or be repeated) --
169366338Seric		that is, you can have multiple alias databases.  Each
169466338Seric		database can have the syntax ``class:file''; if no class
169566338Seric		is specified, the "implicit" class is assumed.  Implicit
169666338Seric		searches through a list of compiled in types -- hash,
169766338Seric		dbm, nis, and stab.  Alias files are searched in the
169866338Seric		order they are listed.  For example:
169966338Seric			OAhash:/etc/aliases.local,/etc/aliases
170066338Seric			OAnis:mail.aliases@my.nis.domain
170166338Seric		first searches the hash database /etc/aliases.local,
170266338Seric		then the regular /etc/aliases database, then the NIS
170366338Seric		map "mail.aliases" in the NIS domain "my.nis.domain".
170466338Seric	If in Verbose mode (probably from VERB command) run SMTP job
170566338Seric		in foreground and don't do RCPT optimizations.
170666338Seric	Add udb :mailsender as equivalent to owner- for regular aliases.
170766338Seric	Delete option 8; add option 7 that means the opposite.  That is,
170866338Seric		default to 8-bit mode; a special option is needed to
170966338Seric		force sendmail into 7 bit mode.
171066338Seric	Send error messages in encapsulated MIME format.
171166338Seric	New compile flag "NIS" that turns on NIS alias and NIS map
171266338Seric		support.
171366338Seric	Add "j" option to send error messages in MIME (RFC 1341)
171466338Seric		encapsulated message format per RFC 1344.  The
171566338Seric		syntax is pretty ugly if you don't have MIME-aware
171666338Seric		user agents.
171766338Seric	Clean up message handling (for display in mailq output).
171866338Seric	New setproctitle implementation for 4.4bsd.
171966338Seric	Create files (such as ~/dead.letter) using mode FileMode (the
172066338Seric		F option value) instead of 0666.
172166338Seric	Fix bug causing output of EXPN command to not be fully qualified.
172266338Seric		This may cause some problems with UUCP addresses that
172366338Seric		will require some config file assistance -- specifically,
172466338Seric		the $: part has to include the host name for this output
172566338Seric		to make sense.
172666338Seric	Fix a problem that sometimes diagnosed errors and still sent the
172766338Seric		message if the header syntax was bad.
172866338Seric	Fix a bug that caused an error message to be emailed when sendmail
172966338Seric		was operating in -bv mode.
173066338Seric	Add "ListenQueueSize" keyword to daemon options option (OO) to
173166338Seric		set the queue size parameter passed to listen().  You
173266338Seric		will normally have to tweak your kernel to up this.
173366338Seric	Strip spaces off of beginning of message-id before logging (in
173466338Seric		case it was folded across lines).
173566338Seric	Tweak compile flags in daemon.c -- there were some cases where
173666338Seric		it wouldn't work without NETINET.
173766338Seric	Change *file* mailer to output all the usual default headers
173866338Seric		(From, Date, Message-Id).  It gets used when sending
173966338Seric		back error messages.
174066338Seric	CONFIG: explicitly catch and diagnose list:; syntax in ruleset
174166338Seric		zero -- this is not a valid recipient syntax according
174266338Seric		to RFC 821.
174366338Seric	CONFIG: add confMIME_FORMAT_ERRORS to send error messages in
174466338Seric		MIME format.  Defaults to on.
174566338Seric	CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment
174666338Seric		the flags for those mailers.
174766338Seric
174866338Seric6.56/6.27	93/05/01
174966338Seric	Fix problem that causes the fallback mail to postmaster
175066338Seric		(case ESM_POSTMASTER in savemail()) to not look at
175166338Seric		aliases (ugh).
175266338Seric	Some more HPUX tweaking (compile flag hpux => __hpux so it
175366338Seric		still works in ANSI mode).
175466338Seric	Don't try to flock non-regular files when mailing to a file.
175566338Seric		In particular, this was a problem if you tried to
175666338Seric		send to /dev/null.
175766338Seric	Fix a wierd bug that can cause senders to be queued as
175866338Seric		recipients if the name server is down when the mail
175966338Seric		is initially sent.  This hack just ignores sender
176066338Seric		deletion (essentially, it sets the MeToo flag) if there
176166338Seric		is a TEMPFAIL during processing of the sender address.
176266338Seric		Obscure.
176366338Seric	Fix a dangling else problem -- from Brian Bullen from University
176466338Seric		of Stirling, UK.
176566338Seric	Add the "b" mailer flag to force a blank line on the end of
176666338Seric		messages.  Some brilliant versions of /bin/mail insist
176766338Seric		on this but do not add it themselves.
176866338Seric	Add the "g" mailer flag to prevent user SMTP from sending
176966338Seric		"MAIL From:<>".  This is only intended to be a
177066338Seric		transitional gesture, and should not be used if at
177166338Seric		all possible.  It appears that Berkeley and IDA
177266338Seric		config files have always handled this properly; the
177366338Seric		UK config kit apparently does not.
177466338Seric	Don't lowercase and then capitalize header field names -- leave
177566338Seric		them with original capitalization.  Fixes from Bill
177666338Seric		King of Allen-Bradley Company.
177766338Seric	Further cleanup and improved reporting of error messages,
177866338Seric		particularly conditions that cause messages to be
177966338Seric		requeued for future delivery.
178066338Seric	Tweak syslog priorities in some cases.
178166338Seric	CONFIG: clean up route-addr on UUCP addresses.
178266338Seric
178366338Seric6.55/6.25	93/04/27
178466338Seric	HPUX 8.07 compatibility changes in getla() -- I had to make
178566338Seric		these changes to get it to work at Berkeley, although
178666338Seric		others seem to have been working before (???).
178766338Seric	Various patches to XLA code.
178866338Seric	Fix problem that causes setuid bit on files to be ignored from
178966338Seric		SMTP or in queue runs.  Problem noted by Jason Ornstein
179066338Seric		of Under The Wire, Inc.
179166338Seric	Fix problem that can cause CNAMEs to be ignored.
179266338Seric	Generalize getmxrr to match local host in $=w instead of a
179366338Seric		single name passed in.
179466338Seric	Some cleanup from Eric Wassenaar:
179566338Seric		Use FileMailer instead of ProgMailer in two places.
179666338Seric		Eliminate duplicate 8th-bit stripping in commaize.
179766338Seric		Fix a problem with mis-parsing of backslash escapes
179866338Seric			under some circumstances.
179966338Seric	NIS map fix (was always including trailing null character)
180066338Seric		from Mike Glendinning of Ingres UK.
180166338Seric	Add "a" mailer flag to try using ESMTP.  It tries the EHLO
180266338Seric		command and if that fails falls back to regular SMTP.
180366338Seric		Also parses EHLO option keywords.  If host supports
180466338Seric		SIZE extension, this is added to the MAIL FROM:
180566338Seric		command.
180666338Seric	Extend "b" option to include a second value which is the
180766338Seric		maximum message size this server is willing to accept.
180866338Seric		For example, a value of "10/1000000" says that there
180966338Seric		must be ten blocks free, and sendmail will reject
181066338Seric		any message larger than one megabyte.
181166338Seric	Some portability hooks for NeXT (this could be applicable
181266338Seric		to Mach in general).  You have to create an empty
181366338Seric		file called "unistd.h" to get it to compile.
181466338Seric	Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to
181566338Seric		be more generous.
181666338Seric	Add X400-Received: to the list of headers tagged with H_TRACE
181766338Seric		in conf.c.  From Bill King, Allen-Bradley Co.
181866338Seric
181966338Seric6.54/6.25	93/04/19
182066338Seric	Fix problem that caused redefinition of SMTP and QUEUE compile
182166338Seric		flags.  Pointed out by Jon Forrest of the Sequoia 2000
182266338Seric		project at Berkeley.
182366338Seric	Properly handle \! hack -- it was treating host\!user as one
182466338Seric		token (host!user) instead of three (host, !, user).
182566338Seric		Fix from Eric Wassenaar of NIKHEF-H.
182666338Seric	Fix compilation problem in getauthinfo() if IDENTPROTO is off.
182766338Seric	Turn off DEFNAMES and DNSRCH when getting the hostsignature
182866338Seric		(i.e., MX records) in level 1 configuration files; this
182966338Seric		matches the old behaviour.  From Motonori Nakamura of
183066338Seric		Kyoto University.
183166338Seric	Improve error message printing -- if sent through an alias,
183266338Seric		error messages include the name of the alias in the
183366338Seric		message.  Unfortunately, in order to make this work
183466338Seric		properly in queue runs, this changes the format of the
183566338Seric		C line in the qf file.  The relatively uselessness of
183666338Seric		the previous information was pointed out to me by
183766338Seric		Allan E Johannesen of WPI.
183866338Seric	Add XLA compile flag to add hooks to Christophe Wolfhugel's
183966338Seric		extended load average code.  This is still in very early
184066338Seric		form.  For information regarding the guts of the xla
184166338Seric		code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr.
184266338Seric	Additional hooks for detecting tempfails in rewriting rules
184366338Seric		(that is, in map lookups).
184466338Seric
184566338Seric6.53/6.25	93/04/15
184666338Seric	Properly diagnose ruleset zero returning null (instead of a mailer
184766338Seric		triple).  From Motonori Nakamura of Kyoto University.
184866338Seric	More generalization of socket code for other protocols.
184966338Seric	Shorten timeouts on reverse name lookups -- since they are done
185066338Seric		during connection establishment, long timeouts here can
185166338Seric		cause higher level timeouts.  This mainly serves to accept
185266338Seric		mail from hosts that do not have proper reverse (PTR) DNS
185366338Seric		records set up.
185466338Seric	Reset e_statmsg before each mailer invocation to avoid bogus
185566338Seric		messages in the log.
185666338Seric	Redefine $r, $s, and $_ in error envelopes so you don't get
185766338Seric		incorrect cruft in the error message.  Problem noted by
185866338Seric		Motonori Nakamura of Kyoto University.
185966338Seric	Fix a problem that can cause failure to return errors to Postmaster
186066338Seric		in certain cases.  From Motonori Nakamura.
186166338Seric	Fix a problem that can cause some systems to give duplicate error
186266338Seric		messages when a bad syntax address such as "<a" is presented
186366338Seric		to an SMTP server.   It doesn't seem to occur on all
186466338Seric		machines.  From Motonori Nakamura.
186566338Seric	Default IDENTPROTO off for Ultrix and HPUX, which apparently have
186666338Seric		the interesting "feature" that when they receive a "Host
186766338Seric		unreachable" message they closes all open connections to
186866338Seric		that host.  However, some firewall gateways send this message
186966338Seric		if you try to connect to an unauthorized port, such as the
187066338Seric		IDENT port (113).  Thus, no email can be received from such
187166338Seric		hosts.  There is some evidence that versions of Ultrix before
187266338Seric		4.3 do not have this problem.  Thanks to Tom Ivar Helbekkmo
187366338Seric		for pointing out this behaviour to me and to Michael Corrigan
187466338Seric		of U.C. San Diego for informing me about the HPUX problem.
187566338Seric	Allow IPC mailers to return a colon-separated list of hosts in the
187666338Seric		$@ clause; these are searched in order as though they were
187766338Seric		MX records.
187866338Seric	When sending an error report, print the list of addresses tagged
187966338Seric		as bad.  Requested by Allan E Johannesen of WPI.
188066338Seric	Change map function calls to return a status code.  This gets
188166338Seric		passed back as the result of rewrite.  Parseaddr marks
188266338Seric		the address as a QUEUEUP address if the return code is
188366338Seric		EX_TEMPFAIL.  All this to queue properly if the name
188466338Seric		server is down.  This code is not well tested.  This code
188566338Seric		changes the interface to map lookup functions (a fifth
188666338Seric		parameter, int *statp, is added).  Feature requested by
188766338Seric		Dan Oscarsson.
188866338Seric	Don't delete quotes (in the dequote map) if there are spaces in
188966338Seric		the string, since this would cause them to be replaced by
189066338Seric		the SpaceSub character.
189166338Seric	Accept BODY=8BITMIME on SMTP MAIL command.  This isn't advertised
189266338Seric		because the 8BIT to 7BIT translation doesn't exist yet.
189366338Seric		This does add a "bodytype" field to both envelope and
189466338Seric		queue file and a -B command line flag to pass the type in
189566338Seric		during direct invocations.
189666338Seric	Discard return error messages only on responses to responses to
189766338Seric		responses, not on responses to responses.  That is, the
189866338Seric		algorithm is to try return to sender, then return to
189966338Seric		postmaster, then discard.  Previously it discarded
190066338Seric		immediately if the return to sender pass failed.
190166338Seric	CONFIG: back out change to hide unqualified hostnames behind %-hack.
190266338Seric		This screws up local aliases and .forward files.
190366338Seric	CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $];
190466338Seric		some sites only handle completely canonified names.
190566338Seric		Requested by John Gardiner Myers of CMU.
190666338Seric	CONFIG: some UUCP code was still included even if FEATURE(nouucp)
190766338Seric		was specified.
190866338Seric
190966338Seric6.52/6.24	93/04/10
191066338Seric	Clean up some minor glitches on error return messages pointed out
191166338Seric		by Motonori Nakamura of Kyoto University.
191266338Seric	Fix reply() to not reset SmtpReplyBuffer on fatal errors; this
191366338Seric		was supposed to reset SmtpMsg Buffer.  This makes the
191466338Seric		client side code virtually useless.  Reported by Allan
191566338Seric		E Johannesen of WPI and Phil Brandenberger of Swarthmore.
191666338Seric	Better debug messages if fuzzy is disabled, suggested by Allan
191766338Seric		E Johannesen of WPI.
191866338Seric	Offset SmtpReplyBuffer by four in usersmtp when checking for
191966338Seric		loopback.  From Eric Wassenaar.
192066338Seric	Don't set $s until after runinchild in srvrsmtp -- otherwise
192166338Seric		it gets cleared.  From Eric Wassenaar.
192266338Seric	Implement IDA-style $&x for deferred macro expansion.
192366338Seric	More POSIX compatibility.
192466338Seric	CONFIG: Hide unqualified hostnames behind %-hack using $s as the
192566338Seric		actual sender.  This is only done if $r is non-null, that
192666338Seric		is, if this is not locally submitted mail.
192766338Seric	CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host
192866338Seric		names to internet domains.  A program contributed by
192966338Seric		John Gardiner Myers of CMU to create the maps is included
193066338Seric		in the contrib directory (in the "misc" tar file).
193166338Seric	CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP
193266338Seric		hosts.  There is currently no tool to create this map.
193366338Seric
193466338Seric6.51/6.23	93/04/04
193566338Seric	Add D= mailer flag to specify a path of possible working directories
193666338Seric		in which to execute the mailer.  This is intended for the
193766338Seric		prog mailer; some shells can get upset if they don't have
193866338Seric		access to the current directory.
193966338Seric	Add RFC 1413 (IDENT) protocol support.  This is only very loosely
194066338Seric		tested.  This adds a $_ macro to be the authenticated
194166338Seric		info (in ``user@domain [address]'' form) and debug flag
194266338Seric		9 to trace the protocol.
194366338Seric	Check for loopbacks in usersmtp instead of srvrsmtp -- there is no
194466338Seric		reason for a local agent to not be talking to the localhost
194566338Seric		(although the inverse is not true).
194666338Seric	Add a few hooks for automated map rebuilding.  This is certainly
194766338Seric		not done yet.
194866338Seric	CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is,
194966338Seric		user's home directory then the root.
195066338Seric	CONFIG: Log RFC 1413 identification in Received: line.
195166338Seric
195266338Seric6.50/6.22	93/04/01
195366338Seric	Fixes to requeueing code to make it compute priority, nrcpts,
195466338Seric		and the like properly.
195566338Seric
195666338Seric6.49/6.22	93/04/01
195766338Seric	Diagnose incorrect privacy flags.  Suggested by Bryan Costales
195866338Seric		of ICSI.
195966338Seric	Some ANSI C fixes.
196066338Seric	Arrange to quote backslashes as well as other special characters
196166338Seric		in the phrase part of a route-addr.
196266338Seric	Some fixes to FallBackMX code suggested by Motonori Nakamura of
196366338Seric		Kyoto University.
196466338Seric	More vigorous zeroing of CurHostAddr to avoid logging of bogus
196566338Seric		host addresses when you are actually just printing
196666338Seric		information from the MCI structure; problem noted by
196766338Seric		Michael Corrigan of U.C. San Diego.
196866338Seric	Don't ignore rest of queue if any job is not runnable.  This can
196966338Seric		also cause an incorrect job to be lost.  Fix from
197066338Seric		Eric Wassenaar.
197166338Seric	Always respond "quickly" to RCPT command; do alias expansion and
197266338Seric		the like later.  This also means that mail for lists that
197366338Seric		have errors will be acccepted, and an error sent back
197466338Seric		later.  This is done by instantiating the queue file
197566338Seric		and then immediately running and requeueing it.
197666338Seric
197766338Seric6.48/6.22	93/03/30
197866338Seric	Fix incorrect diagnosis of infinite loop in ruleset.  Problem noted
197966338Seric		by several people.
198066338Seric	Improve information printed when infinite loops are discovered.
198166338Seric	Zero CurHostAddr to fix erroneous internet addresses in log when no
198266338Seric		addresses can be bound.  Pointed out by Motonori Nakamura
198366338Seric		of Kyoto University.
198466338Seric	"Probe" SMTP connections using RSET instead of NOOP "just in case".
198566338Seric		Suggested by John Gardiner Myers of CMU.
198666338Seric	Don't warn about -f if you are setting sender to yourself.
198766338Seric
198866338Seric6.47/6.22	93/03/29
198966338Seric	Fix incompatible call to endmailer in smtpquit which causes core
199066338Seric		dumps.  Noted by Allan E Johannesen of WPI.
199166338Seric	HPUX portability changes from Michael J. Corrigan of UC San Diego.
199266338Seric	Require MAIL before RCPT command in srvrsmtp.c.  This had been
199366338Seric		intentional from the 821 draft days when the order wasn't
199466338Seric		clear, but is silly now.
199566338Seric	Fix bug in nis_magic routine that was initializing parameters
199666338Seric		incorrectly.  Fix from Takahiro Kanbe of Fuji Xerox
199766338Seric		Information Systems Co., Ltd.
199866338Seric	Change default for PrivacyFlags in conf.c to 0 -- since it always
199966338Seric		"or"s in new values, there was no way to turn off the
200066338Seric		AuthWarning stuff.
200166338Seric	Add O option to set SMTP daemon options.
200266338Seric	Add V option to set fallback MX host.  This always sorts at lower
200366338Seric		priority than anything it gets from the name server.  It
200466338Seric		should only be used for environments with very bad network
200566338Seric		connectivity.  Requested by several people.
200666338Seric	Log sending info.  It's not clear this is a good idea.
200766338Seric	CONFIG: fix typo in mailertable code.  Noted by Phil Brandenberger
200866338Seric		of Swarthmore.
200966338Seric	CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options
201066338Seric		O and V, respectively.
201166338Seric
201266338Seric6.46/6.21	93/03/26
201366338Seric	Fix botch in server SMTP that broke transactions that did not
201466338Seric		use HELO first (like MH).  Fix from Michael Corrigan
201566338Seric		of U.C. San Diego.
201666338Seric	Fall back to other MX records if there is an error anywhere
201766338Seric		in delivery (actually on MAIL or DATA -- RCPT is harder).
201866338Seric		Suggested by John Gardiner Myers and Motonori Nakamura.
201966338Seric	Revert to non-prototypes -- it turns out that our ANSI C
202066338Seric		compiler is more forgiving than most others about
202166338Seric		mixing prototyped extern declarations with non-prototyped
202266338Seric		function definitions.
202366338Seric	Fix a problem with multi-word class matching pointed out by
202466338Seric		Neil Rickert.  Given:
202566338Seric			CX b a.b.c
202666338Seric			R$+ $=X $+	$: $1 < $2 > $3
202766338Seric		the input "user@a.b.c" failed instead of being properly
202866338Seric		rewritten as "user@a.<b>.c".
202966338Seric	Neil also convinced me that it was correct that $~ should match
203066338Seric		only one token -- the problem is that it's always possible
203166338Seric		to add another token, so $~ matches far too eagerly.
203266338Seric
203366338Seric6.45/6.21	93/03/25
203466338Seric	Implement multi-word classes (properly!).
203566338Seric
203666338Seric6.44/6.21	93/03/25
203766338Seric	Add X-Authentication-Warning: headers to clue users into possible
203866338Seric		attempts to forge mail.  This is on the authwarnings
203966338Seric		privacy flag, but is the default.  Suggested by Bryan
204066338Seric		Costales of ICSI.
204166338Seric	Pass default units for convtime in so they can be more reasonable.
204266338Seric	Allow config files to always add a new Comments: header (i.e.,
204366338Seric		they will be added even if an old one already exists).
204466338Seric		Suggested by Bryan Costales of ICSI.
204566338Seric	Allow config files to delete an existing Return-Path: header.
204666338Seric		These should only be added at final delivery.  Suggested
204766338Seric		by Bryan Costales of ICSI.
204866338Seric	Some debugging additions.  Suggested by Bryan Costales of ICSI.
204966338Seric	Clean up logging of Family 0 addresses.  Noted by David Muir
205066338Seric		Sharnoff and others.
205166338Seric	Add a "dequote" map class.  This allows config files to strip
205266338Seric		quotes off of addresses.  Note that this is not a builtin
205366338Seric		map, just a class -- so you have to define the map
205466338Seric		using the K line.
205566338Seric	Fix a bug in the queueup() loop getting a locked tf where in
205666338Seric		very odd cases it can fall off the bottom and core dump.
205766338Seric		Of course, it was P{r Emanuelsson who found it....
205866338Seric	Open a new transcript when splitting an envelope.  Problem found
205966338Seric		by Allan E Johannesen of WPI.
206066338Seric	Improved error output in endmailer if the mailer core dumps.
206166338Seric	CONFIG: Fix typo in UUCP mailer definition.
206266338Seric	CONFIG: Default several of the new options on: eight bit input,
206366338Seric		privacy flags set to "authwarnings", and message warning
206466338Seric		set to 4h.
206566338Seric	CONFIG: Use dequote map.
206666338Seric
206766338Seric6.43/6.20	93/03/23
206866338Seric	Fix problem with assumption of an sa_len field in a generic
206966338Seric		sockaddr -- it turns out that most vendors haven't
207066338Seric		picked up this (very important) fix.
207166338Seric	Change compilation flags for daemon code -- select one or both
207266338Seric		of NETINET or NETISO, but don't ever set DAEMON manually.
207366338Seric	CONFIG: add FEATURE(mailertable) to do IDA-style mailertables.
207466338Seric
207566338Seric6.42/6.19	93/03/19
207666338Seric	Use Postmaster as default fallback return address, not root.
207766338Seric	POSIX changes for file descriptor handling.
207866338Seric	Diagnose errors writing new queue file.
207966338Seric	If you change the owner using an owner- alias, also change the
208066338Seric		error mode to EM_MAIL so that errors don't get dropped
208166338Seric		into an inappropriate directory.  Problem noted by
208266338Seric		Allan E Johannesen of WPI.
208366338Seric	If you are su'ed to root, send email as who you really are, not
208466338Seric		as root.  From Brian Kantor of U.C. San Diego.
208566338Seric	Allow warning messages to be sent after a configurable interval
208666338Seric		has passed without delivery.  The message is sent only
208766338Seric		once per envelope.  This changes the format of the qf
208866338Seric		file to have an F line, and the format of the T option
208966338Seric		to accept take the format "return/warn" (both intervals).
209066338Seric	Don't force all local names to lower case -- this was left over
209166338Seric		from the wierd handling of case mapping on aliases.  It
209266338Seric		is now driven (as expected) by the "u" mailer flag.
209366338Seric		Problem noted by P{r Emanuelsson.
209466338Seric	Fix problem that caused headers on returned email to be trashed;
209566338Seric		they were getting freed, but are still accessible via
209666338Seric		BlankEnvelope.
209766338Seric	Fix problem that caused bogus ids to be created on returned
209866338Seric		mail.
209966338Seric	Add support for ISO and other non-INET networking.  This is by
210066338Seric		no means finished yet.  This does assume a lot of other
210166338Seric		system support, like a version of gethostbyname that
210266338Seric		returns non-AF_INET addresses.
210366338Seric	CONFIG: change default on prog mailer to keep upper case in
210466338Seric		user names (i.e., in the program command line).
210566338Seric	CONFIG: strip trailing dots off of hosts in uucp mailer before
210666338Seric		convert to bang format.
210766338Seric	CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H
210866338Seric		(MAIL_HUB) delivery that doesn't add local domain.  Note
210966338Seric		that this violates 821, but is probably "more correct"
211066338Seric		for what we are trying to do.  Problem pointed out by
211166338Seric		Michael Graff of Iowa State.
211266338Seric
211366338Seric6.41/6.18	93/03/18
211466338Seric	Clean up unnecessary creates of queue ids (i.e., empty qf files)
211566338Seric		when not needed, such as when starting up an SMTP
211666338Seric		connection.
211766338Seric	Fix problem where split envelopes aren't instantiated in the queue.
211866338Seric		This is quite a serious bug.
211966338Seric	Owner- aliases had problems with leading spaces causing a
212066338Seric		premature delimitation.
212166338Seric
212266338Seric6.40/6.18	93/03/18
212366338Seric	Have ending 250 (after DATA) include the id; suggested by
212466338Seric		Brian Kantor of UC San Diego.
212566338Seric	Add logging on envelope splitting.
212666338Seric	Change queue ids to have one more letter encoding the hour of
212766338Seric		the day so that during a single day there is a greater
212866338Seric		likelihood of uniqueness; requested by Brian Kantor.
212966338Seric
213066338Seric6.39/6.18	93/03/18
213166338Seric	Fix minor compile problem if LOCKF is defined.
213266338Seric	Define size of tobuf in conf.h.  Observed by Toshinari Takahashi
213366338Seric		of Toshiba.
213466338Seric	Restore e_sender -- this is equivalent to e_from.q_paddr without
213566338Seric		decorations such as angle brackets and comments.
213666338Seric	OSF/1 on Alpha changes from Allan E Johannesen of WPI.
213766338Seric	CONFIG: fix typo in S3 for list syntax (;: => :;).  Thanks to
213866338Seric		Christopher Hoover for noting the problem.
213966338Seric
214066338Seric6.38/6.17	93/03/17
214166338Seric	Pass envelope to disconnect to avoid another use of CurEnv, which
214266338Seric		can apparently end up being null at inopportune times.
214366338Seric	Log "received from" as "relay=" for consistency (suggested by
214466338Seric		John Gardiner Myers).
214566338Seric	Fix major bug in header handling:  if no From: line existed in
214666338Seric		the header (so sendmail inserts one), and the sender is
214766338Seric		an alias that has an owner, the From: line shows the
214866338Seric		owner (as well as the envelope).  Fixed by early binding
214966338Seric		the headers (which will change debugging output).
215066338Seric	HPUX portability patches from Michael J. Corrigan of UC San Diego.
215166338Seric	Some attempts to adapt better to out of open file conditions.
215266338Seric	Some changes to ctladdr handling in queue files.
215366338Seric
215466338Seric6.37/6.17	93/03/16
215566338Seric	MAJOR CHANGE:  delete e_sender and e_returnpath (why are these
215666338Seric		different from e_from?) and $< macro.
215766338Seric	Log correct IP address in relay= field even if the connection
215866338Seric		times out.
215966338Seric	Log "received from [RESPONSE]" on EF_RESPONSE messages (from
216066338Seric		John Gardiner Myers).
216166338Seric	Fixes to SysExMsg logging (sometimes just got "message: %s"
216266338Seric		instead of "message: error message"), noted by Eric
216366338Seric		Wassenaar.  Also reported by Motonori Nakamura.
216466338Seric	Improvements to MX piggybacking code, from Motonori Nakamura.
216566338Seric	Fix case where CurHostName points to an auto variable that has
216666338Seric		been deallocated (from Motonori Nakamura).
216766338Seric	Fix bug causing newlines to be included in aliases if option
216866338Seric		"n" (check alias RHS) is set; bug noted by David Muir
216966338Seric		Sharnoff.
217066338Seric	Fix problem causing user names that should be mapped to lower
217166338Seric		case to not be mapped if they are sent during a queue
217266338Seric		run.  This greatly simplifies the case mapping code.
217366338Seric		Problem noted by Allan E Johannesen of WPI.
217466338Seric	Don't do recipient address rewriting in buildaddr.  This
217566338Seric		improperly did recipient rewriting on sender addresses,
217666338Seric		and just seems bogus in general -- but the change could
217766338Seric		break some .cf files.
217866338Seric	Pass TZ envariable to child processes for System V.
217966338Seric	CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to
218066338Seric		define those rulesets.
218166338Seric	KNOWN PROBLEM:  I have seen some problems on SunOS that causes
218266338Seric		the User Data Base to give errors on some addresses.  I
218366338Seric		have tracked the problem back at least as far as 93.02.15
218466338Seric		(version 6.22).  Running with debugging on makes it
218566338Seric		go away, so I conclude that it is referencing uninitialized
218666338Seric		stack data.  I haven't been able to track this down yet.
218766338Seric
218866338Seric6.36/6.16	93/03/08
218966338Seric	Allow local mailer to specify $@host -- this lets you assign the
219066338Seric		"foo" part of jgm+foo to $h for passing in to the local
219166338Seric		mailer.
219266338Seric	Additional debug printing in getcanonname (show query type).
219366338Seric	Don't add the e_fromdomain on sender addresses -- this interacts
219466338Seric		wierdly with the owner- code.
219566338Seric	Improve delivery logging to not log obvious or meaningless stuff.
219666338Seric	Include numeric IP address in Received: lines per RFC 1123 section
219766338Seric		5.2.8.
219866338Seric	Fixed a bug in checking stat() return value if restrictmailq is
219966338Seric		set.  Also, check the entire group set instead of just the
220066338Seric		primary group.  Both from John Gardiner Myers.
220166338Seric	Don't have usrerr automatically print errno, since this is often
220266338Seric		misleading.
220366338Seric	Use transienterror() in makeconnection after connect() fails and
220466338Seric		in openmailer after execve() fails (from Eric Wassenaar).
220566338Seric		Also moved transienterror() from util.c to conf.c.
220666338Seric	Clean up from= logging on response messages.
220766338Seric	Undo patch allowing prescan to return a null vector -- it breaks
220866338Seric		too many things.
220966338Seric	Config: FEATURE(notsticky) lets you use UDB for everything coming
221066338Seric		in to the machine, even if it is specifically targetted
221166338Seric		to this machine.  Without it, UDB is bypassed if the user
221266338Seric		name is fully qualified.
221366338Seric	Config: fix another minor botch with <> (local mailer wasn't
221466338Seric		mapping them properly).
221566338Seric
221666338Seric6.35/6.15	93/03/05
221766338Seric	Fix getrealhostname to return null if sinlen <= 0 -- this can
221866338Seric		occur if stdin is a pipe.
221966338Seric	Avoid infinite loop in getcanonname if name server return
222066338Seric		NO_DATA (for example).
222166338Seric	Config: avoid having C flag qualify list syntax and error syntax.
222266338Seric
222366338Seric6.34/6.14	93/03/05
222466338Seric	Fix logging in deliver to not pass too many parameters to Ultrix
222566338Seric		versions of syslog.
222666338Seric	Don't write the pid file until after the daemon has actually
222766338Seric		opened and conditioned the connection.
222866338Seric	Consider addresses "different" if their q_uids differ (so that
222966338Seric		two users forwarding to the same program will be seen
223066338Seric		as different, rather than the same).
223166338Seric	Fix problem with bad parameters in main() -- they set ExitStat
223266338Seric		but don't exit.
223366338Seric	Fix null pointer references through RealHostName -- painfully
223466338Seric		discovered by Allan E Johannesen of WPI.
223566338Seric	Fix bug causing user@@localhost to core dump (yuch).
223666338Seric	Config: don't put two @host.dom.ain on users in $=E in SMTP
223766338Seric		mailer.  Also, catch user@ (no host) in ruleset 0.
223866338Seric
223966338Seric6.33/6.13	93/03/03
224066338Seric	Config: add confCW_FILE as the name of the cw configuration file
224166338Seric		(defaults to /etc/sendmail.cw).  From P{r Emanuelsson.
224266338Seric	Allow prescan to return a pointer to an empty list -- this is
224366338Seric		not an error.  Also, clean up error reporting to avoid
224466338Seric		double errors (prescan reports once, then the caller
224566338Seric		reports again).
224666338Seric	Changes to avoid trusting T_ANY queries -- run them, but if you
224766338Seric		don't get the info you expected, do T_A and T_MX queries
224866338Seric		anyhow.  This also fixes an oversight where _res.options
224966338Seric		bits were being ignored.
225066338Seric	If PRIV_NOVRFY is set, use 252 response code instead of 502 per
225166338Seric		RFC 1123 section 5.2.3.  It's not 100% clear that this
225266338Seric		is correct, but it probably works better with stupid
225366338Seric		mailers that do a VRFY and only check the first digit.
225466338Seric
225566338Seric6.32/6.12	93/03/02
225666338Seric	Fix uninitialized variable "protocol" in smtp code.
225766338Seric	Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI.
225866338Seric	Additional hooks for RFC 1427 (ESMTP SIZE extension).  This
225966338Seric		includes requiring that enoughspace() know the system
226066338Seric		block size, which will undoubtedly break most ports.
226166338Seric	Trace flag 19 in use for srvrsmtp.c.
226266338Seric	Additional logging -- notably the sending mailer name.  This
226366338Seric		also changes the delivery logging to strict field=value
226466338Seric		syntax.
226566338Seric	Fix some problems with messages getting sent even to addresses
226666338Seric		that had been marked bad -- from Eric Wassenaar.
226766338Seric	More WIDE changes: accept host name inside [...] as non-MXed
226866338Seric		host.  This is intended ONLY for use inside firewalled
226966338Seric		environments, where the MX points at the gateway.
227066338Seric	Change .cf file conventions so that mapping for <> addresses
227166338Seric		don't have an @ in them (to avoid confusing the C mailer
227266338Seric		flag).  Pointed out by Neil Rickert.
227366338Seric	Config extensions for Sam Leffler's FlexFAX software.
227466338Seric
227566338Seric6.31/6.10	93/02/28
227666338Seric	Fix some more bugs in alias owner code -- there were some wierd
227766338Seric		cases where an error in a non-aliased name would override
227866338Seric		the return info in an aliased name with an owner.
227966338Seric	Changes from WIDE Project, forwarded to me by Motonori Nakamura:
228066338Seric		Log actual delivery host (after MX et al); from
228166338Seric			yasuhiro@dcl.co.jp.
228266338Seric		Log daemon startup.
228366338Seric		Deliver Postmaster copies without a body.
228466338Seric		Better logging of SMTP senders.
228566338Seric		Send all program email as daemon even when local.
228666338Seric	As requested in various forms from many people, accept -qIstring
228766338Seric		to limit queue runs to jobs with queue-id matching string.
228866338Seric		Similarly for -qRstring for recipients, -qSstring for
228966338Seric		senders.
229066338Seric	Initial hooks for ESMTP support (see RFC 1425).
229166338Seric	Fixed a syntax error in the UUCP mailer specification that caused
229266338Seric		core dumps on startup.
229366338Seric	Check for missing A= or P= arguments in mailer definitions.
229466338Seric
229566338Seric6.30/6.10	93/02/27
229666338Seric	Require FROZENCONFIG compilation flag to include frozen
229766338Seric		configuration code.  Frozen configuration is really
229866338Seric		not a very good idea any more, particularly in shared
229966338Seric		library environments.
230066338Seric	Do better checking of errno after opens of :include: and .forward
230166338Seric		files to defer delivery on network and other transient
230266338Seric		errors.  Suggestion from Craig Everhart.
230366338Seric	Fix minor botch in read timeout macro processing.
230466338Seric	Add FEATURE(nouucp) to config files for sites that know absolutely
230566338Seric		nothing about UUCP.
230666338Seric	Add built cf files to distribution tape and clarify how to build
230766338Seric		them if you don't have the Berkeley make.
230866338Seric	Some sizeof(long) portability changes for the Alpha, from Allan
230966338Seric		E Johannesen.
231066338Seric	Add "restrictmailq" privacy flag -- if set, only people in the same
231166338Seric		group as your queue directory can print the queue.  If you
231266338Seric		set this, be sure you also restrict access to log files....
231366338Seric	Fix another bug in owner-list stuff that can cause data files to
231466338Seric		be "lost".
231566338Seric	Fix a bug with queue runs that cause forwards to yourself to go
231666338Seric		into alias/forwarding loops.  I'm still iffy about this
231766338Seric		fix.
231866338Seric	Fix from Eric Wassenaar for suppression of return message code.
231966338Seric
232066338Seric6.29/6.9	93/02/24
232166338Seric	Fix yet another problem in alias owner code -- put the wrong return
232266338Seric		address on the enclosed return-to-sender letter.
232366338Seric
232466338Seric6.28/6.9	93/02/24
232566338Seric	Fix botch in alias owner code that caused it to not operate if the
232666338Seric		error was detected locally.
232766338Seric
232866338Seric6.27/6.9	93/02/24
232966338Seric	M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include
233066338Seric		file <sys/mount.h>.
233166338Seric	Miscellaneous bug fixes from Eric Wassenaar:
233266338Seric		sendmail -bv -t logs the from line even though in verify
233366338Seric			mode only.
233466338Seric		sendmail -v can go into queue mode if shouldqueue returns
233566338Seric			TRUE.
233666338Seric	Add route-addr pruning per RFC 1123 section 5.3.3.  This can be
233766338Seric		disabled using the "R" option.
233866338Seric	Delete (always undocumented) -R flag (save original recipients);
233966338Seric		there are ways to syslog(3) these now.
234066338Seric	Clean up SMTP reply codes -- specify them as needed in the code,
234166338Seric		instead of in conf.c -- this was needed during the NCP to
234266338Seric		TCP transition, but seems silly now.  This also changes
234366338Seric		parameters to message and nmessage.
234466338Seric	Have mailstats read the .cf file to find the sendmail.st file and
234566338Seric		get text versions of mailer names.  An initial version of
234666338Seric		this code was provided by Tuominen Keijo (although the
234766338Seric		comments indicate the good bits were written by "E.V.").
234866338Seric	Add yet more System V compatibility hacks.
234966338Seric	Fix bug in VRFY code (assumes everything must be a local user).
235066338Seric	Allow specification of any of the hard-wired pathnames in the
235166338Seric		Makefile.
235266338Seric	Delete concept of "trusted users" -- this really didn't provide
235366338Seric		any security anyway, and caused some problems.
235466338Seric	Delete last vestige of support for the word "at" as an equivalent
235566338Seric		to the character "@".
235666338Seric	Propagate owner-foo alias information into the envelope sender.
235766338Seric		Based on code from John Gardiner Myers.  This is a major
235866338Seric		semantic change -- beware!
235966338Seric	Allow $@ on LHS to indicate "match zero" -- this is used to match
236066338Seric		the null expression.
236166338Seric
236266338Seric6.26/6.8	93/02/21
236366338Seric	Don't "lose" queue runs.  Very important fix from (who else?)
236466338Seric		Eric Wassenaar.
236566338Seric	Completely reset state on RSET command -- from Eric Wassenaar.
236666338Seric	Send error messages and return receipts using an envelope sender
236766338Seric		of <> regardless of the setting of $n.  Rewriting rules
236866338Seric		can undo this if they feel the necessity, as might be
236966338Seric		needed for networks that don't understand the syntax.
237066338Seric		This is permitted by RFC 821 section 3.6 and required by
237166338Seric		RFC 1123 section 5.3.3.  THIS REQUIRES VERSION 4 CONFIG
237266338Seric		FILES because the rulesets must be able to parse <>
237366338Seric		properly.
237466338Seric	Don't ever send error messages to "<>" -- they will get sent to
237566338Seric		the local postmaster or dumped in /usr/tmp/dead.letter
237666338Seric		instead.  Per RFC 1123 section 5.3.3.
237766338Seric	Explicitly check for email to yourself as a dotted quad.  You
237866338Seric		have to call $[ [ ... ] $] to get this.
237966338Seric	Up the message timeout to five days per RFC 1123 section 5.3.1.1.
238066338Seric	Make all read timeouts individually configurable, as strongly
238166338Seric		recommended by RFC 1123 section 5.3.2.
238266338Seric	Use f_bavail (blocks available to regular users) instead of f_bfree
238366338Seric		(blocks available to superuser) in free block checks.
238466338Seric	Change $d macro to be the current time, not the origination time,
238566338Seric		since this is consistent with how it is used now.
238666338Seric	Generalization of enoughspace from Eric Wassenaar covering
238766338Seric		SGI, Apollo, HPUX, Ultrix, and SunOS.
238866338Seric	Ignore process group signals -- some front ends can do this if
238966338Seric		you kill a window too quickly.  From Eric Wassenaar.
239066338Seric	Change umask to 022.
239166338Seric
239266338Seric6.25/6.8	93/02/20
239366338Seric	Close all cached connections before calling mailers and after
239466338Seric		forking for delivery (caused double closes which resulted
239566338Seric		in false errors).
239666338Seric	Add FEATURE(redirect) in config files -- this allows you to alias
239766338Seric		old addresses to a pointer to the new address that will
239866338Seric		give a 551 error message, but not deliver the mail.
239966338Seric	Some code changes to make the 551 errors look pretty.
240066338Seric	Names of M4 program paths in config files have changed -- they
240166338Seric		are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS.
240266338Seric	Fix a bug in the QSELFREF code having to do with empty .forward
240366338Seric		files, reported by Eric Wassenaar.
240466338Seric	Add option "p" (privacy flags); this allows you to tune how
240566338Seric		picky the SMTP server will be.  This also adds the
240666338Seric		confPRIVACY_FLAGS M4 macro in the config files.
240766338Seric	Add option "b" (minimum blocks free).  If there are fewer than
240866338Seric		this number of blocks free on the filesystem containing
240966338Seric		the queue directory, the SMTP MAIL command will return
241066338Seric		a 452 response and ask you to try again later.  This
241166338Seric		also adds the confMIN_FREE_BLOCKS M4 macro in the config
241266338Seric		files.
241366338Seric	Made VRFY just verify (doesn't expand aliases and .forward files);
241466338Seric		EXPN does full expansion.  RCPT in queue-only mode also
241566338Seric		doesn't chase aliases and .forward.
241666338Seric
241766338Seric6.24/6.7	93/02/19
241866338Seric	Increase the number of domain search entries in domain.c to allow
241966338Seric		for the extra "" entry indicating the root domain.
242066338Seric		Reported by Motonori Nakamura of Kyoto U.
242166338Seric	Add a "SMART_HOST" in the configs for UUCP-connected sites that
242266338Seric		want to forward all mail with extra "@"s to that site.
242366338Seric		Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to
242466338Seric		be specified as ``mailer:hostname'' to use an alternate
242566338Seric		mailer.
242666338Seric	Clarified and updated some wording in the Operations Guide.
242766338Seric	Add the "c" mailer flag -- this suppresses all comment parts of
242866338Seric		addresses (requested by John Curran of NEARnet).
242966338Seric	Have -v print prompts in -bt mode even if stdin is not a terminal
243066338Seric		(default behaviour is to be silent if not reading from
243166338Seric		a terminal).  Suggested by Bryan Costales, ICSI.
243266338Seric	Move the metacharacters from C0 space (\001-\037) into C1 space
243366338Seric		(\201-\237).  This also fixes a bunch of potential bugs
243466338Seric		with G1 characters (\240-\276) in headers relating to
243566338Seric		negative numbers passed to isspace() et al.
243666338Seric	Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias
243766338Seric		database if YPCOMPAT is #defined.  Enhancement from
243866338Seric		Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd.
243966338Seric	Add "list" Precedence (-30); this can be used with old sendmails
244066338Seric		which will map to precedence 0 (which will return error
244166338Seric		messages).  Suggested by Stephen R. van den Berg.
244266338Seric	Many bug fixes from Eric Wassenaar of the National Institute for
244366338Seric			Nuclear and High-Energy Physics, Amsterdam:
244466338Seric		Clear timeouts properly on open failures in include().
244566338Seric		Don't dereference through NULL if no home directory found.
244666338Seric		Re-establish SIGCHLD signal on System 5 in reapchild().
244766338Seric		Avoid NULL pointer reference on -pFOO flag.
244866338Seric		Properly handle backslash escapes in comments.
244966338Seric		Correctly check reply status on SMTP NOOP command.
245066338Seric		Properly save SMTP error message if peer gives
245166338Seric			"Service Shutting Down" message.
245266338Seric		Avoid writing to the transcript if it couldn't be opened.
245366338Seric		Signal errors in SMTP children to parent properly.
245466338Seric	Handle self references in a list more globally (include a
245566338Seric		QSELFREF bit in the address flags).  This enhancement
245666338Seric		was suggested by Eric Wassenaar.
245766338Seric	Use initgroups() in hpux, even though it's System-V based.  The
245866338Seric		HASINITGROUPS compile flag can set this on other systems.
245966338Seric		This HPUX behaviour was pointed out by Eric Wassenaar.
246066338Seric
246166338Seric6.23/6.6	93/02/16
246266338Seric	Clean up handling of LogLevel to make it easier to figure out
246366338Seric		what's on what level.
246466338Seric	Change log levels to have some consistency:
246566338Seric		1    serious system failures, security problems
246666338Seric		2    lost communications, protocol failures
246766338Seric		3    other serious failures
246866338Seric		4    minor errors
246966338Seric		5    message collection
247066338Seric		6    vrfy logging, creation of return-to-sender
247166338Seric		7    delivery failures
247266338Seric		8    delivery successes
247366338Seric		9    delivery tempfails (queue ups)
247466338Seric		10   database expansion
247566338Seric		>64  debugging
247666338Seric	Allow IDA-style separated processing on S= and R= in Mailer
247766338Seric		definition lines.  Note that rulesets 1 and 2 are
247866338Seric		still used for both addresses as before.  Bruce Lilly
247966338Seric		gave a convincing argument that RFC976 insists on
248066338Seric		this behaviour.
248166338Seric	Added some time zones to arpatounix -- they may not be in the
248266338Seric		standards, but they are in use.  However, I may delete
248366338Seric		arpatounix entirely -- there appears to be no reason
248466338Seric		for it to exist.
248566338Seric	Change to UUCP mailer (in cf directory) to try to do a saner job.
248666338Seric		I'm still not certain about this mailer in general.
248766338Seric
248866338Seric6.22/6.5	93/02/15
248966338Seric	Fix bug that prevents saving letters in ~/dead.letter.
249066338Seric	Don't add angle brackets in VRFY command if angle brackets already
249166338Seric		exist in the address.
249266338Seric	Fix bogus error message in udbexpand.
249366338Seric	Null terminate host buffers in buildaddr (broken in 6.21) --
249466338Seric		IMPORTANT FIX!!
249566338Seric
249666338Seric6.21/6.5	93/02/15
249766338Seric	Fix another incorrect error message in alias.c, found by Azuma
249866338Seric		Okamoto.
249966338Seric	Fix a couple of problems in the more-configurable config files,
250066338Seric		found by Tom Ivar Helbekkmo.
250166338Seric	Fix problem with quoted :include: entries.
250266338Seric	Don't duplicate the filename on verbose printing of .forward and
250366338Seric		:include: contents.
250466338Seric	Extend size of prescan buffer (to allow bigger addresses).  Also,
250566338Seric		detect some buffer overflows.
250666338Seric	Log user SMTP protocol errors (log level 4).
250766338Seric
250866338Seric6.20/6.4	93/02/14
250966338Seric	Fix another problem in the MCI state machine caused when there
251066338Seric		were errors generated from the other end to commands
251166338Seric		other than RCPT.
251266338Seric
251366338Seric6.19/6.4	93/02/14
251466338Seric	Include load average support for DEC Alpha running OSF/1.
251566338Seric	Fix multiple-response problem with errors in MAIL From: line.
251666338Seric	Fix SMTP reply codes for invalid address syntaxes (give 501;
251766338Seric		never give multiple error messages for a single message).
251866338Seric	Fix problem where a cached connection timeout rejects all
251966338Seric		later connects to that host.
252066338Seric	Fix incorrect error message if alias.c is compiled with DBM only.
252166338Seric	Additional changes to fix nested conditionals (from Bruce Lilly).
252266338Seric	Recover more gracefully from operating system failures, particularly
252366338Seric		NULL returns from openmailer (from Noritoshi Demizu,
252466338Seric		OMRON Corporation).
252566338Seric	Log forward, alias, and userdb expand operations on log level 10;
252666338Seric		concept suggested by P{r (Pell) Emanuelsson.
252766338Seric	Changes for HPUX 8.07 compatibility.
252866338Seric
252966338Seric6.18/6.4	93/02/12
253066338Seric	Allow any config option to be set using an M4 define.
253166338Seric	Change UNAME compile flag to HASUNAME for IDA compatibility
253266338Seric		(besides, it's a better name).
253366338Seric	Note in README that on SunOS it must be linked -Bstatic.
253466338Seric	Fairly major change in domain.c to handle wildcard MX records
253566338Seric		more rationally.  NOTE: the "w" option (no wildcard MX
253666338Seric		records match local domain) has been eliminated.
253766338Seric	Fix some unset variable references pointed out by Bruce Lilly.
253866338Seric	Fix host name in process titles when using cached connection.
253966338Seric
254066338Seric6.17/6.3	93/01/28
254166338Seric	Fix System 5 compatibility changes to be compatible with the rest
254266338Seric		of the world.
254366338Seric
254466338Seric6.16/6.3	93/01/28
254566338Seric	Experimental fix for problem handling errors in the SMTP
254666338Seric		protocol in conjunction with connection caching.
254766338Seric	System 5 compatibility changes.
254866338Seric
254966338Seric6.15/6.3	93/01/26
255066338Seric	Fix a bug that causes local mail delivered using -odq to be
255166338Seric		eliminated as a duplicate (because it matched the
255266338Seric		ctladdr, now passed in as a C line).  These changes
255366338Seric		are pretty tricky......
255466338Seric
255566338Seric6.14/6.3	93/01/25
255666338Seric	Add debugging for some MCI errors.
255766338Seric
255866338Seric6.13/6.3	93/01/22
255966338Seric	Fix -e compatibility flag to take a value.
256066338Seric	Fix a couple of minor compilation warnings on Sun cc.
256166338Seric	Improve error messages in a few cases to be more self-explanatory.
256266338Seric
256366338Seric6.12/6.3	93/01/21
256466338Seric	Fix yet-another problem with environment handling, pointed out
256566338Seric		by Yoshitaka Tokugawa and Tom Ivar Helbekkmo.
256666338Seric	Some heuristics to try to limit resource exhaustion problems
256766338Seric		if a downstream host has been down for a long time.
256866338Seric	Fix problem with incorrect host name being logged in "Connection
256966338Seric		timed out" messages (from Tom Ivar Helbekkmo).
257066338Seric	Fix some ANSI C problems (from Takahiro Kanbe).
257166338Seric	Properly log message sender on returned mail during queue run.
257266338Seric	Count number of recipients properly.
257366338Seric	Fix a problem in yp map code.
257466338Seric	Diagnose "message timed out" (from Motonori Nakamura).
257566338Seric
257666338Seric6.11/6.3	93/01/20
257766338Seric	Fix problem with address delimitor inside quotes.
257866338Seric	Define $k and $=k to be the UUCP name (from the uname call)
257966338Seric		based on code from Bruce Lilly.
258066338Seric
258166338Seric6.10/6.2	93/01/18
258266338Seric	Implement arpatounix (largely code from Bruce Lilly).
258366338Seric	Log more info (suggested by John Myers).
258466338Seric	Allow nested $?...$|...$. (inspired by code from Bruce Lilly of
258566338Seric		Sony US).
258666338Seric	POSIX compatibility (noted by Keith Bostic).
258766338Seric	Handle SMTP MAIL command errors properly (urged by several people,
258866338Seric		notably John Myers of CMU).
258966338Seric	Do early diagnosis of .cf errors (notably referencing a RHS
259066338Seric		substitution that isn't on the LHS).
259166338Seric	Adjust checkpointing to better handle batched recipients, suggested
259266338Seric		by John Myers.
259366338Seric	Fix miscellaneous bugs.
259466338Seric	(config files:)  Implement MAIL_HUB for all local mail (to handle
259566338Seric		NFS-mounted directories) as urged by Tom Ivar Helbekkmo
259666338Seric		of the Norwegian School of Economics.
259766338Seric
259866338Seric6.9/6.1 	93/01/13
259966338Seric	Environment handling simplification/bug fix -- child processes
260066338Seric		get a minimal, fixed environment.  This avoids different
260166338Seric		behaviour in queue runs.
260266338Seric	Handle commas inside comments properly.
260366338Seric	Properly limit large messages submitted in -obq mode.
260466338Seric
260566338Seric6.8/6.1		93/01/10
260666338Seric	Check mtime of thaw file against .cf and sendmail binary, based on
260766338Seric		code from John Myers.
260866338Seric
260966338Seric6.7/6.1		93/01/10
261066338Seric	MX piggybacking, based on code from John Myers@CMU.
261166338Seric	Allow checkcompat to return -1 to mean tempfail.
261266338Seric	Bug fix in m_mno computation.
261366338Seric
261466338Seric6.6/6.1		93/01/09
261566338Seric	Tuning of queueing functions as recommended by John Gardiner Myers.
261666338Seric	Return mail headers (no body) on messages with negative precedence.
261766338Seric	Minor other bug fixes.
261866338Seric
261966338Seric6.5/6.1		93/01/03
262066338Seric	Fix botch causing queued headers to have ?XX? prefixes.
262166338Seric
262266338Seric6.4/6.1		93/01/02
262366338Seric	Changes to recognize special mailer types (e.g., file) early.
262466338Seric
262566338Seric6.3/6.1		93/01/01
262666338Seric	Pass timeouts to sfgets.
262766338Seric	Check for control characters in addresses.
262866338Seric	Fixed deferred error reporting.
262966338Seric	Report duplicate aliases.
263066338Seric	Handle mixed case recursive aliases.
263166338Seric	Misc bug fixes.
263266338Seric
263366338Seric6.2/6.1		92/12/30
263466338Seric	Put return-receipt-to on a conf.c flag (but don't set it).
263566338Seric	Fix minor syslog problem.
2636