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