1*66352Seric			SENDMAIL RELEASE NOTES
2*66352Seric	     @(#)RELEASE_NOTES	8.6.6.1 (Berkeley) 03/13/94
3*66352Seric
4*66352SericThis listing shows the version of the sendmail binary, the version
5*66352Sericof the sendmail configuration files, the date of release, and a
6*66352Sericsummary of the changes in that release.
7*66352Seric
8*66352Seric8.6.6/8.6.6	94/03/13
9*66352Seric	SECURITY: the ability to give files away on System V-based
10*66352Seric		systems proved dangerous -- don't run as the owner
11*66352Seric		of a :include: file on a system that allows giveaways.
12*66352Seric		Unfortunately, this also applies to determining a
13*66352Seric		valid shell.
14*66352Seric	IMPORTANT: Previous versions weren't expiring old connections
15*66352Seric		in the connection cache for a long time under some
16*66352Seric		circumstances.  This could result in resource exhaustion,
17*66352Seric		both at your end and at the other end.  This checks the
18*66352Seric		connections for timeouts much more frequently.  From
19*66352Seric		Doug Anderson of NCSC.
20*66352Seric	Fix a glitch that snuck in that caused programs to be run as
21*66352Seric		the sender instead of the recipient if the mail was
22*66352Seric		from a local user to another local user.  From
23*66352Seric		Motonori Nakamura of Kyoto University.
24*66352Seric	Fix "wildcard" on /etc/shell matching -- instead of looking
25*66352Seric		for "*", look for "/SENDMAIL/ANY/SHELL/".  From
26*66352Seric		Bryan Costales of ICSI.
27*66352Seric	Change the method used to declare the "statfs" availability;
28*66352Seric		instead of HASSTATFS and/or HASUSTAT with a ton of
29*66352Seric		tweaking in conf.c, there is a single #define called
30*66352Seric		SFS_TYPE which takes on one of six values (SFS_NONE
31*66352Seric		for no statfs availability, SFS_USTAT for the ustat(2)
32*66352Seric		syscall, SFS_4ARGS for a four argument statfs(2) call,
33*66352Seric		and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument
34*66352Seric		statfs(2) call with the declarations in <sys/vfs.h>,
35*66352Seric		<sys/mount.h>, or <sys/statfs.h> respectively).
36*66352Seric	Fix glitch in NetInfo support that could return garbage if
37*66352Seric		there was no "/locations/sendmail" property.  From
38*66352Seric		David Meyer of the University of Virginia.
39*66352Seric	Change HASFLOCK from defined/not-defined to a 0/1 definition
40*66352Seric		to allow Linux to turn it off even though it is a
41*66352Seric		BSD-like system.
42*66352Seric	Allow setting of "ident" timeout to zero to turn off the ident
43*66352Seric		protocol entirely.
44*66352Seric	Make 7-bit stripping local to a connection (instead of to a
45*66352Seric		mailer); this allows you to specify that SMTP is a
46*66352Seric		7-bit channel, but revert to 8-bit should it advertise
47*66352Seric		that it supports 8BITMIME.  You still have to specify
48*66352Seric		mailer flag 7 to get this stripping at all.
49*66352Seric	Improve makesendmail script so it handles more cases automatically.
50*66352Seric	Tighten up restrictions on taking ownership of :include: files
51*66352Seric		to avoid problems on systems that allow you to give away
52*66352Seric		files.
53*66352Seric	Fix a problem that made it impossible to rebuild the alias
54*66352Seric		file if it was on a read-only file system.  From
55*66352Seric		Harry Edmon of the University of Washington.
56*66352Seric	Improve MX randomization function.  From John Gardiner Myers
57*66352Seric		of CMU.
58*66352Seric	Fix a minor glitch causing a bogus message to be printed (used
59*66352Seric		%s instead of %d in a printf string for the line number)
60*66352Seric		when a bad queue file was read.  From Harry Edmon.
61*66352Seric	Allow $s to remain NULL on locally generated mail.  I'm not
62*66352Seric		sure this is necessary, but a lot of people have complained
63*66352Seric		about it, and there is a legitimate question as to whether
64*66352Seric		"localhost" is legal as an 822-style domain.
65*66352Seric	Fix a problem with very short line lengths (mailer L= flag) in
66*66352Seric		headers.  This causes a leading space to be added onto
67*66352Seric		continuation lines (including in the body!), and also
68*66352Seric		tries to wrap headers containing addresses (From:, To:,
69*66352Seric		etc) intelligently at the shorter line lengths.  Problem
70*66352Seric		Reported by Lars-Johan Liman of SUNET Operations Center.
71*66352Seric	Log the real user name when logging syserrs, since these can have
72*66352Seric		security implications.  Suggested by several people.
73*66352Seric	Fix address logging of cached connections -- it used to always
74*66352Seric		log the numeric address as zero.  This is a somewhat
75*66352Seric		bogus implementation in that it does an extra system
76*66352Seric		call, but it should be an inexpensive one.  Fix from
77*66352Seric		Motonori Nakamura.
78*66352Seric	Tighten up handling of short syslog buffers even more -- there
79*66352Seric		were cases where the outgoing relay= name was too long
80*66352Seric		to share a line with delay= and mailer= logging.
81*66352Seric	Limit the overhead on split envelopes to one open file descriptor
82*66352Seric		per envelope -- previously the overhead was three
83*66352Seric		descriptors.  This was in response to a problem reported
84*66352Seric		by P{r (Pell) Emanuelsson.
85*66352Seric	Fixes to better handle the case of unexpected connection closes;
86*66352Seric		this redirects the output to the transcript so the info
87*66352Seric		is not lost.  From Eric Wassenaar.
88*66352Seric	Fix potential string overrun if you macro evaluate a string that
89*66352Seric		has a naked $ at the end.  Problem noted by James Matheson
90*66352Seric		<jmrm@eng.cam.ac.uk>.
91*66352Seric	Make default error number on $#error messages 553 (``Requested
92*66352Seric		action not taken: mailbox name not allowed'') instead of
93*66352Seric		501 (``Syntax error in parameters or arguments'') to
94*66352Seric		avoid bogus "protocol error" messages.
95*66352Seric	Strip off any existing trailing dot on names during $[ ... $]
96*66352Seric		lookup.  This prevents it from ending up with two dots
97*66352Seric		on the end of dot terminated names.  From Wesley Craig
98*66352Seric		of the University of Michigan and Bryan Costales of ICSI.
99*66352Seric	Clean up file class reading so that the debugging information is
100*66352Seric		more informative.  It hadn't been using setclass, so you
101*66352Seric		didn't see the class items being added.
102*66352Seric	Avoid core dump if you are running a version of sendmail where
103*66352Seric		NIS is compiled in, and you specify an NIS map, but
104*66352Seric		NIS is not running.  Fix from John Oleynick of
105*66352Seric		Rutgers.
106*66352Seric	Diagnose bizarre case where res_search returns a failure value,
107*66352Seric		but sets h_errno to a success value.
108*66352Seric	Make sure that "too many hops" messages are considered important
109*66352Seric		enough to send an error to the Postmaster (that is, the
110*66352Seric		address specified in the P option).  This fix should
111*66352Seric		help problems that cause the df file to be left around
112*66352Seric		sometimes -- unfortunately, I can't seem to reproduce
113*66352Seric		the problem myself.
114*66352Seric	Avoid core dump (null pointer reference) on EXPN command; this
115*66352Seric		only occurred if your log level was set to 10 or higher
116*66352Seric		and the target account was an alias or had a .forward file.
117*66352Seric		Problem noted by Janne Himanka.
118*66352Seric	Avoid "denial of service" attacks by someone who is flooding your
119*66352Seric		SMTP port with bad commands by shutting the connection
120*66352Seric		after 25 bad commands are issued.  From Kyle Jones of
121*66352Seric		UUNET.
122*66352Seric	Fix core dump on error messages with very long "to" buffers;
123*66352Seric		fmtmsg overflows the message buffer.  Fixed by trimming
124*66352Seric		the to address to 203 characters.  Problem reported by
125*66352Seric		John Oleynick.
126*66352Seric	Fix configuration for HASFLOCK -- there were some spots where
127*66352Seric		a #ifndef was incorrectly #ifdef.  Pointed out by
128*66352Seric		George Baltz of the University of Maryland.
129*66352Seric	Fix a typo in savemail() that could cause the error message To:
130*66352Seric		lists to be incorrect in some places.  From Motonori
131*66352Seric		Nakamura.
132*66352Seric	Fix a glitch that can cause duplicate error messages on split
133*66352Seric		envelopes where an address on one of the lists has a
134*66352Seric		name server failure.  Fix from Voradesh Yenbut of the
135*66352Seric		University of Washington.
136*66352Seric	Fix possible bogus pointer reference on ESMTP parameters that
137*66352Seric		don't have an ``=value'' part.
138*66352Seric	CNAME loops caused an error message to be generated, but also
139*66352Seric		re-queued the message.  Changed to just re-queue the
140*66352Seric		message (it's really hard to just bounce it because
141*66352Seric		of the wierd way the name server works in the presence
142*66352Seric		of CNAME loops).  Problem noted by James M.R.Matheson
143*66352Seric		of Cambridge University.
144*66352Seric	Avoid giving ``warning: foo owned process doing -bs'' messages
145*66352Seric		if they use ``MAIL FROM:<foo>'' where foo is their true
146*66352Seric		user name.  Suggested by Andreas Stolcke of ICSI.
147*66352Seric	Change the NAMED_BIND compile flag to be a 0/1 flag so you can
148*66352Seric		override it easily in the Makefile -- that is, you can
149*66352Seric		turn it off using -DNAMED_BIND=0.
150*66352Seric	If a gethostbyname(...) of an address with a trailing dot fails,
151*66352Seric		try it without the trailing dot.  This is because if
152*66352Seric		you have a version of gethostbyname() that falls back
153*66352Seric		to NIS or the /etc/hosts file it will fail to find
154*66352Seric		perfectly reasonable names that just don't happen to
155*66352Seric		be dot terminated in the hosts file.  You don't want to
156*66352Seric		strip the dot first though because we're trying to ensure
157*66352Seric		that country names that match one of your subdomains get
158*66352Seric		a chance.
159*66352Seric	PRALIASES: fix bogus output on non-null-terminated strings.
160*66352Seric		From Bill Gianopoulos of Raytheon.
161*66352Seric	CONFIG: Avoid rewriting anything that matches $w to be $j.
162*66352Seric		This was in code intended to only catch the self-literal
163*66352Seric		address (that is, [1.2.3.4], where 1.2.3.4 is your
164*66352Seric		IP address), but the code was broken.  However, it will
165*66352Seric		still do this if $M is defined; this is necessary to
166*66352Seric		get client configurations to work (sigh).  Note that this
167*66352Seric		means that $M overrides :mailname entries in the user
168*66352Seric		database!  Problem noted by Paul Southworth.
169*66352Seric	CONFIG: Fix definition of Solaris help file location.  From
170*66352Seric		Steve Cliffe <steve@gorgon.cs.uow.edu.au>.
171*66352Seric	CONFIG: Fix bug that broke news.group.USENET mappings.
172*66352Seric	CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX,
173*66352Seric		and USENET_MAILER_MAX to tweak the maximum message
174*66352Seric		size for various mailers.
175*66352Seric	CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0]
176*66352Seric		instead of assuming that it is "inews" for consistency
177*66352Seric		with other mailers.  From Michael Corrigan of UC San Diego.
178*66352Seric	CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB,
179*66352Seric		qualify the address in the SMTP envelope as user@{relay|hub}
180*66352Seric		instead of user@$j.  From Bill Wisner of The Well.
181*66352Seric	CONFIG: Fix route-addr syntax in nullrelay configuration set.
182*66352Seric	CONFIG: Don't turn off case mapping of user names in the local
183*66352Seric		mailer for IRIX.  This was different than most every other
184*66352Seric		system.
185*66352Seric	CONFIG: Avoid infinite loops on certainly list:; syntaxes in
186*66352Seric		envelope.  Noted by Thierry Besancon
187*66352Seric		<besancon@excalibur.ens.fr>.
188*66352Seric	CONFIG: Don't include -z by default on uux line -- most systems
189*66352Seric		don't want it set by default.  Pointed out by Philippe
190*66352Seric		Michel of Thomson CSF.
191*66352Seric	CONFIG: Fix some bugs with mailertables -- for example, if your
192*66352Seric		host name was foo.bar.ray.com and you matched against
193*66352Seric		".ray.com", the old implementation bound %1 to "bar"
194*66352Seric		instead of "foo.bar".  Also, allow "." in the mailertable
195*66352Seric		to match anything -- essentially, take over SMART_HOST.
196*66352Seric		This also moves matching of explicit local host names
197*66352Seric		before the mailertable so they don't have to be special
198*66352Seric		cased in the mailertable data.  Reported by Bill
199*66352Seric		Gianopoulos of Raytheon; the fix for the %1 binding
200*66352Seric		problem was contributed by Nicholas Comanos of the
201*66352Seric		University of Sydney.
202*66352Seric	CONFIG: Don't include "root" in class $=L (users to deliver
203*66352Seric		locally, even if a hub or relay exists) by default.
204*66352Seric		This is because of the known bug where definition of
205*66352Seric		both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore
206*66352Seric		both and deliver into the local mailbox.
207*66352Seric	CONFIG: Move up bitdomain and uudomain handling so that they
208*66352Seric		are done before .UUCP class matching; uudomain was
209*66352Seric		reported as ineffective before.  This also frees up
210*66352Seric		diversion 8 for future use.  Problem reported by Kimmo
211*66352Seric		Suominen.
212*66352Seric	CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4])
213*66352Seric		into host names.  As pointed out by Jonathan Kamens,
214*66352Seric		these are often used because either the forward or reverse
215*66352Seric		mapping is broken; this translation makes it broken again.
216*66352Seric	DOC: Clarify $@ and $: in the Install & Op Guide.  From Kimmo
217*66352Seric		Suominen.
218*66352Seric	Portability fixes:
219*66352Seric		Unicos from David L. Kensiski of Sterling Sofware.
220*66352Seric		DomainOS from Don Lewis of Silicon Systems.
221*66352Seric		GNU m4 1.0.3 from Karst Koymans of Utrecht University.
222*66352Seric		Convex from Kimmo Suominen <kim@tac.nyc.ny.us>.
223*66352Seric		NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>.
224*66352Seric		BSD/386 from Tony Sanders of BSDI.
225*66352Seric		Apollo from Eric Wassenaar.
226*66352Seric		DGUX from Doug Anderson.
227*66352Seric		Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent.
228*66352Seric	NEW FILES:
229*66352Seric		src/Makefile.DomainOS
230*66352Seric		src/Makefile.PTX
231*66352Seric		src/Makefile.SunOS.5.1
232*66352Seric		src/Makefile.SunOS.5.2
233*66352Seric		src/Makefile.SunOS.5.x
234*66352Seric		src/mailq.1
235*66352Seric		cf/ostype/domainos.m4
236*66352Seric		doc/op/Makefile
237*66352Seric		doc/intro/Makefile
238*66352Seric		doc/usenix/Makefile
239*66352Seric
24066348Seric8.6.5/8.6.5	94/01/13
24166348Seric	Security fix:  /.forward could be owned by anyone (the test
24266348Seric		to allow root to own any file was backwards).  From
24366348Seric		Bob Campbell at U.C. Berkeley.
24466348Seric	Security fix: group ids were not completely set when programs
24566348Seric		were invoked.  This caused programs to have group
24666348Seric		permissions they should not have had (usually group
24766348Seric		daemon instead of their own group).  In particular,
24866348Seric		Perl scripts would refuse to run.
24966348Seric	Security: check to make sure files that are written are not
25066348Seric		symbolic links (at least under some circumstances).
25166348Seric		Although this does not respond to a specific known
25266348Seric		attack, it's just a good idea.  Suggested by
25366348Seric		Christian Wettergren.
25466348Seric	Security fix: if a user had an NFS mounted home directory on
25566348Seric		a system with a restricted shell listed in their
25666348Seric		/etc/passwd entry, they could still execute any
25766348Seric		program by putting that in their .forward file.
25866348Seric		This fix prevents that by insisting that their shell
25966348Seric		appear in /etc/shells before allowing a .forward to
26066348Seric		execute a program or write a file.  You can disable
26166348Seric		this by putting "*" in /etc/shells.  It also won't
26266348Seric		permit world-writable :include: files to reference
26366348Seric		programs or files (there's no way to disable this).
26466348Seric		These behaviours are only one level deep -- for
26566348Seric		example, it is legal for a world-writable :include:
26666348Seric		file to reference an alias that writes a file, on
26766348Seric		the assumption that the alias file is well controlled.
26866348Seric	Security fix: root was not treated suspiciously enough when
26966348Seric		looking into subdirectories.  This would potentially
27066348Seric		allow a cracker to examine files that were publically
27166348Seric		readable but in a non-publically searchable directory.
27266348Seric	Fix a problem that causes an error on QUIT on a cached
27366348Seric		connection to create problems on the current job.
27466348Seric		These are typically unrelated, so errors occur in
27566348Seric		the wrong place.
27666348Seric	Reset CurrentLA in sendall() -- this makes sendmail queue
27766348Seric		runs more responsive to load average, and fixes a
27866348Seric		problem that ignored the load average in locally
27966348Seric		generated mail.  From Eric Wassenaar.
28066348Seric	Fix possible core dump on aliases with null LHS.  From
28166348Seric		John Orthoefer of BB&N.
28266348Seric	Revert to using flock() whenever possible -- there are just
28366348Seric		too many bugs in fcntl() locking, particularly over
28466348Seric		NFS, that cause sendmail to fail in perverse ways.
28566348Seric	Fix a bug that causes the connection cache to get confused
28666348Seric		when sending error messages.  This resulted in
28766348Seric		"unexpected close" messages.  It should fix itself
28866348Seric		on the following queue run.  Problem noted by
28966348Seric		Liudvikas Bukys of Rochester University.
29066348Seric	Include $k in $=k as documented in the Install & Op Guide.
29166348Seric		This seems odd, but it was documented....  From
29266348Seric		Michael Corrigan of UCSD.
29366348Seric	Fix problem that caused :include:s from alias files to be
29466348Seric		forced to be owned by root instead of daemon
29566348Seric		(actually DefUid).  From Tim Irvin.
29666348Seric	Diagnose unrecognized I option values -- from Mortin Forssen
29766348Seric		of the Chalmers University of Technology.
29866348Seric	Make "error" mailer work consistently when there is no error
29966348Seric		code associated with it -- previously it returned OK
30066348Seric		even though there was a real problem.  Now it assumes
30166348Seric		EX_UNAVAILABLE.
30266348Seric	Fix bug that caused the last header line of messages that had
30366348Seric		no body and which were terminated with EOF instead of
30466348Seric		"." to be discarded.  Problem noted by Liudvikas Bukys.
30566348Seric	Fix core dump on SMTP mail to programs that failed -- it tried
30666348Seric		to go to a "next MX host" when none existed, causing
30766348Seric		a core dump.  From der Mouse at McGill University.
30866348Seric	Change IDENTPROTO from a defined/not defined to a 0/1 switch;
30966348Seric		this makes it easier to turn it off (using
31066348Seric		-DIDENTPROTO=0 in the Makefile).  From der Mouse.
31166348Seric	Fix YP_MASTER_NAME store to use the unupdated result of
31266348Seric		gethostname() (instead of myhostname(), which tries
31366348Seric		to fully qualify the name) to be consistent with
31466348Seric		SunOS.  If your hostname is unqualified, this fixes
31566348Seric		transfers to slave servers.  Bug noted by Keith
31666348Seric		McMillan of Ameritech Services, Inc.
31766348Seric	Fix Ultrix problem: gethostbyname() can return a very large
31866348Seric		(> 500) h_length field, which causes the sockaddr
31966348Seric		to be trashed.  Use the size of the sockaddr instead.
32066348Seric		Fix from Bob Manson of Ohio State.
32166348Seric	Don't assume "-a." on host lookups if NAMED_BIND is not
32266348Seric		defined -- this confuses gethostbyname on hosts
32366348Seric		file lookups, which doesn't understand the trailing
32466348Seric		dot convention.
32566348Seric	Log SMTP server subprocesses that die with a signal instead
32666348Seric		of from a clean exit.
32766348Seric	If you don't have option "I" set, don't assume that a DNS
32866348Seric		"host unknown" message is authoritative -- it
32966348Seric		might still be found in /etc/hosts.
33066348Seric	Fix a problem that would cause Deferred: messages to be sent
33166348Seric		as the subject of an error message, even though the
33266348Seric		actual cause of a message was more severe than that.
33366348Seric		Problem noted by Chris Seabrook of OSSI.
33466348Seric	Fix race condition in DBM alias file locking.  From Kyle
33566348Seric		Jones of UUNET.
33666348Seric	Limit delivery syslog line length to avoid bugs in some
33766348Seric		versions of syslog(3).  This adds a new compile time
33866348Seric		variable SYSLOG_BUFSIZE.  From Jay Plett of Princeton
33966348Seric		University, which is in turn derived from IDA.
34066348Seric	Fix quotes inside of comments in addresses -- previously
34166348Seric		it insisted that they be balanced, but the 822 spec
34266348Seric		says that they should be ignored.
34366348Seric	Dump open file state to syslog upon receiving SIGUSR1 (for
34466348Seric		debugging).  This also evaluates ruleset 89, if set
34566348Seric		(with the null input), and logs the result.  This
34666348Seric		should be used sparingly, since the rewrite process
34766348Seric		is not reentrant.
34866348Seric	Change -qI, -qR, and -qS flags to be case-insensitive as
34966348Seric		documented in the Bat Book.
35066348Seric	If the mailer returned EX_IOERR or EX_OSERR, sendmail did not
35166348Seric		return an error message and did not requeue the message.
35266348Seric		Fix based on code from Roland Dirlewanger of
35366348Seric		Reseau Regional Aquarel, Bordeaux, France.
35466348Seric	Fix a problem that caused a seg fault if you got a 421 error
35566348Seric		code during some parts of connection initialization.
35666348Seric		I've only seen this when talking to buggy mailers on
35766348Seric		the other end, but it shouldn't give a seg fault in
35866348Seric		any case.  From Amir Plivatsky.
35966348Seric	Fix core dump caused by a ruleset call that returns null.
36066348Seric		Fix from Bryan Costales of ICSI.
36166348Seric	Full-Name: field was being ignored.  Fix from Motonori Nakamura
36266348Seric		of Kyoto University.
36366348Seric	Fix a possible problem with very long input lines in setproctitle.
36466348Seric		From P{r Emanuelsson.
36566348Seric	Avoid putting "This is a warning message" out on return receipts.
36666348Seric		Suggested by Douglas Anderson.
36766348Seric	Detect loops caused by recursive ruleset calls.  Suggested by
36866348Seric		Bryan Costales.
36966348Seric	Initialize non-alias maps during alias rebuilds -- they may be
37066348Seric		needed for parsing.  Problem noted by Douglas Anderson.
37166348Seric	Log sender address even if no message was collected in SMTP
37266348Seric		(e.g., if all RCPTs failed).  Suggested by Motonori
37366348Seric		Nakamura.
37466348Seric	Don't reflect the owner-list contents into the envelope sender
37566348Seric		address if the value contains ", :, /, or | (to avoid
37666348Seric		illegal addresses appearing there).
37766348Seric	Efficiency hack for toktype macro -- from Craig Partridge of
37866348Seric		BB&N.
37966348Seric	Clean up DNS error printing so that a host name is always
38066348Seric		included.
38166348Seric	Remember to set $i during queue runs.  Reported by Stephen
38266348Seric		Campbell of Dartmouth University.
38366348Seric	If ${HOSTALIASES} is set, use it during canonification so that
38466348Seric		headers are properly mapped.  Reported by Anne Bennett
38566348Seric		of Concordia University.
38666348Seric	Avoid printing misleading error message if SMTP mailer (not
38766348Seric		using [IPC]) should die on a core dump.
38866348Seric	Avoid incorrect diagnosis of "file 1 closed" when it is caused
38966348Seric		by the other end closing the connection.  From
39066348Seric		Dave Morrison of Oracle.
39166348Seric	Improve several of the error messages printed by "mailq"
39266348Seric		to include a host name or other useful information.
39366348Seric	Add NetInfo preliminary support for NeXT systems.  From Vince
39466348Seric		DeMarco.
39566348Seric	Fix a glitch that sometimes caused :include:s that pointed to
39666348Seric		NFS filesystems that were down to give an "aliasing/
39766348Seric		forwarding loop broken" message instead of queueing
39866348Seric		the message for retry.  Noted by William C Fenner of
39966348Seric		the NRL Connection Machine Facility.
40066348Seric	Fix a problem that could cause a core dump if the input sequence
40166348Seric		had (or somehow acquired) a \231 character.
40266348Seric	Make sure that route-addrs always have <angle brackets> around
40366348Seric		them in non-SMTP envelopes (SMTP envelopes already do
40466348Seric		this properly).
40566348Seric	Avoid wierd headers on unbalanced punctuation of the form:
40666348Seric		``Joe User <user)'' -- this caused reference to the
40766348Seric		null macro.  Fix from Rick McCarty of IO.COM.
40866348Seric	Fix a problem that caused an alias "user: user@local.host" to
40966348Seric		not have the QNOTREMOTE bit set; this caused configs
41066348Seric		to act as if FEATURE(notsticky) was defined even when
41166348Seric		it was not.  The effect of the problem was to make it
41266348Seric		very hard to to set up satellite sites that had a few
41366348Seric		local accounts, with everything else forwarded to a
41466348Seric		corporate hub.  Reported by Detlef Drewanz of the
41566348Seric		University of Rostock and Mark Frost of NCD.
41666348Seric	Change queuing to not call rulesets 3, {1 or 2}, 4 on header
41766348Seric		addresses.  This is more efficient (fewer name server
41866348Seric		calls) and fixes certain unusual configurations, such
41966348Seric		as those that have ruleset 4 do something that is
42066348Seric		non-idempotent unless a mailer-specific ruleset did
42166348Seric		something else.  Problem reported by Brian J. Coan
42266348Seric		of the Institute for Global Communications.
42366348Seric	Fix the "obsolete argument" routine in main to better understand
42466348Seric		new arguments.  For example, if you used ``sendmail
42566348Seric		-C config -v -q'' it would choke on the -q because
42666348Seric		the -C would stop looking for old-format arguments.
42766348Seric	Fix the code that was intended to allow two users to forward their
42866348Seric		mail to the same program and have them appear unique.
42966348Seric	Portability fixes for:
43066348Seric		SCO UNIX from Murray Kucherawy.
43166348Seric		SCO Open Server 3.2v4 from Philippe Brand.
43266348Seric		System V Release 4 from Rick Ellis and others.
43366348Seric		OSF/1 from Steve Campbell.
43466348Seric		DG/UX from Ben Mesander of the USGS and Bryan Curnutt
43566348Seric			of Stoner Associates.
43666348Seric		Motorola SysV88 from Kevin Johnson of Motorola.
43766348Seric		Solaris 2.3 from Casper H.S. Dik of the University
43866348Seric			of Amsterdam and John Caruso of University
43966348Seric			of Maryland.
44066348Seric		FreeBSD from Ollivier Robert.
44166348Seric		NetBSD from Adam Glass.
44266348Seric		TitanOS from Kate Hedstrom of Rutgers University.
44366348Seric		Irix from Bryan Curnutt.
44466348Seric		Dynix from Jim Davis of the University of Arizona.
44566348Seric		RISC/os.
44666348Seric		Linux from John Kennedy of California State University
44766348Seric			at Chico.
44866348Seric		Solaris 2.x from Tony Boner of the U.S. Air Force.
44966348Seric		NEXTSTEP 3.x from Vince DeMarco.
45066348Seric		HP-UX from various people.  NOTA BENE:  the location
45166348Seric			of the config file has moved to /usr/lib
45266348Seric			to match the HP-UX version of sendmail.
45366348Seric	CONFIG: Don't do any recipient rewriting on relay mailer;
45466348Seric		since this is intended only for internal use, the
45566348Seric		usual RFC 821/822/1123 rules can be relaxed.  The
45666348Seric		main point of this is to avoid munging (ugh) UUCP
45766348Seric		addresses when relaying internally.
45866348Seric	CONFIG: fix typo in mailer/uucp.m4 that mutilates list:;
45966348Seric		syntax addresses delivered via UUCP.  Solution
46066348Seric		provided by Peter Wemm.
46166348Seric	CONFIG: fix thumb-fumble in default UUCP relaying in ruleset
46266348Seric		zero; it caused double @ signs in addresses.  From
46366348Seric		Irving Reid of the University of Toronto.
46466348Seric	CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1
46566348Seric		from Markku Toijala of ICL Personal Systems Oy.
46666348Seric	CONFIG: Add trailing "." on pseudo-domains for consistency;
46766348Seric		this fixes a problem (noted by Al Whaley of Sunnyside)
46866348Seric		that made it hard to recognize your own pseudodomain
46966348Seric		names.
47066348Seric	CONFIG: catch "@host" syntax errors (i.e., null local-parts)
47166348Seric		rather than letting them get "local configuration
47266348Seric		error"s.  Problem noted by John Gardiner Myers.
47366348Seric	CONFIG: add uucp-uudom mailer variant, based on code posted
47466348Seric		by Spider Boardman <spider@Orb.Nashua.NH.US>; this
47566348Seric		has uucp-dom semantics but old UUCP syntax.  This
47666348Seric		also permits "uucp-old" as an alias for "uucp" and
47766348Seric		"uucp-new" as a synonym for "suucp" for consistency.
47866348Seric	CONFIG: add POP mailer support (from Kimmo Suominen
47966348Seric		<kim@grendel.lut.fi>).
48066348Seric	CONFIG: drop CSNET_RELAY support -- CSNET is long gone.
48166348Seric	CONFIG: fix bug caused with domain literal addresses (e.g.,
48266348Seric		``[128.32.131.12]'') when FEATURE(allmasquerade)
48366348Seric		was set; it would get an additional @masquerade.host
48466348Seric		added to the address.  Problem noted by Peter Wan
48566348Seric		of Georgia Tech.
48666348Seric	CONFIG: make sure that the local UUCP name is in $=w.  From
48766348Seric		Jim Murray of Stratus.
48866348Seric	CONFIG: changes to UUCP rewriting to simulate IDA-style "V"
48966348Seric		mailer flag.  Briefly, if you are sending to host
49066348Seric		"foo", then it rewrites "foo!...!baz" to "...!baz",
49166348Seric		"foo!baz" remains "foo!baz", and anything else has
49266348Seric		the local name prepended.
49366348Seric	CONFIG: portability fixes for HP-UX.
49466348Seric	DOC: several minor problems fixed in the Install & Op Guide.
49566348Seric	MAKEMAP: fix core dump problem on lines that are too long or
49666348Seric		which lack newline.  From Mark Delany.
49766348Seric	MAILSTATS: print sums of columns (total messages & kbytes
49866348Seric		in and out of the system).  From Tom Ferrin of UC
49966348Seric		San Francisco Computer Graphics Lab.
50066348Seric	SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES:
50166348Seric		On HP-UX, /etc/sendmail.cf has been moved to
50266348Seric			/usr/lib/sendmail.cf to match HP sendmail.
50366348Seric		Permissions have been tightened up on world-writable
50466348Seric			:include: files and accounts that have shells
50566348Seric			that are not listed in /etc/shells.  This may
50666348Seric			cause some .forward files that have worked
50766348Seric			before to start failing.
50866348Seric		SIGUSR1 dumps some state to the log.
50966348Seric	NEW FILES:
51066348Seric		src/Makefile.DGUX
51166348Seric		src/Makefile.Dynix
51266348Seric		src/Makefile.FreeBSD
51366348Seric		src/Makefile.Mach386
51466348Seric		src/Makefile.NetBSD
51566348Seric		src/Makefile.RISCos
51666348Seric		src/Makefile.SCO
51766348Seric		src/Makefile.SVR4
51866348Seric		src/Makefile.Titan
51966348Seric		cf/mailer/pop.m4
52066348Seric		cf/ostype/bsdi1.0.m4
52166348Seric		cf/ostype/dgux.m4
52266348Seric		cf/ostype/dynix3.2.m4
52366348Seric		cf/ostype/sco3.2.m4
52466348Seric		makemap/Makefile.dist
52566348Seric		praliases/Makefile.dist
52666348Seric
52766347Seric8.6.4/8.6.4	93/10/31
52866347Seric	Repair core-dump problem (write to read-only memory segment)
52966347Seric		if you fall back to the return-to-Postmaster case in
53066347Seric		savemail.  Problem reported by Richard Liu.
53166347Seric	Immediately diagnose bogus sender addresses in SMTP.  This
53266347Seric		makes quite certain that crackers can't use this
53366347Seric		class of attack.
53466347Seric	Reliability Fix:  check return value from fclose() and fsync()
53566347Seric		in a few critical places.
53666347Seric	Minor problem in initsys() that reversed a condition for
53766347Seric		redirecting the output channel on queue runs.  It's
53866347Seric		not clear this code even does anything.  From Eric
53966347Seric		Wassenaar of the Dutch National Institute for Nuclear
54066347Seric		and High-Energy Physics.
54166347Seric	Fix some problems that caused queue runs to do "too much work",
54266347Seric		such as double-reading the Errors-To: header.  From
54366347Seric		Eric Wassenaar.
54466347Seric	Error messages on writing the temporary file (including the
54566347Seric		data file) were getting suppressed in SMTP -- this
54666347Seric		fix causes them to be properly reported.  From Eric
54766347Seric		Wassenaar.
54866347Seric	Some changes to support AF_UNIX sockets -- this will only
54966347Seric		really become relevant in the next release, but some
55066347Seric		people need it for local patches.  From Michael
55166347Seric		Corrigan of UC San Diego.
55266347Seric	Use dynamically allocated memory (instead of static buffers)
55366347Seric		for macros defined in initsys() and settime(); since
55466347Seric		these can have different values depending on which
55566347Seric		envelope they are in.  From Eric Wassenaar.
55666347Seric	Improve logging to show ctladdr on to= logging; this tells you
55766347Seric		what uid/gid processes ran as.
55866347Seric	Fix a problem that caused error messages to be discarded if
55966347Seric		the sender address was unparseable for some reason;
56066347Seric		this was supposed to fall back to the "return to
56166347Seric		postmaster" case.
56266347Seric	Improve aliaswait backoff algorithm.
56366347Seric	Portability patches for Linux (8.6.3 required another header
56466347Seric		file) (from Karl London) and SCO UNIX.
56566347Seric	CONFIG: patch prog mailer to not strip host name off of envelope
56666347Seric		addresses (so that it matches local again).  From
56766347Seric		Christopher Davis.
56866347Seric	CONFIG: change uucp-dom mailer so that "<>" translates to $n;
56966347Seric		this prevents uux from seeing lines with null names like
57066347Seric		``From   Sat Oct 30 14:55:31 1993''.  From Motonori
57166347Seric		Nakamura of Kyoto University.
57266347Seric	CONFIG: handle <list:;> syntax correctly.  This isn't legal, but
57366347Seric		it shouldn't fail miserably.  From Motonori Nakamura.
57466347Seric
57566346Seric8.6.3/8.6.3	93/10/24
57666346Seric	IMPORTANT FIX: Fix several problems that caused open files to
57766346Seric		be "lost" during queue runs; this overflowed the open
57866346Seric		file table on large runs.  An assumption that fdopen
57966346Seric		always succeeds sometimes resulted in core dumps when
58066346Seric		this happens; sometimes the message is delivered twice,
58166346Seric		sometimes (probably) infinite times.  This problem in
58266346Seric		various form was reported by P{r (Pell) Emanuelsson and
58366346Seric		Robert Campbell of U.C. Berkeley.
58466346Seric	Special diagnosis of EMFILE error conditions -- it now prints
58566346Seric		the known open file descriptors so you can figure out
58666346Seric		what is consuming so much resources.
58766346Seric	Fix a couple of problems caused by early address parsing
58866346Seric		errors -- one caused it to return a "this is only a
58966346Seric		warning" when it really wasn't, and the other started
59066346Seric		parsing through a random pointer.  The first was
59166346Seric		noted by Eric Wassenaar.
59266346Seric	Fix an infinite loop problem caused by null components in the
59366346Seric		host signature.  Problem noted by Jan Sorensen.
59466346Seric	Be sure to reset the "current date" when sending an error
59566346Seric		message -- PostMasterCopy messages were being sent
59666346Seric		with an old Date: header.
59766346Seric	Fix a problem that caused duplicated mail when sendmail was
59866346Seric		(1) compiled without HASFLOCK, (2) you are sending to
59966346Seric		an alias that has an owner-* alias, (3) you execute
60066346Seric		sendmail with -t flag, (4) you run in -odb mode, and
60166346Seric		(5) the sender specifies both the alias name and
60266346Seric		another alias [i.e., the envelope is split], then
60366346Seric		duplicate messages are sent.  The problem description
60466346Seric		and one-line fix are from Motonori Nakamura of Kyoto
60566346Seric		University.
60666346Seric	Avoid a problem that causes error messages to be discarded
60766346Seric		in some cases -- this was the result of a "fix" to
60866346Seric		avoid duplicate error messages, but two are better
60966346Seric		than zero.  Reported by Tim Rylance.
61066346Seric	Fix a minor botch in checkfd012() -- fix from Dave Hill of
61166346Seric		Computervision R&D Ltd.
61266346Seric	Remove "X-Authentication-Warning: <user> set sender to <address>
61366346Seric		using -f" entirely -- it is far too eager to include
61466346Seric		this, and it is confusing folks.  I'll try to make it
61566346Seric		work "right" in 8.7.  Problem noted by Yoshitaka
61666346Seric		Tokugawa of dit Co., Ltd.
61766346Seric	Fix a race condition with the errno value in tick() and
61866346Seric		reapchild() -- this caused occasional misdiagnosis
61966346Seric		of problems.  Kyle Jones of UUNET helped this along.
62066346Seric	Repair rule loop-detection code.  From Michael Corrigan of
62166346Seric		U.C. San Diego.
62266346Seric	Fix a problem that caused sender domain addition (C mailer
62366346Seric		flag to be ignored if you use -odq or use -odb with
62466346Seric		a high load average.  Problem reported by Jim Murray
62566346Seric		of Stratus.
62666346Seric	Fix ident protocol on multi-homed machines.  It was not
62766346Seric		always using the correct interface.  Fix from J.R.
62866346Seric		Oldroyd of Opal.
62966346Seric	Previously, sendmail assumed that any SMTP greeting message
63066346Seric		that wasn't 2xx was a temporary failure -- it should
63166346Seric		only take 4xx as a temporary failure, and return a
63266346Seric		solid error message on anything else -- for example,
63366346Seric		to allow you to reject connections on a workstation
63466346Seric		that is MXed to a mail server.
63566346Seric	Portability enhancements for 386BSD/FreeBSD/NetBSD from
63666346Seric		Ollivier Robert.
63766346Seric	CONFIG: FEATURE(always_add_domain) didn't always add the domain;
63866346Seric		in particular, on local mail it modified the header sender
63966346Seric		but not the header recipient address(es).  Reported by
64066346Seric		Jeffrey Honig of Cornell University.  Also, strip
64166346Seric		any host from envelope recipient address(es), since
64266346Seric		local mailers don't understand host names -- this is
64366346Seric		to help mailertable entries.  From Christopher Davis.
64466346Seric	CONFIG: masquerading didn't apply to addresses that already
64566346Seric		had a domain.  This change replaces a local hostname
64666346Seric		by the masquerade name in the SMTP mailer (previously
64766346Seric		it only added the masquerade name if it didn't already
64866346Seric		have a domain name).  Several people complained about
64966346Seric		this.
65066346Seric
65166345Seric8.6.2/8.6.2	93/10/15
65266345Seric	Put a "successful delivery" message in the transcript for
65366345Seric		addresses that get return-receipts.
65466345Seric	Put a prominent "this is only a warning" message in warning
65566345Seric		messages -- some people don't read carefully enough
65666345Seric		and end up sending the message several times.
65766345Seric	Include reason for temporary failure in the "warning" return
65866345Seric		message.  Currently, it just says "cannot send for
65966345Seric		four hours".
66066345Seric	Fix the "Original message received" time generated for
66166345Seric		returntosender messages.  It was previously listed as
66266345Seric		the current time.  Bug reported by Eric Hagberg of
66366345Seric		Cornell University Medical College.
66466345Seric	If there is an error when writing the body of a message,
66566345Seric		don't send the trailing dot and wait for a response
66666345Seric		in sender SMTP, as this could cause the connection to
66766345Seric		hang up under some bizarre circumstances.  From Eric
66866345Seric		Wassenaar.
66966345Seric	Fix some server SMTP synchronization problems caused when
67066345Seric		connections fail during message collection.  From
67166345Seric		Eric Wassenaar.
67266345Seric	Fix a problem that can cause srvrsmtp to reject mail if the
67366345Seric		name server is down -- it accepts the RCPT but rejects
67466345Seric		the DATA command.  Problem reported by Jim Murray of
67566345Seric		Stratus.
67666345Seric	Fix a problem that can cause core dumps if the config file
67766345Seric		incorrectly resolves to a null hostname.  Reported by
67866345Seric		Allan Johannesen of WPI.
67966345Seric	Non-root use of -C flag, dangerous -f flags, and use of -oQ
68066345Seric		by non-root users were not put into
68166345Seric		X-Authentication-Warning:s as intended because the
68266345Seric		config file hadn't set the PrivacyFlags yet.  Fix
68366345Seric		from Sven-Ove Westberg of the University of Lulea.
68466345Seric	Under very odd circumstances, the alias file rebuild code
68566345Seric		could get confused as to whether a database was
68666345Seric		open or not.
68766345Seric	Check "vendor code" on the end of V lines -- this is
68866345Seric		intended to provide a hook for vendor-specific
68966345Seric		configuration syntax.  (This is a "new feature",
69066345Seric		but I've made an exception to my rule in a belief
69166345Seric		that this is a highly exceptional case.)
69266345Seric	Portability fixes for DG/UX (from Douglas Anderson of NCSC),
69366345Seric		SCO Unix (from Murray Kucherawy), A/UX, and OSF/1
69466345Seric		(from Jon Forrest of UC Berkeley)
69566345Seric	CONFIG: fix ``mailer:host'' form of UUCP relay naming.
69666345Seric
69766344Seric8.6.1/8.6	93/10/08
69866344Seric	Portability fixes for A/UX and Encore UMAX V.
69966344Seric	Fix error message handling -- if you had a name server down
70066344Seric		causing an error during parsing, that message was never
70166344Seric		propogated to the queue file.
70266344Seric
70366343Seric8.6/8.6		93/10/05
70466343Seric	Configuration cleanup: make it easier to undo IDENTPROTO in
70566343Seric		conf.h (other systems have the same bug).
70666343Seric	If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume
70766343Seric		getdtablesize() instead of sysconf(); a disturbingly
70866343Seric		large number of systems defined _SC_OPEN_MAX in the
70966343Seric		header files but don't have the syscall.
71066343Seric	Another patch to really truly ignore MX records in getcanonname
71166343Seric		if trymx == FALSE.
71266343Seric	Fix problem that caused the "250 IAA25499 Message accepted for
71366343Seric		delivery" message to be omitted if there was an error
71466343Seric		in the header of the message (e.g., a bad Errors-To:
71566343Seric		line).  Pointed out by Michael Corrigan of UCSD.
71666343Seric	Announce name of host we are chatting when we get errors; this
71766343Seric		is an IDA-ism suggested by Christophe Wolfhugel.
71866343Seric	Portability fixes for Alpha OSF/1 (from Anthony Baxter of the
71966343Seric		Australian Artificial Intelligence Institute), SCO Unix
72066343Seric		(from Murray Kucherawy of Hookup Communication Corp.),
72166343Seric		NeXT (from Vince DeMarco and myself), Linux (from
72266343Seric		Karl London <karl@borg.demon.co.uk>), BSDI (from
72366343Seric		Christophe Wolfhugel, and SVR4 on Dell (from Kimmo
72466343Seric		Suominen), AUX 3.0 on Macintosh, and ANSI C compilers.
72566343Seric	Some changes to get around gcc optimizer bugs.  From Takahiro
72666343Seric		Kanbe.
72766343Seric	Fix error recovery in queueup if another tf file of the same
72866343Seric		name already exists.  Problem stumbled over by Bill
72966343Seric		Wisner of The Well.
73066343Seric	Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes.
73166343Seric		Problem noted by Keith McMillan of Ameritech Services.
73266343Seric	Deal with group permissions properly when opening .forward and
73366343Seric		:include: files.  This relaxes the 8.1C restrictions
73466343Seric		slightly more.  This includes proper setting of groups
73566343Seric		when reading :include: files, allowing you to read some
73666343Seric		files that you should be able to read but have previously
73766343Seric		been denied unless you owned them or they had "other"
73866343Seric		read permission.
73966343Seric	Make certain that $j is in $=w (after the .cf is read) so that
74066343Seric		if the user is forced to override some silly system,
74166343Seric		MX suppression will still work.
74266343Seric	Fix a couple of efficiency problems where newstr was double-
74366343Seric		calling expensive routines.  In at least one case, it
74466343Seric		wasn't guaranteed that they would always return the
74566343Seric		same result.  Problem noted by Christophe Wolfhugel.
74666343Seric	Fix null pointer dereference in putoutmsg -- only on an error
74766343Seric		condition from a non-SMTP mailer.  From Motonori
74866343Seric		Nakamura.
74966343Seric	Macro expand "C" line class definitions before scanning so that
75066343Seric		"CX $Z" works.
75166343Seric	Fix problem that caused error message to be sent while still
75266343Seric		trying to send the original message if the connection
75366343Seric		is closed during a DATA command after getting an error
75466343Seric		on an RCPT command (pretty obscure).  Problem reported
75566343Seric		by John Myers of CMU.
75666343Seric	Fix reply to NOOP to be 250 instead of 200 -- this is a long
75766343Seric		term bug.
75866343Seric	Fix a nasty bug causing core dumps when returning the "warning:
75966343Seric		cannot deliver for N hours -- will keep trying" message;
76066343Seric		it only occurred if you had PostMasterCopy set and
76166343Seric		only on some architectures.  Although sendmail would
76266343Seric		keep trying, it would send error messages on each
76366343Seric		queue interval.  This is an important fix.
76466343Seric	Allow u and g options to take user and group names respectively.
76566343Seric	Don't do a chdir into the queue directory in -bt mode to make
76666343Seric		ruleset testing a bit easier.
76766343Seric	Don't allow users to turn off logging (using -oL) on the command
76866343Seric		line -- command line can only raise, not lower, logging
76966343Seric		level.
77066343Seric	Set $u to the original recipient on the SMTP transaction or on
77166343Seric		the command line.  This is only done if there is exactly
77266343Seric		one recipient.  Technically, this does not meet the
77366343Seric		specs, because it does not guarantee a domain on the
77466343Seric		address.
77566343Seric	Fix a problem that dumped error messages on bad addresses if
77666343Seric		you used the -t flag.  Problem noted by Josh Smith of
77766343Seric		Harvey Mudd College.
77866343Seric	Given an address such as ``<foo> <bar>'', auto-quote the first
77966343Seric		``<foo>'' part, giving ``"<foo>" <bar>''.  This is to
78066343Seric		avoid the problem of people who use angle brackets in
78166343Seric		their full name information.
78266343Seric	Fix a null pointer dereference if you set option "l", have
78366343Seric		an Errors-To: header in the message, and have Errors-To:
78466343Seric		defined in the config file H lines.  From J.R. Oldroyd.
78566343Seric	Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get
78666343Seric		wrong when compiling.  Suggested by Rick McCarty of TI.
78766343Seric	Fix a problem that could pass negative SIZE parameter if the
78866343Seric		df file got lost; this would cause servers to always
78966343Seric		give a temporary failure, making the problem even worse.
79066343Seric		Problem noted by Allan Johannesen of WPI.
79166343Seric	Add "ident" timeout (one of the "r" option selectors) for IDENT
79266343Seric		protocol timeouts (30s default).  Requested by Murray
79366343Seric		Kucherawy of HookUp Communication Corp. to handle bogus
79466343Seric		PC TCP/IP implementations.
79566343Seric	Change $w default definition to be just the first component of
79666343Seric		the domain name on config level 5.  The $j macro defaults
79766343Seric		to the FQDN; $m remains as before.  This lets well-behaved
79866343Seric		config files use any of the short, long, or subdomain
79966343Seric		names.
80066343Seric	Add makesendmail script in src to try to automate multi-architecture
80166343Seric		builds.  I know, this is sub-optimal, but it is still
80266343Seric		helpful.
80366343Seric	Fix very obscure race condition that can cause a queue run to
80466343Seric		get a queue file for an already completed job.  This
80566343Seric		problem has existed for years.  Problem noted by the
80666343Seric		long suffering Allan Johannesen of WPI.
80766343Seric	Fix a problem that caused the raw sender name to be passed to
80866343Seric		udbsender instead of the canonified name -- this caused
80966343Seric		it to sometimes miss records that it should have found.
81066343Seric	Relax check of name on HELO packet so that a program using -bs
81166343Seric		that claims to be itself works properly.
81266343Seric	Restore rewriting of $: part of address through 2, R, 4 in
81366343Seric		buildaddr -- this requires passing a lot of flags to get
81466343Seric		it right.  Unlike old versions, this ONLY rewrites
81566343Seric		recipient addresses, not sender addresses.
81666343Seric	Fix a bug that caused core dumps in config files that cannot
81766343Seric		resolve /file/name style addresses.  Fix from Jonathan
81866343Seric		Kamens of OpenVision Technologies.
81966343Seric	Fix problem with fcntl locking that can cause error returns to
82066343Seric		be lost if the lock is lost; this required fully
82166343Seric		queueing everything, dropping the envelope (so errors
82266343Seric		would get returned), and then re-reading the queue from
82366343Seric		scratch.
82466343Seric	Fix a problem that caused aliases that redefine an otherwise
82566343Seric		true address to still send to the original address
82666343Seric		if and only if the alias failed in certain bizarre
82766343Seric		ways (e.g, if they pointed at a list:; syntax address).
82866343Seric		Problem pointed out by Jonathan Kamens.
82966343Seric	Remove support for frozen configuration files.  They caused
83066343Seric		more trouble than it was worth.
83166343Seric	Fix problem that can cause error messages to get ignored when
83266343Seric		using both -odb and -t flags.  Problem noted by Rob
83366343Seric		McNicholas at U.C. Berkeley.
83466343Seric	Include all "normal" variations on hostname in $=w.  For example,
83566343Seric		if the host name is vangogh.cs.berkeley.edu, $=w will
83666343Seric		contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu.
83766343Seric	Add "restrictqrun" privacy flag -- without this, anyone can run
83866343Seric		the queue.
83966343Seric	Reset SmtpPhase global on initial connection creation so that
84066343Seric		messages don't come out with stale information.
84166343Seric	Pass an "ext" argument to lockfile so that error/log messages
84266343Seric		will properly reflect the true filename being locked.
84366343Seric	Put all [...] address forms into $=w -- this eliminates the need
84466343Seric		for MAXIPADDR in conf.h.  Suggested by John Gardiner
84566343Seric		Myers of CMU.
84666343Seric	Fix a bug that can cause qf files to be left around even after
84766343Seric		an SMTP RSET command.  Problem and fix from Michael
84866343Seric		Corrigan.
84966343Seric	Don't send a PostMasterCopy to errors when the Precedence: is
85066343Seric		negative.  Error reports still go to the envelope
85166343Seric		sender address.
85266343Seric	Add LA_SHORT for load averages.
85366343Seric	Lock sendmail.st file when posting statistics.
85466343Seric	Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to
85566343Seric		set the size of the TCP send and receive buffers; if you
85666343Seric		run over a slow slip line you may need to set these down
85766343Seric		(although it would be better to fix the SLIP implementation
85866343Seric		so that it's not necessary to recompile every program
85966343Seric		that does bulk data transfer).
86066343Seric	Allow null defaults on $( ... $) lookups.  Problem reported by
86166343Seric		Amir Plivatsky.
86266343Seric	Diagnose crufty S and V config lines.  This resulted from an
86366343Seric		observation that some people were using the SITE macro
86466343Seric		without the SITECONFIG macro first, which was causing
86566343Seric		bogus config files that were not caught.
86666343Seric	Fix makemap -f flag to turn off case folding (it was turning it
86766343Seric		on instead).  THIS IS A USER VISIBLE CHANGE!!!
86866343Seric	Fix a problem that caused multiple error messages to be sent if
86966343Seric		you used "sendmail -t -oem -odb", your system uses fcntl
87066343Seric		locking, and one of the recipient addresses is unknown.
87166343Seric	Reset uid earlier in include() so that recursive .forwards or
87266343Seric		:include:s don't use the wrong uid.
87366343Seric	If file descriptor 0, 1, or 2 was closed when sendmail was
87466343Seric		called, the code to recover the descriptor was broken.
87566343Seric		This sometimes (only sometimes) caused problems with the
87666343Seric		alias file.  Fix from Motonori Nakamura.
87766343Seric	Fix a problem that caused aliaswait to go into infinite recursion
87866343Seric		if the @:@ metasymbol wasn't found in the alias file.
87966343Seric	Improve error message on newaliases if database files cannot be
88066343Seric		opened or if running with no database format defined.
88166343Seric	Do a better estimation of the size of error messages when NoReturn
88266343Seric		is set.  Problem noted by P{r (Pell) Emanuelsson.
88366343Seric	Fix a problem causing the "c" option (don't connect to expensive
88466343Seric		mailers) to be ignored in SMTP.  Problem noted and the
88566343Seric		solution suggested by Robert Elz of Munnari University.
88666343Seric	Improve connection caching algorithm by passing "[host]" to
88766343Seric		hostsignature, which strips the square brackets and
88866343Seric		returns the real name.  This allows mailertable entries
88966343Seric		to match regular entries.
89066343Seric	Re-enable Return-Receipt-To: -- people seem to want this stupid
89166343Seric		feature, even if it doesn't work right.
89266343Seric	Catch and log attempts to try the "wiz" command in server SMTP.
89366343Seric		This also ups the log level from LOG_NOTICE to LOG_CRIT.
89466343Seric	Be more generous at assigning $z to the home directory -- do this
89566343Seric		for programs that are specified through a .forward file.
89666343Seric		Fix from Andrew Chang of Sun Microsystems.
89766343Seric	Always save a fatal error message in preference to a non-fatal
89866343Seric		error message so that the "subject" line of return
89966343Seric		messages is the best possible.
90066343Seric	CONFIG: reduce the number of quotes needed to quote configuration
90166343Seric		parameters with commas: two quotes should work now, e.g.,
90266343Seric		define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local'').
90366343Seric	CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom
90466343Seric		connections (domain-ized UUCP).
90566343Seric	CONFIG: fix bug in default maps (-o must be before database file
90666343Seric		name).  Pointed out by Christophe Wolfhugel.
90766343Seric	CONFIG: add FEATURE(nodns) to state that we are not relying on
90866343Seric		DNS.  This would presumably be used in UUCP islands.
90966343Seric	CONFIG: add OSTYPE(nextstep) and OSTYPE(linux).
91066343Seric	CONFIG: log $u in Received: line.  This is in technical violation
91166343Seric		of the standards, since it doesn't guarantee a domain
91266343Seric		on the address.
91366343Seric	CONFIG: don't assume "m" in local mailer flags -- this means that
91466343Seric		if you redefine LOCAL_MAILER_FLAGS you will have to include
91566343Seric		the "m" flag should you want it.  Apparently some Solaris 2.2
91666343Seric		installations can't handle multiple local recipients.
91766343Seric		Problem noted by Josh Smith.
91866343Seric	CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults).
91966343Seric	CONFIG: change default version level from 4 to 5.
92066343Seric	CONFIG: add FEATURE(nullclient) to create a config file that
92166343Seric		forwards all mail to a hub without ever looking at the
92266343Seric		addresses in any detail.
92366343Seric	CONFIG: properly strip mailer: information off of relays when
92466343Seric		used to change .BITNET form into %-hack form.
92566343Seric	CONFIG: fix a problem that caused infinite loops if presented
92666343Seric		with an address such as "!foo".
92766343Seric	CONFIG: check for self literal (e.g., [128.32.131.12]) even if
92866343Seric		the reverse "PTR" mapping is broken.  There's a better
92966343Seric		way to do this, but the change is fairly major and I
93066343Seric		want to hold it for another release.  Problem noted by
93166343Seric		Bret Marquis.
93266343Seric
93366342Seric8.5/8.5		93/07/23
93466342Seric	Serious bug: if you used a command line recipient that was unknown
93566342Seric		sendmail would not send a return message (it was treating
93666342Seric		everything as though it had an SMTP-style client that
93766342Seric		would do the return itself).  Problem noted by Josh Smith.
93866342Seric	Change "trymx" option in getcanonname() to ignore all MX data,
93966342Seric		even during a T_ANY query.  This actually didn't break
94066342Seric		anything, because the only time you called getcanonname
94166342Seric		with !trymx was if you already knew there were no MX
94266342Seric		records, but it is somewhat cleaner.  From Motonori
94366342Seric		Nakamura.
94466342Seric	Don't call getcanonname from getmxrr if you already know there
94566342Seric		are no DNS records matching the name.
94666342Seric	Fix a problem causing error messages to always include "The
94766342Seric		original message was received ... from localhost".
94866342Seric		The correct original host information is now included.
94966342Seric	Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their
95066342Seric		version of "test" doesn't have the -x flag).  Change it
95166342Seric		to use -f instead.  From John Myers.
95266342Seric	CONFIG: 8.4 mistakenly set the default SMTP-style mailer to
95366342Seric		esmtp -- it should be smtp.
95466342Seric	CONFIG: send all relayed mail using confRELAY_MAILER (defaults
95566342Seric		to "relay" (a variant of "smtp") if MAILER(smtp) is used,
95666342Seric		else "suucp" if MAILER(uucp) is used, else "unknown");
95766342Seric		this cleans up the configs somewhat.  This fixes a serious
95866342Seric		problem that caused route-addrs to get mistaken as relays,
95966342Seric		pointed out by John Myers.  WARNING: this also causes
96066342Seric		the default on SMART_HOST to change from "suucp" to
96166342Seric		"relay" if you have MAILER(smtp) specified.
96266342Seric
96366341Seric8.4/8.4		93/07/22
96466341Seric	Add option `w'.  If you receive a message that comes to you because
96566341Seric		you are the best (lowest preference) target of an MX, and
96666341Seric		you haven't explicitly recognized the source MX host in
96766341Seric		your .cf file, this option will cause you to try the target
96866341Seric		host directly (as if there were no MX for it at all).  If
96966341Seric		`w' is not set, this case is a configuration error.
97066341Seric		Beware: if `w' is set, senders may get bogus errors like
97166341Seric		"message timed out" or "host unknown" for problems that
97266341Seric		are really configuration errors.  This option is
97366341Seric		disrecommended, provided only for compatibility with
97466341Seric		UIUC sendmail.
97566341Seric	Fix a problem that caused the incoming socket to be left open
97666341Seric		when sendmail forks after the DATA command.  This caused
97766341Seric		calling systems to wait in FIN_WAIT_2 state until the
97866341Seric		entire list was processed and the child closed -- a
97966341Seric		potentially prodigious amount of time.  Problem noted
98066341Seric		by Neil Rickert.
98166341Seric	Fix problem (created in 6.64) that caused mail sent to multiple
98266341Seric		addresses, one of which was a bad address, to completely
98366341Seric		suppress the sending of the message.  This changes
98466341Seric		handling of EF_FATALERRS somewhat, and adds an
98566341Seric		EF_GLOBALERRS flag.  This also fixes a potential problem
98666341Seric		with duplicate error messages if there is a syntax error
98766341Seric		in the header of a message that isn't noticed until late
98866341Seric		in processing.  Original problem pointed out by Josh Smith
98966341Seric		of Harvey Mudd College.  This release includes quite a bit
99066341Seric		of dickering with error handling (see below).
99166341Seric	Back out SMTP transaction if MAIL gets nested 501 error.  This
99266341Seric		will only hurt already-broken software and should help
99366341Seric		humans.
99466341Seric	Fix a problem that broke aliases when neither NDBM nor NEWDB were
99566341Seric		compiled in.  It would never read the alias file.
99666341Seric	Repair unbalanced `)' and `>' (the "open" versions are already
99766341Seric		repaired).
99866341Seric	Logging of "done" in dropenvelope() was incorrect: it would
99966341Seric		log this even when the queue file still existed.  Change
100066341Seric		this to only log "done" (at log level 11) when the
100166341Seric		queue file is actually removed.  From John Myers.
100266341Seric	Log "lost connection" in server SMTP at log level 20 if there
100366341Seric		is no pending transaction.  Some senders just close the
100466341Seric		connection rather than sending QUIT.
100566341Seric	Fix a bug causing getmxrr to add a dot to the end of unqualified
100666341Seric		domains that do not have MX records -- this would cause
100766341Seric		the subsequent host name lookup to fail.  The problem
100866341Seric		only occurred if you had FEATURE(nocanonify) set.
100966341Seric		Problem noted by Rick McCarty of Texas Instruments.
101066341Seric	Fix invocation of setvbuf when passed a -X flag -- I had
101166341Seric		unwittingly used an ANSI C extension, and this caused
101266341Seric		core dumps on some machines.
101366341Seric	Diagnose self-destructive alias loops on RCPT as well as EXPN.
101466341Seric		Previously it just gave an empty send queue, which
101566341Seric		then gave either "Need RCPT (recipient)" at the DATA
101666341Seric		(confusing, since you had given an RCPT command which
101766341Seric		returned 250) or just dropped the email, depending on
101866341Seric		whether you were running VERBose mode.  Now it usually
101966341Seric		diagnoses this case as "aliasing/forwarding loop broken".
102066341Seric		Unfortunately, it still doesn't adequately diagnose
102166341Seric		some true error conditions.
102266341Seric	Add internal concept of "warning messages" using 6xx codes.
102366341Seric		These are not reported only to Postmaster.  Unbalanced
102466341Seric		parens, brackets, and quotes are printed as 653 codes.
102566341Seric		They are always mapped to 5xx codes before use in SMTP.
102666341Seric	Clean up error messages to tell both the actual address that
102766341Seric		failed and the alias they arose from.  This makes it
102866341Seric		somewhat easier to diagnose problems.  Difficulty noted
102966341Seric		by Motonori Nakamura.
103066341Seric	Fix a problem that inappropriately added a ctladdr to addresses
103166341Seric		that shouldn't have had one during a queue run.  This
103266341Seric		caused error messages to be handled differently during
103366341Seric		a queue run than a direct run.
103466341Seric	Don't print the qf name and line number if you get errors during
103566341Seric		the direct run of the queue from srvrsmtp -- this was
103666341Seric		just extra stuff for users to crawl through.
103766341Seric	Put command line flags on second line of pid file so you can
103866341Seric		auto-restart the daemon with all appropriate arguments.
103966341Seric		Use "kill `head -1 /etc/sendmail.pid`" to stop the
104066341Seric		daemon, and "eval `tail -1 /etc/sendmail.pid`" to
104166341Seric		restart it.
104266341Seric	Remove the ``setuid(getuid())'' in main -- this caused the
104366341Seric		IDENT daemon to screw up.  This required that I change
104466341Seric		HASSETEUID to HASSETREUID and complicate the mode
104566341Seric		changing somewhat because both Ultrix and SunOS seem
104666341Seric		to have a bug causing seteuid() to set the saved uid
104766341Seric		as well as the effective.  The program test/t_setreuid.c
104866341Seric		will test to see if your implementation of setreuid(2)
104966341Seric		is appropriately functional.
105066341Seric	The FallBackMX (option V) handling failed to properly identify
105166341Seric		fallback to yourself -- most of the code was there,
105266341Seric		but it wasn't being enabled.  Problem noted by Murray
105366341Seric		Kucherawy of the University of Waterloo.
105466341Seric	Change :include: open timeout from ETIMEDOUT to an internal
105566341Seric		code EOPENTIMEOUT; this avoids adding "during SmtpPhase
105666341Seric		with CurHostName" in error messages, which can be
105766341Seric		confusing.  Reported by Jonathan Kamens of OpenVision
105866341Seric		Technologies.
105966341Seric	Back out setpgrp (setpgid on POSIX systems) call to reset the
106066341Seric		process group id.  The original fix was to get around
106166341Seric		some problems with recalcitrant MUAs, but it breaks
106266341Seric		any call from a shell that creates a process group id
106366341Seric		different from the process id.  I could try to fix
106466341Seric		this by diddling the tty owner (using tcsetpgrp or
106566341Seric		equivalent) but this is too likely to break other
106666341Seric		things.
106766341Seric	Portability changes:
106866341Seric		Support -M as equivalent to -oM on Ultrix -- apparently
106966341Seric			DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs
107066341Seric			instead of using standard flags.  Oh joy.  This
107166341Seric			behaviour reported by Jon Giltner of University
107266341Seric			of Colorado.
107366341Seric		SGI IRIX  -- this includes several changes that should
107466341Seric			help other strict ANSI compilers.
107566341Seric		SCO Unix -- from Murray Kucherawy of HookUp Communication
107666341Seric			Corporation.
107766341Seric		Solaris running the Sun C compiler (which despite the
107866341Seric			documentation apparently doesn't define
107966341Seric			__STDC__ by default).
108066341Seric		ConvexOS from Eric Schnoebelen of Convex.
108166341Seric		Sony NEWS workstations and Omron LUNA workstations from
108266341Seric			Motonori Nakamura.
108366341Seric	CONFIG: add confTRY_NULL_MX_LIST to set option `w'.
108466341Seric	CONFIG: delete `C' and `e' from default SMTP mailers flags;
108566341Seric		several people have made a good argument that this
108666341Seric		creates more problems than it solves (although this
108766341Seric		may prove painful in the short run).
108866341Seric	CONFIG: generalize all the relays to accept a "mailer:host"
108966341Seric		format.
109066341Seric	CONFIG: move local processing in ruleset 0 into a new ruleset
109166341Seric		98 (8 on old sendmail).  Domain literal [a.b.c.d]
109266341Seric		addresses are also passed through this ruleset.
109366341Seric	CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined,
109466341Seric		internet-style addresses would "fall off the end" of
109566341Seric		ruleset zero and be interpreted as local -- however,
109666341Seric		the angle brackets confused the recursive call.
109766341Seric		These are now diagnosed as "Unrecognized host name".
109866341Seric	CONFIG: USENET rules weren't included in S0 because of a mistaken
109966341Seric		ifdef(`_MAILER_USENET_') instead of
110066341Seric		ifdef(`_MAILER_usenet_').  Problem found by Rein Tollevik
110166341Seric		of SINTEF RUNIT, Oslo.
110266341Seric	CONFIG: move up LOCAL_RULE_0 processing so that it happens very
110366341Seric		early in ruleset 0; this allows .mc authors to bypass
110466341Seric		things like the "short circuit" code for local addresses.
110566341Seric		Prompted by a comment by Bill Wisner of The Well.
110666341Seric	CONFIG: add confSMTP_MAILER to define the mailer used (smtp or
110766341Seric		esmtp) to send SMTP mail.  This allows you to default
110866341Seric		to esmtp but use a mailertable or other override to
110966341Seric		deal with broken servers.  This logic was pointed out
111066341Seric		to me by Bill Wisner.  Ditto for confLOCAL_MAILER.
111166341Seric	Changes to cf/sh/makeinfo.sh to make it portable to SVR4
111266341Seric		environments.  Ugly as sin.
111366341Seric
111466340Seric8.3/8.3		93/07/13
111566340Seric	Fix setuid problems introduced in 8.2 that caused messages
111666340Seric		like "Cannot create qfXXXXXX: Invalid argument"
111766340Seric		or "Cannot reopen dfXXXXXX: Permission denied".  This
111866340Seric		involved a new compile flag "HASSETEUID" that takes
111966340Seric		the place of the old _POSIX_SAVED_IDS -- it turns out
112066340Seric		that the POSIX interface is broken enough to break
112166340Seric		some systems badly.  This includes some fixes for
112266340Seric		HP-UX.  Also fixes problems where the real uid is
112366340Seric		not reset properly on startup (from Neil Rickert).
112466340Seric	Fix a problem that caused timed out messages to not report the
112566340Seric		addresses that timed out.  Error messages are also more
112666340Seric		"user friendly".
112766340Seric	Drop required bandwidth on connections from 64 bytes/sec to
112866340Seric		16 bytes/sec.
112966340Seric	Further Solaris portability changes -- doesn't require the BSD
113066340Seric		compatibility library.  This also adds a new
113166340Seric		"HASGETDTABLESIZE" compile flag which can be used if
113266340Seric		you want to use getdtablesize(2) instead of sysconf(2).
113366340Seric		These are loosely based on changes from David Meyer at
113466340Seric		University of Oregon.  This now seems to work, at least
113566340Seric		for quick test cases.
113666340Seric	Fix a problem that can cause duplicate error messages to be
113766340Seric		sent if you are in SMTP, you send to multiple addresses,
113866340Seric		and at least one of those addresses is good and points
113966340Seric		to an account that has a .forward file (whew!).
114066340Seric	Fix a problem causing messages to be discarded if checkcompat()
114166340Seric		returned EX_TEMPFAIL (because it didn't properly mark
114266340Seric		the "to" address).  Problem noted by John Myers.
114366340Seric	Fix dfopen to return NULL if the open failed; I was depending
114466340Seric		on fdopen(-1) returning NULL, which isn't the case.  This
114566340Seric		isn't serious, but does result in wierd error diagnoses.
114666340Seric		From Michael Corrigan.
114766340Seric	CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of
114866340Seric		messages sent through UUCP-family mailers.  Suggested
114966340Seric		by Bill Wisner of The Well.
115066340Seric	CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified,
115166340Seric		include a "uucp-dom" mailer that uses domain-style
115266340Seric		addressing.  Suggested by Bill Wisner.
115366340Seric	CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match
115466340Seric		LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS.  Suggested by
115566340Seric		Christophe Wolfhugel.
115666340Seric	CONFIG: Add OSTYPE(aix3).  From Christophe Wolfhugel.
115766340Seric
115866339Seric8.2/8.2		93/07/11
115966339Seric	Don't drop out on config file parse errors in -bt mode.
116066339Seric	On older configuration files, assume option "l" (use Errors-To
116166339Seric		header) for back compatibility.  NOTE:  this DOES NOT
116266339Seric		imply an endorsement of the Errors-To: header in any way.
116366339Seric	Accept -x flag on AIX-3 as well as OSF/1.  Why, why, why???
116466339Seric	Don't log errors on EHLO -- it isn't a "real" error for an old
116566339Seric		SMTP server to give an error on this command, and
116666339Seric		logging it in the transcript can be confusing.  Fix
116766339Seric		from Bill Wisner.
116866339Seric	IRIX compatibility changes provided by Dan Rich
116966339Seric		<drich@sandman.lerc.nasa.gov>.
117066339Seric	Solaris 2 compatibility changes.  Provided by Bob Cunningham
117166339Seric		<bob@kahala.soest.hawaii.edu>, John Oleynick
117266339Seric		<juo@klinzhai.rutgers.edu>
117366339Seric	Debugging: -d17 was overloaded (hostsignature and usersmtp.c);
117466339Seric		move usersmtp (smtpinit and smtpmailfrom) to -d18 to
117566339Seric		match the other flags in that file.
117666339Seric	Flush transcript before fork in mailfile().  From Eric Wassenaar.
117766339Seric	Save h_errno in mci struct and improve error message display.
117866339Seric		Changes from Eric Wassenaar.
117966339Seric	Open /dev/null for the transcript if the create of the xf file
118066339Seric		failed; this avoids at least one possible null pointer
118166339Seric		reference in very wierd cases.  From Eric Wassenaar.
118266339Seric	Clean up statistics gathering; it was over-reporting because of
118366339Seric		forks.  From Eric Wassenaar.
118466339Seric	Fix problem that causes old Return-Path: line to override new
118566339Seric		Return-Path: line (conf.c needs H_FORCE to avoid
118666339Seric		re-using old value).  From Motonori Nakamura.
118766339Seric	Fix broken -m flag in K definition -- even if -m (match only)
118866339Seric		was specified, it would still replace the key with the
118966339Seric		value.  Noted by Rick McCarty of Texas Instruments.
119066339Seric	If the name server timed out over several days, no "timed out"
119166339Seric		message would ever be sent back.  The timeout code
119266339Seric		has been moved from markfailure() to dropenvelope()
119366339Seric		so that all such failures should be diagnosted.  Pointed
119466339Seric		out by Christophe Wolfhugel and others.
119566339Seric	Relax safefile() constraints: directories in an include or
119666339Seric		forward path must be readable by self if the controlling
119766339Seric		user owns the entry, readable by all otherwise (e.g.,
119866339Seric		when reading your .forward file, you have to own and
119966339Seric		have X permssion in it; everyone needs X permission in
120066339Seric		the root and directories leading up to your home);
120166339Seric		include files must be readable by anyone, but need not
120266339Seric		be owned by you.
120366339Seric	If _POSIX_SAVED_IDS is defined, setuid to the owner before
120466339Seric		reading a .forward file; this gets around some problems
120566339Seric		on NFS mounts if root permission is not exported and
120666339Seric		the user's home directory isn't x'able.
120766339Seric	Additional NeXT portability enhancements from Axel Zinser.
120866339Seric	Additional HP-UX portability enhancements from Brian Bullen.
120966339Seric	Add a timeout around SMTP message writes; this assumes you can
121066339Seric		get throughput of at least 64 bytes/second.  Note that
121166339Seric		this does not impact the "datafinal" default, which
121266339Seric		is separate; this is just intended to work around
121366339Seric		network clogs that will occur before the final dot
121466339Seric		is sent.  From Eric Wassenaar.
121566339Seric	Change map code to set the "include null" flag adaptively --
121666339Seric		it initially tries both, but if it finds anything
121766339Seric		matching without a null it never tries again with a
121866339Seric		null and vice versa.  If -N is specified, it never
121966339Seric		tries without the null and creates new maps with a
122066339Seric		null byte.  If -O is specified, it never tries with
122166339Seric		the null (for efficiency).  If -N and -O are specified,
122266339Seric		you get -NO (get it?) lookup at all, so this would
122366339Seric		be a bad idea.  If you don't specify either -N or -O,
122466339Seric		it adapts.
122566339Seric	Fix recognition of "same from address" so that MH submissions
122666339Seric		will insert the appropriate full name information;
122766339Seric		this used to work and got broken somewhere along the
122866339Seric		way.
122966339Seric	Some changes to eliminate some unnecessary SYSERRs in the
123066339Seric		log.  For example, if you lost a connection, don't
123166339Seric		bother reporting that fact on the connection you lost.
123266339Seric	Add some "extended debugging" flags to try to track down
123366339Seric		why we get occassional problems with file descriptor
123466339Seric		one being closed when execing a mailer; it seems to
123566339Seric		only happen when there has been another error in the
123666339Seric		same transaction.  This requires XDEBUG, defined
123766339Seric		by default in conf.h.
123866339Seric	Add "-X filename" command line flag, which logs both sides of
123966339Seric		all SMTP transactions.  This is intended ONLY for
124066339Seric		debugging bad implementations of other mailers; start
124166339Seric		it up, send a message from a mailer that is failing,
124266339Seric		and then kill it off and examine the indicated log.
124366339Seric		This output is not intended to be particularly human
124466339Seric		readable.  This also adds the HASSETVBUF compile
124566339Seric		flag, defaulted on if your compiler defines __STDC__.
124666339Seric	CONFIG: change SMART_HOST to override an SMTP mailer.  If you
124766339Seric		have a local net that should get direct connects, you
124866339Seric		will need to use LOCAL_NET_CONFIG to catch these hosts.
124966339Seric		See cf/README for an example.
125066339Seric	CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle
125166339Seric		sites that don't use the -d flag.
125266339Seric	CONFIG: hide recipient addresses as well as sender addresses
125366339Seric		behind $M if FEATURE(allmasquerade) is specified; this
125466339Seric		has been requested by several people, but can break
125566339Seric		local aliases.  For example, if you mail to "localalias"
125666339Seric		this will be rewritten as "localalias@masqueradehost";
125766339Seric		although initial delivery will work, replies will be
125866339Seric		broken.  Use it sparingly.
125966339Seric	CONFIG: add FEATURE(domaintable).  This maps unqualified domains
126066339Seric		to qualified domains in headers.  I believe this is
126166339Seric		largely equivalent to the IDA feature of the same name.
126266339Seric	CONFIG: use $U as UUCP name instead of $k.  This permits you
126366339Seric		to override the "system name" as your UUCP name --
126466339Seric		in particular, to use domain-ized UUCP names.  From
126566339Seric		Bill Wisner of The Well.
126666339Seric	CONFIG: create new mailer "esmtp" that always tries EHLO
126766339Seric		first.  This is currently unused in the config files,
126866339Seric		but could be used in a mailertable entry.
126966339Seric
127066338Seric8.1C/8.1B	93/06/27
127166338Seric	Serious security bug fix: it was possible to read any file on
127266338Seric		the system, regardless of ownership and permissions.
127366338Seric	If a subroutine returns a fully qualified address, return it
127466338Seric		immediately instead of feeding it back into rewriting.
127566338Seric		This fixes a problem with mailertable lookups.
127666338Seric	CONFIG: fix some M4 frotz (concat => CONCAT)
127766338Seric
127866338Seric8.1B/8.1A	93/06/12
127966338Seric	Serious bug fix: pattern matching backup algorithm stepped by
128066338Seric		two tokens in classes instead of one.  Found by Claus
128166338Seric		Assmann at University of Kiel, Germany.
128266338Seric
128366338Seric8.1A/8.1A	93/06/08
128466338Seric	Another mailertable fix....
128566338Seric
128666338Seric8.1/8.1		93/06/07
128766338Seric	4.4BSD freeze.  No semantic changes.
128866338Seric
128966338Seric6.65/6.34	93/06/06
129066338Seric	Fix some lintish problems.
129166338Seric	Fix some cases where server SMTP behaved poorly when handed bogus
129266338Seric		input, pointed out by Eric Wassenaar.
129366338Seric	CONFIG: fix some more (sigh) mailertable bugs -- thanks to
129466338Seric		Motonori Nakamura of Kyoto University (again).
129566338Seric
129666338Seric6.64/6.33	93/06/05
129766338Seric	Don't send 050 (-v) information after the 250 response to a QUIT
129866338Seric		command in srvrsmtp -- clients usually close the connection
129966338Seric		at this point, and it causes bogus error messages.
130066338Seric	Don't send messages that have errors on input (such as unbalanced
130166338Seric		parentheses) during SMTP transactions, since a return
130266338Seric		message has (probably) already been sent.
130366338Seric	Give better diagnostics on timeouts during network reads, including
130466338Seric		information similar to the SMTP phase.
130566338Seric	Fix bug that caused SMTP messages to deliver synchronously; this
130666338Seric		happened after the DATA 250, and hence caused reading the
130766338Seric		next command to be delayed.
130866338Seric	Ignore Errors-To: header unless 'l' (lower case el) header is
130966338Seric		specified.  The Errors-To: header violates RFC 1123.
131066338Seric		Errors-To: was only needed to take the place of the
131166338Seric		envelope sender in the days when most Unix mailers
131266338Seric		didn't understand about the two kinds of senders.
131366338Seric	Don't send warning messages in response to automatically generated
131466338Seric		messages (that is, those From:<>).
131566338Seric	CONFIG: fix some rather stupid typos in the mailertable code
131666338Seric		pointed out by Motonori Nakamura of Kyoto University.
131766338Seric	CONFIG: add confUSE_ERRORS_TO configuration option.
131866338Seric	CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M
131966338Seric		(masquerade name) instead of $j.
132066338Seric	CONFIG: don't add dots to relay names (added in 6.29); it breaks
132166338Seric		several things, and can be simulated by dot terminating
132266338Seric		the names of relays.  For example, use:
132366338Seric			DBbit.net.relay.
132466338Seric		(note the trailing dot).
132566338Seric
132666338Seric6.63/6.32	93/06/01
132766338Seric	Fix prototypes to eliminate chars in argument lists -- some
132866338Seric		compilers are pissy about this.
132966338Seric	Log protocol ($r) and body type if set so we can determine if
133066338Seric		the adaptive algorithms are working.
133166338Seric	Pessimize on locking of database files (particularly for NEWDB
133266338Seric		databases) during opens.  There were problems with
133366338Seric		processes opening the file while it was rebuilt; since
133466338Seric		NEWDB caches heavily, the reader opened an empty file,
133566338Seric		which is an error.  If your system has the ability to
133666338Seric		lock atomically on open, this works properly; otherwise,
133766338Seric		there are race conditions.
133866338Seric	Check mod time on .pag file instead of .dir in NDBM aliases
133966338Seric		because the .dir file doesn't get updated for small
134066338Seric		alias files.  From John Gardiner Myers of CMU.
134166338Seric	More Solaris portability -- it now compiles on Solaris, but
134266338Seric		hangs up in gethostbyname().
134366338Seric	Move setting of RES_DEBUG flag before first myhostname() call
134466338Seric		so we can see name server traffic on that call.
134566338Seric	Fsync() queue files.
134666338Seric	Fix a problem that causes -bi to try to rebuild maps other than
134766338Seric		the alias file(s).
134866338Seric	Fix a problem that caused udb to reject entries from any but
134966338Seric		the first database listed.
135066338Seric	Rearrange doc subdirectory for 4.4BSD release tape.
135166338Seric	CONFIG: put $r into the Received line.  This was an oversight.
135266338Seric	CONFIG: fix typo (call to ruleset 99 should have been rulset 90).
135366338Seric	CONFIG: move "auxiliary" subroutines to be in ruleset 90-99
135466338Seric		range -- in the long run, single digit rulesets may
135566338Seric		become reserved for builtin use by sendmail.
135666338Seric	CONFIG: fix major problem that causes host aliases (that is,
135766338Seric		anything in $=w != $j) to not be recognized.  This has
135866338Seric		been around since 6.30.
135966338Seric
136066338Seric6.62/6.31	93/05/28
136166338Seric	BETA RELEASE
136266338Seric	Fix recursive syserr (if there is an error printing a syserr
136366338Seric		message).  This makes the code much less eager to consider
136466338Seric		a write error as serious.  This also includes some
136566338Seric		heuristics to be clever about closed connections.
136666338Seric	Lock NEWDB files during gets.  This requires version 1.5 or later
136766338Seric		of the db library.  If you have an older version, you
136866338Seric		can use -DOLD_NEWDB.  This will go away in a few weeks.
136966338Seric	Fix problem causing aliases that use host maps to get overwritten.
137066338Seric	Do appropriate byte swapping on port numbers in ident protocol
137166338Seric		code.  Fix from Allan Johannesen of WPI.
137266338Seric	Defer opening of map files to the same time as alias files so that
137366338Seric		the daemon will tend to pick up new versions more promptly.
137466338Seric	Prototype a bunch more functions.
137566338Seric	Some Solaris 2.1 changes (still doesn't link though).
137666338Seric	Try to simplify Makefiles by including more subordinate #defines
137766338Seric		in conf.h (based on OS type).
137866338Seric	CONFIG: check for domains if FEATURE(mailertable) is defined.
137966338Seric		For example, if the host name is "knecht.cs.berkeley.edu"
138066338Seric		it will search the following mailertable keys:
138166338Seric			knecht.cs.berkeley.edu
138266338Seric			.cs.berkeley.edu
138366338Seric			.berkeley.edu
138466338Seric			.edu
138566338Seric		This could be used to replace the special relays for bitnet
138666338Seric		and similar nets.
138766338Seric
138866338Seric6.61/6.30	93/05/24
138966338Seric	Fix problem that prevented appending dots on canonified host
139066338Seric		names.  This breaks tons of config files -- very
139166338Seric		important fix.
139266338Seric	Fix improper pointer dereference in response to HELO command.
139366338Seric	Fix core dump if debugging set in map_rewrite.
139466338Seric	CONFIG: add FEATURE(always_add_domain) to always attach the
139566338Seric		local domain (only impacts local mail).
139666338Seric	CONFIG: try to avoid turning names into $j -- although
139766338Seric		technically a host can only have one "canonical name",
139866338Seric		it seems to be common practice to have several.
139966338Seric
140066338Seric6.60/6.29	93/05/22
140166338Seric	Major change: merge alias databases with maps.  This expands and
140266338Seric		changes the map class interface but fixes a bunch of bugs.
140366338Seric		The important user-visible change is that the file name
140466338Seric		in a K line now does not include the ".db" extension; this
140566338Seric		is added automatically.  Also, the -d (NIS domain) flag is
140666338Seric		missing from the K config line; use @domain instead.
140766338Seric		When compiling, the *_MAP names are gone -- just compile
140866338Seric		in NDBM, NEWDB, and/or NIS support.
140966338Seric	Announce mailer/host/user triple on -bv flag -- from Brian
141066338Seric		Bullen of Stirling University.
141166338Seric	Don't send more than one line in response to HELO -- it confuses
141266338Seric		Pony Express, which then behaves very badly.  However,
141366338Seric		this change does send two line 220 greetings, with the
141466338Seric		second line reading "ESMTP spoken here".  The usersmtp
141566338Seric		module recognizes this and goes into ESMTP mode regardless
141666338Seric		of the setting of the "a" mailer flag.  Thus, "a" means
141766338Seric		"always try EHLO".
141866338Seric	AIX portability changes (thanks to Christophe Wolfhugel of
141966338Seric		Herve Schauer Consultants (Paris) for providing me with
142066338Seric		an INSA account for this purpose).  Lightly tested.  Use
142166338Seric		-D_AIX3.  This probably breaks compatibility with some
142266338Seric		older systems (e.g., 4.2bsd) but still works on SunOS
142366338Seric		4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3.
142466338Seric	Fix a problem causing an error message loop if the output channel
142566338Seric		is hosed.
142666338Seric	Add the Makefiles that I use for various environments -- some are
142766338Seric		Berkeley make versions and some are old make versions.
142866338Seric		My makefile for the NeXT box has gotten lost, alas!
142966338Seric	PRALIASES: support for printing NEWDB databases.  From
143066338Seric		Michael J. Corrigan of U.C. San Diego.
143166338Seric	CONFIG: don't pass pseudo-domains to $[ ... $] (if you have
143266338Seric		a wildcard MX it can have wierd results).  From
143366338Seric		Christophe Wolfhugel.
143466338Seric	CONFIG: dot terminate relay hostnames in S0.  From Christophe
143566338Seric		Wolfhugel.
143666338Seric
143766338Seric6.59/6.28	93/05/13
143866338Seric	Log version with SMTP daemon startup message.
143966338Seric	Adjust setproctitle to work on NetBSD and BSD/386.
144066338Seric	Fix null pointer reference in MX fallback code.
144166338Seric	A bunch of minor fixes from Eric Wassenaar:
144266338Seric		If deliver cannot execv the mailer, return EX_OSERR
144366338Seric			instead of EX_TEMPFAIL (to give better
144466338Seric			error messages).
144566338Seric		Consistently malloc e_message.
144666338Seric		Catch degenerate case of calling returntosender()
144766338Seric			with an empty returnq.
144866338Seric		MIME reformatting.
144966338Seric
145066338Seric6.58/6.28	93/05/13
145166338Seric	Fix bug that can cause incorrect verbose display of user smtp
145266338Seric		messages.
145366338Seric	Disable SMTP VERB command if PRIV_NOEXPN is set (since this
145466338Seric		could reveal the same information.
145566338Seric	Allow failure when reading SMTP greeting message to go on to
145666338Seric		next MX host.
145766338Seric	Add "MIME-Version: 1.0" header if using MIME (this was NOT
145866338Seric		included in RFC 1344, but Bill King of Allan-Bradley
145966338Seric		Company forwarded me email from Nathaniel Borenstein
146066338Seric		claiming that it was an inadvertent omission).
146166338Seric	Don't use Content-Type: X-message-header.  According to John
146266338Seric		Myers of CMU, many MIME readers will completely ignore
146366338Seric		the data if they don't recognize it.  Instead, just
146466338Seric		add a blank line to make it a legal (empty) message.
146566338Seric	Fix problem causing dots to keep getting appended to cached
146666338Seric		hostnames.  This can cause buffer overrun conditions.
146766338Seric		The problem was found by Erik Forsberg of Retix,
146866338Seric		although I used a different bug fix than he provided.
146966338Seric	Fix parsing of split header/envelope rewriting specs -- from
147066338Seric		Eric Forsberg.
147166338Seric	Fix from Eric Wassenaar to correct To: lists in error messages.
147266338Seric
147366338Seric6.57/6.28	93/05/11
147466338Seric	Fix minor glitch causing extra ctladdrs to be output to queue
147566338Seric		file.  Just an annoyance.
147666338Seric	Cache results of name server canonification lookups to avoid
147766338Seric		backed up queue runs.
147866338Seric	Major rewrite of alias.c: considerable cleanup, plus sample
147966338Seric		(untested) support for NIS aliases.  The "A" option
148066338Seric		can now be a comma separated list (or be repeated) --
148166338Seric		that is, you can have multiple alias databases.  Each
148266338Seric		database can have the syntax ``class:file''; if no class
148366338Seric		is specified, the "implicit" class is assumed.  Implicit
148466338Seric		searches through a list of compiled in types -- hash,
148566338Seric		dbm, nis, and stab.  Alias files are searched in the
148666338Seric		order they are listed.  For example:
148766338Seric			OAhash:/etc/aliases.local,/etc/aliases
148866338Seric			OAnis:mail.aliases@my.nis.domain
148966338Seric		first searches the hash database /etc/aliases.local,
149066338Seric		then the regular /etc/aliases database, then the NIS
149166338Seric		map "mail.aliases" in the NIS domain "my.nis.domain".
149266338Seric	If in Verbose mode (probably from VERB command) run SMTP job
149366338Seric		in foreground and don't do RCPT optimizations.
149466338Seric	Add udb :mailsender as equivalent to owner- for regular aliases.
149566338Seric	Delete option 8; add option 7 that means the opposite.  That is,
149666338Seric		default to 8-bit mode; a special option is needed to
149766338Seric		force sendmail into 7 bit mode.
149866338Seric	Send error messages in encapsulated MIME format.
149966338Seric	New compile flag "NIS" that turns on NIS alias and NIS map
150066338Seric		support.
150166338Seric	Add "j" option to send error messages in MIME (RFC 1341)
150266338Seric		encapsulated message format per RFC 1344.  The
150366338Seric		syntax is pretty ugly if you don't have MIME-aware
150466338Seric		user agents.
150566338Seric	Clean up message handling (for display in mailq output).
150666338Seric	New setproctitle implementation for 4.4bsd.
150766338Seric	Create files (such as ~/dead.letter) using mode FileMode (the
150866338Seric		F option value) instead of 0666.
150966338Seric	Fix bug causing output of EXPN command to not be fully qualified.
151066338Seric		This may cause some problems with UUCP addresses that
151166338Seric		will require some config file assistance -- specifically,
151266338Seric		the $: part has to include the host name for this output
151366338Seric		to make sense.
151466338Seric	Fix a problem that sometimes diagnosed errors and still sent the
151566338Seric		message if the header syntax was bad.
151666338Seric	Fix a bug that caused an error message to be emailed when sendmail
151766338Seric		was operating in -bv mode.
151866338Seric	Add "ListenQueueSize" keyword to daemon options option (OO) to
151966338Seric		set the queue size parameter passed to listen().  You
152066338Seric		will normally have to tweak your kernel to up this.
152166338Seric	Strip spaces off of beginning of message-id before logging (in
152266338Seric		case it was folded across lines).
152366338Seric	Tweak compile flags in daemon.c -- there were some cases where
152466338Seric		it wouldn't work without NETINET.
152566338Seric	Change *file* mailer to output all the usual default headers
152666338Seric		(From, Date, Message-Id).  It gets used when sending
152766338Seric		back error messages.
152866338Seric	CONFIG: explicitly catch and diagnose list:; syntax in ruleset
152966338Seric		zero -- this is not a valid recipient syntax according
153066338Seric		to RFC 821.
153166338Seric	CONFIG: add confMIME_FORMAT_ERRORS to send error messages in
153266338Seric		MIME format.  Defaults to on.
153366338Seric	CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment
153466338Seric		the flags for those mailers.
153566338Seric
153666338Seric6.56/6.27	93/05/01
153766338Seric	Fix problem that causes the fallback mail to postmaster
153866338Seric		(case ESM_POSTMASTER in savemail()) to not look at
153966338Seric		aliases (ugh).
154066338Seric	Some more HPUX tweaking (compile flag hpux => __hpux so it
154166338Seric		still works in ANSI mode).
154266338Seric	Don't try to flock non-regular files when mailing to a file.
154366338Seric		In particular, this was a problem if you tried to
154466338Seric		send to /dev/null.
154566338Seric	Fix a wierd bug that can cause senders to be queued as
154666338Seric		recipients if the name server is down when the mail
154766338Seric		is initially sent.  This hack just ignores sender
154866338Seric		deletion (essentially, it sets the MeToo flag) if there
154966338Seric		is a TEMPFAIL during processing of the sender address.
155066338Seric		Obscure.
155166338Seric	Fix a dangling else problem -- from Brian Bullen from University
155266338Seric		of Stirling, UK.
155366338Seric	Add the "b" mailer flag to force a blank line on the end of
155466338Seric		messages.  Some brilliant versions of /bin/mail insist
155566338Seric		on this but do not add it themselves.
155666338Seric	Add the "g" mailer flag to prevent user SMTP from sending
155766338Seric		"MAIL From:<>".  This is only intended to be a
155866338Seric		transitional gesture, and should not be used if at
155966338Seric		all possible.  It appears that Berkeley and IDA
156066338Seric		config files have always handled this properly; the
156166338Seric		UK config kit apparently does not.
156266338Seric	Don't lowercase and then capitalize header field names -- leave
156366338Seric		them with original capitalization.  Fixes from Bill
156466338Seric		King of Allen-Bradley Company.
156566338Seric	Further cleanup and improved reporting of error messages,
156666338Seric		particularly conditions that cause messages to be
156766338Seric		requeued for future delivery.
156866338Seric	Tweak syslog priorities in some cases.
156966338Seric	CONFIG: clean up route-addr on UUCP addresses.
157066338Seric
157166338Seric6.55/6.25	93/04/27
157266338Seric	HPUX 8.07 compatibility changes in getla() -- I had to make
157366338Seric		these changes to get it to work at Berkeley, although
157466338Seric		others seem to have been working before (???).
157566338Seric	Various patches to XLA code.
157666338Seric	Fix problem that causes setuid bit on files to be ignored from
157766338Seric		SMTP or in queue runs.  Problem noted by Jason Ornstein
157866338Seric		of Under The Wire, Inc.
157966338Seric	Fix problem that can cause CNAMEs to be ignored.
158066338Seric	Generalize getmxrr to match local host in $=w instead of a
158166338Seric		single name passed in.
158266338Seric	Some cleanup from Eric Wassenaar:
158366338Seric		Use FileMailer instead of ProgMailer in two places.
158466338Seric		Eliminate duplicate 8th-bit stripping in commaize.
158566338Seric		Fix a problem with mis-parsing of backslash escapes
158666338Seric			under some circumstances.
158766338Seric	NIS map fix (was always including trailing null character)
158866338Seric		from Mike Glendinning of Ingres UK.
158966338Seric	Add "a" mailer flag to try using ESMTP.  It tries the EHLO
159066338Seric		command and if that fails falls back to regular SMTP.
159166338Seric		Also parses EHLO option keywords.  If host supports
159266338Seric		SIZE extension, this is added to the MAIL FROM:
159366338Seric		command.
159466338Seric	Extend "b" option to include a second value which is the
159566338Seric		maximum message size this server is willing to accept.
159666338Seric		For example, a value of "10/1000000" says that there
159766338Seric		must be ten blocks free, and sendmail will reject
159866338Seric		any message larger than one megabyte.
159966338Seric	Some portability hooks for NeXT (this could be applicable
160066338Seric		to Mach in general).  You have to create an empty
160166338Seric		file called "unistd.h" to get it to compile.
160266338Seric	Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to
160366338Seric		be more generous.
160466338Seric	Add X400-Received: to the list of headers tagged with H_TRACE
160566338Seric		in conf.c.  From Bill King, Allen-Bradley Co.
160666338Seric
160766338Seric6.54/6.25	93/04/19
160866338Seric	Fix problem that caused redefinition of SMTP and QUEUE compile
160966338Seric		flags.  Pointed out by Jon Forrest of the Sequoia 2000
161066338Seric		project at Berkeley.
161166338Seric	Properly handle \! hack -- it was treating host\!user as one
161266338Seric		token (host!user) instead of three (host, !, user).
161366338Seric		Fix from Eric Wassenaar of NIKHEF-H.
161466338Seric	Fix compilation problem in getauthinfo() if IDENTPROTO is off.
161566338Seric	Turn off DEFNAMES and DNSRCH when getting the hostsignature
161666338Seric		(i.e., MX records) in level 1 configuration files; this
161766338Seric		matches the old behaviour.  From Motonori Nakamura of
161866338Seric		Kyoto University.
161966338Seric	Improve error message printing -- if sent through an alias,
162066338Seric		error messages include the name of the alias in the
162166338Seric		message.  Unfortunately, in order to make this work
162266338Seric		properly in queue runs, this changes the format of the
162366338Seric		C line in the qf file.  The relatively uselessness of
162466338Seric		the previous information was pointed out to me by
162566338Seric		Allan E Johannesen of WPI.
162666338Seric	Add XLA compile flag to add hooks to Christophe Wolfhugel's
162766338Seric		extended load average code.  This is still in very early
162866338Seric		form.  For information regarding the guts of the xla
162966338Seric		code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr.
163066338Seric	Additional hooks for detecting tempfails in rewriting rules
163166338Seric		(that is, in map lookups).
163266338Seric
163366338Seric6.53/6.25	93/04/15
163466338Seric	Properly diagnose ruleset zero returning null (instead of a mailer
163566338Seric		triple).  From Motonori Nakamura of Kyoto University.
163666338Seric	More generalization of socket code for other protocols.
163766338Seric	Shorten timeouts on reverse name lookups -- since they are done
163866338Seric		during connection establishment, long timeouts here can
163966338Seric		cause higher level timeouts.  This mainly serves to accept
164066338Seric		mail from hosts that do not have proper reverse (PTR) DNS
164166338Seric		records set up.
164266338Seric	Reset e_statmsg before each mailer invocation to avoid bogus
164366338Seric		messages in the log.
164466338Seric	Redefine $r, $s, and $_ in error envelopes so you don't get
164566338Seric		incorrect cruft in the error message.  Problem noted by
164666338Seric		Motonori Nakamura of Kyoto University.
164766338Seric	Fix a problem that can cause failure to return errors to Postmaster
164866338Seric		in certain cases.  From Motonori Nakamura.
164966338Seric	Fix a problem that can cause some systems to give duplicate error
165066338Seric		messages when a bad syntax address such as "<a" is presented
165166338Seric		to an SMTP server.   It doesn't seem to occur on all
165266338Seric		machines.  From Motonori Nakamura.
165366338Seric	Default IDENTPROTO off for Ultrix and HPUX, which apparently have
165466338Seric		the interesting "feature" that when they receive a "Host
165566338Seric		unreachable" message they closes all open connections to
165666338Seric		that host.  However, some firewall gateways send this message
165766338Seric		if you try to connect to an unauthorized port, such as the
165866338Seric		IDENT port (113).  Thus, no email can be received from such
165966338Seric		hosts.  There is some evidence that versions of Ultrix before
166066338Seric		4.3 do not have this problem.  Thanks to Tom Ivar Helbekkmo
166166338Seric		for pointing out this behaviour to me and to Michael Corrigan
166266338Seric		of U.C. San Diego for informing me about the HPUX problem.
166366338Seric	Allow IPC mailers to return a colon-separated list of hosts in the
166466338Seric		$@ clause; these are searched in order as though they were
166566338Seric		MX records.
166666338Seric	When sending an error report, print the list of addresses tagged
166766338Seric		as bad.  Requested by Allan E Johannesen of WPI.
166866338Seric	Change map function calls to return a status code.  This gets
166966338Seric		passed back as the result of rewrite.  Parseaddr marks
167066338Seric		the address as a QUEUEUP address if the return code is
167166338Seric		EX_TEMPFAIL.  All this to queue properly if the name
167266338Seric		server is down.  This code is not well tested.  This code
167366338Seric		changes the interface to map lookup functions (a fifth
167466338Seric		parameter, int *statp, is added).  Feature requested by
167566338Seric		Dan Oscarsson.
167666338Seric	Don't delete quotes (in the dequote map) if there are spaces in
167766338Seric		the string, since this would cause them to be replaced by
167866338Seric		the SpaceSub character.
167966338Seric	Accept BODY=8BITMIME on SMTP MAIL command.  This isn't advertised
168066338Seric		because the 8BIT to 7BIT translation doesn't exist yet.
168166338Seric		This does add a "bodytype" field to both envelope and
168266338Seric		queue file and a -B command line flag to pass the type in
168366338Seric		during direct invocations.
168466338Seric	Discard return error messages only on responses to responses to
168566338Seric		responses, not on responses to responses.  That is, the
168666338Seric		algorithm is to try return to sender, then return to
168766338Seric		postmaster, then discard.  Previously it discarded
168866338Seric		immediately if the return to sender pass failed.
168966338Seric	CONFIG: back out change to hide unqualified hostnames behind %-hack.
169066338Seric		This screws up local aliases and .forward files.
169166338Seric	CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $];
169266338Seric		some sites only handle completely canonified names.
169366338Seric		Requested by John Gardiner Myers of CMU.
169466338Seric	CONFIG: some UUCP code was still included even if FEATURE(nouucp)
169566338Seric		was specified.
169666338Seric
169766338Seric6.52/6.24	93/04/10
169866338Seric	Clean up some minor glitches on error return messages pointed out
169966338Seric		by Motonori Nakamura of Kyoto University.
170066338Seric	Fix reply() to not reset SmtpReplyBuffer on fatal errors; this
170166338Seric		was supposed to reset SmtpMsg Buffer.  This makes the
170266338Seric		client side code virtually useless.  Reported by Allan
170366338Seric		E Johannesen of WPI and Phil Brandenberger of Swarthmore.
170466338Seric	Better debug messages if fuzzy is disabled, suggested by Allan
170566338Seric		E Johannesen of WPI.
170666338Seric	Offset SmtpReplyBuffer by four in usersmtp when checking for
170766338Seric		loopback.  From Eric Wassenaar.
170866338Seric	Don't set $s until after runinchild in srvrsmtp -- otherwise
170966338Seric		it gets cleared.  From Eric Wassenaar.
171066338Seric	Implement IDA-style $&x for deferred macro expansion.
171166338Seric	More POSIX compatibility.
171266338Seric	CONFIG: Hide unqualified hostnames behind %-hack using $s as the
171366338Seric		actual sender.  This is only done if $r is non-null, that
171466338Seric		is, if this is not locally submitted mail.
171566338Seric	CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host
171666338Seric		names to internet domains.  A program contributed by
171766338Seric		John Gardiner Myers of CMU to create the maps is included
171866338Seric		in the contrib directory (in the "misc" tar file).
171966338Seric	CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP
172066338Seric		hosts.  There is currently no tool to create this map.
172166338Seric
172266338Seric6.51/6.23	93/04/04
172366338Seric	Add D= mailer flag to specify a path of possible working directories
172466338Seric		in which to execute the mailer.  This is intended for the
172566338Seric		prog mailer; some shells can get upset if they don't have
172666338Seric		access to the current directory.
172766338Seric	Add RFC 1413 (IDENT) protocol support.  This is only very loosely
172866338Seric		tested.  This adds a $_ macro to be the authenticated
172966338Seric		info (in ``user@domain [address]'' form) and debug flag
173066338Seric		9 to trace the protocol.
173166338Seric	Check for loopbacks in usersmtp instead of srvrsmtp -- there is no
173266338Seric		reason for a local agent to not be talking to the localhost
173366338Seric		(although the inverse is not true).
173466338Seric	Add a few hooks for automated map rebuilding.  This is certainly
173566338Seric		not done yet.
173666338Seric	CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is,
173766338Seric		user's home directory then the root.
173866338Seric	CONFIG: Log RFC 1413 identification in Received: line.
173966338Seric
174066338Seric6.50/6.22	93/04/01
174166338Seric	Fixes to requeueing code to make it compute priority, nrcpts,
174266338Seric		and the like properly.
174366338Seric
174466338Seric6.49/6.22	93/04/01
174566338Seric	Diagnose incorrect privacy flags.  Suggested by Bryan Costales
174666338Seric		of ICSI.
174766338Seric	Some ANSI C fixes.
174866338Seric	Arrange to quote backslashes as well as other special characters
174966338Seric		in the phrase part of a route-addr.
175066338Seric	Some fixes to FallBackMX code suggested by Motonori Nakamura of
175166338Seric		Kyoto University.
175266338Seric	More vigorous zeroing of CurHostAddr to avoid logging of bogus
175366338Seric		host addresses when you are actually just printing
175466338Seric		information from the MCI structure; problem noted by
175566338Seric		Michael Corrigan of U.C. San Diego.
175666338Seric	Don't ignore rest of queue if any job is not runnable.  This can
175766338Seric		also cause an incorrect job to be lost.  Fix from
175866338Seric		Eric Wassenaar.
175966338Seric	Always respond "quickly" to RCPT command; do alias expansion and
176066338Seric		the like later.  This also means that mail for lists that
176166338Seric		have errors will be acccepted, and an error sent back
176266338Seric		later.  This is done by instantiating the queue file
176366338Seric		and then immediately running and requeueing it.
176466338Seric
176566338Seric6.48/6.22	93/03/30
176666338Seric	Fix incorrect diagnosis of infinite loop in ruleset.  Problem noted
176766338Seric		by several people.
176866338Seric	Improve information printed when infinite loops are discovered.
176966338Seric	Zero CurHostAddr to fix erroneous internet addresses in log when no
177066338Seric		addresses can be bound.  Pointed out by Motonori Nakamura
177166338Seric		of Kyoto University.
177266338Seric	"Probe" SMTP connections using RSET instead of NOOP "just in case".
177366338Seric		Suggested by John Gardiner Myers of CMU.
177466338Seric	Don't warn about -f if you are setting sender to yourself.
177566338Seric
177666338Seric6.47/6.22	93/03/29
177766338Seric	Fix incompatible call to endmailer in smtpquit which causes core
177866338Seric		dumps.  Noted by Allan E Johannesen of WPI.
177966338Seric	HPUX portability changes from Michael J. Corrigan of UC San Diego.
178066338Seric	Require MAIL before RCPT command in srvrsmtp.c.  This had been
178166338Seric		intentional from the 821 draft days when the order wasn't
178266338Seric		clear, but is silly now.
178366338Seric	Fix bug in nis_magic routine that was initializing parameters
178466338Seric		incorrectly.  Fix from Takahiro Kanbe of Fuji Xerox
178566338Seric		Information Systems Co., Ltd.
178666338Seric	Change default for PrivacyFlags in conf.c to 0 -- since it always
178766338Seric		"or"s in new values, there was no way to turn off the
178866338Seric		AuthWarning stuff.
178966338Seric	Add O option to set SMTP daemon options.
179066338Seric	Add V option to set fallback MX host.  This always sorts at lower
179166338Seric		priority than anything it gets from the name server.  It
179266338Seric		should only be used for environments with very bad network
179366338Seric		connectivity.  Requested by several people.
179466338Seric	Log sending info.  It's not clear this is a good idea.
179566338Seric	CONFIG: fix typo in mailertable code.  Noted by Phil Brandenberger
179666338Seric		of Swarthmore.
179766338Seric	CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options
179866338Seric		O and V, respectively.
179966338Seric
180066338Seric6.46/6.21	93/03/26
180166338Seric	Fix botch in server SMTP that broke transactions that did not
180266338Seric		use HELO first (like MH).  Fix from Michael Corrigan
180366338Seric		of U.C. San Diego.
180466338Seric	Fall back to other MX records if there is an error anywhere
180566338Seric		in delivery (actually on MAIL or DATA -- RCPT is harder).
180666338Seric		Suggested by John Gardiner Myers and Motonori Nakamura.
180766338Seric	Revert to non-prototypes -- it turns out that our ANSI C
180866338Seric		compiler is more forgiving than most others about
180966338Seric		mixing prototyped extern declarations with non-prototyped
181066338Seric		function definitions.
181166338Seric	Fix a problem with multi-word class matching pointed out by
181266338Seric		Neil Rickert.  Given:
181366338Seric			CX b a.b.c
181466338Seric			R$+ $=X $+	$: $1 < $2 > $3
181566338Seric		the input "user@a.b.c" failed instead of being properly
181666338Seric		rewritten as "user@a.<b>.c".
181766338Seric	Neil also convinced me that it was correct that $~ should match
181866338Seric		only one token -- the problem is that it's always possible
181966338Seric		to add another token, so $~ matches far too eagerly.
182066338Seric
182166338Seric6.45/6.21	93/03/25
182266338Seric	Implement multi-word classes (properly!).
182366338Seric
182466338Seric6.44/6.21	93/03/25
182566338Seric	Add X-Authentication-Warning: headers to clue users into possible
182666338Seric		attempts to forge mail.  This is on the authwarnings
182766338Seric		privacy flag, but is the default.  Suggested by Bryan
182866338Seric		Costales of ICSI.
182966338Seric	Pass default units for convtime in so they can be more reasonable.
183066338Seric	Allow config files to always add a new Comments: header (i.e.,
183166338Seric		they will be added even if an old one already exists).
183266338Seric		Suggested by Bryan Costales of ICSI.
183366338Seric	Allow config files to delete an existing Return-Path: header.
183466338Seric		These should only be added at final delivery.  Suggested
183566338Seric		by Bryan Costales of ICSI.
183666338Seric	Some debugging additions.  Suggested by Bryan Costales of ICSI.
183766338Seric	Clean up logging of Family 0 addresses.  Noted by David Muir
183866338Seric		Sharnoff and others.
183966338Seric	Add a "dequote" map class.  This allows config files to strip
184066338Seric		quotes off of addresses.  Note that this is not a builtin
184166338Seric		map, just a class -- so you have to define the map
184266338Seric		using the K line.
184366338Seric	Fix a bug in the queueup() loop getting a locked tf where in
184466338Seric		very odd cases it can fall off the bottom and core dump.
184566338Seric		Of course, it was P{r Emanuelsson who found it....
184666338Seric	Open a new transcript when splitting an envelope.  Problem found
184766338Seric		by Allan E Johannesen of WPI.
184866338Seric	Improved error output in endmailer if the mailer core dumps.
184966338Seric	CONFIG: Fix typo in UUCP mailer definition.
185066338Seric	CONFIG: Default several of the new options on: eight bit input,
185166338Seric		privacy flags set to "authwarnings", and message warning
185266338Seric		set to 4h.
185366338Seric	CONFIG: Use dequote map.
185466338Seric
185566338Seric6.43/6.20	93/03/23
185666338Seric	Fix problem with assumption of an sa_len field in a generic
185766338Seric		sockaddr -- it turns out that most vendors haven't
185866338Seric		picked up this (very important) fix.
185966338Seric	Change compilation flags for daemon code -- select one or both
186066338Seric		of NETINET or NETISO, but don't ever set DAEMON manually.
186166338Seric	CONFIG: add FEATURE(mailertable) to do IDA-style mailertables.
186266338Seric
186366338Seric6.42/6.19	93/03/19
186466338Seric	Use Postmaster as default fallback return address, not root.
186566338Seric	POSIX changes for file descriptor handling.
186666338Seric	Diagnose errors writing new queue file.
186766338Seric	If you change the owner using an owner- alias, also change the
186866338Seric		error mode to EM_MAIL so that errors don't get dropped
186966338Seric		into an inappropriate directory.  Problem noted by
187066338Seric		Allan E Johannesen of WPI.
187166338Seric	If you are su'ed to root, send email as who you really are, not
187266338Seric		as root.  From Brian Kantor of U.C. San Diego.
187366338Seric	Allow warning messages to be sent after a configurable interval
187466338Seric		has passed without delivery.  The message is sent only
187566338Seric		once per envelope.  This changes the format of the qf
187666338Seric		file to have an F line, and the format of the T option
187766338Seric		to accept take the format "return/warn" (both intervals).
187866338Seric	Don't force all local names to lower case -- this was left over
187966338Seric		from the wierd handling of case mapping on aliases.  It
188066338Seric		is now driven (as expected) by the "u" mailer flag.
188166338Seric		Problem noted by P{r Emanuelsson.
188266338Seric	Fix problem that caused headers on returned email to be trashed;
188366338Seric		they were getting freed, but are still accessible via
188466338Seric		BlankEnvelope.
188566338Seric	Fix problem that caused bogus ids to be created on returned
188666338Seric		mail.
188766338Seric	Add support for ISO and other non-INET networking.  This is by
188866338Seric		no means finished yet.  This does assume a lot of other
188966338Seric		system support, like a version of gethostbyname that
189066338Seric		returns non-AF_INET addresses.
189166338Seric	CONFIG: change default on prog mailer to keep upper case in
189266338Seric		user names (i.e., in the program command line).
189366338Seric	CONFIG: strip trailing dots off of hosts in uucp mailer before
189466338Seric		convert to bang format.
189566338Seric	CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H
189666338Seric		(MAIL_HUB) delivery that doesn't add local domain.  Note
189766338Seric		that this violates 821, but is probably "more correct"
189866338Seric		for what we are trying to do.  Problem pointed out by
189966338Seric		Michael Graff of Iowa State.
190066338Seric
190166338Seric6.41/6.18	93/03/18
190266338Seric	Clean up unnecessary creates of queue ids (i.e., empty qf files)
190366338Seric		when not needed, such as when starting up an SMTP
190466338Seric		connection.
190566338Seric	Fix problem where split envelopes aren't instantiated in the queue.
190666338Seric		This is quite a serious bug.
190766338Seric	Owner- aliases had problems with leading spaces causing a
190866338Seric		premature delimitation.
190966338Seric
191066338Seric6.40/6.18	93/03/18
191166338Seric	Have ending 250 (after DATA) include the id; suggested by
191266338Seric		Brian Kantor of UC San Diego.
191366338Seric	Add logging on envelope splitting.
191466338Seric	Change queue ids to have one more letter encoding the hour of
191566338Seric		the day so that during a single day there is a greater
191666338Seric		likelihood of uniqueness; requested by Brian Kantor.
191766338Seric
191866338Seric6.39/6.18	93/03/18
191966338Seric	Fix minor compile problem if LOCKF is defined.
192066338Seric	Define size of tobuf in conf.h.  Observed by Toshinari Takahashi
192166338Seric		of Toshiba.
192266338Seric	Restore e_sender -- this is equivalent to e_from.q_paddr without
192366338Seric		decorations such as angle brackets and comments.
192466338Seric	OSF/1 on Alpha changes from Allan E Johannesen of WPI.
192566338Seric	CONFIG: fix typo in S3 for list syntax (;: => :;).  Thanks to
192666338Seric		Christopher Hoover for noting the problem.
192766338Seric
192866338Seric6.38/6.17	93/03/17
192966338Seric	Pass envelope to disconnect to avoid another use of CurEnv, which
193066338Seric		can apparently end up being null at inopportune times.
193166338Seric	Log "received from" as "relay=" for consistency (suggested by
193266338Seric		John Gardiner Myers).
193366338Seric	Fix major bug in header handling:  if no From: line existed in
193466338Seric		the header (so sendmail inserts one), and the sender is
193566338Seric		an alias that has an owner, the From: line shows the
193666338Seric		owner (as well as the envelope).  Fixed by early binding
193766338Seric		the headers (which will change debugging output).
193866338Seric	HPUX portability patches from Michael J. Corrigan of UC San Diego.
193966338Seric	Some attempts to adapt better to out of open file conditions.
194066338Seric	Some changes to ctladdr handling in queue files.
194166338Seric
194266338Seric6.37/6.17	93/03/16
194366338Seric	MAJOR CHANGE:  delete e_sender and e_returnpath (why are these
194466338Seric		different from e_from?) and $< macro.
194566338Seric	Log correct IP address in relay= field even if the connection
194666338Seric		times out.
194766338Seric	Log "received from [RESPONSE]" on EF_RESPONSE messages (from
194866338Seric		John Gardiner Myers).
194966338Seric	Fixes to SysExMsg logging (sometimes just got "message: %s"
195066338Seric		instead of "message: error message"), noted by Eric
195166338Seric		Wassenaar.  Also reported by Motonori Nakamura.
195266338Seric	Improvements to MX piggybacking code, from Motonori Nakamura.
195366338Seric	Fix case where CurHostName points to an auto variable that has
195466338Seric		been deallocated (from Motonori Nakamura).
195566338Seric	Fix bug causing newlines to be included in aliases if option
195666338Seric		"n" (check alias RHS) is set; bug noted by David Muir
195766338Seric		Sharnoff.
195866338Seric	Fix problem causing user names that should be mapped to lower
195966338Seric		case to not be mapped if they are sent during a queue
196066338Seric		run.  This greatly simplifies the case mapping code.
196166338Seric		Problem noted by Allan E Johannesen of WPI.
196266338Seric	Don't do recipient address rewriting in buildaddr.  This
196366338Seric		improperly did recipient rewriting on sender addresses,
196466338Seric		and just seems bogus in general -- but the change could
196566338Seric		break some .cf files.
196666338Seric	Pass TZ envariable to child processes for System V.
196766338Seric	CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to
196866338Seric		define those rulesets.
196966338Seric	KNOWN PROBLEM:  I have seen some problems on SunOS that causes
197066338Seric		the User Data Base to give errors on some addresses.  I
197166338Seric		have tracked the problem back at least as far as 93.02.15
197266338Seric		(version 6.22).  Running with debugging on makes it
197366338Seric		go away, so I conclude that it is referencing uninitialized
197466338Seric		stack data.  I haven't been able to track this down yet.
197566338Seric
197666338Seric6.36/6.16	93/03/08
197766338Seric	Allow local mailer to specify $@host -- this lets you assign the
197866338Seric		"foo" part of jgm+foo to $h for passing in to the local
197966338Seric		mailer.
198066338Seric	Additional debug printing in getcanonname (show query type).
198166338Seric	Don't add the e_fromdomain on sender addresses -- this interacts
198266338Seric		wierdly with the owner- code.
198366338Seric	Improve delivery logging to not log obvious or meaningless stuff.
198466338Seric	Include numeric IP address in Received: lines per RFC 1123 section
198566338Seric		5.2.8.
198666338Seric	Fixed a bug in checking stat() return value if restrictmailq is
198766338Seric		set.  Also, check the entire group set instead of just the
198866338Seric		primary group.  Both from John Gardiner Myers.
198966338Seric	Don't have usrerr automatically print errno, since this is often
199066338Seric		misleading.
199166338Seric	Use transienterror() in makeconnection after connect() fails and
199266338Seric		in openmailer after execve() fails (from Eric Wassenaar).
199366338Seric		Also moved transienterror() from util.c to conf.c.
199466338Seric	Clean up from= logging on response messages.
199566338Seric	Undo patch allowing prescan to return a null vector -- it breaks
199666338Seric		too many things.
199766338Seric	Config: FEATURE(notsticky) lets you use UDB for everything coming
199866338Seric		in to the machine, even if it is specifically targetted
199966338Seric		to this machine.  Without it, UDB is bypassed if the user
200066338Seric		name is fully qualified.
200166338Seric	Config: fix another minor botch with <> (local mailer wasn't
200266338Seric		mapping them properly).
200366338Seric
200466338Seric6.35/6.15	93/03/05
200566338Seric	Fix getrealhostname to return null if sinlen <= 0 -- this can
200666338Seric		occur if stdin is a pipe.
200766338Seric	Avoid infinite loop in getcanonname if name server return
200866338Seric		NO_DATA (for example).
200966338Seric	Config: avoid having C flag qualify list syntax and error syntax.
201066338Seric
201166338Seric6.34/6.14	93/03/05
201266338Seric	Fix logging in deliver to not pass too many parameters to Ultrix
201366338Seric		versions of syslog.
201466338Seric	Don't write the pid file until after the daemon has actually
201566338Seric		opened and conditioned the connection.
201666338Seric	Consider addresses "different" if their q_uids differ (so that
201766338Seric		two users forwarding to the same program will be seen
201866338Seric		as different, rather than the same).
201966338Seric	Fix problem with bad parameters in main() -- they set ExitStat
202066338Seric		but don't exit.
202166338Seric	Fix null pointer references through RealHostName -- painfully
202266338Seric		discovered by Allan E Johannesen of WPI.
202366338Seric	Fix bug causing user@@localhost to core dump (yuch).
202466338Seric	Config: don't put two @host.dom.ain on users in $=E in SMTP
202566338Seric		mailer.  Also, catch user@ (no host) in ruleset 0.
202666338Seric
202766338Seric6.33/6.13	93/03/03
202866338Seric	Config: add confCW_FILE as the name of the cw configuration file
202966338Seric		(defaults to /etc/sendmail.cw).  From P{r Emanuelsson.
203066338Seric	Allow prescan to return a pointer to an empty list -- this is
203166338Seric		not an error.  Also, clean up error reporting to avoid
203266338Seric		double errors (prescan reports once, then the caller
203366338Seric		reports again).
203466338Seric	Changes to avoid trusting T_ANY queries -- run them, but if you
203566338Seric		don't get the info you expected, do T_A and T_MX queries
203666338Seric		anyhow.  This also fixes an oversight where _res.options
203766338Seric		bits were being ignored.
203866338Seric	If PRIV_NOVRFY is set, use 252 response code instead of 502 per
203966338Seric		RFC 1123 section 5.2.3.  It's not 100% clear that this
204066338Seric		is correct, but it probably works better with stupid
204166338Seric		mailers that do a VRFY and only check the first digit.
204266338Seric
204366338Seric6.32/6.12	93/03/02
204466338Seric	Fix uninitialized variable "protocol" in smtp code.
204566338Seric	Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI.
204666338Seric	Additional hooks for RFC 1427 (ESMTP SIZE extension).  This
204766338Seric		includes requiring that enoughspace() know the system
204866338Seric		block size, which will undoubtedly break most ports.
204966338Seric	Trace flag 19 in use for srvrsmtp.c.
205066338Seric	Additional logging -- notably the sending mailer name.  This
205166338Seric		also changes the delivery logging to strict field=value
205266338Seric		syntax.
205366338Seric	Fix some problems with messages getting sent even to addresses
205466338Seric		that had been marked bad -- from Eric Wassenaar.
205566338Seric	More WIDE changes: accept host name inside [...] as non-MXed
205666338Seric		host.  This is intended ONLY for use inside firewalled
205766338Seric		environments, where the MX points at the gateway.
205866338Seric	Change .cf file conventions so that mapping for <> addresses
205966338Seric		don't have an @ in them (to avoid confusing the C mailer
206066338Seric		flag).  Pointed out by Neil Rickert.
206166338Seric	Config extensions for Sam Leffler's FlexFAX software.
206266338Seric
206366338Seric6.31/6.10	93/02/28
206466338Seric	Fix some more bugs in alias owner code -- there were some wierd
206566338Seric		cases where an error in a non-aliased name would override
206666338Seric		the return info in an aliased name with an owner.
206766338Seric	Changes from WIDE Project, forwarded to me by Motonori Nakamura:
206866338Seric		Log actual delivery host (after MX et al); from
206966338Seric			yasuhiro@dcl.co.jp.
207066338Seric		Log daemon startup.
207166338Seric		Deliver Postmaster copies without a body.
207266338Seric		Better logging of SMTP senders.
207366338Seric		Send all program email as daemon even when local.
207466338Seric	As requested in various forms from many people, accept -qIstring
207566338Seric		to limit queue runs to jobs with queue-id matching string.
207666338Seric		Similarly for -qRstring for recipients, -qSstring for
207766338Seric		senders.
207866338Seric	Initial hooks for ESMTP support (see RFC 1425).
207966338Seric	Fixed a syntax error in the UUCP mailer specification that caused
208066338Seric		core dumps on startup.
208166338Seric	Check for missing A= or P= arguments in mailer definitions.
208266338Seric
208366338Seric6.30/6.10	93/02/27
208466338Seric	Require FROZENCONFIG compilation flag to include frozen
208566338Seric		configuration code.  Frozen configuration is really
208666338Seric		not a very good idea any more, particularly in shared
208766338Seric		library environments.
208866338Seric	Do better checking of errno after opens of :include: and .forward
208966338Seric		files to defer delivery on network and other transient
209066338Seric		errors.  Suggestion from Craig Everhart.
209166338Seric	Fix minor botch in read timeout macro processing.
209266338Seric	Add FEATURE(nouucp) to config files for sites that know absolutely
209366338Seric		nothing about UUCP.
209466338Seric	Add built cf files to distribution tape and clarify how to build
209566338Seric		them if you don't have the Berkeley make.
209666338Seric	Some sizeof(long) portability changes for the Alpha, from Allan
209766338Seric		E Johannesen.
209866338Seric	Add "restrictmailq" privacy flag -- if set, only people in the same
209966338Seric		group as your queue directory can print the queue.  If you
210066338Seric		set this, be sure you also restrict access to log files....
210166338Seric	Fix another bug in owner-list stuff that can cause data files to
210266338Seric		be "lost".
210366338Seric	Fix a bug with queue runs that cause forwards to yourself to go
210466338Seric		into alias/forwarding loops.  I'm still iffy about this
210566338Seric		fix.
210666338Seric	Fix from Eric Wassenaar for suppression of return message code.
210766338Seric
210866338Seric6.29/6.9	93/02/24
210966338Seric	Fix yet another problem in alias owner code -- put the wrong return
211066338Seric		address on the enclosed return-to-sender letter.
211166338Seric
211266338Seric6.28/6.9	93/02/24
211366338Seric	Fix botch in alias owner code that caused it to not operate if the
211466338Seric		error was detected locally.
211566338Seric
211666338Seric6.27/6.9	93/02/24
211766338Seric	M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include
211866338Seric		file <sys/mount.h>.
211966338Seric	Miscellaneous bug fixes from Eric Wassenaar:
212066338Seric		sendmail -bv -t logs the from line even though in verify
212166338Seric			mode only.
212266338Seric		sendmail -v can go into queue mode if shouldqueue returns
212366338Seric			TRUE.
212466338Seric	Add route-addr pruning per RFC 1123 section 5.3.3.  This can be
212566338Seric		disabled using the "R" option.
212666338Seric	Delete (always undocumented) -R flag (save original recipients);
212766338Seric		there are ways to syslog(3) these now.
212866338Seric	Clean up SMTP reply codes -- specify them as needed in the code,
212966338Seric		instead of in conf.c -- this was needed during the NCP to
213066338Seric		TCP transition, but seems silly now.  This also changes
213166338Seric		parameters to message and nmessage.
213266338Seric	Have mailstats read the .cf file to find the sendmail.st file and
213366338Seric		get text versions of mailer names.  An initial version of
213466338Seric		this code was provided by Tuominen Keijo (although the
213566338Seric		comments indicate the good bits were written by "E.V.").
213666338Seric	Add yet more System V compatibility hacks.
213766338Seric	Fix bug in VRFY code (assumes everything must be a local user).
213866338Seric	Allow specification of any of the hard-wired pathnames in the
213966338Seric		Makefile.
214066338Seric	Delete concept of "trusted users" -- this really didn't provide
214166338Seric		any security anyway, and caused some problems.
214266338Seric	Delete last vestige of support for the word "at" as an equivalent
214366338Seric		to the character "@".
214466338Seric	Propagate owner-foo alias information into the envelope sender.
214566338Seric		Based on code from John Gardiner Myers.  This is a major
214666338Seric		semantic change -- beware!
214766338Seric	Allow $@ on LHS to indicate "match zero" -- this is used to match
214866338Seric		the null expression.
214966338Seric
215066338Seric6.26/6.8	93/02/21
215166338Seric	Don't "lose" queue runs.  Very important fix from (who else?)
215266338Seric		Eric Wassenaar.
215366338Seric	Completely reset state on RSET command -- from Eric Wassenaar.
215466338Seric	Send error messages and return receipts using an envelope sender
215566338Seric		of <> regardless of the setting of $n.  Rewriting rules
215666338Seric		can undo this if they feel the necessity, as might be
215766338Seric		needed for networks that don't understand the syntax.
215866338Seric		This is permitted by RFC 821 section 3.6 and required by
215966338Seric		RFC 1123 section 5.3.3.  THIS REQUIRES VERSION 4 CONFIG
216066338Seric		FILES because the rulesets must be able to parse <>
216166338Seric		properly.
216266338Seric	Don't ever send error messages to "<>" -- they will get sent to
216366338Seric		the local postmaster or dumped in /usr/tmp/dead.letter
216466338Seric		instead.  Per RFC 1123 section 5.3.3.
216566338Seric	Explicitly check for email to yourself as a dotted quad.  You
216666338Seric		have to call $[ [ ... ] $] to get this.
216766338Seric	Up the message timeout to five days per RFC 1123 section 5.3.1.1.
216866338Seric	Make all read timeouts individually configurable, as strongly
216966338Seric		recommended by RFC 1123 section 5.3.2.
217066338Seric	Use f_bavail (blocks available to regular users) instead of f_bfree
217166338Seric		(blocks available to superuser) in free block checks.
217266338Seric	Change $d macro to be the current time, not the origination time,
217366338Seric		since this is consistent with how it is used now.
217466338Seric	Generalization of enoughspace from Eric Wassenaar covering
217566338Seric		SGI, Apollo, HPUX, Ultrix, and SunOS.
217666338Seric	Ignore process group signals -- some front ends can do this if
217766338Seric		you kill a window too quickly.  From Eric Wassenaar.
217866338Seric	Change umask to 022.
217966338Seric
218066338Seric6.25/6.8	93/02/20
218166338Seric	Close all cached connections before calling mailers and after
218266338Seric		forking for delivery (caused double closes which resulted
218366338Seric		in false errors).
218466338Seric	Add FEATURE(redirect) in config files -- this allows you to alias
218566338Seric		old addresses to a pointer to the new address that will
218666338Seric		give a 551 error message, but not deliver the mail.
218766338Seric	Some code changes to make the 551 errors look pretty.
218866338Seric	Names of M4 program paths in config files have changed -- they
218966338Seric		are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS.
219066338Seric	Fix a bug in the QSELFREF code having to do with empty .forward
219166338Seric		files, reported by Eric Wassenaar.
219266338Seric	Add option "p" (privacy flags); this allows you to tune how
219366338Seric		picky the SMTP server will be.  This also adds the
219466338Seric		confPRIVACY_FLAGS M4 macro in the config files.
219566338Seric	Add option "b" (minimum blocks free).  If there are fewer than
219666338Seric		this number of blocks free on the filesystem containing
219766338Seric		the queue directory, the SMTP MAIL command will return
219866338Seric		a 452 response and ask you to try again later.  This
219966338Seric		also adds the confMIN_FREE_BLOCKS M4 macro in the config
220066338Seric		files.
220166338Seric	Made VRFY just verify (doesn't expand aliases and .forward files);
220266338Seric		EXPN does full expansion.  RCPT in queue-only mode also
220366338Seric		doesn't chase aliases and .forward.
220466338Seric
220566338Seric6.24/6.7	93/02/19
220666338Seric	Increase the number of domain search entries in domain.c to allow
220766338Seric		for the extra "" entry indicating the root domain.
220866338Seric		Reported by Motonori Nakamura of Kyoto U.
220966338Seric	Add a "SMART_HOST" in the configs for UUCP-connected sites that
221066338Seric		want to forward all mail with extra "@"s to that site.
221166338Seric		Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to
221266338Seric		be specified as ``mailer:hostname'' to use an alternate
221366338Seric		mailer.
221466338Seric	Clarified and updated some wording in the Operations Guide.
221566338Seric	Add the "c" mailer flag -- this suppresses all comment parts of
221666338Seric		addresses (requested by John Curran of NEARnet).
221766338Seric	Have -v print prompts in -bt mode even if stdin is not a terminal
221866338Seric		(default behaviour is to be silent if not reading from
221966338Seric		a terminal).  Suggested by Bryan Costales, ICSI.
222066338Seric	Move the metacharacters from C0 space (\001-\037) into C1 space
222166338Seric		(\201-\237).  This also fixes a bunch of potential bugs
222266338Seric		with G1 characters (\240-\276) in headers relating to
222366338Seric		negative numbers passed to isspace() et al.
222466338Seric	Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias
222566338Seric		database if YPCOMPAT is #defined.  Enhancement from
222666338Seric		Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd.
222766338Seric	Add "list" Precedence (-30); this can be used with old sendmails
222866338Seric		which will map to precedence 0 (which will return error
222966338Seric		messages).  Suggested by Stephen R. van den Berg.
223066338Seric	Many bug fixes from Eric Wassenaar of the National Institute for
223166338Seric			Nuclear and High-Energy Physics, Amsterdam:
223266338Seric		Clear timeouts properly on open failures in include().
223366338Seric		Don't dereference through NULL if no home directory found.
223466338Seric		Re-establish SIGCHLD signal on System 5 in reapchild().
223566338Seric		Avoid NULL pointer reference on -pFOO flag.
223666338Seric		Properly handle backslash escapes in comments.
223766338Seric		Correctly check reply status on SMTP NOOP command.
223866338Seric		Properly save SMTP error message if peer gives
223966338Seric			"Service Shutting Down" message.
224066338Seric		Avoid writing to the transcript if it couldn't be opened.
224166338Seric		Signal errors in SMTP children to parent properly.
224266338Seric	Handle self references in a list more globally (include a
224366338Seric		QSELFREF bit in the address flags).  This enhancement
224466338Seric		was suggested by Eric Wassenaar.
224566338Seric	Use initgroups() in hpux, even though it's System-V based.  The
224666338Seric		HASINITGROUPS compile flag can set this on other systems.
224766338Seric		This HPUX behaviour was pointed out by Eric Wassenaar.
224866338Seric
224966338Seric6.23/6.6	93/02/16
225066338Seric	Clean up handling of LogLevel to make it easier to figure out
225166338Seric		what's on what level.
225266338Seric	Change log levels to have some consistency:
225366338Seric		1    serious system failures, security problems
225466338Seric		2    lost communications, protocol failures
225566338Seric		3    other serious failures
225666338Seric		4    minor errors
225766338Seric		5    message collection
225866338Seric		6    vrfy logging, creation of return-to-sender
225966338Seric		7    delivery failures
226066338Seric		8    delivery successes
226166338Seric		9    delivery tempfails (queue ups)
226266338Seric		10   database expansion
226366338Seric		>64  debugging
226466338Seric	Allow IDA-style separated processing on S= and R= in Mailer
226566338Seric		definition lines.  Note that rulesets 1 and 2 are
226666338Seric		still used for both addresses as before.  Bruce Lilly
226766338Seric		gave a convincing argument that RFC976 insists on
226866338Seric		this behaviour.
226966338Seric	Added some time zones to arpatounix -- they may not be in the
227066338Seric		standards, but they are in use.  However, I may delete
227166338Seric		arpatounix entirely -- there appears to be no reason
227266338Seric		for it to exist.
227366338Seric	Change to UUCP mailer (in cf directory) to try to do a saner job.
227466338Seric		I'm still not certain about this mailer in general.
227566338Seric
227666338Seric6.22/6.5	93/02/15
227766338Seric	Fix bug that prevents saving letters in ~/dead.letter.
227866338Seric	Don't add angle brackets in VRFY command if angle brackets already
227966338Seric		exist in the address.
228066338Seric	Fix bogus error message in udbexpand.
228166338Seric	Null terminate host buffers in buildaddr (broken in 6.21) --
228266338Seric		IMPORTANT FIX!!
228366338Seric
228466338Seric6.21/6.5	93/02/15
228566338Seric	Fix another incorrect error message in alias.c, found by Azuma
228666338Seric		Okamoto.
228766338Seric	Fix a couple of problems in the more-configurable config files,
228866338Seric		found by Tom Ivar Helbekkmo.
228966338Seric	Fix problem with quoted :include: entries.
229066338Seric	Don't duplicate the filename on verbose printing of .forward and
229166338Seric		:include: contents.
229266338Seric	Extend size of prescan buffer (to allow bigger addresses).  Also,
229366338Seric		detect some buffer overflows.
229466338Seric	Log user SMTP protocol errors (log level 4).
229566338Seric
229666338Seric6.20/6.4	93/02/14
229766338Seric	Fix another problem in the MCI state machine caused when there
229866338Seric		were errors generated from the other end to commands
229966338Seric		other than RCPT.
230066338Seric
230166338Seric6.19/6.4	93/02/14
230266338Seric	Include load average support for DEC Alpha running OSF/1.
230366338Seric	Fix multiple-response problem with errors in MAIL From: line.
230466338Seric	Fix SMTP reply codes for invalid address syntaxes (give 501;
230566338Seric		never give multiple error messages for a single message).
230666338Seric	Fix problem where a cached connection timeout rejects all
230766338Seric		later connects to that host.
230866338Seric	Fix incorrect error message if alias.c is compiled with DBM only.
230966338Seric	Additional changes to fix nested conditionals (from Bruce Lilly).
231066338Seric	Recover more gracefully from operating system failures, particularly
231166338Seric		NULL returns from openmailer (from Noritoshi Demizu,
231266338Seric		OMRON Corporation).
231366338Seric	Log forward, alias, and userdb expand operations on log level 10;
231466338Seric		concept suggested by P{r (Pell) Emanuelsson.
231566338Seric	Changes for HPUX 8.07 compatibility.
231666338Seric
231766338Seric6.18/6.4	93/02/12
231866338Seric	Allow any config option to be set using an M4 define.
231966338Seric	Change UNAME compile flag to HASUNAME for IDA compatibility
232066338Seric		(besides, it's a better name).
232166338Seric	Note in README that on SunOS it must be linked -Bstatic.
232266338Seric	Fairly major change in domain.c to handle wildcard MX records
232366338Seric		more rationally.  NOTE: the "w" option (no wildcard MX
232466338Seric		records match local domain) has been eliminated.
232566338Seric	Fix some unset variable references pointed out by Bruce Lilly.
232666338Seric	Fix host name in process titles when using cached connection.
232766338Seric
232866338Seric6.17/6.3	93/01/28
232966338Seric	Fix System 5 compatibility changes to be compatible with the rest
233066338Seric		of the world.
233166338Seric
233266338Seric6.16/6.3	93/01/28
233366338Seric	Experimental fix for problem handling errors in the SMTP
233466338Seric		protocol in conjunction with connection caching.
233566338Seric	System 5 compatibility changes.
233666338Seric
233766338Seric6.15/6.3	93/01/26
233866338Seric	Fix a bug that causes local mail delivered using -odq to be
233966338Seric		eliminated as a duplicate (because it matched the
234066338Seric		ctladdr, now passed in as a C line).  These changes
234166338Seric		are pretty tricky......
234266338Seric
234366338Seric6.14/6.3	93/01/25
234466338Seric	Add debugging for some MCI errors.
234566338Seric
234666338Seric6.13/6.3	93/01/22
234766338Seric	Fix -e compatibility flag to take a value.
234866338Seric	Fix a couple of minor compilation warnings on Sun cc.
234966338Seric	Improve error messages in a few cases to be more self-explanatory.
235066338Seric
235166338Seric6.12/6.3	93/01/21
235266338Seric	Fix yet-another problem with environment handling, pointed out
235366338Seric		by Yoshitaka Tokugawa and Tom Ivar Helbekkmo.
235466338Seric	Some heuristics to try to limit resource exhaustion problems
235566338Seric		if a downstream host has been down for a long time.
235666338Seric	Fix problem with incorrect host name being logged in "Connection
235766338Seric		timed out" messages (from Tom Ivar Helbekkmo).
235866338Seric	Fix some ANSI C problems (from Takahiro Kanbe).
235966338Seric	Properly log message sender on returned mail during queue run.
236066338Seric	Count number of recipients properly.
236166338Seric	Fix a problem in yp map code.
236266338Seric	Diagnose "message timed out" (from Motonori Nakamura).
236366338Seric
236466338Seric6.11/6.3	93/01/20
236566338Seric	Fix problem with address delimitor inside quotes.
236666338Seric	Define $k and $=k to be the UUCP name (from the uname call)
236766338Seric		based on code from Bruce Lilly.
236866338Seric
236966338Seric6.10/6.2	93/01/18
237066338Seric	Implement arpatounix (largely code from Bruce Lilly).
237166338Seric	Log more info (suggested by John Myers).
237266338Seric	Allow nested $?...$|...$. (inspired by code from Bruce Lilly of
237366338Seric		Sony US).
237466338Seric	POSIX compatibility (noted by Keith Bostic).
237566338Seric	Handle SMTP MAIL command errors properly (urged by several people,
237666338Seric		notably John Myers of CMU).
237766338Seric	Do early diagnosis of .cf errors (notably referencing a RHS
237866338Seric		substitution that isn't on the LHS).
237966338Seric	Adjust checkpointing to better handle batched recipients, suggested
238066338Seric		by John Myers.
238166338Seric	Fix miscellaneous bugs.
238266338Seric	(config files:)  Implement MAIL_HUB for all local mail (to handle
238366338Seric		NFS-mounted directories) as urged by Tom Ivar Helbekkmo
238466338Seric		of the Norwegian School of Economics.
238566338Seric
238666338Seric6.9/6.1 	93/01/13
238766338Seric	Environment handling simplification/bug fix -- child processes
238866338Seric		get a minimal, fixed environment.  This avoids different
238966338Seric		behaviour in queue runs.
239066338Seric	Handle commas inside comments properly.
239166338Seric	Properly limit large messages submitted in -obq mode.
239266338Seric
239366338Seric6.8/6.1		93/01/10
239466338Seric	Check mtime of thaw file against .cf and sendmail binary, based on
239566338Seric		code from John Myers.
239666338Seric
239766338Seric6.7/6.1		93/01/10
239866338Seric	MX piggybacking, based on code from John Myers@CMU.
239966338Seric	Allow checkcompat to return -1 to mean tempfail.
240066338Seric	Bug fix in m_mno computation.
240166338Seric
240266338Seric6.6/6.1		93/01/09
240366338Seric	Tuning of queueing functions as recommended by John Gardiner Myers.
240466338Seric	Return mail headers (no body) on messages with negative precedence.
240566338Seric	Minor other bug fixes.
240666338Seric
240766338Seric6.5/6.1		93/01/03
240866338Seric	Fix botch causing queued headers to have ?XX? prefixes.
240966338Seric
241066338Seric6.4/6.1		93/01/02
241166338Seric	Changes to recognize special mailer types (e.g., file) early.
241266338Seric
241366338Seric6.3/6.1		93/01/01
241466338Seric	Pass timeouts to sfgets.
241566338Seric	Check for control characters in addresses.
241666338Seric	Fixed deferred error reporting.
241766338Seric	Report duplicate aliases.
241866338Seric	Handle mixed case recursive aliases.
241966338Seric	Misc bug fixes.
242066338Seric
242166338Seric6.2/6.1		92/12/30
242266338Seric	Put return-receipt-to on a conf.c flag (but don't set it).
242366338Seric	Fix minor syslog problem.
2424