1			SENDMAIL RELEASE NOTES
2	     @(#)RELEASE_NOTES	8.6.12.1 (Berkeley) 03/28/95
3
4This listing shows the version of the sendmail binary, the version
5of the sendmail configuration files, the date of release, and a
6summary of the changes in that release.
7
88.6.12/8.6.12	95/03/28
9	Fix to IDENT code (it was getting the size of the reply buffer
10		too small, so nothing was ever accepted).  Fix from several
11		people, including Allan Johannesen, Shane Castle of the
12		Boulder County Information Services, and Jeff Smith of
13		Warwick University (all arrived within a few hours of
14		each other!).
15	Fix a problem that could cause large jobs to run out of
16		file descriptors on systems that use vfork() rather
17		than fork().
18
198.6.11/8.6.11	95/03/08
20	The ``possible attack'' message would be logged more often
21		than necessary if you are using Pine as a user agent.
22	The wrong host would be reported in the ``possible attack''
23		message when attempted from IDENT.
24	In some cases the syslog buffer could be overflowed when
25		reporting the ``possible attack'' message.  This can
26		cause denial of service attacks.  Truncate the message
27		to 80 characters to prevent this problem.
28	When reading the IDENT response a loop is needed around the
29		read from the network to ensure that you don't get
30		partial lines.
31	Password entries without any shell listed (that is, a null
32		shell) wouldn't match as "ok".  Problem noted by
33		Rob McMahon.
34	When running BIND 4.9.x a problem could occur because the
35		_res.options field is initialized differently than it
36		was historically -- this requires that sendmail call
37		res_init before it tweaks any bits.
38	Fix an incompatibility in openxscript() between the file open mode
39		and the stdio mode passed to fdopen.  This caused UnixWare
40		2.0 to have conniptions.  Fix from Martin Sohnius of
41		Novell Labs Europe.
42	Fix problem with static linking of local getopt routine when
43		using GNU's ld command.  Fix from John Kennedy of
44		Cal State Chico.
45	It was possible to turn off privacy flags.  Problem noted by
46		*Hobbit*.
47	Be more paranoid about writing files.  Suggestions by *Hobbit*
48		and Liudvikas Bukys.
49	MAKEMAP: fixes for 64 bit machines (DEC Alphas in particular)
50		from Spider Boardman.
51	CONFIG: No changes (version number only, to keep it in sync
52		with the binaries).
53
548.6.10/8.6.10	95/02/10
55	SECURITY: Diagnose bogus values to some command line flags that
56		could allow trash to get into headers and qf files.
57	Validate the name of the user returned by the IDENT protocol.
58		Some systems that really dislike IDENT send intentionally
59		bogus information.  Problem pointed out by Michael Bushnell
60		of the Free Software Foundation.  Has some security
61		implications.
62	Fix a problem causing error messages about DNS problems when
63		the host name contained a percent sign to act oddly
64		because it was passed as a printf-style format string.
65		In some cases this could cause core dumps.
66	Avoid possible buffer overrun in returntosender() if error
67		message is quite ling.  From Fletcher Mattox of the
68		University of Texas.
69	Fix a problem that would silently drop "too many hops" error
70		messages if and only if you were sending to an alias.
71		From Jon Giltner of the University of Colorado and
72		Dan Harton of Oak Ridge National Laboratory.
73	Fix a bug that caused core dumps on some systems if -d11.2 was
74		set and e->e_message was null.  Fix from Bruce Nagel of
75		Data General.
76	Fix problem that can still cause df files to be left around
77		after "hop count exceeded" messages.  Fix from Andrew
78		Chang and Shau-Ping Lo of SunSoft.
79	Fix a problem that can cause buffer overflows on very long
80		user names (as might occur if you piped to a program
81		with a lot of arguments).
82	Avoid returning an error and re-queueing if the host signature
83		is null; this can occur on addresses like ``user@.''.
84		Problem noted by Wesley Craig and the University of
85		Michigan.
86	Avoid possible calls to malloc(0) if MCI caching is turned
87		off.  Bug fix from Pierre David of the Laboratoire
88		Parallelisme, Reseaux, Systemes et Modelisation (PRiSM),
89		Universite de Versailles - St Quentin, and Jacky
90		Thibault.
91	Make a local copy of the line being sent via senttolist() -- in
92		some cases, buffers could get trashed by map lookups
93		causing it to do unexpected things.  This also simplifies
94		some of the map code.
95	CONFIG: No changes (version number only, to keep it in sync
96		with the binaries).
97
988.6.9/8.6.9	94/04/19
99	Do all mail delivery completely disconnected from any terminal.
100		This provides consistency with daemon delivery and
101		may have some security implications.
102	Make sure that malloc doesn't get called with zero size,
103		since that fails on some systems.  Reported by Ed
104		Hill of the University of Iowa.
105	Fix multi-line values for $e (SMTP greeting message).  Reported
106		by Mike O'Connor of Ford Motor Company.
107	Avoid syserr if no NIS domain name is defined, but the map it
108		is trying to open is optional.  From Win Bent of USC.
109	Changes for picky compilers from Ed Gould of Digital Equipment.
110	Hesiod support for UDB from Todd Miller of the University of
111		Colorado.  Use "hesiod" as the service name in the U
112		option.
113	Fix a problem that failed to set the "authentic" host name (that
114		is, the one derived from the socket info) if you called
115		sendmail -bs from inetd.  Based on code contributed by
116		Todd Miller (this problem was also reported by Guy Helmer
117		of Dakota State University).  This also fixes a related
118		problem reported by Liudvikas Bukys of the University of
119		Rochester.
120	Parameterize "nroff -h" in all the Makefiles so people with
121		variant versions can use them easily.  Suggested by
122		Peter Collinson of Hillside Systems.
123	SMTP "MAIL" commands with multiple ESMTP parameters required two
124		spaces between parameters instead of one.  Reported by
125		Valdis Kletnieks of Virginia Tech.
126	Reduce the number of system calls during message collection by
127		using global timeouts around the collect() loop.  This
128		code was contributed by Eric Wassenaar.
129	If the initial hostname name gathering results in a name
130		without a dot (usually caused by NIS misconfiguration)
131		and BIND is compiled in, directly access DNS to get
132		the canonical name.  This should make life easier for
133		Solaris systems.  If it still can't be resolved, and
134		if the name server is listed as "required", try again
135		in 30 seconds.  If that also fails, exit immediately to
136		avoid bogus "config error: mail loops back to myself"
137		messages.
138	Improve the "MAIL DELETED BECAUSE OF LACK OF DISK SPACE" error
139		message to explain how much space was available and
140		sound a bit less threatening.  Suggested by Stan Janet
141		of the National Institute of Standards and Technology.
142	If mail is delivered to an alias that has an owner, deliver any
143		requested return-receipt immediately, and strip the
144		Return-Receipt-To: header from the subsequent message.
145		This prevents a certain class of denial of service
146		attack, arguably gives more reasonable semantics, and
147		moves things more towards what will probably become a
148		network standard.  Suggested by Christopher Davis of
149		Kapor Enterprises.
150	Add a "noreceipts" privacy flag to turn off all return receipts
151		without recompiling.
152	Avoid printing ESMTP parameters as part of the error message
153		if there are errors during parsing.  This change is
154		purely cosmetic.
155	Avoid sending out error messages during the collect phase of
156		SMTP; there is an MVS mailer from UCLA that gets
157		confused by this.  Of course, I think it's their bug....
158	Check for the $j macro getting undefined, losing a dot, or getting
159		lost from $=w in the daemon before accepting a connection;
160		if it is, it dumps state, prints a LOG_ALERT message,
161		and drops core for debugging.  This is an attempt to
162		track down a bug that I thought was long since gone.
163		If you see this, please forward the log fragment to
164		sendmail@CS.Berkeley.EDU.
165	Change OLD_NEWDB from a #ifdef to a #if so it can be turned off
166		with -DOLD_NEWDB=0 on the command line.  From Christophe
167		Wolfhugel.
168	Instead of trying to truncate the listen queue for the server
169		SMTP port when the load average is too high, just close
170		the port completely and reopen it later as needed.
171		This ensures that the other end gets a quick "connection
172		refused" response, and that the connection can be
173		recovered later.  In particular, some socket emulations
174		seem to get confused if you tweak the listen queue
175		size around and can never start listening to connections
176		again.  The down side is that someone could start up
177		another daemon process in the interim, so you could
178		have multiple daemons all not listening to connections;
179		this could in turn cause the sendmail.pid file to be
180		incorrect.  A better approach might be to accept the
181		connection and give a 421 code, but that could break
182		other mailers in mysterious ways and have paging behaviour
183		implications.
184	Fix a glitch in TCP-level debugging that caused flag 16.101 to
185		set debugging on the wrong socket.  From Eric Wassenaar.
186	When creating a df* temporary file, be sure you truncate any
187		existing data in the file -- otherwise system crashes
188		and the like could result in extra data being sent.
189	DOC: Replace the CHANGES-R5-R8 readme file with a paper in the
190		doc directory.  This includes some additional
191		information.
192	CONFIG: change UUCP rules to never add $U! or $k! on the front
193		of recipient envelope addresses.  This should have been
194		handled by the $&h trick, but broke if people were
195		mixing domainized and UUCP addresses.  They should
196		probably have converted all the way over to uucp-uudom
197		instead of uucp-{new,old}, but the failure mode was to
198		loop the mail, which was bad news.
199	Portability fixes:
200		Newer BSDI systems (several people).
201		Older BSDI systems from Christophe Wolfhugel.
202		Intergraph CLIX, from Paul Southworth of CICNet.
203		UnixWare, from Evan Champion.
204		NetBSD from Adam Glass.
205		Solaris from Quentin Campbell of the University of
206			Newcastle upon Tyne.
207		IRIX from Dean Cookson and Bill Driscoll of Mitre
208			Corporation.
209		NCR 3000 from Kevin Darcy of Chrysler Corporation.
210		SunOS (it has setsid() and setvbuf() calls) from
211			Jonathan Kamens of OpenVision Technologies.
212		HP-UX from Tor Lillqvist.
213	New Files:
214		src/Makefile.CLIX
215		src/Makefile.NCR3000
216		doc/changes/Makefile
217		doc/changes/changes.me
218		doc/changes/changes.ps
219
2208.6.8/8.6.6	94/03/21
221	SECURITY: it was possible to read any file as root using the
222		E (error message) option.  Reported by Richard Jones;
223		fixed by Michael Corrigan and Christophe Wolfhugel.
224
2258.6.7/8.6.6	94/03/14
226	SECURITY: it was possible to get root access by using wierd
227		values to the -d flag.  Thanks to Alain Durand of
228		INRIA for forwarding me the notice from the bugtraq
229		list.
230
2318.6.6/8.6.6	94/03/13
232	SECURITY: the ability to give files away on System V-based
233		systems proved dangerous -- don't run as the owner
234		of a :include: file on a system that allows giveaways.
235		Unfortunately, this also applies to determining a
236		valid shell.
237	IMPORTANT: Previous versions weren't expiring old connections
238		in the connection cache for a long time under some
239		circumstances.  This could result in resource exhaustion,
240		both at your end and at the other end.  This checks the
241		connections for timeouts much more frequently.  From
242		Doug Anderson of NCSC.
243	Fix a glitch that snuck in that caused programs to be run as
244		the sender instead of the recipient if the mail was
245		from a local user to another local user.  From
246		Motonori Nakamura of Kyoto University.
247	Fix "wildcard" on /etc/shell matching -- instead of looking
248		for "*", look for "/SENDMAIL/ANY/SHELL/".  From
249		Bryan Costales of ICSI.
250	Change the method used to declare the "statfs" availability;
251		instead of HASSTATFS and/or HASUSTAT with a ton of
252		tweaking in conf.c, there is a single #define called
253		SFS_TYPE which takes on one of six values (SFS_NONE
254		for no statfs availability, SFS_USTAT for the ustat(2)
255		syscall, SFS_4ARGS for a four argument statfs(2) call,
256		and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument
257		statfs(2) call with the declarations in <sys/vfs.h>,
258		<sys/mount.h>, or <sys/statfs.h> respectively).
259	Fix glitch in NetInfo support that could return garbage if
260		there was no "/locations/sendmail" property.  From
261		David Meyer of the University of Virginia.
262	Change HASFLOCK from defined/not-defined to a 0/1 definition
263		to allow Linux to turn it off even though it is a
264		BSD-like system.
265	Allow setting of "ident" timeout to zero to turn off the ident
266		protocol entirely.
267	Make 7-bit stripping local to a connection (instead of to a
268		mailer); this allows you to specify that SMTP is a
269		7-bit channel, but revert to 8-bit should it advertise
270		that it supports 8BITMIME.  You still have to specify
271		mailer flag 7 to get this stripping at all.
272	Improve makesendmail script so it handles more cases automatically.
273	Tighten up restrictions on taking ownership of :include: files
274		to avoid problems on systems that allow you to give away
275		files.
276	Fix a problem that made it impossible to rebuild the alias
277		file if it was on a read-only file system.  From
278		Harry Edmon of the University of Washington.
279	Improve MX randomization function.  From John Gardiner Myers
280		of CMU.
281	Fix a minor glitch causing a bogus message to be printed (used
282		%s instead of %d in a printf string for the line number)
283		when a bad queue file was read.  From Harry Edmon.
284	Allow $s to remain NULL on locally generated mail.  I'm not
285		sure this is necessary, but a lot of people have complained
286		about it, and there is a legitimate question as to whether
287		"localhost" is legal as an 822-style domain.
288	Fix a problem with very short line lengths (mailer L= flag) in
289		headers.  This causes a leading space to be added onto
290		continuation lines (including in the body!), and also
291		tries to wrap headers containing addresses (From:, To:,
292		etc) intelligently at the shorter line lengths.  Problem
293		Reported by Lars-Johan Liman of SUNET Operations Center.
294	Log the real user name when logging syserrs, since these can have
295		security implications.  Suggested by several people.
296	Fix address logging of cached connections -- it used to always
297		log the numeric address as zero.  This is a somewhat
298		bogus implementation in that it does an extra system
299		call, but it should be an inexpensive one.  Fix from
300		Motonori Nakamura.
301	Tighten up handling of short syslog buffers even more -- there
302		were cases where the outgoing relay= name was too long
303		to share a line with delay= and mailer= logging.
304	Limit the overhead on split envelopes to one open file descriptor
305		per envelope -- previously the overhead was three
306		descriptors.  This was in response to a problem reported
307		by P{r (Pell) Emanuelsson.
308	Fixes to better handle the case of unexpected connection closes;
309		this redirects the output to the transcript so the info
310		is not lost.  From Eric Wassenaar.
311	Fix potential string overrun if you macro evaluate a string that
312		has a naked $ at the end.  Problem noted by James Matheson
313		<jmrm@eng.cam.ac.uk>.
314	Make default error number on $#error messages 553 (``Requested
315		action not taken: mailbox name not allowed'') instead of
316		501 (``Syntax error in parameters or arguments'') to
317		avoid bogus "protocol error" messages.
318	Strip off any existing trailing dot on names during $[ ... $]
319		lookup.  This prevents it from ending up with two dots
320		on the end of dot terminated names.  From Wesley Craig
321		of the University of Michigan and Bryan Costales of ICSI.
322	Clean up file class reading so that the debugging information is
323		more informative.  It hadn't been using setclass, so you
324		didn't see the class items being added.
325	Avoid core dump if you are running a version of sendmail where
326		NIS is compiled in, and you specify an NIS map, but
327		NIS is not running.  Fix from John Oleynick of
328		Rutgers.
329	Diagnose bizarre case where res_search returns a failure value,
330		but sets h_errno to a success value.
331	Make sure that "too many hops" messages are considered important
332		enough to send an error to the Postmaster (that is, the
333		address specified in the P option).  This fix should
334		help problems that cause the df file to be left around
335		sometimes -- unfortunately, I can't seem to reproduce
336		the problem myself.
337	Avoid core dump (null pointer reference) on EXPN command; this
338		only occurred if your log level was set to 10 or higher
339		and the target account was an alias or had a .forward file.
340		Problem noted by Janne Himanka.
341	Avoid "denial of service" attacks by someone who is flooding your
342		SMTP port with bad commands by shutting the connection
343		after 25 bad commands are issued.  From Kyle Jones of
344		UUNET.
345	Fix core dump on error messages with very long "to" buffers;
346		fmtmsg overflows the message buffer.  Fixed by trimming
347		the to address to 203 characters.  Problem reported by
348		John Oleynick.
349	Fix configuration for HASFLOCK -- there were some spots where
350		a #ifndef was incorrectly #ifdef.  Pointed out by
351		George Baltz of the University of Maryland.
352	Fix a typo in savemail() that could cause the error message To:
353		lists to be incorrect in some places.  From Motonori
354		Nakamura.
355	Fix a glitch that can cause duplicate error messages on split
356		envelopes where an address on one of the lists has a
357		name server failure.  Fix from Voradesh Yenbut of the
358		University of Washington.
359	Fix possible bogus pointer reference on ESMTP parameters that
360		don't have an ``=value'' part.
361	CNAME loops caused an error message to be generated, but also
362		re-queued the message.  Changed to just re-queue the
363		message (it's really hard to just bounce it because
364		of the wierd way the name server works in the presence
365		of CNAME loops).  Problem noted by James M.R.Matheson
366		of Cambridge University.
367	Avoid giving ``warning: foo owned process doing -bs'' messages
368		if they use ``MAIL FROM:<foo>'' where foo is their true
369		user name.  Suggested by Andreas Stolcke of ICSI.
370	Change the NAMED_BIND compile flag to be a 0/1 flag so you can
371		override it easily in the Makefile -- that is, you can
372		turn it off using -DNAMED_BIND=0.
373	If a gethostbyname(...) of an address with a trailing dot fails,
374		try it without the trailing dot.  This is because if
375		you have a version of gethostbyname() that falls back
376		to NIS or the /etc/hosts file it will fail to find
377		perfectly reasonable names that just don't happen to
378		be dot terminated in the hosts file.  You don't want to
379		strip the dot first though because we're trying to ensure
380		that country names that match one of your subdomains get
381		a chance.
382	PRALIASES: fix bogus output on non-null-terminated strings.
383		From Bill Gianopoulos of Raytheon.
384	CONFIG: Avoid rewriting anything that matches $w to be $j.
385		This was in code intended to only catch the self-literal
386		address (that is, [1.2.3.4], where 1.2.3.4 is your
387		IP address), but the code was broken.  However, it will
388		still do this if $M is defined; this is necessary to
389		get client configurations to work (sigh).  Note that this
390		means that $M overrides :mailname entries in the user
391		database!  Problem noted by Paul Southworth.
392	CONFIG: Fix definition of Solaris help file location.  From
393		Steve Cliffe <steve@gorgon.cs.uow.edu.au>.
394	CONFIG: Fix bug that broke news.group.USENET mappings.
395	CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX,
396		and USENET_MAILER_MAX to tweak the maximum message
397		size for various mailers.
398	CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0]
399		instead of assuming that it is "inews" for consistency
400		with other mailers.  From Michael Corrigan of UC San Diego.
401	CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB,
402		qualify the address in the SMTP envelope as user@{relay|hub}
403		instead of user@$j.  From Bill Wisner of The Well.
404	CONFIG: Fix route-addr syntax in nullrelay configuration set.
405	CONFIG: Don't turn off case mapping of user names in the local
406		mailer for IRIX.  This was different than most every other
407		system.
408	CONFIG: Avoid infinite loops on certainly list:; syntaxes in
409		envelope.  Noted by Thierry Besancon
410		<besancon@excalibur.ens.fr>.
411	CONFIG: Don't include -z by default on uux line -- most systems
412		don't want it set by default.  Pointed out by Philippe
413		Michel of Thomson CSF.
414	CONFIG: Fix some bugs with mailertables -- for example, if your
415		host name was foo.bar.ray.com and you matched against
416		".ray.com", the old implementation bound %1 to "bar"
417		instead of "foo.bar".  Also, allow "." in the mailertable
418		to match anything -- essentially, take over SMART_HOST.
419		This also moves matching of explicit local host names
420		before the mailertable so they don't have to be special
421		cased in the mailertable data.  Reported by Bill
422		Gianopoulos of Raytheon; the fix for the %1 binding
423		problem was contributed by Nicholas Comanos of the
424		University of Sydney.
425	CONFIG: Don't include "root" in class $=L (users to deliver
426		locally, even if a hub or relay exists) by default.
427		This is because of the known bug where definition of
428		both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore
429		both and deliver into the local mailbox.
430	CONFIG: Move up bitdomain and uudomain handling so that they
431		are done before .UUCP class matching; uudomain was
432		reported as ineffective before.  This also frees up
433		diversion 8 for future use.  Problem reported by Kimmo
434		Suominen.
435	CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4])
436		into host names.  As pointed out by Jonathan Kamens,
437		these are often used because either the forward or reverse
438		mapping is broken; this translation makes it broken again.
439	DOC: Clarify $@ and $: in the Install & Op Guide.  From Kimmo
440		Suominen.
441	Portability fixes:
442		Unicos from David L. Kensiski of Sterling Sofware.
443		DomainOS from Don Lewis of Silicon Systems.
444		GNU m4 1.0.3 from Karst Koymans of Utrecht University.
445		Convex from Kimmo Suominen <kim@tac.nyc.ny.us>.
446		NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>.
447		BSD/386 from Tony Sanders of BSDI.
448		Apollo from Eric Wassenaar.
449		DGUX from Doug Anderson.
450		Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent.
451	NEW FILES:
452		src/Makefile.DomainOS
453		src/Makefile.PTX
454		src/Makefile.SunOS.5.1
455		src/Makefile.SunOS.5.2
456		src/Makefile.SunOS.5.x
457		src/mailq.1
458		cf/ostype/domainos.m4
459		doc/op/Makefile
460		doc/intro/Makefile
461		doc/usenix/Makefile
462
4638.6.5/8.6.5	94/01/13
464	Security fix:  /.forward could be owned by anyone (the test
465		to allow root to own any file was backwards).  From
466		Bob Campbell at U.C. Berkeley.
467	Security fix: group ids were not completely set when programs
468		were invoked.  This caused programs to have group
469		permissions they should not have had (usually group
470		daemon instead of their own group).  In particular,
471		Perl scripts would refuse to run.
472	Security: check to make sure files that are written are not
473		symbolic links (at least under some circumstances).
474		Although this does not respond to a specific known
475		attack, it's just a good idea.  Suggested by
476		Christian Wettergren.
477	Security fix: if a user had an NFS mounted home directory on
478		a system with a restricted shell listed in their
479		/etc/passwd entry, they could still execute any
480		program by putting that in their .forward file.
481		This fix prevents that by insisting that their shell
482		appear in /etc/shells before allowing a .forward to
483		execute a program or write a file.  You can disable
484		this by putting "*" in /etc/shells.  It also won't
485		permit world-writable :include: files to reference
486		programs or files (there's no way to disable this).
487		These behaviours are only one level deep -- for
488		example, it is legal for a world-writable :include:
489		file to reference an alias that writes a file, on
490		the assumption that the alias file is well controlled.
491	Security fix: root was not treated suspiciously enough when
492		looking into subdirectories.  This would potentially
493		allow a cracker to examine files that were publically
494		readable but in a non-publically searchable directory.
495	Fix a problem that causes an error on QUIT on a cached
496		connection to create problems on the current job.
497		These are typically unrelated, so errors occur in
498		the wrong place.
499	Reset CurrentLA in sendall() -- this makes sendmail queue
500		runs more responsive to load average, and fixes a
501		problem that ignored the load average in locally
502		generated mail.  From Eric Wassenaar.
503	Fix possible core dump on aliases with null LHS.  From
504		John Orthoefer of BB&N.
505	Revert to using flock() whenever possible -- there are just
506		too many bugs in fcntl() locking, particularly over
507		NFS, that cause sendmail to fail in perverse ways.
508	Fix a bug that causes the connection cache to get confused
509		when sending error messages.  This resulted in
510		"unexpected close" messages.  It should fix itself
511		on the following queue run.  Problem noted by
512		Liudvikas Bukys of the University of Rochester.
513	Include $k in $=k as documented in the Install & Op Guide.
514		This seems odd, but it was documented....  From
515		Michael Corrigan of UCSD.
516	Fix problem that caused :include:s from alias files to be
517		forced to be owned by root instead of daemon
518		(actually DefUid).  From Tim Irvin.
519	Diagnose unrecognized I option values -- from Mortin Forssen
520		of the Chalmers University of Technology.
521	Make "error" mailer work consistently when there is no error
522		code associated with it -- previously it returned OK
523		even though there was a real problem.  Now it assumes
524		EX_UNAVAILABLE.
525	Fix bug that caused the last header line of messages that had
526		no body and which were terminated with EOF instead of
527		"." to be discarded.  Problem noted by Liudvikas Bukys.
528	Fix core dump on SMTP mail to programs that failed -- it tried
529		to go to a "next MX host" when none existed, causing
530		a core dump.  From der Mouse at McGill University.
531	Change IDENTPROTO from a defined/not defined to a 0/1 switch;
532		this makes it easier to turn it off (using
533		-DIDENTPROTO=0 in the Makefile).  From der Mouse.
534	Fix YP_MASTER_NAME store to use the unupdated result of
535		gethostname() (instead of myhostname(), which tries
536		to fully qualify the name) to be consistent with
537		SunOS.  If your hostname is unqualified, this fixes
538		transfers to slave servers.  Bug noted by Keith
539		McMillan of Ameritech Services, Inc.
540	Fix Ultrix problem: gethostbyname() can return a very large
541		(> 500) h_length field, which causes the sockaddr
542		to be trashed.  Use the size of the sockaddr instead.
543		Fix from Bob Manson of Ohio State.
544	Don't assume "-a." on host lookups if NAMED_BIND is not
545		defined -- this confuses gethostbyname on hosts
546		file lookups, which doesn't understand the trailing
547		dot convention.
548	Log SMTP server subprocesses that die with a signal instead
549		of from a clean exit.
550	If you don't have option "I" set, don't assume that a DNS
551		"host unknown" message is authoritative -- it
552		might still be found in /etc/hosts.
553	Fix a problem that would cause Deferred: messages to be sent
554		as the subject of an error message, even though the
555		actual cause of a message was more severe than that.
556		Problem noted by Chris Seabrook of OSSI.
557	Fix race condition in DBM alias file locking.  From Kyle
558		Jones of UUNET.
559	Limit delivery syslog line length to avoid bugs in some
560		versions of syslog(3).  This adds a new compile time
561		variable SYSLOG_BUFSIZE.  From Jay Plett of Princeton
562		University, which is in turn derived from IDA.
563	Fix quotes inside of comments in addresses -- previously
564		it insisted that they be balanced, but the 822 spec
565		says that they should be ignored.
566	Dump open file state to syslog upon receiving SIGUSR1 (for
567		debugging).  This also evaluates ruleset 89, if set
568		(with the null input), and logs the result.  This
569		should be used sparingly, since the rewrite process
570		is not reentrant.
571	Change -qI, -qR, and -qS flags to be case-insensitive as
572		documented in the Bat Book.
573	If the mailer returned EX_IOERR or EX_OSERR, sendmail did not
574		return an error message and did not requeue the message.
575		Fix based on code from Roland Dirlewanger of
576		Reseau Regional Aquarel, Bordeaux, France.
577	Fix a problem that caused a seg fault if you got a 421 error
578		code during some parts of connection initialization.
579		I've only seen this when talking to buggy mailers on
580		the other end, but it shouldn't give a seg fault in
581		any case.  From Amir Plivatsky.
582	Fix core dump caused by a ruleset call that returns null.
583		Fix from Bryan Costales of ICSI.
584	Full-Name: field was being ignored.  Fix from Motonori Nakamura
585		of Kyoto University.
586	Fix a possible problem with very long input lines in setproctitle.
587		From P{r Emanuelsson.
588	Avoid putting "This is a warning message" out on return receipts.
589		Suggested by Douglas Anderson.
590	Detect loops caused by recursive ruleset calls.  Suggested by
591		Bryan Costales.
592	Initialize non-alias maps during alias rebuilds -- they may be
593		needed for parsing.  Problem noted by Douglas Anderson.
594	Log sender address even if no message was collected in SMTP
595		(e.g., if all RCPTs failed).  Suggested by Motonori
596		Nakamura.
597	Don't reflect the owner-list contents into the envelope sender
598		address if the value contains ", :, /, or | (to avoid
599		illegal addresses appearing there).
600	Efficiency hack for toktype macro -- from Craig Partridge of
601		BB&N.
602	Clean up DNS error printing so that a host name is always
603		included.
604	Remember to set $i during queue runs.  Reported by Stephen
605		Campbell of Dartmouth University.
606	If ${HOSTALIASES} is set, use it during canonification so that
607		headers are properly mapped.  Reported by Anne Bennett
608		of Concordia University.
609	Avoid printing misleading error message if SMTP mailer (not
610		using [IPC]) should die on a core dump.
611	Avoid incorrect diagnosis of "file 1 closed" when it is caused
612		by the other end closing the connection.  From
613		Dave Morrison of Oracle.
614	Improve several of the error messages printed by "mailq"
615		to include a host name or other useful information.
616	Add NetInfo preliminary support for NeXT systems.  From Vince
617		DeMarco.
618	Fix a glitch that sometimes caused :include:s that pointed to
619		NFS filesystems that were down to give an "aliasing/
620		forwarding loop broken" message instead of queueing
621		the message for retry.  Noted by William C Fenner of
622		the NRL Connection Machine Facility.
623	Fix a problem that could cause a core dump if the input sequence
624		had (or somehow acquired) a \231 character.
625	Make sure that route-addrs always have <angle brackets> around
626		them in non-SMTP envelopes (SMTP envelopes already do
627		this properly).
628	Avoid wierd headers on unbalanced punctuation of the form:
629		``Joe User <user)'' -- this caused reference to the
630		null macro.  Fix from Rick McCarty of IO.COM.
631	Fix a problem that caused an alias "user: user@local.host" to
632		not have the QNOTREMOTE bit set; this caused configs
633		to act as if FEATURE(notsticky) was defined even when
634		it was not.  The effect of the problem was to make it
635		very hard to to set up satellite sites that had a few
636		local accounts, with everything else forwarded to a
637		corporate hub.  Reported by Detlef Drewanz of the
638		University of Rostock and Mark Frost of NCD.
639	Change queuing to not call rulesets 3, {1 or 2}, 4 on header
640		addresses.  This is more efficient (fewer name server
641		calls) and fixes certain unusual configurations, such
642		as those that have ruleset 4 do something that is
643		non-idempotent unless a mailer-specific ruleset did
644		something else.  Problem reported by Brian J. Coan
645		of the Institute for Global Communications.
646	Fix the "obsolete argument" routine in main to better understand
647		new arguments.  For example, if you used ``sendmail
648		-C config -v -q'' it would choke on the -q because
649		the -C would stop looking for old-format arguments.
650	Fix the code that was intended to allow two users to forward their
651		mail to the same program and have them appear unique.
652	Portability fixes for:
653		SCO UNIX from Murray Kucherawy.
654		SCO Open Server 3.2v4 from Philippe Brand.
655		System V Release 4 from Rick Ellis and others.
656		OSF/1 from Steve Campbell.
657		DG/UX from Ben Mesander of the USGS and Bryan Curnutt
658			of Stoner Associates.
659		Motorola SysV88 from Kevin Johnson of Motorola.
660		Solaris 2.3 from Casper H.S. Dik of the University
661			of Amsterdam and John Caruso of University
662			of Maryland.
663		FreeBSD from Ollivier Robert.
664		NetBSD from Adam Glass.
665		TitanOS from Kate Hedstrom of Rutgers University.
666		Irix from Bryan Curnutt.
667		Dynix from Jim Davis of the University of Arizona.
668		RISC/os.
669		Linux from John Kennedy of California State University
670			at Chico.
671		Solaris 2.x from Tony Boner of the U.S. Air Force.
672		NEXTSTEP 3.x from Vince DeMarco.
673		HP-UX from various people.  NOTA BENE:  the location
674			of the config file has moved to /usr/lib
675			to match the HP-UX version of sendmail.
676	CONFIG: Don't do any recipient rewriting on relay mailer;
677		since this is intended only for internal use, the
678		usual RFC 821/822/1123 rules can be relaxed.  The
679		main point of this is to avoid munging (ugh) UUCP
680		addresses when relaying internally.
681	CONFIG: fix typo in mailer/uucp.m4 that mutilates list:;
682		syntax addresses delivered via UUCP.  Solution
683		provided by Peter Wemm.
684	CONFIG: fix thumb-fumble in default UUCP relaying in ruleset
685		zero; it caused double @ signs in addresses.  From
686		Irving Reid of the University of Toronto.
687	CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1
688		from Markku Toijala of ICL Personal Systems Oy.
689	CONFIG: Add trailing "." on pseudo-domains for consistency;
690		this fixes a problem (noted by Al Whaley of Sunnyside)
691		that made it hard to recognize your own pseudodomain
692		names.
693	CONFIG: catch "@host" syntax errors (i.e., null local-parts)
694		rather than letting them get "local configuration
695		error"s.  Problem noted by John Gardiner Myers.
696	CONFIG: add uucp-uudom mailer variant, based on code posted
697		by Spider Boardman <spider@Orb.Nashua.NH.US>; this
698		has uucp-dom semantics but old UUCP syntax.  This
699		also permits "uucp-old" as an alias for "uucp" and
700		"uucp-new" as a synonym for "suucp" for consistency.
701	CONFIG: add POP mailer support (from Kimmo Suominen
702		<kim@grendel.lut.fi>).
703	CONFIG: drop CSNET_RELAY support -- CSNET is long gone.
704	CONFIG: fix bug caused with domain literal addresses (e.g.,
705		``[128.32.131.12]'') when FEATURE(allmasquerade)
706		was set; it would get an additional @masquerade.host
707		added to the address.  Problem noted by Peter Wan
708		of Georgia Tech.
709	CONFIG: make sure that the local UUCP name is in $=w.  From
710		Jim Murray of Stratus.
711	CONFIG: changes to UUCP rewriting to simulate IDA-style "V"
712		mailer flag.  Briefly, if you are sending to host
713		"foo", then it rewrites "foo!...!baz" to "...!baz",
714		"foo!baz" remains "foo!baz", and anything else has
715		the local name prepended.
716	CONFIG: portability fixes for HP-UX.
717	DOC: several minor problems fixed in the Install & Op Guide.
718	MAKEMAP: fix core dump problem on lines that are too long or
719		which lack newline.  From Mark Delany.
720	MAILSTATS: print sums of columns (total messages & kbytes
721		in and out of the system).  From Tom Ferrin of UC
722		San Francisco Computer Graphics Lab.
723	SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES:
724		On HP-UX, /etc/sendmail.cf has been moved to
725			/usr/lib/sendmail.cf to match HP sendmail.
726		Permissions have been tightened up on world-writable
727			:include: files and accounts that have shells
728			that are not listed in /etc/shells.  This may
729			cause some .forward files that have worked
730			before to start failing.
731		SIGUSR1 dumps some state to the log.
732	NEW FILES:
733		src/Makefile.DGUX
734		src/Makefile.Dynix
735		src/Makefile.FreeBSD
736		src/Makefile.Mach386
737		src/Makefile.NetBSD
738		src/Makefile.RISCos
739		src/Makefile.SCO
740		src/Makefile.SVR4
741		src/Makefile.Titan
742		cf/mailer/pop.m4
743		cf/ostype/bsdi1.0.m4
744		cf/ostype/dgux.m4
745		cf/ostype/dynix3.2.m4
746		cf/ostype/sco3.2.m4
747		makemap/Makefile.dist
748		praliases/Makefile.dist
749
7508.6.4/8.6.4	93/10/31
751	Repair core-dump problem (write to read-only memory segment)
752		if you fall back to the return-to-Postmaster case in
753		savemail.  Problem reported by Richard Liu.
754	Immediately diagnose bogus sender addresses in SMTP.  This
755		makes quite certain that crackers can't use this
756		class of attack.
757	Reliability Fix:  check return value from fclose() and fsync()
758		in a few critical places.
759	Minor problem in initsys() that reversed a condition for
760		redirecting the output channel on queue runs.  It's
761		not clear this code even does anything.  From Eric
762		Wassenaar of the Dutch National Institute for Nuclear
763		and High-Energy Physics.
764	Fix some problems that caused queue runs to do "too much work",
765		such as double-reading the Errors-To: header.  From
766		Eric Wassenaar.
767	Error messages on writing the temporary file (including the
768		data file) were getting suppressed in SMTP -- this
769		fix causes them to be properly reported.  From Eric
770		Wassenaar.
771	Some changes to support AF_UNIX sockets -- this will only
772		really become relevant in the next release, but some
773		people need it for local patches.  From Michael
774		Corrigan of UC San Diego.
775	Use dynamically allocated memory (instead of static buffers)
776		for macros defined in initsys() and settime(); since
777		these can have different values depending on which
778		envelope they are in.  From Eric Wassenaar.
779	Improve logging to show ctladdr on to= logging; this tells you
780		what uid/gid processes ran as.
781	Fix a problem that caused error messages to be discarded if
782		the sender address was unparseable for some reason;
783		this was supposed to fall back to the "return to
784		postmaster" case.
785	Improve aliaswait backoff algorithm.
786	Portability patches for Linux (8.6.3 required another header
787		file) (from Karl London) and SCO UNIX.
788	CONFIG: patch prog mailer to not strip host name off of envelope
789		addresses (so that it matches local again).  From
790		Christopher Davis.
791	CONFIG: change uucp-dom mailer so that "<>" translates to $n;
792		this prevents uux from seeing lines with null names like
793		``From   Sat Oct 30 14:55:31 1993''.  From Motonori
794		Nakamura of Kyoto University.
795	CONFIG: handle <list:;> syntax correctly.  This isn't legal, but
796		it shouldn't fail miserably.  From Motonori Nakamura.
797
7988.6.3/8.6.3	93/10/24
799	IMPORTANT FIX: Fix several problems that caused open files to
800		be "lost" during queue runs; this overflowed the open
801		file table on large runs.  An assumption that fdopen
802		always succeeds sometimes resulted in core dumps when
803		this happens; sometimes the message is delivered twice,
804		sometimes (probably) infinite times.  This problem in
805		various form was reported by P{r (Pell) Emanuelsson and
806		Robert Campbell of U.C. Berkeley.
807	Special diagnosis of EMFILE error conditions -- it now prints
808		the known open file descriptors so you can figure out
809		what is consuming so much resources.
810	Fix a couple of problems caused by early address parsing
811		errors -- one caused it to return a "this is only a
812		warning" when it really wasn't, and the other started
813		parsing through a random pointer.  The first was
814		noted by Eric Wassenaar.
815	Fix an infinite loop problem caused by null components in the
816		host signature.  Problem noted by Jan Sorensen.
817	Be sure to reset the "current date" when sending an error
818		message -- PostMasterCopy messages were being sent
819		with an old Date: header.
820	Fix a problem that caused duplicated mail when sendmail was
821		(1) compiled without HASFLOCK, (2) you are sending to
822		an alias that has an owner-* alias, (3) you execute
823		sendmail with -t flag, (4) you run in -odb mode, and
824		(5) the sender specifies both the alias name and
825		another alias [i.e., the envelope is split], then
826		duplicate messages are sent.  The problem description
827		and one-line fix are from Motonori Nakamura of Kyoto
828		University.
829	Avoid a problem that causes error messages to be discarded
830		in some cases -- this was the result of a "fix" to
831		avoid duplicate error messages, but two are better
832		than zero.  Reported by Tim Rylance.
833	Fix a minor botch in checkfd012() -- fix from Dave Hill of
834		Computervision R&D Ltd.
835	Remove "X-Authentication-Warning: <user> set sender to <address>
836		using -f" entirely -- it is far too eager to include
837		this, and it is confusing folks.  I'll try to make it
838		work "right" in 8.7.  Problem noted by Yoshitaka
839		Tokugawa of dit Co., Ltd.
840	Fix a race condition with the errno value in tick() and
841		reapchild() -- this caused occasional misdiagnosis
842		of problems.  Kyle Jones of UUNET helped this along.
843	Repair rule loop-detection code.  From Michael Corrigan of
844		U.C. San Diego.
845	Fix a problem that caused sender domain addition (C mailer
846		flag to be ignored if you use -odq or use -odb with
847		a high load average.  Problem reported by Jim Murray
848		of Stratus.
849	Fix ident protocol on multi-homed machines.  It was not
850		always using the correct interface.  Fix from J.R.
851		Oldroyd of Opal.
852	Previously, sendmail assumed that any SMTP greeting message
853		that wasn't 2xx was a temporary failure -- it should
854		only take 4xx as a temporary failure, and return a
855		solid error message on anything else -- for example,
856		to allow you to reject connections on a workstation
857		that is MXed to a mail server.
858	Portability enhancements for 386BSD/FreeBSD/NetBSD from
859		Ollivier Robert.
860	CONFIG: FEATURE(always_add_domain) didn't always add the domain;
861		in particular, on local mail it modified the header sender
862		but not the header recipient address(es).  Reported by
863		Jeffrey Honig of Cornell University.  Also, strip
864		any host from envelope recipient address(es), since
865		local mailers don't understand host names -- this is
866		to help mailertable entries.  From Christopher Davis.
867	CONFIG: masquerading didn't apply to addresses that already
868		had a domain.  This change replaces a local hostname
869		by the masquerade name in the SMTP mailer (previously
870		it only added the masquerade name if it didn't already
871		have a domain name).  Several people complained about
872		this.
873
8748.6.2/8.6.2	93/10/15
875	Put a "successful delivery" message in the transcript for
876		addresses that get return-receipts.
877	Put a prominent "this is only a warning" message in warning
878		messages -- some people don't read carefully enough
879		and end up sending the message several times.
880	Include reason for temporary failure in the "warning" return
881		message.  Currently, it just says "cannot send for
882		four hours".
883	Fix the "Original message received" time generated for
884		returntosender messages.  It was previously listed as
885		the current time.  Bug reported by Eric Hagberg of
886		Cornell University Medical College.
887	If there is an error when writing the body of a message,
888		don't send the trailing dot and wait for a response
889		in sender SMTP, as this could cause the connection to
890		hang up under some bizarre circumstances.  From Eric
891		Wassenaar.
892	Fix some server SMTP synchronization problems caused when
893		connections fail during message collection.  From
894		Eric Wassenaar.
895	Fix a problem that can cause srvrsmtp to reject mail if the
896		name server is down -- it accepts the RCPT but rejects
897		the DATA command.  Problem reported by Jim Murray of
898		Stratus.
899	Fix a problem that can cause core dumps if the config file
900		incorrectly resolves to a null hostname.  Reported by
901		Allan Johannesen of WPI.
902	Non-root use of -C flag, dangerous -f flags, and use of -oQ
903		by non-root users were not put into
904		X-Authentication-Warning:s as intended because the
905		config file hadn't set the PrivacyFlags yet.  Fix
906		from Sven-Ove Westberg of the University of Lulea.
907	Under very odd circumstances, the alias file rebuild code
908		could get confused as to whether a database was
909		open or not.
910	Check "vendor code" on the end of V lines -- this is
911		intended to provide a hook for vendor-specific
912		configuration syntax.  (This is a "new feature",
913		but I've made an exception to my rule in a belief
914		that this is a highly exceptional case.)
915	Portability fixes for DG/UX (from Douglas Anderson of NCSC),
916		SCO Unix (from Murray Kucherawy), A/UX, and OSF/1
917		(from Jon Forrest of UC Berkeley)
918	CONFIG: fix ``mailer:host'' form of UUCP relay naming.
919
9208.6.1/8.6	93/10/08
921	Portability fixes for A/UX and Encore UMAX V.
922	Fix error message handling -- if you had a name server down
923		causing an error during parsing, that message was never
924		propogated to the queue file.
925
9268.6/8.6		93/10/05
927	Configuration cleanup: make it easier to undo IDENTPROTO in
928		conf.h (other systems have the same bug).
929	If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume
930		getdtablesize() instead of sysconf(); a disturbingly
931		large number of systems defined _SC_OPEN_MAX in the
932		header files but don't have the syscall.
933	Another patch to really truly ignore MX records in getcanonname
934		if trymx == FALSE.
935	Fix problem that caused the "250 IAA25499 Message accepted for
936		delivery" message to be omitted if there was an error
937		in the header of the message (e.g., a bad Errors-To:
938		line).  Pointed out by Michael Corrigan of UCSD.
939	Announce name of host we are chatting when we get errors; this
940		is an IDA-ism suggested by Christophe Wolfhugel.
941	Portability fixes for Alpha OSF/1 (from Anthony Baxter of the
942		Australian Artificial Intelligence Institute), SCO Unix
943		(from Murray Kucherawy of Hookup Communication Corp.),
944		NeXT (from Vince DeMarco and myself), Linux (from
945		Karl London <karl@borg.demon.co.uk>), BSDI (from
946		Christophe Wolfhugel, and SVR4 on Dell (from Kimmo
947		Suominen), AUX 3.0 on Macintosh, and ANSI C compilers.
948	Some changes to get around gcc optimizer bugs.  From Takahiro
949		Kanbe.
950	Fix error recovery in queueup if another tf file of the same
951		name already exists.  Problem stumbled over by Bill
952		Wisner of The Well.
953	Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes.
954		Problem noted by Keith McMillan of Ameritech Services.
955	Deal with group permissions properly when opening .forward and
956		:include: files.  This relaxes the 8.1C restrictions
957		slightly more.  This includes proper setting of groups
958		when reading :include: files, allowing you to read some
959		files that you should be able to read but have previously
960		been denied unless you owned them or they had "other"
961		read permission.
962	Make certain that $j is in $=w (after the .cf is read) so that
963		if the user is forced to override some silly system,
964		MX suppression will still work.
965	Fix a couple of efficiency problems where newstr was double-
966		calling expensive routines.  In at least one case, it
967		wasn't guaranteed that they would always return the
968		same result.  Problem noted by Christophe Wolfhugel.
969	Fix null pointer dereference in putoutmsg -- only on an error
970		condition from a non-SMTP mailer.  From Motonori
971		Nakamura.
972	Macro expand "C" line class definitions before scanning so that
973		"CX $Z" works.
974	Fix problem that caused error message to be sent while still
975		trying to send the original message if the connection
976		is closed during a DATA command after getting an error
977		on an RCPT command (pretty obscure).  Problem reported
978		by John Myers of CMU.
979	Fix reply to NOOP to be 250 instead of 200 -- this is a long
980		term bug.
981	Fix a nasty bug causing core dumps when returning the "warning:
982		cannot deliver for N hours -- will keep trying" message;
983		it only occurred if you had PostMasterCopy set and
984		only on some architectures.  Although sendmail would
985		keep trying, it would send error messages on each
986		queue interval.  This is an important fix.
987	Allow u and g options to take user and group names respectively.
988	Don't do a chdir into the queue directory in -bt mode to make
989		ruleset testing a bit easier.
990	Don't allow users to turn off logging (using -oL) on the command
991		line -- command line can only raise, not lower, logging
992		level.
993	Set $u to the original recipient on the SMTP transaction or on
994		the command line.  This is only done if there is exactly
995		one recipient.  Technically, this does not meet the
996		specs, because it does not guarantee a domain on the
997		address.
998	Fix a problem that dumped error messages on bad addresses if
999		you used the -t flag.  Problem noted by Josh Smith of
1000		Harvey Mudd College.
1001	Given an address such as ``<foo> <bar>'', auto-quote the first
1002		``<foo>'' part, giving ``"<foo>" <bar>''.  This is to
1003		avoid the problem of people who use angle brackets in
1004		their full name information.
1005	Fix a null pointer dereference if you set option "l", have
1006		an Errors-To: header in the message, and have Errors-To:
1007		defined in the config file H lines.  From J.R. Oldroyd.
1008	Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get
1009		wrong when compiling.  Suggested by Rick McCarty of TI.
1010	Fix a problem that could pass negative SIZE parameter if the
1011		df file got lost; this would cause servers to always
1012		give a temporary failure, making the problem even worse.
1013		Problem noted by Allan Johannesen of WPI.
1014	Add "ident" timeout (one of the "r" option selectors) for IDENT
1015		protocol timeouts (30s default).  Requested by Murray
1016		Kucherawy of HookUp Communication Corp. to handle bogus
1017		PC TCP/IP implementations.
1018	Change $w default definition to be just the first component of
1019		the domain name on config level 5.  The $j macro defaults
1020		to the FQDN; $m remains as before.  This lets well-behaved
1021		config files use any of the short, long, or subdomain
1022		names.
1023	Add makesendmail script in src to try to automate multi-architecture
1024		builds.  I know, this is sub-optimal, but it is still
1025		helpful.
1026	Fix very obscure race condition that can cause a queue run to
1027		get a queue file for an already completed job.  This
1028		problem has existed for years.  Problem noted by the
1029		long suffering Allan Johannesen of WPI.
1030	Fix a problem that caused the raw sender name to be passed to
1031		udbsender instead of the canonified name -- this caused
1032		it to sometimes miss records that it should have found.
1033	Relax check of name on HELO packet so that a program using -bs
1034		that claims to be itself works properly.
1035	Restore rewriting of $: part of address through 2, R, 4 in
1036		buildaddr -- this requires passing a lot of flags to get
1037		it right.  Unlike old versions, this ONLY rewrites
1038		recipient addresses, not sender addresses.
1039	Fix a bug that caused core dumps in config files that cannot
1040		resolve /file/name style addresses.  Fix from Jonathan
1041		Kamens of OpenVision Technologies.
1042	Fix problem with fcntl locking that can cause error returns to
1043		be lost if the lock is lost; this required fully
1044		queueing everything, dropping the envelope (so errors
1045		would get returned), and then re-reading the queue from
1046		scratch.
1047	Fix a problem that caused aliases that redefine an otherwise
1048		true address to still send to the original address
1049		if and only if the alias failed in certain bizarre
1050		ways (e.g, if they pointed at a list:; syntax address).
1051		Problem pointed out by Jonathan Kamens.
1052	Remove support for frozen configuration files.  They caused
1053		more trouble than it was worth.
1054	Fix problem that can cause error messages to get ignored when
1055		using both -odb and -t flags.  Problem noted by Rob
1056		McNicholas at U.C. Berkeley.
1057	Include all "normal" variations on hostname in $=w.  For example,
1058		if the host name is vangogh.cs.berkeley.edu, $=w will
1059		contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu.
1060	Add "restrictqrun" privacy flag -- without this, anyone can run
1061		the queue.
1062	Reset SmtpPhase global on initial connection creation so that
1063		messages don't come out with stale information.
1064	Pass an "ext" argument to lockfile so that error/log messages
1065		will properly reflect the true filename being locked.
1066	Put all [...] address forms into $=w -- this eliminates the need
1067		for MAXIPADDR in conf.h.  Suggested by John Gardiner
1068		Myers of CMU.
1069	Fix a bug that can cause qf files to be left around even after
1070		an SMTP RSET command.  Problem and fix from Michael
1071		Corrigan.
1072	Don't send a PostMasterCopy to errors when the Precedence: is
1073		negative.  Error reports still go to the envelope
1074		sender address.
1075	Add LA_SHORT for load averages.
1076	Lock sendmail.st file when posting statistics.
1077	Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to
1078		set the size of the TCP send and receive buffers; if you
1079		run over a slow slip line you may need to set these down
1080		(although it would be better to fix the SLIP implementation
1081		so that it's not necessary to recompile every program
1082		that does bulk data transfer).
1083	Allow null defaults on $( ... $) lookups.  Problem reported by
1084		Amir Plivatsky.
1085	Diagnose crufty S and V config lines.  This resulted from an
1086		observation that some people were using the SITE macro
1087		without the SITECONFIG macro first, which was causing
1088		bogus config files that were not caught.
1089	Fix makemap -f flag to turn off case folding (it was turning it
1090		on instead).  THIS IS A USER VISIBLE CHANGE!!!
1091	Fix a problem that caused multiple error messages to be sent if
1092		you used "sendmail -t -oem -odb", your system uses fcntl
1093		locking, and one of the recipient addresses is unknown.
1094	Reset uid earlier in include() so that recursive .forwards or
1095		:include:s don't use the wrong uid.
1096	If file descriptor 0, 1, or 2 was closed when sendmail was
1097		called, the code to recover the descriptor was broken.
1098		This sometimes (only sometimes) caused problems with the
1099		alias file.  Fix from Motonori Nakamura.
1100	Fix a problem that caused aliaswait to go into infinite recursion
1101		if the @:@ metasymbol wasn't found in the alias file.
1102	Improve error message on newaliases if database files cannot be
1103		opened or if running with no database format defined.
1104	Do a better estimation of the size of error messages when NoReturn
1105		is set.  Problem noted by P{r (Pell) Emanuelsson.
1106	Fix a problem causing the "c" option (don't connect to expensive
1107		mailers) to be ignored in SMTP.  Problem noted and the
1108		solution suggested by Robert Elz of Munnari University.
1109	Improve connection caching algorithm by passing "[host]" to
1110		hostsignature, which strips the square brackets and
1111		returns the real name.  This allows mailertable entries
1112		to match regular entries.
1113	Re-enable Return-Receipt-To: -- people seem to want this stupid
1114		feature, even if it doesn't work right.
1115	Catch and log attempts to try the "wiz" command in server SMTP.
1116		This also ups the log level from LOG_NOTICE to LOG_CRIT.
1117	Be more generous at assigning $z to the home directory -- do this
1118		for programs that are specified through a .forward file.
1119		Fix from Andrew Chang of Sun Microsystems.
1120	Always save a fatal error message in preference to a non-fatal
1121		error message so that the "subject" line of return
1122		messages is the best possible.
1123	CONFIG: reduce the number of quotes needed to quote configuration
1124		parameters with commas: two quotes should work now, e.g.,
1125		define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local'').
1126	CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom
1127		connections (domain-ized UUCP).
1128	CONFIG: fix bug in default maps (-o must be before database file
1129		name).  Pointed out by Christophe Wolfhugel.
1130	CONFIG: add FEATURE(nodns) to state that we are not relying on
1131		DNS.  This would presumably be used in UUCP islands.
1132	CONFIG: add OSTYPE(nextstep) and OSTYPE(linux).
1133	CONFIG: log $u in Received: line.  This is in technical violation
1134		of the standards, since it doesn't guarantee a domain
1135		on the address.
1136	CONFIG: don't assume "m" in local mailer flags -- this means that
1137		if you redefine LOCAL_MAILER_FLAGS you will have to include
1138		the "m" flag should you want it.  Apparently some Solaris 2.2
1139		installations can't handle multiple local recipients.
1140		Problem noted by Josh Smith.
1141	CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults).
1142	CONFIG: change default version level from 4 to 5.
1143	CONFIG: add FEATURE(nullclient) to create a config file that
1144		forwards all mail to a hub without ever looking at the
1145		addresses in any detail.
1146	CONFIG: properly strip mailer: information off of relays when
1147		used to change .BITNET form into %-hack form.
1148	CONFIG: fix a problem that caused infinite loops if presented
1149		with an address such as "!foo".
1150	CONFIG: check for self literal (e.g., [128.32.131.12]) even if
1151		the reverse "PTR" mapping is broken.  There's a better
1152		way to do this, but the change is fairly major and I
1153		want to hold it for another release.  Problem noted by
1154		Bret Marquis.
1155
11568.5/8.5		93/07/23
1157	Serious bug: if you used a command line recipient that was unknown
1158		sendmail would not send a return message (it was treating
1159		everything as though it had an SMTP-style client that
1160		would do the return itself).  Problem noted by Josh Smith.
1161	Change "trymx" option in getcanonname() to ignore all MX data,
1162		even during a T_ANY query.  This actually didn't break
1163		anything, because the only time you called getcanonname
1164		with !trymx was if you already knew there were no MX
1165		records, but it is somewhat cleaner.  From Motonori
1166		Nakamura.
1167	Don't call getcanonname from getmxrr if you already know there
1168		are no DNS records matching the name.
1169	Fix a problem causing error messages to always include "The
1170		original message was received ... from localhost".
1171		The correct original host information is now included.
1172	Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their
1173		version of "test" doesn't have the -x flag).  Change it
1174		to use -f instead.  From John Myers.
1175	CONFIG: 8.4 mistakenly set the default SMTP-style mailer to
1176		esmtp -- it should be smtp.
1177	CONFIG: send all relayed mail using confRELAY_MAILER (defaults
1178		to "relay" (a variant of "smtp") if MAILER(smtp) is used,
1179		else "suucp" if MAILER(uucp) is used, else "unknown");
1180		this cleans up the configs somewhat.  This fixes a serious
1181		problem that caused route-addrs to get mistaken as relays,
1182		pointed out by John Myers.  WARNING: this also causes
1183		the default on SMART_HOST to change from "suucp" to
1184		"relay" if you have MAILER(smtp) specified.
1185
11868.4/8.4		93/07/22
1187	Add option `w'.  If you receive a message that comes to you because
1188		you are the best (lowest preference) target of an MX, and
1189		you haven't explicitly recognized the source MX host in
1190		your .cf file, this option will cause you to try the target
1191		host directly (as if there were no MX for it at all).  If
1192		`w' is not set, this case is a configuration error.
1193		Beware: if `w' is set, senders may get bogus errors like
1194		"message timed out" or "host unknown" for problems that
1195		are really configuration errors.  This option is
1196		disrecommended, provided only for compatibility with
1197		UIUC sendmail.
1198	Fix a problem that caused the incoming socket to be left open
1199		when sendmail forks after the DATA command.  This caused
1200		calling systems to wait in FIN_WAIT_2 state until the
1201		entire list was processed and the child closed -- a
1202		potentially prodigious amount of time.  Problem noted
1203		by Neil Rickert.
1204	Fix problem (created in 6.64) that caused mail sent to multiple
1205		addresses, one of which was a bad address, to completely
1206		suppress the sending of the message.  This changes
1207		handling of EF_FATALERRS somewhat, and adds an
1208		EF_GLOBALERRS flag.  This also fixes a potential problem
1209		with duplicate error messages if there is a syntax error
1210		in the header of a message that isn't noticed until late
1211		in processing.  Original problem pointed out by Josh Smith
1212		of Harvey Mudd College.  This release includes quite a bit
1213		of dickering with error handling (see below).
1214	Back out SMTP transaction if MAIL gets nested 501 error.  This
1215		will only hurt already-broken software and should help
1216		humans.
1217	Fix a problem that broke aliases when neither NDBM nor NEWDB were
1218		compiled in.  It would never read the alias file.
1219	Repair unbalanced `)' and `>' (the "open" versions are already
1220		repaired).
1221	Logging of "done" in dropenvelope() was incorrect: it would
1222		log this even when the queue file still existed.  Change
1223		this to only log "done" (at log level 11) when the
1224		queue file is actually removed.  From John Myers.
1225	Log "lost connection" in server SMTP at log level 20 if there
1226		is no pending transaction.  Some senders just close the
1227		connection rather than sending QUIT.
1228	Fix a bug causing getmxrr to add a dot to the end of unqualified
1229		domains that do not have MX records -- this would cause
1230		the subsequent host name lookup to fail.  The problem
1231		only occurred if you had FEATURE(nocanonify) set.
1232		Problem noted by Rick McCarty of Texas Instruments.
1233	Fix invocation of setvbuf when passed a -X flag -- I had
1234		unwittingly used an ANSI C extension, and this caused
1235		core dumps on some machines.
1236	Diagnose self-destructive alias loops on RCPT as well as EXPN.
1237		Previously it just gave an empty send queue, which
1238		then gave either "Need RCPT (recipient)" at the DATA
1239		(confusing, since you had given an RCPT command which
1240		returned 250) or just dropped the email, depending on
1241		whether you were running VERBose mode.  Now it usually
1242		diagnoses this case as "aliasing/forwarding loop broken".
1243		Unfortunately, it still doesn't adequately diagnose
1244		some true error conditions.
1245	Add internal concept of "warning messages" using 6xx codes.
1246		These are not reported only to Postmaster.  Unbalanced
1247		parens, brackets, and quotes are printed as 653 codes.
1248		They are always mapped to 5xx codes before use in SMTP.
1249	Clean up error messages to tell both the actual address that
1250		failed and the alias they arose from.  This makes it
1251		somewhat easier to diagnose problems.  Difficulty noted
1252		by Motonori Nakamura.
1253	Fix a problem that inappropriately added a ctladdr to addresses
1254		that shouldn't have had one during a queue run.  This
1255		caused error messages to be handled differently during
1256		a queue run than a direct run.
1257	Don't print the qf name and line number if you get errors during
1258		the direct run of the queue from srvrsmtp -- this was
1259		just extra stuff for users to crawl through.
1260	Put command line flags on second line of pid file so you can
1261		auto-restart the daemon with all appropriate arguments.
1262		Use "kill `head -1 /etc/sendmail.pid`" to stop the
1263		daemon, and "eval `tail -1 /etc/sendmail.pid`" to
1264		restart it.
1265	Remove the ``setuid(getuid())'' in main -- this caused the
1266		IDENT daemon to screw up.  This required that I change
1267		HASSETEUID to HASSETREUID and complicate the mode
1268		changing somewhat because both Ultrix and SunOS seem
1269		to have a bug causing seteuid() to set the saved uid
1270		as well as the effective.  The program test/t_setreuid.c
1271		will test to see if your implementation of setreuid(2)
1272		is appropriately functional.
1273	The FallBackMX (option V) handling failed to properly identify
1274		fallback to yourself -- most of the code was there,
1275		but it wasn't being enabled.  Problem noted by Murray
1276		Kucherawy of the University of Waterloo.
1277	Change :include: open timeout from ETIMEDOUT to an internal
1278		code EOPENTIMEOUT; this avoids adding "during SmtpPhase
1279		with CurHostName" in error messages, which can be
1280		confusing.  Reported by Jonathan Kamens of OpenVision
1281		Technologies.
1282	Back out setpgrp (setpgid on POSIX systems) call to reset the
1283		process group id.  The original fix was to get around
1284		some problems with recalcitrant MUAs, but it breaks
1285		any call from a shell that creates a process group id
1286		different from the process id.  I could try to fix
1287		this by diddling the tty owner (using tcsetpgrp or
1288		equivalent) but this is too likely to break other
1289		things.
1290	Portability changes:
1291		Support -M as equivalent to -oM on Ultrix -- apparently
1292			DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs
1293			instead of using standard flags.  Oh joy.  This
1294			behaviour reported by Jon Giltner of University
1295			of Colorado.
1296		SGI IRIX  -- this includes several changes that should
1297			help other strict ANSI compilers.
1298		SCO Unix -- from Murray Kucherawy of HookUp Communication
1299			Corporation.
1300		Solaris running the Sun C compiler (which despite the
1301			documentation apparently doesn't define
1302			__STDC__ by default).
1303		ConvexOS from Eric Schnoebelen of Convex.
1304		Sony NEWS workstations and Omron LUNA workstations from
1305			Motonori Nakamura.
1306	CONFIG: add confTRY_NULL_MX_LIST to set option `w'.
1307	CONFIG: delete `C' and `e' from default SMTP mailers flags;
1308		several people have made a good argument that this
1309		creates more problems than it solves (although this
1310		may prove painful in the short run).
1311	CONFIG: generalize all the relays to accept a "mailer:host"
1312		format.
1313	CONFIG: move local processing in ruleset 0 into a new ruleset
1314		98 (8 on old sendmail).  Domain literal [a.b.c.d]
1315		addresses are also passed through this ruleset.
1316	CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined,
1317		internet-style addresses would "fall off the end" of
1318		ruleset zero and be interpreted as local -- however,
1319		the angle brackets confused the recursive call.
1320		These are now diagnosed as "Unrecognized host name".
1321	CONFIG: USENET rules weren't included in S0 because of a mistaken
1322		ifdef(`_MAILER_USENET_') instead of
1323		ifdef(`_MAILER_usenet_').  Problem found by Rein Tollevik
1324		of SINTEF RUNIT, Oslo.
1325	CONFIG: move up LOCAL_RULE_0 processing so that it happens very
1326		early in ruleset 0; this allows .mc authors to bypass
1327		things like the "short circuit" code for local addresses.
1328		Prompted by a comment by Bill Wisner of The Well.
1329	CONFIG: add confSMTP_MAILER to define the mailer used (smtp or
1330		esmtp) to send SMTP mail.  This allows you to default
1331		to esmtp but use a mailertable or other override to
1332		deal with broken servers.  This logic was pointed out
1333		to me by Bill Wisner.  Ditto for confLOCAL_MAILER.
1334	Changes to cf/sh/makeinfo.sh to make it portable to SVR4
1335		environments.  Ugly as sin.
1336
13378.3/8.3		93/07/13
1338	Fix setuid problems introduced in 8.2 that caused messages
1339		like "Cannot create qfXXXXXX: Invalid argument"
1340		or "Cannot reopen dfXXXXXX: Permission denied".  This
1341		involved a new compile flag "HASSETEUID" that takes
1342		the place of the old _POSIX_SAVED_IDS -- it turns out
1343		that the POSIX interface is broken enough to break
1344		some systems badly.  This includes some fixes for
1345		HP-UX.  Also fixes problems where the real uid is
1346		not reset properly on startup (from Neil Rickert).
1347	Fix a problem that caused timed out messages to not report the
1348		addresses that timed out.  Error messages are also more
1349		"user friendly".
1350	Drop required bandwidth on connections from 64 bytes/sec to
1351		16 bytes/sec.
1352	Further Solaris portability changes -- doesn't require the BSD
1353		compatibility library.  This also adds a new
1354		"HASGETDTABLESIZE" compile flag which can be used if
1355		you want to use getdtablesize(2) instead of sysconf(2).
1356		These are loosely based on changes from David Meyer at
1357		University of Oregon.  This now seems to work, at least
1358		for quick test cases.
1359	Fix a problem that can cause duplicate error messages to be
1360		sent if you are in SMTP, you send to multiple addresses,
1361		and at least one of those addresses is good and points
1362		to an account that has a .forward file (whew!).
1363	Fix a problem causing messages to be discarded if checkcompat()
1364		returned EX_TEMPFAIL (because it didn't properly mark
1365		the "to" address).  Problem noted by John Myers.
1366	Fix dfopen to return NULL if the open failed; I was depending
1367		on fdopen(-1) returning NULL, which isn't the case.  This
1368		isn't serious, but does result in wierd error diagnoses.
1369		From Michael Corrigan.
1370	CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of
1371		messages sent through UUCP-family mailers.  Suggested
1372		by Bill Wisner of The Well.
1373	CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified,
1374		include a "uucp-dom" mailer that uses domain-style
1375		addressing.  Suggested by Bill Wisner.
1376	CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match
1377		LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS.  Suggested by
1378		Christophe Wolfhugel.
1379	CONFIG: Add OSTYPE(aix3).  From Christophe Wolfhugel.
1380
13818.2/8.2		93/07/11
1382	Don't drop out on config file parse errors in -bt mode.
1383	On older configuration files, assume option "l" (use Errors-To
1384		header) for back compatibility.  NOTE:  this DOES NOT
1385		imply an endorsement of the Errors-To: header in any way.
1386	Accept -x flag on AIX-3 as well as OSF/1.  Why, why, why???
1387	Don't log errors on EHLO -- it isn't a "real" error for an old
1388		SMTP server to give an error on this command, and
1389		logging it in the transcript can be confusing.  Fix
1390		from Bill Wisner.
1391	IRIX compatibility changes provided by Dan Rich
1392		<drich@sandman.lerc.nasa.gov>.
1393	Solaris 2 compatibility changes.  Provided by Bob Cunningham
1394		<bob@kahala.soest.hawaii.edu>, John Oleynick
1395		<juo@klinzhai.rutgers.edu>
1396	Debugging: -d17 was overloaded (hostsignature and usersmtp.c);
1397		move usersmtp (smtpinit and smtpmailfrom) to -d18 to
1398		match the other flags in that file.
1399	Flush transcript before fork in mailfile().  From Eric Wassenaar.
1400	Save h_errno in mci struct and improve error message display.
1401		Changes from Eric Wassenaar.
1402	Open /dev/null for the transcript if the create of the xf file
1403		failed; this avoids at least one possible null pointer
1404		reference in very wierd cases.  From Eric Wassenaar.
1405	Clean up statistics gathering; it was over-reporting because of
1406		forks.  From Eric Wassenaar.
1407	Fix problem that causes old Return-Path: line to override new
1408		Return-Path: line (conf.c needs H_FORCE to avoid
1409		re-using old value).  From Motonori Nakamura.
1410	Fix broken -m flag in K definition -- even if -m (match only)
1411		was specified, it would still replace the key with the
1412		value.  Noted by Rick McCarty of Texas Instruments.
1413	If the name server timed out over several days, no "timed out"
1414		message would ever be sent back.  The timeout code
1415		has been moved from markfailure() to dropenvelope()
1416		so that all such failures should be diagnosted.  Pointed
1417		out by Christophe Wolfhugel and others.
1418	Relax safefile() constraints: directories in an include or
1419		forward path must be readable by self if the controlling
1420		user owns the entry, readable by all otherwise (e.g.,
1421		when reading your .forward file, you have to own and
1422		have X permssion in it; everyone needs X permission in
1423		the root and directories leading up to your home);
1424		include files must be readable by anyone, but need not
1425		be owned by you.
1426	If _POSIX_SAVED_IDS is defined, setuid to the owner before
1427		reading a .forward file; this gets around some problems
1428		on NFS mounts if root permission is not exported and
1429		the user's home directory isn't x'able.
1430	Additional NeXT portability enhancements from Axel Zinser.
1431	Additional HP-UX portability enhancements from Brian Bullen.
1432	Add a timeout around SMTP message writes; this assumes you can
1433		get throughput of at least 64 bytes/second.  Note that
1434		this does not impact the "datafinal" default, which
1435		is separate; this is just intended to work around
1436		network clogs that will occur before the final dot
1437		is sent.  From Eric Wassenaar.
1438	Change map code to set the "include null" flag adaptively --
1439		it initially tries both, but if it finds anything
1440		matching without a null it never tries again with a
1441		null and vice versa.  If -N is specified, it never
1442		tries without the null and creates new maps with a
1443		null byte.  If -O is specified, it never tries with
1444		the null (for efficiency).  If -N and -O are specified,
1445		you get -NO (get it?) lookup at all, so this would
1446		be a bad idea.  If you don't specify either -N or -O,
1447		it adapts.
1448	Fix recognition of "same from address" so that MH submissions
1449		will insert the appropriate full name information;
1450		this used to work and got broken somewhere along the
1451		way.
1452	Some changes to eliminate some unnecessary SYSERRs in the
1453		log.  For example, if you lost a connection, don't
1454		bother reporting that fact on the connection you lost.
1455	Add some "extended debugging" flags to try to track down
1456		why we get occassional problems with file descriptor
1457		one being closed when execing a mailer; it seems to
1458		only happen when there has been another error in the
1459		same transaction.  This requires XDEBUG, defined
1460		by default in conf.h.
1461	Add "-X filename" command line flag, which logs both sides of
1462		all SMTP transactions.  This is intended ONLY for
1463		debugging bad implementations of other mailers; start
1464		it up, send a message from a mailer that is failing,
1465		and then kill it off and examine the indicated log.
1466		This output is not intended to be particularly human
1467		readable.  This also adds the HASSETVBUF compile
1468		flag, defaulted on if your compiler defines __STDC__.
1469	CONFIG: change SMART_HOST to override an SMTP mailer.  If you
1470		have a local net that should get direct connects, you
1471		will need to use LOCAL_NET_CONFIG to catch these hosts.
1472		See cf/README for an example.
1473	CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle
1474		sites that don't use the -d flag.
1475	CONFIG: hide recipient addresses as well as sender addresses
1476		behind $M if FEATURE(allmasquerade) is specified; this
1477		has been requested by several people, but can break
1478		local aliases.  For example, if you mail to "localalias"
1479		this will be rewritten as "localalias@masqueradehost";
1480		although initial delivery will work, replies will be
1481		broken.  Use it sparingly.
1482	CONFIG: add FEATURE(domaintable).  This maps unqualified domains
1483		to qualified domains in headers.  I believe this is
1484		largely equivalent to the IDA feature of the same name.
1485	CONFIG: use $U as UUCP name instead of $k.  This permits you
1486		to override the "system name" as your UUCP name --
1487		in particular, to use domain-ized UUCP names.  From
1488		Bill Wisner of The Well.
1489	CONFIG: create new mailer "esmtp" that always tries EHLO
1490		first.  This is currently unused in the config files,
1491		but could be used in a mailertable entry.
1492
14938.1C/8.1B	93/06/27
1494	Serious security bug fix: it was possible to read any file on
1495		the system, regardless of ownership and permissions.
1496	If a subroutine returns a fully qualified address, return it
1497		immediately instead of feeding it back into rewriting.
1498		This fixes a problem with mailertable lookups.
1499	CONFIG: fix some M4 frotz (concat => CONCAT)
1500
15018.1B/8.1A	93/06/12
1502	Serious bug fix: pattern matching backup algorithm stepped by
1503		two tokens in classes instead of one.  Found by Claus
1504		Assmann at University of Kiel, Germany.
1505
15068.1A/8.1A	93/06/08
1507	Another mailertable fix....
1508
15098.1/8.1		93/06/07
1510	4.4BSD freeze.  No semantic changes.
1511
15126.65/6.34	93/06/06
1513	Fix some lintish problems.
1514	Fix some cases where server SMTP behaved poorly when handed bogus
1515		input, pointed out by Eric Wassenaar.
1516	CONFIG: fix some more (sigh) mailertable bugs -- thanks to
1517		Motonori Nakamura of Kyoto University (again).
1518
15196.64/6.33	93/06/05
1520	Don't send 050 (-v) information after the 250 response to a QUIT
1521		command in srvrsmtp -- clients usually close the connection
1522		at this point, and it causes bogus error messages.
1523	Don't send messages that have errors on input (such as unbalanced
1524		parentheses) during SMTP transactions, since a return
1525		message has (probably) already been sent.
1526	Give better diagnostics on timeouts during network reads, including
1527		information similar to the SMTP phase.
1528	Fix bug that caused SMTP messages to deliver synchronously; this
1529		happened after the DATA 250, and hence caused reading the
1530		next command to be delayed.
1531	Ignore Errors-To: header unless 'l' (lower case el) header is
1532		specified.  The Errors-To: header violates RFC 1123.
1533		Errors-To: was only needed to take the place of the
1534		envelope sender in the days when most Unix mailers
1535		didn't understand about the two kinds of senders.
1536	Don't send warning messages in response to automatically generated
1537		messages (that is, those From:<>).
1538	CONFIG: fix some rather stupid typos in the mailertable code
1539		pointed out by Motonori Nakamura of Kyoto University.
1540	CONFIG: add confUSE_ERRORS_TO configuration option.
1541	CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M
1542		(masquerade name) instead of $j.
1543	CONFIG: don't add dots to relay names (added in 6.29); it breaks
1544		several things, and can be simulated by dot terminating
1545		the names of relays.  For example, use:
1546			DBbit.net.relay.
1547		(note the trailing dot).
1548
15496.63/6.32	93/06/01
1550	Fix prototypes to eliminate chars in argument lists -- some
1551		compilers are pissy about this.
1552	Log protocol ($r) and body type if set so we can determine if
1553		the adaptive algorithms are working.
1554	Pessimize on locking of database files (particularly for NEWDB
1555		databases) during opens.  There were problems with
1556		processes opening the file while it was rebuilt; since
1557		NEWDB caches heavily, the reader opened an empty file,
1558		which is an error.  If your system has the ability to
1559		lock atomically on open, this works properly; otherwise,
1560		there are race conditions.
1561	Check mod time on .pag file instead of .dir in NDBM aliases
1562		because the .dir file doesn't get updated for small
1563		alias files.  From John Gardiner Myers of CMU.
1564	More Solaris portability -- it now compiles on Solaris, but
1565		hangs up in gethostbyname().
1566	Move setting of RES_DEBUG flag before first myhostname() call
1567		so we can see name server traffic on that call.
1568	Fsync() queue files.
1569	Fix a problem that causes -bi to try to rebuild maps other than
1570		the alias file(s).
1571	Fix a problem that caused udb to reject entries from any but
1572		the first database listed.
1573	Rearrange doc subdirectory for 4.4BSD release tape.
1574	CONFIG: put $r into the Received line.  This was an oversight.
1575	CONFIG: fix typo (call to ruleset 99 should have been rulset 90).
1576	CONFIG: move "auxiliary" subroutines to be in ruleset 90-99
1577		range -- in the long run, single digit rulesets may
1578		become reserved for builtin use by sendmail.
1579	CONFIG: fix major problem that causes host aliases (that is,
1580		anything in $=w != $j) to not be recognized.  This has
1581		been around since 6.30.
1582
15836.62/6.31	93/05/28
1584	BETA RELEASE
1585	Fix recursive syserr (if there is an error printing a syserr
1586		message).  This makes the code much less eager to consider
1587		a write error as serious.  This also includes some
1588		heuristics to be clever about closed connections.
1589	Lock NEWDB files during gets.  This requires version 1.5 or later
1590		of the db library.  If you have an older version, you
1591		can use -DOLD_NEWDB.  This will go away in a few weeks.
1592	Fix problem causing aliases that use host maps to get overwritten.
1593	Do appropriate byte swapping on port numbers in ident protocol
1594		code.  Fix from Allan Johannesen of WPI.
1595	Defer opening of map files to the same time as alias files so that
1596		the daemon will tend to pick up new versions more promptly.
1597	Prototype a bunch more functions.
1598	Some Solaris 2.1 changes (still doesn't link though).
1599	Try to simplify Makefiles by including more subordinate #defines
1600		in conf.h (based on OS type).
1601	CONFIG: check for domains if FEATURE(mailertable) is defined.
1602		For example, if the host name is "knecht.cs.berkeley.edu"
1603		it will search the following mailertable keys:
1604			knecht.cs.berkeley.edu
1605			.cs.berkeley.edu
1606			.berkeley.edu
1607			.edu
1608		This could be used to replace the special relays for bitnet
1609		and similar nets.
1610
16116.61/6.30	93/05/24
1612	Fix problem that prevented appending dots on canonified host
1613		names.  This breaks tons of config files -- very
1614		important fix.
1615	Fix improper pointer dereference in response to HELO command.
1616	Fix core dump if debugging set in map_rewrite.
1617	CONFIG: add FEATURE(always_add_domain) to always attach the
1618		local domain (only impacts local mail).
1619	CONFIG: try to avoid turning names into $j -- although
1620		technically a host can only have one "canonical name",
1621		it seems to be common practice to have several.
1622
16236.60/6.29	93/05/22
1624	Major change: merge alias databases with maps.  This expands and
1625		changes the map class interface but fixes a bunch of bugs.
1626		The important user-visible change is that the file name
1627		in a K line now does not include the ".db" extension; this
1628		is added automatically.  Also, the -d (NIS domain) flag is
1629		missing from the K config line; use @domain instead.
1630		When compiling, the *_MAP names are gone -- just compile
1631		in NDBM, NEWDB, and/or NIS support.
1632	Announce mailer/host/user triple on -bv flag -- from Brian
1633		Bullen of Stirling University.
1634	Don't send more than one line in response to HELO -- it confuses
1635		Pony Express, which then behaves very badly.  However,
1636		this change does send two line 220 greetings, with the
1637		second line reading "ESMTP spoken here".  The usersmtp
1638		module recognizes this and goes into ESMTP mode regardless
1639		of the setting of the "a" mailer flag.  Thus, "a" means
1640		"always try EHLO".
1641	AIX portability changes (thanks to Christophe Wolfhugel of
1642		Herve Schauer Consultants (Paris) for providing me with
1643		an INSA account for this purpose).  Lightly tested.  Use
1644		-D_AIX3.  This probably breaks compatibility with some
1645		older systems (e.g., 4.2bsd) but still works on SunOS
1646		4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3.
1647	Fix a problem causing an error message loop if the output channel
1648		is hosed.
1649	Add the Makefiles that I use for various environments -- some are
1650		Berkeley make versions and some are old make versions.
1651		My makefile for the NeXT box has gotten lost, alas!
1652	PRALIASES: support for printing NEWDB databases.  From
1653		Michael J. Corrigan of U.C. San Diego.
1654	CONFIG: don't pass pseudo-domains to $[ ... $] (if you have
1655		a wildcard MX it can have wierd results).  From
1656		Christophe Wolfhugel.
1657	CONFIG: dot terminate relay hostnames in S0.  From Christophe
1658		Wolfhugel.
1659
16606.59/6.28	93/05/13
1661	Log version with SMTP daemon startup message.
1662	Adjust setproctitle to work on NetBSD and BSD/386.
1663	Fix null pointer reference in MX fallback code.
1664	A bunch of minor fixes from Eric Wassenaar:
1665		If deliver cannot execv the mailer, return EX_OSERR
1666			instead of EX_TEMPFAIL (to give better
1667			error messages).
1668		Consistently malloc e_message.
1669		Catch degenerate case of calling returntosender()
1670			with an empty returnq.
1671		MIME reformatting.
1672
16736.58/6.28	93/05/13
1674	Fix bug that can cause incorrect verbose display of user smtp
1675		messages.
1676	Disable SMTP VERB command if PRIV_NOEXPN is set (since this
1677		could reveal the same information.
1678	Allow failure when reading SMTP greeting message to go on to
1679		next MX host.
1680	Add "MIME-Version: 1.0" header if using MIME (this was NOT
1681		included in RFC 1344, but Bill King of Allan-Bradley
1682		Company forwarded me email from Nathaniel Borenstein
1683		claiming that it was an inadvertent omission).
1684	Don't use Content-Type: X-message-header.  According to John
1685		Myers of CMU, many MIME readers will completely ignore
1686		the data if they don't recognize it.  Instead, just
1687		add a blank line to make it a legal (empty) message.
1688	Fix problem causing dots to keep getting appended to cached
1689		hostnames.  This can cause buffer overrun conditions.
1690		The problem was found by Erik Forsberg of Retix,
1691		although I used a different bug fix than he provided.
1692	Fix parsing of split header/envelope rewriting specs -- from
1693		Eric Forsberg.
1694	Fix from Eric Wassenaar to correct To: lists in error messages.
1695
16966.57/6.28	93/05/11
1697	Fix minor glitch causing extra ctladdrs to be output to queue
1698		file.  Just an annoyance.
1699	Cache results of name server canonification lookups to avoid
1700		backed up queue runs.
1701	Major rewrite of alias.c: considerable cleanup, plus sample
1702		(untested) support for NIS aliases.  The "A" option
1703		can now be a comma separated list (or be repeated) --
1704		that is, you can have multiple alias databases.  Each
1705		database can have the syntax ``class:file''; if no class
1706		is specified, the "implicit" class is assumed.  Implicit
1707		searches through a list of compiled in types -- hash,
1708		dbm, nis, and stab.  Alias files are searched in the
1709		order they are listed.  For example:
1710			OAhash:/etc/aliases.local,/etc/aliases
1711			OAnis:mail.aliases@my.nis.domain
1712		first searches the hash database /etc/aliases.local,
1713		then the regular /etc/aliases database, then the NIS
1714		map "mail.aliases" in the NIS domain "my.nis.domain".
1715	If in Verbose mode (probably from VERB command) run SMTP job
1716		in foreground and don't do RCPT optimizations.
1717	Add udb :mailsender as equivalent to owner- for regular aliases.
1718	Delete option 8; add option 7 that means the opposite.  That is,
1719		default to 8-bit mode; a special option is needed to
1720		force sendmail into 7 bit mode.
1721	Send error messages in encapsulated MIME format.
1722	New compile flag "NIS" that turns on NIS alias and NIS map
1723		support.
1724	Add "j" option to send error messages in MIME (RFC 1341)
1725		encapsulated message format per RFC 1344.  The
1726		syntax is pretty ugly if you don't have MIME-aware
1727		user agents.
1728	Clean up message handling (for display in mailq output).
1729	New setproctitle implementation for 4.4bsd.
1730	Create files (such as ~/dead.letter) using mode FileMode (the
1731		F option value) instead of 0666.
1732	Fix bug causing output of EXPN command to not be fully qualified.
1733		This may cause some problems with UUCP addresses that
1734		will require some config file assistance -- specifically,
1735		the $: part has to include the host name for this output
1736		to make sense.
1737	Fix a problem that sometimes diagnosed errors and still sent the
1738		message if the header syntax was bad.
1739	Fix a bug that caused an error message to be emailed when sendmail
1740		was operating in -bv mode.
1741	Add "ListenQueueSize" keyword to daemon options option (OO) to
1742		set the queue size parameter passed to listen().  You
1743		will normally have to tweak your kernel to up this.
1744	Strip spaces off of beginning of message-id before logging (in
1745		case it was folded across lines).
1746	Tweak compile flags in daemon.c -- there were some cases where
1747		it wouldn't work without NETINET.
1748	Change *file* mailer to output all the usual default headers
1749		(From, Date, Message-Id).  It gets used when sending
1750		back error messages.
1751	CONFIG: explicitly catch and diagnose list:; syntax in ruleset
1752		zero -- this is not a valid recipient syntax according
1753		to RFC 821.
1754	CONFIG: add confMIME_FORMAT_ERRORS to send error messages in
1755		MIME format.  Defaults to on.
1756	CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment
1757		the flags for those mailers.
1758
17596.56/6.27	93/05/01
1760	Fix problem that causes the fallback mail to postmaster
1761		(case ESM_POSTMASTER in savemail()) to not look at
1762		aliases (ugh).
1763	Some more HPUX tweaking (compile flag hpux => __hpux so it
1764		still works in ANSI mode).
1765	Don't try to flock non-regular files when mailing to a file.
1766		In particular, this was a problem if you tried to
1767		send to /dev/null.
1768	Fix a wierd bug that can cause senders to be queued as
1769		recipients if the name server is down when the mail
1770		is initially sent.  This hack just ignores sender
1771		deletion (essentially, it sets the MeToo flag) if there
1772		is a TEMPFAIL during processing of the sender address.
1773		Obscure.
1774	Fix a dangling else problem -- from Brian Bullen from University
1775		of Stirling, UK.
1776	Add the "b" mailer flag to force a blank line on the end of
1777		messages.  Some brilliant versions of /bin/mail insist
1778		on this but do not add it themselves.
1779	Add the "g" mailer flag to prevent user SMTP from sending
1780		"MAIL From:<>".  This is only intended to be a
1781		transitional gesture, and should not be used if at
1782		all possible.  It appears that Berkeley and IDA
1783		config files have always handled this properly; the
1784		UK config kit apparently does not.
1785	Don't lowercase and then capitalize header field names -- leave
1786		them with original capitalization.  Fixes from Bill
1787		King of Allen-Bradley Company.
1788	Further cleanup and improved reporting of error messages,
1789		particularly conditions that cause messages to be
1790		requeued for future delivery.
1791	Tweak syslog priorities in some cases.
1792	CONFIG: clean up route-addr on UUCP addresses.
1793
17946.55/6.25	93/04/27
1795	HPUX 8.07 compatibility changes in getla() -- I had to make
1796		these changes to get it to work at Berkeley, although
1797		others seem to have been working before (???).
1798	Various patches to XLA code.
1799	Fix problem that causes setuid bit on files to be ignored from
1800		SMTP or in queue runs.  Problem noted by Jason Ornstein
1801		of Under The Wire, Inc.
1802	Fix problem that can cause CNAMEs to be ignored.
1803	Generalize getmxrr to match local host in $=w instead of a
1804		single name passed in.
1805	Some cleanup from Eric Wassenaar:
1806		Use FileMailer instead of ProgMailer in two places.
1807		Eliminate duplicate 8th-bit stripping in commaize.
1808		Fix a problem with mis-parsing of backslash escapes
1809			under some circumstances.
1810	NIS map fix (was always including trailing null character)
1811		from Mike Glendinning of Ingres UK.
1812	Add "a" mailer flag to try using ESMTP.  It tries the EHLO
1813		command and if that fails falls back to regular SMTP.
1814		Also parses EHLO option keywords.  If host supports
1815		SIZE extension, this is added to the MAIL FROM:
1816		command.
1817	Extend "b" option to include a second value which is the
1818		maximum message size this server is willing to accept.
1819		For example, a value of "10/1000000" says that there
1820		must be ten blocks free, and sendmail will reject
1821		any message larger than one megabyte.
1822	Some portability hooks for NeXT (this could be applicable
1823		to Mach in general).  You have to create an empty
1824		file called "unistd.h" to get it to compile.
1825	Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to
1826		be more generous.
1827	Add X400-Received: to the list of headers tagged with H_TRACE
1828		in conf.c.  From Bill King, Allen-Bradley Co.
1829
18306.54/6.25	93/04/19
1831	Fix problem that caused redefinition of SMTP and QUEUE compile
1832		flags.  Pointed out by Jon Forrest of the Sequoia 2000
1833		project at Berkeley.
1834	Properly handle \! hack -- it was treating host\!user as one
1835		token (host!user) instead of three (host, !, user).
1836		Fix from Eric Wassenaar of NIKHEF-H.
1837	Fix compilation problem in getauthinfo() if IDENTPROTO is off.
1838	Turn off DEFNAMES and DNSRCH when getting the hostsignature
1839		(i.e., MX records) in level 1 configuration files; this
1840		matches the old behaviour.  From Motonori Nakamura of
1841		Kyoto University.
1842	Improve error message printing -- if sent through an alias,
1843		error messages include the name of the alias in the
1844		message.  Unfortunately, in order to make this work
1845		properly in queue runs, this changes the format of the
1846		C line in the qf file.  The relatively uselessness of
1847		the previous information was pointed out to me by
1848		Allan E Johannesen of WPI.
1849	Add XLA compile flag to add hooks to Christophe Wolfhugel's
1850		extended load average code.  This is still in very early
1851		form.  For information regarding the guts of the xla
1852		code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr.
1853	Additional hooks for detecting tempfails in rewriting rules
1854		(that is, in map lookups).
1855
18566.53/6.25	93/04/15
1857	Properly diagnose ruleset zero returning null (instead of a mailer
1858		triple).  From Motonori Nakamura of Kyoto University.
1859	More generalization of socket code for other protocols.
1860	Shorten timeouts on reverse name lookups -- since they are done
1861		during connection establishment, long timeouts here can
1862		cause higher level timeouts.  This mainly serves to accept
1863		mail from hosts that do not have proper reverse (PTR) DNS
1864		records set up.
1865	Reset e_statmsg before each mailer invocation to avoid bogus
1866		messages in the log.
1867	Redefine $r, $s, and $_ in error envelopes so you don't get
1868		incorrect cruft in the error message.  Problem noted by
1869		Motonori Nakamura of Kyoto University.
1870	Fix a problem that can cause failure to return errors to Postmaster
1871		in certain cases.  From Motonori Nakamura.
1872	Fix a problem that can cause some systems to give duplicate error
1873		messages when a bad syntax address such as "<a" is presented
1874		to an SMTP server.   It doesn't seem to occur on all
1875		machines.  From Motonori Nakamura.
1876	Default IDENTPROTO off for Ultrix and HPUX, which apparently have
1877		the interesting "feature" that when they receive a "Host
1878		unreachable" message they closes all open connections to
1879		that host.  However, some firewall gateways send this message
1880		if you try to connect to an unauthorized port, such as the
1881		IDENT port (113).  Thus, no email can be received from such
1882		hosts.  There is some evidence that versions of Ultrix before
1883		4.3 do not have this problem.  Thanks to Tom Ivar Helbekkmo
1884		for pointing out this behaviour to me and to Michael Corrigan
1885		of U.C. San Diego for informing me about the HPUX problem.
1886	Allow IPC mailers to return a colon-separated list of hosts in the
1887		$@ clause; these are searched in order as though they were
1888		MX records.
1889	When sending an error report, print the list of addresses tagged
1890		as bad.  Requested by Allan E Johannesen of WPI.
1891	Change map function calls to return a status code.  This gets
1892		passed back as the result of rewrite.  Parseaddr marks
1893		the address as a QUEUEUP address if the return code is
1894		EX_TEMPFAIL.  All this to queue properly if the name
1895		server is down.  This code is not well tested.  This code
1896		changes the interface to map lookup functions (a fifth
1897		parameter, int *statp, is added).  Feature requested by
1898		Dan Oscarsson.
1899	Don't delete quotes (in the dequote map) if there are spaces in
1900		the string, since this would cause them to be replaced by
1901		the SpaceSub character.
1902	Accept BODY=8BITMIME on SMTP MAIL command.  This isn't advertised
1903		because the 8BIT to 7BIT translation doesn't exist yet.
1904		This does add a "bodytype" field to both envelope and
1905		queue file and a -B command line flag to pass the type in
1906		during direct invocations.
1907	Discard return error messages only on responses to responses to
1908		responses, not on responses to responses.  That is, the
1909		algorithm is to try return to sender, then return to
1910		postmaster, then discard.  Previously it discarded
1911		immediately if the return to sender pass failed.
1912	CONFIG: back out change to hide unqualified hostnames behind %-hack.
1913		This screws up local aliases and .forward files.
1914	CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $];
1915		some sites only handle completely canonified names.
1916		Requested by John Gardiner Myers of CMU.
1917	CONFIG: some UUCP code was still included even if FEATURE(nouucp)
1918		was specified.
1919
19206.52/6.24	93/04/10
1921	Clean up some minor glitches on error return messages pointed out
1922		by Motonori Nakamura of Kyoto University.
1923	Fix reply() to not reset SmtpReplyBuffer on fatal errors; this
1924		was supposed to reset SmtpMsg Buffer.  This makes the
1925		client side code virtually useless.  Reported by Allan
1926		E Johannesen of WPI and Phil Brandenberger of Swarthmore.
1927	Better debug messages if fuzzy is disabled, suggested by Allan
1928		E Johannesen of WPI.
1929	Offset SmtpReplyBuffer by four in usersmtp when checking for
1930		loopback.  From Eric Wassenaar.
1931	Don't set $s until after runinchild in srvrsmtp -- otherwise
1932		it gets cleared.  From Eric Wassenaar.
1933	Implement IDA-style $&x for deferred macro expansion.
1934	More POSIX compatibility.
1935	CONFIG: Hide unqualified hostnames behind %-hack using $s as the
1936		actual sender.  This is only done if $r is non-null, that
1937		is, if this is not locally submitted mail.
1938	CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host
1939		names to internet domains.  A program contributed by
1940		John Gardiner Myers of CMU to create the maps is included
1941		in the contrib directory (in the "misc" tar file).
1942	CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP
1943		hosts.  There is currently no tool to create this map.
1944
19456.51/6.23	93/04/04
1946	Add D= mailer flag to specify a path of possible working directories
1947		in which to execute the mailer.  This is intended for the
1948		prog mailer; some shells can get upset if they don't have
1949		access to the current directory.
1950	Add RFC 1413 (IDENT) protocol support.  This is only very loosely
1951		tested.  This adds a $_ macro to be the authenticated
1952		info (in ``user@domain [address]'' form) and debug flag
1953		9 to trace the protocol.
1954	Check for loopbacks in usersmtp instead of srvrsmtp -- there is no
1955		reason for a local agent to not be talking to the localhost
1956		(although the inverse is not true).
1957	Add a few hooks for automated map rebuilding.  This is certainly
1958		not done yet.
1959	CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is,
1960		user's home directory then the root.
1961	CONFIG: Log RFC 1413 identification in Received: line.
1962
19636.50/6.22	93/04/01
1964	Fixes to requeueing code to make it compute priority, nrcpts,
1965		and the like properly.
1966
19676.49/6.22	93/04/01
1968	Diagnose incorrect privacy flags.  Suggested by Bryan Costales
1969		of ICSI.
1970	Some ANSI C fixes.
1971	Arrange to quote backslashes as well as other special characters
1972		in the phrase part of a route-addr.
1973	Some fixes to FallBackMX code suggested by Motonori Nakamura of
1974		Kyoto University.
1975	More vigorous zeroing of CurHostAddr to avoid logging of bogus
1976		host addresses when you are actually just printing
1977		information from the MCI structure; problem noted by
1978		Michael Corrigan of U.C. San Diego.
1979	Don't ignore rest of queue if any job is not runnable.  This can
1980		also cause an incorrect job to be lost.  Fix from
1981		Eric Wassenaar.
1982	Always respond "quickly" to RCPT command; do alias expansion and
1983		the like later.  This also means that mail for lists that
1984		have errors will be acccepted, and an error sent back
1985		later.  This is done by instantiating the queue file
1986		and then immediately running and requeueing it.
1987
19886.48/6.22	93/03/30
1989	Fix incorrect diagnosis of infinite loop in ruleset.  Problem noted
1990		by several people.
1991	Improve information printed when infinite loops are discovered.
1992	Zero CurHostAddr to fix erroneous internet addresses in log when no
1993		addresses can be bound.  Pointed out by Motonori Nakamura
1994		of Kyoto University.
1995	"Probe" SMTP connections using RSET instead of NOOP "just in case".
1996		Suggested by John Gardiner Myers of CMU.
1997	Don't warn about -f if you are setting sender to yourself.
1998
19996.47/6.22	93/03/29
2000	Fix incompatible call to endmailer in smtpquit which causes core
2001		dumps.  Noted by Allan E Johannesen of WPI.
2002	HPUX portability changes from Michael J. Corrigan of UC San Diego.
2003	Require MAIL before RCPT command in srvrsmtp.c.  This had been
2004		intentional from the 821 draft days when the order wasn't
2005		clear, but is silly now.
2006	Fix bug in nis_magic routine that was initializing parameters
2007		incorrectly.  Fix from Takahiro Kanbe of Fuji Xerox
2008		Information Systems Co., Ltd.
2009	Change default for PrivacyFlags in conf.c to 0 -- since it always
2010		"or"s in new values, there was no way to turn off the
2011		AuthWarning stuff.
2012	Add O option to set SMTP daemon options.
2013	Add V option to set fallback MX host.  This always sorts at lower
2014		priority than anything it gets from the name server.  It
2015		should only be used for environments with very bad network
2016		connectivity.  Requested by several people.
2017	Log sending info.  It's not clear this is a good idea.
2018	CONFIG: fix typo in mailertable code.  Noted by Phil Brandenberger
2019		of Swarthmore.
2020	CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options
2021		O and V, respectively.
2022
20236.46/6.21	93/03/26
2024	Fix botch in server SMTP that broke transactions that did not
2025		use HELO first (like MH).  Fix from Michael Corrigan
2026		of U.C. San Diego.
2027	Fall back to other MX records if there is an error anywhere
2028		in delivery (actually on MAIL or DATA -- RCPT is harder).
2029		Suggested by John Gardiner Myers and Motonori Nakamura.
2030	Revert to non-prototypes -- it turns out that our ANSI C
2031		compiler is more forgiving than most others about
2032		mixing prototyped extern declarations with non-prototyped
2033		function definitions.
2034	Fix a problem with multi-word class matching pointed out by
2035		Neil Rickert.  Given:
2036			CX b a.b.c
2037			R$+ $=X $+	$: $1 < $2 > $3
2038		the input "user@a.b.c" failed instead of being properly
2039		rewritten as "user@a.<b>.c".
2040	Neil also convinced me that it was correct that $~ should match
2041		only one token -- the problem is that it's always possible
2042		to add another token, so $~ matches far too eagerly.
2043
20446.45/6.21	93/03/25
2045	Implement multi-word classes (properly!).
2046
20476.44/6.21	93/03/25
2048	Add X-Authentication-Warning: headers to clue users into possible
2049		attempts to forge mail.  This is on the authwarnings
2050		privacy flag, but is the default.  Suggested by Bryan
2051		Costales of ICSI.
2052	Pass default units for convtime in so they can be more reasonable.
2053	Allow config files to always add a new Comments: header (i.e.,
2054		they will be added even if an old one already exists).
2055		Suggested by Bryan Costales of ICSI.
2056	Allow config files to delete an existing Return-Path: header.
2057		These should only be added at final delivery.  Suggested
2058		by Bryan Costales of ICSI.
2059	Some debugging additions.  Suggested by Bryan Costales of ICSI.
2060	Clean up logging of Family 0 addresses.  Noted by David Muir
2061		Sharnoff and others.
2062	Add a "dequote" map class.  This allows config files to strip
2063		quotes off of addresses.  Note that this is not a builtin
2064		map, just a class -- so you have to define the map
2065		using the K line.
2066	Fix a bug in the queueup() loop getting a locked tf where in
2067		very odd cases it can fall off the bottom and core dump.
2068		Of course, it was P{r Emanuelsson who found it....
2069	Open a new transcript when splitting an envelope.  Problem found
2070		by Allan E Johannesen of WPI.
2071	Improved error output in endmailer if the mailer core dumps.
2072	CONFIG: Fix typo in UUCP mailer definition.
2073	CONFIG: Default several of the new options on: eight bit input,
2074		privacy flags set to "authwarnings", and message warning
2075		set to 4h.
2076	CONFIG: Use dequote map.
2077
20786.43/6.20	93/03/23
2079	Fix problem with assumption of an sa_len field in a generic
2080		sockaddr -- it turns out that most vendors haven't
2081		picked up this (very important) fix.
2082	Change compilation flags for daemon code -- select one or both
2083		of NETINET or NETISO, but don't ever set DAEMON manually.
2084	CONFIG: add FEATURE(mailertable) to do IDA-style mailertables.
2085
20866.42/6.19	93/03/19
2087	Use Postmaster as default fallback return address, not root.
2088	POSIX changes for file descriptor handling.
2089	Diagnose errors writing new queue file.
2090	If you change the owner using an owner- alias, also change the
2091		error mode to EM_MAIL so that errors don't get dropped
2092		into an inappropriate directory.  Problem noted by
2093		Allan E Johannesen of WPI.
2094	If you are su'ed to root, send email as who you really are, not
2095		as root.  From Brian Kantor of U.C. San Diego.
2096	Allow warning messages to be sent after a configurable interval
2097		has passed without delivery.  The message is sent only
2098		once per envelope.  This changes the format of the qf
2099		file to have an F line, and the format of the T option
2100		to accept take the format "return/warn" (both intervals).
2101	Don't force all local names to lower case -- this was left over
2102		from the wierd handling of case mapping on aliases.  It
2103		is now driven (as expected) by the "u" mailer flag.
2104		Problem noted by P{r Emanuelsson.
2105	Fix problem that caused headers on returned email to be trashed;
2106		they were getting freed, but are still accessible via
2107		BlankEnvelope.
2108	Fix problem that caused bogus ids to be created on returned
2109		mail.
2110	Add support for ISO and other non-INET networking.  This is by
2111		no means finished yet.  This does assume a lot of other
2112		system support, like a version of gethostbyname that
2113		returns non-AF_INET addresses.
2114	CONFIG: change default on prog mailer to keep upper case in
2115		user names (i.e., in the program command line).
2116	CONFIG: strip trailing dots off of hosts in uucp mailer before
2117		convert to bang format.
2118	CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H
2119		(MAIL_HUB) delivery that doesn't add local domain.  Note
2120		that this violates 821, but is probably "more correct"
2121		for what we are trying to do.  Problem pointed out by
2122		Michael Graff of Iowa State.
2123
21246.41/6.18	93/03/18
2125	Clean up unnecessary creates of queue ids (i.e., empty qf files)
2126		when not needed, such as when starting up an SMTP
2127		connection.
2128	Fix problem where split envelopes aren't instantiated in the queue.
2129		This is quite a serious bug.
2130	Owner- aliases had problems with leading spaces causing a
2131		premature delimitation.
2132
21336.40/6.18	93/03/18
2134	Have ending 250 (after DATA) include the id; suggested by
2135		Brian Kantor of UC San Diego.
2136	Add logging on envelope splitting.
2137	Change queue ids to have one more letter encoding the hour of
2138		the day so that during a single day there is a greater
2139		likelihood of uniqueness; requested by Brian Kantor.
2140
21416.39/6.18	93/03/18
2142	Fix minor compile problem if LOCKF is defined.
2143	Define size of tobuf in conf.h.  Observed by Toshinari Takahashi
2144		of Toshiba.
2145	Restore e_sender -- this is equivalent to e_from.q_paddr without
2146		decorations such as angle brackets and comments.
2147	OSF/1 on Alpha changes from Allan E Johannesen of WPI.
2148	CONFIG: fix typo in S3 for list syntax (;: => :;).  Thanks to
2149		Christopher Hoover for noting the problem.
2150
21516.38/6.17	93/03/17
2152	Pass envelope to disconnect to avoid another use of CurEnv, which
2153		can apparently end up being null at inopportune times.
2154	Log "received from" as "relay=" for consistency (suggested by
2155		John Gardiner Myers).
2156	Fix major bug in header handling:  if no From: line existed in
2157		the header (so sendmail inserts one), and the sender is
2158		an alias that has an owner, the From: line shows the
2159		owner (as well as the envelope).  Fixed by early binding
2160		the headers (which will change debugging output).
2161	HPUX portability patches from Michael J. Corrigan of UC San Diego.
2162	Some attempts to adapt better to out of open file conditions.
2163	Some changes to ctladdr handling in queue files.
2164
21656.37/6.17	93/03/16
2166	MAJOR CHANGE:  delete e_sender and e_returnpath (why are these
2167		different from e_from?) and $< macro.
2168	Log correct IP address in relay= field even if the connection
2169		times out.
2170	Log "received from [RESPONSE]" on EF_RESPONSE messages (from
2171		John Gardiner Myers).
2172	Fixes to SysExMsg logging (sometimes just got "message: %s"
2173		instead of "message: error message"), noted by Eric
2174		Wassenaar.  Also reported by Motonori Nakamura.
2175	Improvements to MX piggybacking code, from Motonori Nakamura.
2176	Fix case where CurHostName points to an auto variable that has
2177		been deallocated (from Motonori Nakamura).
2178	Fix bug causing newlines to be included in aliases if option
2179		"n" (check alias RHS) is set; bug noted by David Muir
2180		Sharnoff.
2181	Fix problem causing user names that should be mapped to lower
2182		case to not be mapped if they are sent during a queue
2183		run.  This greatly simplifies the case mapping code.
2184		Problem noted by Allan E Johannesen of WPI.
2185	Don't do recipient address rewriting in buildaddr.  This
2186		improperly did recipient rewriting on sender addresses,
2187		and just seems bogus in general -- but the change could
2188		break some .cf files.
2189	Pass TZ envariable to child processes for System V.
2190	CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to
2191		define those rulesets.
2192	KNOWN PROBLEM:  I have seen some problems on SunOS that causes
2193		the User Data Base to give errors on some addresses.  I
2194		have tracked the problem back at least as far as 93.02.15
2195		(version 6.22).  Running with debugging on makes it
2196		go away, so I conclude that it is referencing uninitialized
2197		stack data.  I haven't been able to track this down yet.
2198
21996.36/6.16	93/03/08
2200	Allow local mailer to specify $@host -- this lets you assign the
2201		"foo" part of jgm+foo to $h for passing in to the local
2202		mailer.
2203	Additional debug printing in getcanonname (show query type).
2204	Don't add the e_fromdomain on sender addresses -- this interacts
2205		wierdly with the owner- code.
2206	Improve delivery logging to not log obvious or meaningless stuff.
2207	Include numeric IP address in Received: lines per RFC 1123 section
2208		5.2.8.
2209	Fixed a bug in checking stat() return value if restrictmailq is
2210		set.  Also, check the entire group set instead of just the
2211		primary group.  Both from John Gardiner Myers.
2212	Don't have usrerr automatically print errno, since this is often
2213		misleading.
2214	Use transienterror() in makeconnection after connect() fails and
2215		in openmailer after execve() fails (from Eric Wassenaar).
2216		Also moved transienterror() from util.c to conf.c.
2217	Clean up from= logging on response messages.
2218	Undo patch allowing prescan to return a null vector -- it breaks
2219		too many things.
2220	Config: FEATURE(notsticky) lets you use UDB for everything coming
2221		in to the machine, even if it is specifically targetted
2222		to this machine.  Without it, UDB is bypassed if the user
2223		name is fully qualified.
2224	Config: fix another minor botch with <> (local mailer wasn't
2225		mapping them properly).
2226
22276.35/6.15	93/03/05
2228	Fix getrealhostname to return null if sinlen <= 0 -- this can
2229		occur if stdin is a pipe.
2230	Avoid infinite loop in getcanonname if name server return
2231		NO_DATA (for example).
2232	Config: avoid having C flag qualify list syntax and error syntax.
2233
22346.34/6.14	93/03/05
2235	Fix logging in deliver to not pass too many parameters to Ultrix
2236		versions of syslog.
2237	Don't write the pid file until after the daemon has actually
2238		opened and conditioned the connection.
2239	Consider addresses "different" if their q_uids differ (so that
2240		two users forwarding to the same program will be seen
2241		as different, rather than the same).
2242	Fix problem with bad parameters in main() -- they set ExitStat
2243		but don't exit.
2244	Fix null pointer references through RealHostName -- painfully
2245		discovered by Allan E Johannesen of WPI.
2246	Fix bug causing user@@localhost to core dump (yuch).
2247	Config: don't put two @host.dom.ain on users in $=E in SMTP
2248		mailer.  Also, catch user@ (no host) in ruleset 0.
2249
22506.33/6.13	93/03/03
2251	Config: add confCW_FILE as the name of the cw configuration file
2252		(defaults to /etc/sendmail.cw).  From P{r Emanuelsson.
2253	Allow prescan to return a pointer to an empty list -- this is
2254		not an error.  Also, clean up error reporting to avoid
2255		double errors (prescan reports once, then the caller
2256		reports again).
2257	Changes to avoid trusting T_ANY queries -- run them, but if you
2258		don't get the info you expected, do T_A and T_MX queries
2259		anyhow.  This also fixes an oversight where _res.options
2260		bits were being ignored.
2261	If PRIV_NOVRFY is set, use 252 response code instead of 502 per
2262		RFC 1123 section 5.2.3.  It's not 100% clear that this
2263		is correct, but it probably works better with stupid
2264		mailers that do a VRFY and only check the first digit.
2265
22666.32/6.12	93/03/02
2267	Fix uninitialized variable "protocol" in smtp code.
2268	Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI.
2269	Additional hooks for RFC 1427 (ESMTP SIZE extension).  This
2270		includes requiring that enoughspace() know the system
2271		block size, which will undoubtedly break most ports.
2272	Trace flag 19 in use for srvrsmtp.c.
2273	Additional logging -- notably the sending mailer name.  This
2274		also changes the delivery logging to strict field=value
2275		syntax.
2276	Fix some problems with messages getting sent even to addresses
2277		that had been marked bad -- from Eric Wassenaar.
2278	More WIDE changes: accept host name inside [...] as non-MXed
2279		host.  This is intended ONLY for use inside firewalled
2280		environments, where the MX points at the gateway.
2281	Change .cf file conventions so that mapping for <> addresses
2282		don't have an @ in them (to avoid confusing the C mailer
2283		flag).  Pointed out by Neil Rickert.
2284	Config extensions for Sam Leffler's FlexFAX software.
2285
22866.31/6.10	93/02/28
2287	Fix some more bugs in alias owner code -- there were some wierd
2288		cases where an error in a non-aliased name would override
2289		the return info in an aliased name with an owner.
2290	Changes from WIDE Project, forwarded to me by Motonori Nakamura:
2291		Log actual delivery host (after MX et al); from
2292			yasuhiro@dcl.co.jp.
2293		Log daemon startup.
2294		Deliver Postmaster copies without a body.
2295		Better logging of SMTP senders.
2296		Send all program email as daemon even when local.
2297	As requested in various forms from many people, accept -qIstring
2298		to limit queue runs to jobs with queue-id matching string.
2299		Similarly for -qRstring for recipients, -qSstring for
2300		senders.
2301	Initial hooks for ESMTP support (see RFC 1425).
2302	Fixed a syntax error in the UUCP mailer specification that caused
2303		core dumps on startup.
2304	Check for missing A= or P= arguments in mailer definitions.
2305
23066.30/6.10	93/02/27
2307	Require FROZENCONFIG compilation flag to include frozen
2308		configuration code.  Frozen configuration is really
2309		not a very good idea any more, particularly in shared
2310		library environments.
2311	Do better checking of errno after opens of :include: and .forward
2312		files to defer delivery on network and other transient
2313		errors.  Suggestion from Craig Everhart.
2314	Fix minor botch in read timeout macro processing.
2315	Add FEATURE(nouucp) to config files for sites that know absolutely
2316		nothing about UUCP.
2317	Add built cf files to distribution tape and clarify how to build
2318		them if you don't have the Berkeley make.
2319	Some sizeof(long) portability changes for the Alpha, from Allan
2320		E Johannesen.
2321	Add "restrictmailq" privacy flag -- if set, only people in the same
2322		group as your queue directory can print the queue.  If you
2323		set this, be sure you also restrict access to log files....
2324	Fix another bug in owner-list stuff that can cause data files to
2325		be "lost".
2326	Fix a bug with queue runs that cause forwards to yourself to go
2327		into alias/forwarding loops.  I'm still iffy about this
2328		fix.
2329	Fix from Eric Wassenaar for suppression of return message code.
2330
23316.29/6.9	93/02/24
2332	Fix yet another problem in alias owner code -- put the wrong return
2333		address on the enclosed return-to-sender letter.
2334
23356.28/6.9	93/02/24
2336	Fix botch in alias owner code that caused it to not operate if the
2337		error was detected locally.
2338
23396.27/6.9	93/02/24
2340	M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include
2341		file <sys/mount.h>.
2342	Miscellaneous bug fixes from Eric Wassenaar:
2343		sendmail -bv -t logs the from line even though in verify
2344			mode only.
2345		sendmail -v can go into queue mode if shouldqueue returns
2346			TRUE.
2347	Add route-addr pruning per RFC 1123 section 5.3.3.  This can be
2348		disabled using the "R" option.
2349	Delete (always undocumented) -R flag (save original recipients);
2350		there are ways to syslog(3) these now.
2351	Clean up SMTP reply codes -- specify them as needed in the code,
2352		instead of in conf.c -- this was needed during the NCP to
2353		TCP transition, but seems silly now.  This also changes
2354		parameters to message and nmessage.
2355	Have mailstats read the .cf file to find the sendmail.st file and
2356		get text versions of mailer names.  An initial version of
2357		this code was provided by Tuominen Keijo (although the
2358		comments indicate the good bits were written by "E.V.").
2359	Add yet more System V compatibility hacks.
2360	Fix bug in VRFY code (assumes everything must be a local user).
2361	Allow specification of any of the hard-wired pathnames in the
2362		Makefile.
2363	Delete concept of "trusted users" -- this really didn't provide
2364		any security anyway, and caused some problems.
2365	Delete last vestige of support for the word "at" as an equivalent
2366		to the character "@".
2367	Propagate owner-foo alias information into the envelope sender.
2368		Based on code from John Gardiner Myers.  This is a major
2369		semantic change -- beware!
2370	Allow $@ on LHS to indicate "match zero" -- this is used to match
2371		the null expression.
2372
23736.26/6.8	93/02/21
2374	Don't "lose" queue runs.  Very important fix from (who else?)
2375		Eric Wassenaar.
2376	Completely reset state on RSET command -- from Eric Wassenaar.
2377	Send error messages and return receipts using an envelope sender
2378		of <> regardless of the setting of $n.  Rewriting rules
2379		can undo this if they feel the necessity, as might be
2380		needed for networks that don't understand the syntax.
2381		This is permitted by RFC 821 section 3.6 and required by
2382		RFC 1123 section 5.3.3.  THIS REQUIRES VERSION 4 CONFIG
2383		FILES because the rulesets must be able to parse <>
2384		properly.
2385	Don't ever send error messages to "<>" -- they will get sent to
2386		the local postmaster or dumped in /usr/tmp/dead.letter
2387		instead.  Per RFC 1123 section 5.3.3.
2388	Explicitly check for email to yourself as a dotted quad.  You
2389		have to call $[ [ ... ] $] to get this.
2390	Up the message timeout to five days per RFC 1123 section 5.3.1.1.
2391	Make all read timeouts individually configurable, as strongly
2392		recommended by RFC 1123 section 5.3.2.
2393	Use f_bavail (blocks available to regular users) instead of f_bfree
2394		(blocks available to superuser) in free block checks.
2395	Change $d macro to be the current time, not the origination time,
2396		since this is consistent with how it is used now.
2397	Generalization of enoughspace from Eric Wassenaar covering
2398		SGI, Apollo, HPUX, Ultrix, and SunOS.
2399	Ignore process group signals -- some front ends can do this if
2400		you kill a window too quickly.  From Eric Wassenaar.
2401	Change umask to 022.
2402
24036.25/6.8	93/02/20
2404	Close all cached connections before calling mailers and after
2405		forking for delivery (caused double closes which resulted
2406		in false errors).
2407	Add FEATURE(redirect) in config files -- this allows you to alias
2408		old addresses to a pointer to the new address that will
2409		give a 551 error message, but not deliver the mail.
2410	Some code changes to make the 551 errors look pretty.
2411	Names of M4 program paths in config files have changed -- they
2412		are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS.
2413	Fix a bug in the QSELFREF code having to do with empty .forward
2414		files, reported by Eric Wassenaar.
2415	Add option "p" (privacy flags); this allows you to tune how
2416		picky the SMTP server will be.  This also adds the
2417		confPRIVACY_FLAGS M4 macro in the config files.
2418	Add option "b" (minimum blocks free).  If there are fewer than
2419		this number of blocks free on the filesystem containing
2420		the queue directory, the SMTP MAIL command will return
2421		a 452 response and ask you to try again later.  This
2422		also adds the confMIN_FREE_BLOCKS M4 macro in the config
2423		files.
2424	Made VRFY just verify (doesn't expand aliases and .forward files);
2425		EXPN does full expansion.  RCPT in queue-only mode also
2426		doesn't chase aliases and .forward.
2427
24286.24/6.7	93/02/19
2429	Increase the number of domain search entries in domain.c to allow
2430		for the extra "" entry indicating the root domain.
2431		Reported by Motonori Nakamura of Kyoto U.
2432	Add a "SMART_HOST" in the configs for UUCP-connected sites that
2433		want to forward all mail with extra "@"s to that site.
2434		Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to
2435		be specified as ``mailer:hostname'' to use an alternate
2436		mailer.
2437	Clarified and updated some wording in the Operations Guide.
2438	Add the "c" mailer flag -- this suppresses all comment parts of
2439		addresses (requested by John Curran of NEARnet).
2440	Have -v print prompts in -bt mode even if stdin is not a terminal
2441		(default behaviour is to be silent if not reading from
2442		a terminal).  Suggested by Bryan Costales, ICSI.
2443	Move the metacharacters from C0 space (\001-\037) into C1 space
2444		(\201-\237).  This also fixes a bunch of potential bugs
2445		with G1 characters (\240-\276) in headers relating to
2446		negative numbers passed to isspace() et al.
2447	Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias
2448		database if YPCOMPAT is #defined.  Enhancement from
2449		Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd.
2450	Add "list" Precedence (-30); this can be used with old sendmails
2451		which will map to precedence 0 (which will return error
2452		messages).  Suggested by Stephen R. van den Berg.
2453	Many bug fixes from Eric Wassenaar of the National Institute for
2454			Nuclear and High-Energy Physics, Amsterdam:
2455		Clear timeouts properly on open failures in include().
2456		Don't dereference through NULL if no home directory found.
2457		Re-establish SIGCHLD signal on System 5 in reapchild().
2458		Avoid NULL pointer reference on -pFOO flag.
2459		Properly handle backslash escapes in comments.
2460		Correctly check reply status on SMTP NOOP command.
2461		Properly save SMTP error message if peer gives
2462			"Service Shutting Down" message.
2463		Avoid writing to the transcript if it couldn't be opened.
2464		Signal errors in SMTP children to parent properly.
2465	Handle self references in a list more globally (include a
2466		QSELFREF bit in the address flags).  This enhancement
2467		was suggested by Eric Wassenaar.
2468	Use initgroups() in hpux, even though it's System-V based.  The
2469		HASINITGROUPS compile flag can set this on other systems.
2470		This HPUX behaviour was pointed out by Eric Wassenaar.
2471
24726.23/6.6	93/02/16
2473	Clean up handling of LogLevel to make it easier to figure out
2474		what's on what level.
2475	Change log levels to have some consistency:
2476		1    serious system failures, security problems
2477		2    lost communications, protocol failures
2478		3    other serious failures
2479		4    minor errors
2480		5    message collection
2481		6    vrfy logging, creation of return-to-sender
2482		7    delivery failures
2483		8    delivery successes
2484		9    delivery tempfails (queue ups)
2485		10   database expansion
2486		>64  debugging
2487	Allow IDA-style separated processing on S= and R= in Mailer
2488		definition lines.  Note that rulesets 1 and 2 are
2489		still used for both addresses as before.  Bruce Lilly
2490		gave a convincing argument that RFC976 insists on
2491		this behaviour.
2492	Added some time zones to arpatounix -- they may not be in the
2493		standards, but they are in use.  However, I may delete
2494		arpatounix entirely -- there appears to be no reason
2495		for it to exist.
2496	Change to UUCP mailer (in cf directory) to try to do a saner job.
2497		I'm still not certain about this mailer in general.
2498
24996.22/6.5	93/02/15
2500	Fix bug that prevents saving letters in ~/dead.letter.
2501	Don't add angle brackets in VRFY command if angle brackets already
2502		exist in the address.
2503	Fix bogus error message in udbexpand.
2504	Null terminate host buffers in buildaddr (broken in 6.21) --
2505		IMPORTANT FIX!!
2506
25076.21/6.5	93/02/15
2508	Fix another incorrect error message in alias.c, found by Azuma
2509		Okamoto.
2510	Fix a couple of problems in the more-configurable config files,
2511		found by Tom Ivar Helbekkmo.
2512	Fix problem with quoted :include: entries.
2513	Don't duplicate the filename on verbose printing of .forward and
2514		:include: contents.
2515	Extend size of prescan buffer (to allow bigger addresses).  Also,
2516		detect some buffer overflows.
2517	Log user SMTP protocol errors (log level 4).
2518
25196.20/6.4	93/02/14
2520	Fix another problem in the MCI state machine caused when there
2521		were errors generated from the other end to commands
2522		other than RCPT.
2523
25246.19/6.4	93/02/14
2525	Include load average support for DEC Alpha running OSF/1.
2526	Fix multiple-response problem with errors in MAIL From: line.
2527	Fix SMTP reply codes for invalid address syntaxes (give 501;
2528		never give multiple error messages for a single message).
2529	Fix problem where a cached connection timeout rejects all
2530		later connects to that host.
2531	Fix incorrect error message if alias.c is compiled with DBM only.
2532	Additional changes to fix nested conditionals (from Bruce Lilly).
2533	Recover more gracefully from operating system failures, particularly
2534		NULL returns from openmailer (from Noritoshi Demizu,
2535		OMRON Corporation).
2536	Log forward, alias, and userdb expand operations on log level 10;
2537		concept suggested by P{r (Pell) Emanuelsson.
2538	Changes for HPUX 8.07 compatibility.
2539
25406.18/6.4	93/02/12
2541	Allow any config option to be set using an M4 define.
2542	Change UNAME compile flag to HASUNAME for IDA compatibility
2543		(besides, it's a better name).
2544	Note in README that on SunOS it must be linked -Bstatic.
2545	Fairly major change in domain.c to handle wildcard MX records
2546		more rationally.  NOTE: the "w" option (no wildcard MX
2547		records match local domain) has been eliminated.
2548	Fix some unset variable references pointed out by Bruce Lilly.
2549	Fix host name in process titles when using cached connection.
2550
25516.17/6.3	93/01/28
2552	Fix System 5 compatibility changes to be compatible with the rest
2553		of the world.
2554
25556.16/6.3	93/01/28
2556	Experimental fix for problem handling errors in the SMTP
2557		protocol in conjunction with connection caching.
2558	System 5 compatibility changes.
2559
25606.15/6.3	93/01/26
2561	Fix a bug that causes local mail delivered using -odq to be
2562		eliminated as a duplicate (because it matched the
2563		ctladdr, now passed in as a C line).  These changes
2564		are pretty tricky......
2565
25666.14/6.3	93/01/25
2567	Add debugging for some MCI errors.
2568
25696.13/6.3	93/01/22
2570	Fix -e compatibility flag to take a value.
2571	Fix a couple of minor compilation warnings on Sun cc.
2572	Improve error messages in a few cases to be more self-explanatory.
2573
25746.12/6.3	93/01/21
2575	Fix yet-another problem with environment handling, pointed out
2576		by Yoshitaka Tokugawa and Tom Ivar Helbekkmo.
2577	Some heuristics to try to limit resource exhaustion problems
2578		if a downstream host has been down for a long time.
2579	Fix problem with incorrect host name being logged in "Connection
2580		timed out" messages (from Tom Ivar Helbekkmo).
2581	Fix some ANSI C problems (from Takahiro Kanbe).
2582	Properly log message sender on returned mail during queue run.
2583	Count number of recipients properly.
2584	Fix a problem in yp map code.
2585	Diagnose "message timed out" (from Motonori Nakamura).
2586
25876.11/6.3	93/01/20
2588	Fix problem with address delimitor inside quotes.
2589	Define $k and $=k to be the UUCP name (from the uname call)
2590		based on code from Bruce Lilly.
2591
25926.10/6.2	93/01/18
2593	Implement arpatounix (largely code from Bruce Lilly).
2594	Log more info (suggested by John Myers).
2595	Allow nested $?...$|...$. (inspired by code from Bruce Lilly of
2596		Sony US).
2597	POSIX compatibility (noted by Keith Bostic).
2598	Handle SMTP MAIL command errors properly (urged by several people,
2599		notably John Myers of CMU).
2600	Do early diagnosis of .cf errors (notably referencing a RHS
2601		substitution that isn't on the LHS).
2602	Adjust checkpointing to better handle batched recipients, suggested
2603		by John Myers.
2604	Fix miscellaneous bugs.
2605	(config files:)  Implement MAIL_HUB for all local mail (to handle
2606		NFS-mounted directories) as urged by Tom Ivar Helbekkmo
2607		of the Norwegian School of Economics.
2608
26096.9/6.1 	93/01/13
2610	Environment handling simplification/bug fix -- child processes
2611		get a minimal, fixed environment.  This avoids different
2612		behaviour in queue runs.
2613	Handle commas inside comments properly.
2614	Properly limit large messages submitted in -obq mode.
2615
26166.8/6.1		93/01/10
2617	Check mtime of thaw file against .cf and sendmail binary, based on
2618		code from John Myers.
2619
26206.7/6.1		93/01/10
2621	MX piggybacking, based on code from John Myers@CMU.
2622	Allow checkcompat to return -1 to mean tempfail.
2623	Bug fix in m_mno computation.
2624
26256.6/6.1		93/01/09
2626	Tuning of queueing functions as recommended by John Gardiner Myers.
2627	Return mail headers (no body) on messages with negative precedence.
2628	Minor other bug fixes.
2629
26306.5/6.1		93/01/03
2631	Fix botch causing queued headers to have ?XX? prefixes.
2632
26336.4/6.1		93/01/02
2634	Changes to recognize special mailer types (e.g., file) early.
2635
26366.3/6.1		93/01/01
2637	Pass timeouts to sfgets.
2638	Check for control characters in addresses.
2639	Fixed deferred error reporting.
2640	Report duplicate aliases.
2641	Handle mixed case recursive aliases.
2642	Misc bug fixes.
2643
26446.2/6.1		92/12/30
2645	Put return-receipt-to on a conf.c flag (but don't set it).
2646	Fix minor syslog problem.
2647