1*66346Seric8.6.3/8.6.3	93/10/24
2*66346Seric	IMPORTANT FIX: Fix several problems that caused open files to
3*66346Seric		be "lost" during queue runs; this overflowed the open
4*66346Seric		file table on large runs.  An assumption that fdopen
5*66346Seric		always succeeds sometimes resulted in core dumps when
6*66346Seric		this happens; sometimes the message is delivered twice,
7*66346Seric		sometimes (probably) infinite times.  This problem in
8*66346Seric		various form was reported by P{r (Pell) Emanuelsson and
9*66346Seric		Robert Campbell of U.C. Berkeley.
10*66346Seric	Special diagnosis of EMFILE error conditions -- it now prints
11*66346Seric		the known open file descriptors so you can figure out
12*66346Seric		what is consuming so much resources.
13*66346Seric	Fix a couple of problems caused by early address parsing
14*66346Seric		errors -- one caused it to return a "this is only a
15*66346Seric		warning" when it really wasn't, and the other started
16*66346Seric		parsing through a random pointer.  The first was
17*66346Seric		noted by Eric Wassenaar.
18*66346Seric	Fix an infinite loop problem caused by null components in the
19*66346Seric		host signature.  Problem noted by Jan Sorensen.
20*66346Seric	Be sure to reset the "current date" when sending an error
21*66346Seric		message -- PostMasterCopy messages were being sent
22*66346Seric		with an old Date: header.
23*66346Seric	Fix a problem that caused duplicated mail when sendmail was
24*66346Seric		(1) compiled without HASFLOCK, (2) you are sending to
25*66346Seric		an alias that has an owner-* alias, (3) you execute
26*66346Seric		sendmail with -t flag, (4) you run in -odb mode, and
27*66346Seric		(5) the sender specifies both the alias name and
28*66346Seric		another alias [i.e., the envelope is split], then
29*66346Seric		duplicate messages are sent.  The problem description
30*66346Seric		and one-line fix are from Motonori Nakamura of Kyoto
31*66346Seric		University.
32*66346Seric	Avoid a problem that causes error messages to be discarded
33*66346Seric		in some cases -- this was the result of a "fix" to
34*66346Seric		avoid duplicate error messages, but two are better
35*66346Seric		than zero.  Reported by Tim Rylance.
36*66346Seric	Fix a minor botch in checkfd012() -- fix from Dave Hill of
37*66346Seric		Computervision R&D Ltd.
38*66346Seric	Remove "X-Authentication-Warning: <user> set sender to <address>
39*66346Seric		using -f" entirely -- it is far too eager to include
40*66346Seric		this, and it is confusing folks.  I'll try to make it
41*66346Seric		work "right" in 8.7.  Problem noted by Yoshitaka
42*66346Seric		Tokugawa of dit Co., Ltd.
43*66346Seric	Fix a race condition with the errno value in tick() and
44*66346Seric		reapchild() -- this caused occasional misdiagnosis
45*66346Seric		of problems.  Kyle Jones of UUNET helped this along.
46*66346Seric	Repair rule loop-detection code.  From Michael Corrigan of
47*66346Seric		U.C. San Diego.
48*66346Seric	Fix a problem that caused sender domain addition (C mailer
49*66346Seric		flag to be ignored if you use -odq or use -odb with
50*66346Seric		a high load average.  Problem reported by Jim Murray
51*66346Seric		of Stratus.
52*66346Seric	Fix ident protocol on multi-homed machines.  It was not
53*66346Seric		always using the correct interface.  Fix from J.R.
54*66346Seric		Oldroyd of Opal.
55*66346Seric	Previously, sendmail assumed that any SMTP greeting message
56*66346Seric		that wasn't 2xx was a temporary failure -- it should
57*66346Seric		only take 4xx as a temporary failure, and return a
58*66346Seric		solid error message on anything else -- for example,
59*66346Seric		to allow you to reject connections on a workstation
60*66346Seric		that is MXed to a mail server.
61*66346Seric	Portability enhancements for 386BSD/FreeBSD/NetBSD from
62*66346Seric		Ollivier Robert.
63*66346Seric	CONFIG: FEATURE(always_add_domain) didn't always add the domain;
64*66346Seric		in particular, on local mail it modified the header sender
65*66346Seric		but not the header recipient address(es).  Reported by
66*66346Seric		Jeffrey Honig of Cornell University.  Also, strip
67*66346Seric		any host from envelope recipient address(es), since
68*66346Seric		local mailers don't understand host names -- this is
69*66346Seric		to help mailertable entries.  From Christopher Davis.
70*66346Seric	CONFIG: masquerading didn't apply to addresses that already
71*66346Seric		had a domain.  This change replaces a local hostname
72*66346Seric		by the masquerade name in the SMTP mailer (previously
73*66346Seric		it only added the masquerade name if it didn't already
74*66346Seric		have a domain name).  Several people complained about
75*66346Seric		this.
76*66346Seric
7766345Seric8.6.2/8.6.2	93/10/15
7866345Seric	Put a "successful delivery" message in the transcript for
7966345Seric		addresses that get return-receipts.
8066345Seric	Put a prominent "this is only a warning" message in warning
8166345Seric		messages -- some people don't read carefully enough
8266345Seric		and end up sending the message several times.
8366345Seric	Include reason for temporary failure in the "warning" return
8466345Seric		message.  Currently, it just says "cannot send for
8566345Seric		four hours".
8666345Seric	Fix the "Original message received" time generated for
8766345Seric		returntosender messages.  It was previously listed as
8866345Seric		the current time.  Bug reported by Eric Hagberg of
8966345Seric		Cornell University Medical College.
9066345Seric	If there is an error when writing the body of a message,
9166345Seric		don't send the trailing dot and wait for a response
9266345Seric		in sender SMTP, as this could cause the connection to
9366345Seric		hang up under some bizarre circumstances.  From Eric
9466345Seric		Wassenaar.
9566345Seric	Fix some server SMTP synchronization problems caused when
9666345Seric		connections fail during message collection.  From
9766345Seric		Eric Wassenaar.
9866345Seric	Fix a problem that can cause srvrsmtp to reject mail if the
9966345Seric		name server is down -- it accepts the RCPT but rejects
10066345Seric		the DATA command.  Problem reported by Jim Murray of
10166345Seric		Stratus.
10266345Seric	Fix a problem that can cause core dumps if the config file
10366345Seric		incorrectly resolves to a null hostname.  Reported by
10466345Seric		Allan Johannesen of WPI.
10566345Seric	Non-root use of -C flag, dangerous -f flags, and use of -oQ
10666345Seric		by non-root users were not put into
10766345Seric		X-Authentication-Warning:s as intended because the
10866345Seric		config file hadn't set the PrivacyFlags yet.  Fix
10966345Seric		from Sven-Ove Westberg of the University of Lulea.
11066345Seric	Under very odd circumstances, the alias file rebuild code
11166345Seric		could get confused as to whether a database was
11266345Seric		open or not.
11366345Seric	Check "vendor code" on the end of V lines -- this is
11466345Seric		intended to provide a hook for vendor-specific
11566345Seric		configuration syntax.  (This is a "new feature",
11666345Seric		but I've made an exception to my rule in a belief
11766345Seric		that this is a highly exceptional case.)
11866345Seric	Portability fixes for DG/UX (from Douglas Anderson of NCSC),
11966345Seric		SCO Unix (from Murray Kucherawy), A/UX, and OSF/1
12066345Seric		(from Jon Forrest of UC Berkeley)
12166345Seric	CONFIG: fix ``mailer:host'' form of UUCP relay naming.
12266345Seric
12366344Seric8.6.1/8.6	93/10/08
12466344Seric	Portability fixes for A/UX and Encore UMAX V.
12566344Seric	Fix error message handling -- if you had a name server down
12666344Seric		causing an error during parsing, that message was never
12766344Seric		propogated to the queue file.
12866344Seric
12966343Seric8.6/8.6		93/10/05
13066343Seric	Configuration cleanup: make it easier to undo IDENTPROTO in
13166343Seric		conf.h (other systems have the same bug).
13266343Seric	If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume
13366343Seric		getdtablesize() instead of sysconf(); a disturbingly
13466343Seric		large number of systems defined _SC_OPEN_MAX in the
13566343Seric		header files but don't have the syscall.
13666343Seric	Another patch to really truly ignore MX records in getcanonname
13766343Seric		if trymx == FALSE.
13866343Seric	Fix problem that caused the "250 IAA25499 Message accepted for
13966343Seric		delivery" message to be omitted if there was an error
14066343Seric		in the header of the message (e.g., a bad Errors-To:
14166343Seric		line).  Pointed out by Michael Corrigan of UCSD.
14266343Seric	Announce name of host we are chatting when we get errors; this
14366343Seric		is an IDA-ism suggested by Christophe Wolfhugel.
14466343Seric	Portability fixes for Alpha OSF/1 (from Anthony Baxter of the
14566343Seric		Australian Artificial Intelligence Institute), SCO Unix
14666343Seric		(from Murray Kucherawy of Hookup Communication Corp.),
14766343Seric		NeXT (from Vince DeMarco and myself), Linux (from
14866343Seric		Karl London <karl@borg.demon.co.uk>), BSDI (from
14966343Seric		Christophe Wolfhugel, and SVR4 on Dell (from Kimmo
15066343Seric		Suominen), AUX 3.0 on Macintosh, and ANSI C compilers.
15166343Seric	Some changes to get around gcc optimizer bugs.  From Takahiro
15266343Seric		Kanbe.
15366343Seric	Fix error recovery in queueup if another tf file of the same
15466343Seric		name already exists.  Problem stumbled over by Bill
15566343Seric		Wisner of The Well.
15666343Seric	Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes.
15766343Seric		Problem noted by Keith McMillan of Ameritech Services.
15866343Seric	Deal with group permissions properly when opening .forward and
15966343Seric		:include: files.  This relaxes the 8.1C restrictions
16066343Seric		slightly more.  This includes proper setting of groups
16166343Seric		when reading :include: files, allowing you to read some
16266343Seric		files that you should be able to read but have previously
16366343Seric		been denied unless you owned them or they had "other"
16466343Seric		read permission.
16566343Seric	Make certain that $j is in $=w (after the .cf is read) so that
16666343Seric		if the user is forced to override some silly system,
16766343Seric		MX suppression will still work.
16866343Seric	Fix a couple of efficiency problems where newstr was double-
16966343Seric		calling expensive routines.  In at least one case, it
17066343Seric		wasn't guaranteed that they would always return the
17166343Seric		same result.  Problem noted by Christophe Wolfhugel.
17266343Seric	Fix null pointer dereference in putoutmsg -- only on an error
17366343Seric		condition from a non-SMTP mailer.  From Motonori
17466343Seric		Nakamura.
17566343Seric	Macro expand "C" line class definitions before scanning so that
17666343Seric		"CX $Z" works.
17766343Seric	Fix problem that caused error message to be sent while still
17866343Seric		trying to send the original message if the connection
17966343Seric		is closed during a DATA command after getting an error
18066343Seric		on an RCPT command (pretty obscure).  Problem reported
18166343Seric		by John Myers of CMU.
18266343Seric	Fix reply to NOOP to be 250 instead of 200 -- this is a long
18366343Seric		term bug.
18466343Seric	Fix a nasty bug causing core dumps when returning the "warning:
18566343Seric		cannot deliver for N hours -- will keep trying" message;
18666343Seric		it only occurred if you had PostMasterCopy set and
18766343Seric		only on some architectures.  Although sendmail would
18866343Seric		keep trying, it would send error messages on each
18966343Seric		queue interval.  This is an important fix.
19066343Seric	Allow u and g options to take user and group names respectively.
19166343Seric	Don't do a chdir into the queue directory in -bt mode to make
19266343Seric		ruleset testing a bit easier.
19366343Seric	Don't allow users to turn off logging (using -oL) on the command
19466343Seric		line -- command line can only raise, not lower, logging
19566343Seric		level.
19666343Seric	Set $u to the original recipient on the SMTP transaction or on
19766343Seric		the command line.  This is only done if there is exactly
19866343Seric		one recipient.  Technically, this does not meet the
19966343Seric		specs, because it does not guarantee a domain on the
20066343Seric		address.
20166343Seric	Fix a problem that dumped error messages on bad addresses if
20266343Seric		you used the -t flag.  Problem noted by Josh Smith of
20366343Seric		Harvey Mudd College.
20466343Seric	Given an address such as ``<foo> <bar>'', auto-quote the first
20566343Seric		``<foo>'' part, giving ``"<foo>" <bar>''.  This is to
20666343Seric		avoid the problem of people who use angle brackets in
20766343Seric		their full name information.
20866343Seric	Fix a null pointer dereference if you set option "l", have
20966343Seric		an Errors-To: header in the message, and have Errors-To:
21066343Seric		defined in the config file H lines.  From J.R. Oldroyd.
21166343Seric	Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get
21266343Seric		wrong when compiling.  Suggested by Rick McCarty of TI.
21366343Seric	Fix a problem that could pass negative SIZE parameter if the
21466343Seric		df file got lost; this would cause servers to always
21566343Seric		give a temporary failure, making the problem even worse.
21666343Seric		Problem noted by Allan Johannesen of WPI.
21766343Seric	Add "ident" timeout (one of the "r" option selectors) for IDENT
21866343Seric		protocol timeouts (30s default).  Requested by Murray
21966343Seric		Kucherawy of HookUp Communication Corp. to handle bogus
22066343Seric		PC TCP/IP implementations.
22166343Seric	Change $w default definition to be just the first component of
22266343Seric		the domain name on config level 5.  The $j macro defaults
22366343Seric		to the FQDN; $m remains as before.  This lets well-behaved
22466343Seric		config files use any of the short, long, or subdomain
22566343Seric		names.
22666343Seric	Add makesendmail script in src to try to automate multi-architecture
22766343Seric		builds.  I know, this is sub-optimal, but it is still
22866343Seric		helpful.
22966343Seric	Fix very obscure race condition that can cause a queue run to
23066343Seric		get a queue file for an already completed job.  This
23166343Seric		problem has existed for years.  Problem noted by the
23266343Seric		long suffering Allan Johannesen of WPI.
23366343Seric	Fix a problem that caused the raw sender name to be passed to
23466343Seric		udbsender instead of the canonified name -- this caused
23566343Seric		it to sometimes miss records that it should have found.
23666343Seric	Relax check of name on HELO packet so that a program using -bs
23766343Seric		that claims to be itself works properly.
23866343Seric	Restore rewriting of $: part of address through 2, R, 4 in
23966343Seric		buildaddr -- this requires passing a lot of flags to get
24066343Seric		it right.  Unlike old versions, this ONLY rewrites
24166343Seric		recipient addresses, not sender addresses.
24266343Seric	Fix a bug that caused core dumps in config files that cannot
24366343Seric		resolve /file/name style addresses.  Fix from Jonathan
24466343Seric		Kamens of OpenVision Technologies.
24566343Seric	Fix problem with fcntl locking that can cause error returns to
24666343Seric		be lost if the lock is lost; this required fully
24766343Seric		queueing everything, dropping the envelope (so errors
24866343Seric		would get returned), and then re-reading the queue from
24966343Seric		scratch.
25066343Seric	Fix a problem that caused aliases that redefine an otherwise
25166343Seric		true address to still send to the original address
25266343Seric		if and only if the alias failed in certain bizarre
25366343Seric		ways (e.g, if they pointed at a list:; syntax address).
25466343Seric		Problem pointed out by Jonathan Kamens.
25566343Seric	Remove support for frozen configuration files.  They caused
25666343Seric		more trouble than it was worth.
25766343Seric	Fix problem that can cause error messages to get ignored when
25866343Seric		using both -odb and -t flags.  Problem noted by Rob
25966343Seric		McNicholas at U.C. Berkeley.
26066343Seric	Include all "normal" variations on hostname in $=w.  For example,
26166343Seric		if the host name is vangogh.cs.berkeley.edu, $=w will
26266343Seric		contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu.
26366343Seric	Add "restrictqrun" privacy flag -- without this, anyone can run
26466343Seric		the queue.
26566343Seric	Reset SmtpPhase global on initial connection creation so that
26666343Seric		messages don't come out with stale information.
26766343Seric	Pass an "ext" argument to lockfile so that error/log messages
26866343Seric		will properly reflect the true filename being locked.
26966343Seric	Put all [...] address forms into $=w -- this eliminates the need
27066343Seric		for MAXIPADDR in conf.h.  Suggested by John Gardiner
27166343Seric		Myers of CMU.
27266343Seric	Fix a bug that can cause qf files to be left around even after
27366343Seric		an SMTP RSET command.  Problem and fix from Michael
27466343Seric		Corrigan.
27566343Seric	Don't send a PostMasterCopy to errors when the Precedence: is
27666343Seric		negative.  Error reports still go to the envelope
27766343Seric		sender address.
27866343Seric	Add LA_SHORT for load averages.
27966343Seric	Lock sendmail.st file when posting statistics.
28066343Seric	Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to
28166343Seric		set the size of the TCP send and receive buffers; if you
28266343Seric		run over a slow slip line you may need to set these down
28366343Seric		(although it would be better to fix the SLIP implementation
28466343Seric		so that it's not necessary to recompile every program
28566343Seric		that does bulk data transfer).
28666343Seric	Allow null defaults on $( ... $) lookups.  Problem reported by
28766343Seric		Amir Plivatsky.
28866343Seric	Diagnose crufty S and V config lines.  This resulted from an
28966343Seric		observation that some people were using the SITE macro
29066343Seric		without the SITECONFIG macro first, which was causing
29166343Seric		bogus config files that were not caught.
29266343Seric	Fix makemap -f flag to turn off case folding (it was turning it
29366343Seric		on instead).  THIS IS A USER VISIBLE CHANGE!!!
29466343Seric	Fix a problem that caused multiple error messages to be sent if
29566343Seric		you used "sendmail -t -oem -odb", your system uses fcntl
29666343Seric		locking, and one of the recipient addresses is unknown.
29766343Seric	Reset uid earlier in include() so that recursive .forwards or
29866343Seric		:include:s don't use the wrong uid.
29966343Seric	If file descriptor 0, 1, or 2 was closed when sendmail was
30066343Seric		called, the code to recover the descriptor was broken.
30166343Seric		This sometimes (only sometimes) caused problems with the
30266343Seric		alias file.  Fix from Motonori Nakamura.
30366343Seric	Fix a problem that caused aliaswait to go into infinite recursion
30466343Seric		if the @:@ metasymbol wasn't found in the alias file.
30566343Seric	Improve error message on newaliases if database files cannot be
30666343Seric		opened or if running with no database format defined.
30766343Seric	Do a better estimation of the size of error messages when NoReturn
30866343Seric		is set.  Problem noted by P{r (Pell) Emanuelsson.
30966343Seric	Fix a problem causing the "c" option (don't connect to expensive
31066343Seric		mailers) to be ignored in SMTP.  Problem noted and the
31166343Seric		solution suggested by Robert Elz of Munnari University.
31266343Seric	Improve connection caching algorithm by passing "[host]" to
31366343Seric		hostsignature, which strips the square brackets and
31466343Seric		returns the real name.  This allows mailertable entries
31566343Seric		to match regular entries.
31666343Seric	Re-enable Return-Receipt-To: -- people seem to want this stupid
31766343Seric		feature, even if it doesn't work right.
31866343Seric	Catch and log attempts to try the "wiz" command in server SMTP.
31966343Seric		This also ups the log level from LOG_NOTICE to LOG_CRIT.
32066343Seric	Be more generous at assigning $z to the home directory -- do this
32166343Seric		for programs that are specified through a .forward file.
32266343Seric		Fix from Andrew Chang of Sun Microsystems.
32366343Seric	Always save a fatal error message in preference to a non-fatal
32466343Seric		error message so that the "subject" line of return
32566343Seric		messages is the best possible.
32666343Seric	CONFIG: reduce the number of quotes needed to quote configuration
32766343Seric		parameters with commas: two quotes should work now, e.g.,
32866343Seric		define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local'').
32966343Seric	CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom
33066343Seric		connections (domain-ized UUCP).
33166343Seric	CONFIG: fix bug in default maps (-o must be before database file
33266343Seric		name).  Pointed out by Christophe Wolfhugel.
33366343Seric	CONFIG: add FEATURE(nodns) to state that we are not relying on
33466343Seric		DNS.  This would presumably be used in UUCP islands.
33566343Seric	CONFIG: add OSTYPE(nextstep) and OSTYPE(linux).
33666343Seric	CONFIG: log $u in Received: line.  This is in technical violation
33766343Seric		of the standards, since it doesn't guarantee a domain
33866343Seric		on the address.
33966343Seric	CONFIG: don't assume "m" in local mailer flags -- this means that
34066343Seric		if you redefine LOCAL_MAILER_FLAGS you will have to include
34166343Seric		the "m" flag should you want it.  Apparently some Solaris 2.2
34266343Seric		installations can't handle multiple local recipients.
34366343Seric		Problem noted by Josh Smith.
34466343Seric	CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults).
34566343Seric	CONFIG: change default version level from 4 to 5.
34666343Seric	CONFIG: add FEATURE(nullclient) to create a config file that
34766343Seric		forwards all mail to a hub without ever looking at the
34866343Seric		addresses in any detail.
34966343Seric	CONFIG: properly strip mailer: information off of relays when
35066343Seric		used to change .BITNET form into %-hack form.
35166343Seric	CONFIG: fix a problem that caused infinite loops if presented
35266343Seric		with an address such as "!foo".
35366343Seric	CONFIG: check for self literal (e.g., [128.32.131.12]) even if
35466343Seric		the reverse "PTR" mapping is broken.  There's a better
35566343Seric		way to do this, but the change is fairly major and I
35666343Seric		want to hold it for another release.  Problem noted by
35766343Seric		Bret Marquis.
35866343Seric
35966342Seric8.5/8.5		93/07/23
36066342Seric	Serious bug: if you used a command line recipient that was unknown
36166342Seric		sendmail would not send a return message (it was treating
36266342Seric		everything as though it had an SMTP-style client that
36366342Seric		would do the return itself).  Problem noted by Josh Smith.
36466342Seric	Change "trymx" option in getcanonname() to ignore all MX data,
36566342Seric		even during a T_ANY query.  This actually didn't break
36666342Seric		anything, because the only time you called getcanonname
36766342Seric		with !trymx was if you already knew there were no MX
36866342Seric		records, but it is somewhat cleaner.  From Motonori
36966342Seric		Nakamura.
37066342Seric	Don't call getcanonname from getmxrr if you already know there
37166342Seric		are no DNS records matching the name.
37266342Seric	Fix a problem causing error messages to always include "The
37366342Seric		original message was received ... from localhost".
37466342Seric		The correct original host information is now included.
37566342Seric	Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their
37666342Seric		version of "test" doesn't have the -x flag).  Change it
37766342Seric		to use -f instead.  From John Myers.
37866342Seric	CONFIG: 8.4 mistakenly set the default SMTP-style mailer to
37966342Seric		esmtp -- it should be smtp.
38066342Seric	CONFIG: send all relayed mail using confRELAY_MAILER (defaults
38166342Seric		to "relay" (a variant of "smtp") if MAILER(smtp) is used,
38266342Seric		else "suucp" if MAILER(uucp) is used, else "unknown");
38366342Seric		this cleans up the configs somewhat.  This fixes a serious
38466342Seric		problem that caused route-addrs to get mistaken as relays,
38566342Seric		pointed out by John Myers.  WARNING: this also causes
38666342Seric		the default on SMART_HOST to change from "suucp" to
38766342Seric		"relay" if you have MAILER(smtp) specified.
38866342Seric
38966341Seric8.4/8.4		93/07/22
39066341Seric	Add option `w'.  If you receive a message that comes to you because
39166341Seric		you are the best (lowest preference) target of an MX, and
39266341Seric		you haven't explicitly recognized the source MX host in
39366341Seric		your .cf file, this option will cause you to try the target
39466341Seric		host directly (as if there were no MX for it at all).  If
39566341Seric		`w' is not set, this case is a configuration error.
39666341Seric		Beware: if `w' is set, senders may get bogus errors like
39766341Seric		"message timed out" or "host unknown" for problems that
39866341Seric		are really configuration errors.  This option is
39966341Seric		disrecommended, provided only for compatibility with
40066341Seric		UIUC sendmail.
40166341Seric	Fix a problem that caused the incoming socket to be left open
40266341Seric		when sendmail forks after the DATA command.  This caused
40366341Seric		calling systems to wait in FIN_WAIT_2 state until the
40466341Seric		entire list was processed and the child closed -- a
40566341Seric		potentially prodigious amount of time.  Problem noted
40666341Seric		by Neil Rickert.
40766341Seric	Fix problem (created in 6.64) that caused mail sent to multiple
40866341Seric		addresses, one of which was a bad address, to completely
40966341Seric		suppress the sending of the message.  This changes
41066341Seric		handling of EF_FATALERRS somewhat, and adds an
41166341Seric		EF_GLOBALERRS flag.  This also fixes a potential problem
41266341Seric		with duplicate error messages if there is a syntax error
41366341Seric		in the header of a message that isn't noticed until late
41466341Seric		in processing.  Original problem pointed out by Josh Smith
41566341Seric		of Harvey Mudd College.  This release includes quite a bit
41666341Seric		of dickering with error handling (see below).
41766341Seric	Back out SMTP transaction if MAIL gets nested 501 error.  This
41866341Seric		will only hurt already-broken software and should help
41966341Seric		humans.
42066341Seric	Fix a problem that broke aliases when neither NDBM nor NEWDB were
42166341Seric		compiled in.  It would never read the alias file.
42266341Seric	Repair unbalanced `)' and `>' (the "open" versions are already
42366341Seric		repaired).
42466341Seric	Logging of "done" in dropenvelope() was incorrect: it would
42566341Seric		log this even when the queue file still existed.  Change
42666341Seric		this to only log "done" (at log level 11) when the
42766341Seric		queue file is actually removed.  From John Myers.
42866341Seric	Log "lost connection" in server SMTP at log level 20 if there
42966341Seric		is no pending transaction.  Some senders just close the
43066341Seric		connection rather than sending QUIT.
43166341Seric	Fix a bug causing getmxrr to add a dot to the end of unqualified
43266341Seric		domains that do not have MX records -- this would cause
43366341Seric		the subsequent host name lookup to fail.  The problem
43466341Seric		only occurred if you had FEATURE(nocanonify) set.
43566341Seric		Problem noted by Rick McCarty of Texas Instruments.
43666341Seric	Fix invocation of setvbuf when passed a -X flag -- I had
43766341Seric		unwittingly used an ANSI C extension, and this caused
43866341Seric		core dumps on some machines.
43966341Seric	Diagnose self-destructive alias loops on RCPT as well as EXPN.
44066341Seric		Previously it just gave an empty send queue, which
44166341Seric		then gave either "Need RCPT (recipient)" at the DATA
44266341Seric		(confusing, since you had given an RCPT command which
44366341Seric		returned 250) or just dropped the email, depending on
44466341Seric		whether you were running VERBose mode.  Now it usually
44566341Seric		diagnoses this case as "aliasing/forwarding loop broken".
44666341Seric		Unfortunately, it still doesn't adequately diagnose
44766341Seric		some true error conditions.
44866341Seric	Add internal concept of "warning messages" using 6xx codes.
44966341Seric		These are not reported only to Postmaster.  Unbalanced
45066341Seric		parens, brackets, and quotes are printed as 653 codes.
45166341Seric		They are always mapped to 5xx codes before use in SMTP.
45266341Seric	Clean up error messages to tell both the actual address that
45366341Seric		failed and the alias they arose from.  This makes it
45466341Seric		somewhat easier to diagnose problems.  Difficulty noted
45566341Seric		by Motonori Nakamura.
45666341Seric	Fix a problem that inappropriately added a ctladdr to addresses
45766341Seric		that shouldn't have had one during a queue run.  This
45866341Seric		caused error messages to be handled differently during
45966341Seric		a queue run than a direct run.
46066341Seric	Don't print the qf name and line number if you get errors during
46166341Seric		the direct run of the queue from srvrsmtp -- this was
46266341Seric		just extra stuff for users to crawl through.
46366341Seric	Put command line flags on second line of pid file so you can
46466341Seric		auto-restart the daemon with all appropriate arguments.
46566341Seric		Use "kill `head -1 /etc/sendmail.pid`" to stop the
46666341Seric		daemon, and "eval `tail -1 /etc/sendmail.pid`" to
46766341Seric		restart it.
46866341Seric	Remove the ``setuid(getuid())'' in main -- this caused the
46966341Seric		IDENT daemon to screw up.  This required that I change
47066341Seric		HASSETEUID to HASSETREUID and complicate the mode
47166341Seric		changing somewhat because both Ultrix and SunOS seem
47266341Seric		to have a bug causing seteuid() to set the saved uid
47366341Seric		as well as the effective.  The program test/t_setreuid.c
47466341Seric		will test to see if your implementation of setreuid(2)
47566341Seric		is appropriately functional.
47666341Seric	The FallBackMX (option V) handling failed to properly identify
47766341Seric		fallback to yourself -- most of the code was there,
47866341Seric		but it wasn't being enabled.  Problem noted by Murray
47966341Seric		Kucherawy of the University of Waterloo.
48066341Seric	Change :include: open timeout from ETIMEDOUT to an internal
48166341Seric		code EOPENTIMEOUT; this avoids adding "during SmtpPhase
48266341Seric		with CurHostName" in error messages, which can be
48366341Seric		confusing.  Reported by Jonathan Kamens of OpenVision
48466341Seric		Technologies.
48566341Seric	Back out setpgrp (setpgid on POSIX systems) call to reset the
48666341Seric		process group id.  The original fix was to get around
48766341Seric		some problems with recalcitrant MUAs, but it breaks
48866341Seric		any call from a shell that creates a process group id
48966341Seric		different from the process id.  I could try to fix
49066341Seric		this by diddling the tty owner (using tcsetpgrp or
49166341Seric		equivalent) but this is too likely to break other
49266341Seric		things.
49366341Seric	Portability changes:
49466341Seric		Support -M as equivalent to -oM on Ultrix -- apparently
49566341Seric			DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs
49666341Seric			instead of using standard flags.  Oh joy.  This
49766341Seric			behaviour reported by Jon Giltner of University
49866341Seric			of Colorado.
49966341Seric		SGI IRIX  -- this includes several changes that should
50066341Seric			help other strict ANSI compilers.
50166341Seric		SCO Unix -- from Murray Kucherawy of HookUp Communication
50266341Seric			Corporation.
50366341Seric		Solaris running the Sun C compiler (which despite the
50466341Seric			documentation apparently doesn't define
50566341Seric			__STDC__ by default).
50666341Seric		ConvexOS from Eric Schnoebelen of Convex.
50766341Seric		Sony NEWS workstations and Omron LUNA workstations from
50866341Seric			Motonori Nakamura.
50966341Seric	CONFIG: add confTRY_NULL_MX_LIST to set option `w'.
51066341Seric	CONFIG: delete `C' and `e' from default SMTP mailers flags;
51166341Seric		several people have made a good argument that this
51266341Seric		creates more problems than it solves (although this
51366341Seric		may prove painful in the short run).
51466341Seric	CONFIG: generalize all the relays to accept a "mailer:host"
51566341Seric		format.
51666341Seric	CONFIG: move local processing in ruleset 0 into a new ruleset
51766341Seric		98 (8 on old sendmail).  Domain literal [a.b.c.d]
51866341Seric		addresses are also passed through this ruleset.
51966341Seric	CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined,
52066341Seric		internet-style addresses would "fall off the end" of
52166341Seric		ruleset zero and be interpreted as local -- however,
52266341Seric		the angle brackets confused the recursive call.
52366341Seric		These are now diagnosed as "Unrecognized host name".
52466341Seric	CONFIG: USENET rules weren't included in S0 because of a mistaken
52566341Seric		ifdef(`_MAILER_USENET_') instead of
52666341Seric		ifdef(`_MAILER_usenet_').  Problem found by Rein Tollevik
52766341Seric		of SINTEF RUNIT, Oslo.
52866341Seric	CONFIG: move up LOCAL_RULE_0 processing so that it happens very
52966341Seric		early in ruleset 0; this allows .mc authors to bypass
53066341Seric		things like the "short circuit" code for local addresses.
53166341Seric		Prompted by a comment by Bill Wisner of The Well.
53266341Seric	CONFIG: add confSMTP_MAILER to define the mailer used (smtp or
53366341Seric		esmtp) to send SMTP mail.  This allows you to default
53466341Seric		to esmtp but use a mailertable or other override to
53566341Seric		deal with broken servers.  This logic was pointed out
53666341Seric		to me by Bill Wisner.  Ditto for confLOCAL_MAILER.
53766341Seric	Changes to cf/sh/makeinfo.sh to make it portable to SVR4
53866341Seric		environments.  Ugly as sin.
53966341Seric
54066340Seric8.3/8.3		93/07/13
54166340Seric	Fix setuid problems introduced in 8.2 that caused messages
54266340Seric		like "Cannot create qfXXXXXX: Invalid argument"
54366340Seric		or "Cannot reopen dfXXXXXX: Permission denied".  This
54466340Seric		involved a new compile flag "HASSETEUID" that takes
54566340Seric		the place of the old _POSIX_SAVED_IDS -- it turns out
54666340Seric		that the POSIX interface is broken enough to break
54766340Seric		some systems badly.  This includes some fixes for
54866340Seric		HP-UX.  Also fixes problems where the real uid is
54966340Seric		not reset properly on startup (from Neil Rickert).
55066340Seric	Fix a problem that caused timed out messages to not report the
55166340Seric		addresses that timed out.  Error messages are also more
55266340Seric		"user friendly".
55366340Seric	Drop required bandwidth on connections from 64 bytes/sec to
55466340Seric		16 bytes/sec.
55566340Seric	Further Solaris portability changes -- doesn't require the BSD
55666340Seric		compatibility library.  This also adds a new
55766340Seric		"HASGETDTABLESIZE" compile flag which can be used if
55866340Seric		you want to use getdtablesize(2) instead of sysconf(2).
55966340Seric		These are loosely based on changes from David Meyer at
56066340Seric		University of Oregon.  This now seems to work, at least
56166340Seric		for quick test cases.
56266340Seric	Fix a problem that can cause duplicate error messages to be
56366340Seric		sent if you are in SMTP, you send to multiple addresses,
56466340Seric		and at least one of those addresses is good and points
56566340Seric		to an account that has a .forward file (whew!).
56666340Seric	Fix a problem causing messages to be discarded if checkcompat()
56766340Seric		returned EX_TEMPFAIL (because it didn't properly mark
56866340Seric		the "to" address).  Problem noted by John Myers.
56966340Seric	Fix dfopen to return NULL if the open failed; I was depending
57066340Seric		on fdopen(-1) returning NULL, which isn't the case.  This
57166340Seric		isn't serious, but does result in wierd error diagnoses.
57266340Seric		From Michael Corrigan.
57366340Seric	CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of
57466340Seric		messages sent through UUCP-family mailers.  Suggested
57566340Seric		by Bill Wisner of The Well.
57666340Seric	CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified,
57766340Seric		include a "uucp-dom" mailer that uses domain-style
57866340Seric		addressing.  Suggested by Bill Wisner.
57966340Seric	CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match
58066340Seric		LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS.  Suggested by
58166340Seric		Christophe Wolfhugel.
58266340Seric	CONFIG: Add OSTYPE(aix3).  From Christophe Wolfhugel.
58366340Seric
58466339Seric8.2/8.2		93/07/11
58566339Seric	Don't drop out on config file parse errors in -bt mode.
58666339Seric	On older configuration files, assume option "l" (use Errors-To
58766339Seric		header) for back compatibility.  NOTE:  this DOES NOT
58866339Seric		imply an endorsement of the Errors-To: header in any way.
58966339Seric	Accept -x flag on AIX-3 as well as OSF/1.  Why, why, why???
59066339Seric	Don't log errors on EHLO -- it isn't a "real" error for an old
59166339Seric		SMTP server to give an error on this command, and
59266339Seric		logging it in the transcript can be confusing.  Fix
59366339Seric		from Bill Wisner.
59466339Seric	IRIX compatibility changes provided by Dan Rich
59566339Seric		<drich@sandman.lerc.nasa.gov>.
59666339Seric	Solaris 2 compatibility changes.  Provided by Bob Cunningham
59766339Seric		<bob@kahala.soest.hawaii.edu>, John Oleynick
59866339Seric		<juo@klinzhai.rutgers.edu>
59966339Seric	Debugging: -d17 was overloaded (hostsignature and usersmtp.c);
60066339Seric		move usersmtp (smtpinit and smtpmailfrom) to -d18 to
60166339Seric		match the other flags in that file.
60266339Seric	Flush transcript before fork in mailfile().  From Eric Wassenaar.
60366339Seric	Save h_errno in mci struct and improve error message display.
60466339Seric		Changes from Eric Wassenaar.
60566339Seric	Open /dev/null for the transcript if the create of the xf file
60666339Seric		failed; this avoids at least one possible null pointer
60766339Seric		reference in very wierd cases.  From Eric Wassenaar.
60866339Seric	Clean up statistics gathering; it was over-reporting because of
60966339Seric		forks.  From Eric Wassenaar.
61066339Seric	Fix problem that causes old Return-Path: line to override new
61166339Seric		Return-Path: line (conf.c needs H_FORCE to avoid
61266339Seric		re-using old value).  From Motonori Nakamura.
61366339Seric	Fix broken -m flag in K definition -- even if -m (match only)
61466339Seric		was specified, it would still replace the key with the
61566339Seric		value.  Noted by Rick McCarty of Texas Instruments.
61666339Seric	If the name server timed out over several days, no "timed out"
61766339Seric		message would ever be sent back.  The timeout code
61866339Seric		has been moved from markfailure() to dropenvelope()
61966339Seric		so that all such failures should be diagnosted.  Pointed
62066339Seric		out by Christophe Wolfhugel and others.
62166339Seric	Relax safefile() constraints: directories in an include or
62266339Seric		forward path must be readable by self if the controlling
62366339Seric		user owns the entry, readable by all otherwise (e.g.,
62466339Seric		when reading your .forward file, you have to own and
62566339Seric		have X permssion in it; everyone needs X permission in
62666339Seric		the root and directories leading up to your home);
62766339Seric		include files must be readable by anyone, but need not
62866339Seric		be owned by you.
62966339Seric	If _POSIX_SAVED_IDS is defined, setuid to the owner before
63066339Seric		reading a .forward file; this gets around some problems
63166339Seric		on NFS mounts if root permission is not exported and
63266339Seric		the user's home directory isn't x'able.
63366339Seric	Additional NeXT portability enhancements from Axel Zinser.
63466339Seric	Additional HP-UX portability enhancements from Brian Bullen.
63566339Seric	Add a timeout around SMTP message writes; this assumes you can
63666339Seric		get throughput of at least 64 bytes/second.  Note that
63766339Seric		this does not impact the "datafinal" default, which
63866339Seric		is separate; this is just intended to work around
63966339Seric		network clogs that will occur before the final dot
64066339Seric		is sent.  From Eric Wassenaar.
64166339Seric	Change map code to set the "include null" flag adaptively --
64266339Seric		it initially tries both, but if it finds anything
64366339Seric		matching without a null it never tries again with a
64466339Seric		null and vice versa.  If -N is specified, it never
64566339Seric		tries without the null and creates new maps with a
64666339Seric		null byte.  If -O is specified, it never tries with
64766339Seric		the null (for efficiency).  If -N and -O are specified,
64866339Seric		you get -NO (get it?) lookup at all, so this would
64966339Seric		be a bad idea.  If you don't specify either -N or -O,
65066339Seric		it adapts.
65166339Seric	Fix recognition of "same from address" so that MH submissions
65266339Seric		will insert the appropriate full name information;
65366339Seric		this used to work and got broken somewhere along the
65466339Seric		way.
65566339Seric	Some changes to eliminate some unnecessary SYSERRs in the
65666339Seric		log.  For example, if you lost a connection, don't
65766339Seric		bother reporting that fact on the connection you lost.
65866339Seric	Add some "extended debugging" flags to try to track down
65966339Seric		why we get occassional problems with file descriptor
66066339Seric		one being closed when execing a mailer; it seems to
66166339Seric		only happen when there has been another error in the
66266339Seric		same transaction.  This requires XDEBUG, defined
66366339Seric		by default in conf.h.
66466339Seric	Add "-X filename" command line flag, which logs both sides of
66566339Seric		all SMTP transactions.  This is intended ONLY for
66666339Seric		debugging bad implementations of other mailers; start
66766339Seric		it up, send a message from a mailer that is failing,
66866339Seric		and then kill it off and examine the indicated log.
66966339Seric		This output is not intended to be particularly human
67066339Seric		readable.  This also adds the HASSETVBUF compile
67166339Seric		flag, defaulted on if your compiler defines __STDC__.
67266339Seric	CONFIG: change SMART_HOST to override an SMTP mailer.  If you
67366339Seric		have a local net that should get direct connects, you
67466339Seric		will need to use LOCAL_NET_CONFIG to catch these hosts.
67566339Seric		See cf/README for an example.
67666339Seric	CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle
67766339Seric		sites that don't use the -d flag.
67866339Seric	CONFIG: hide recipient addresses as well as sender addresses
67966339Seric		behind $M if FEATURE(allmasquerade) is specified; this
68066339Seric		has been requested by several people, but can break
68166339Seric		local aliases.  For example, if you mail to "localalias"
68266339Seric		this will be rewritten as "localalias@masqueradehost";
68366339Seric		although initial delivery will work, replies will be
68466339Seric		broken.  Use it sparingly.
68566339Seric	CONFIG: add FEATURE(domaintable).  This maps unqualified domains
68666339Seric		to qualified domains in headers.  I believe this is
68766339Seric		largely equivalent to the IDA feature of the same name.
68866339Seric	CONFIG: use $U as UUCP name instead of $k.  This permits you
68966339Seric		to override the "system name" as your UUCP name --
69066339Seric		in particular, to use domain-ized UUCP names.  From
69166339Seric		Bill Wisner of The Well.
69266339Seric	CONFIG: create new mailer "esmtp" that always tries EHLO
69366339Seric		first.  This is currently unused in the config files,
69466339Seric		but could be used in a mailertable entry.
69566339Seric
69666338Seric8.1C/8.1B	93/06/27
69766338Seric	Serious security bug fix: it was possible to read any file on
69866338Seric		the system, regardless of ownership and permissions.
69966338Seric	If a subroutine returns a fully qualified address, return it
70066338Seric		immediately instead of feeding it back into rewriting.
70166338Seric		This fixes a problem with mailertable lookups.
70266338Seric	CONFIG: fix some M4 frotz (concat => CONCAT)
70366338Seric
70466338Seric8.1B/8.1A	93/06/12
70566338Seric	Serious bug fix: pattern matching backup algorithm stepped by
70666338Seric		two tokens in classes instead of one.  Found by Claus
70766338Seric		Assmann at University of Kiel, Germany.
70866338Seric
70966338Seric8.1A/8.1A	93/06/08
71066338Seric	Another mailertable fix....
71166338Seric
71266338Seric8.1/8.1		93/06/07
71366338Seric	4.4BSD freeze.  No semantic changes.
71466338Seric
71566338Seric6.65/6.34	93/06/06
71666338Seric	Fix some lintish problems.
71766338Seric	Fix some cases where server SMTP behaved poorly when handed bogus
71866338Seric		input, pointed out by Eric Wassenaar.
71966338Seric	CONFIG: fix some more (sigh) mailertable bugs -- thanks to
72066338Seric		Motonori Nakamura of Kyoto University (again).
72166338Seric
72266338Seric6.64/6.33	93/06/05
72366338Seric	Don't send 050 (-v) information after the 250 response to a QUIT
72466338Seric		command in srvrsmtp -- clients usually close the connection
72566338Seric		at this point, and it causes bogus error messages.
72666338Seric	Don't send messages that have errors on input (such as unbalanced
72766338Seric		parentheses) during SMTP transactions, since a return
72866338Seric		message has (probably) already been sent.
72966338Seric	Give better diagnostics on timeouts during network reads, including
73066338Seric		information similar to the SMTP phase.
73166338Seric	Fix bug that caused SMTP messages to deliver synchronously; this
73266338Seric		happened after the DATA 250, and hence caused reading the
73366338Seric		next command to be delayed.
73466338Seric	Ignore Errors-To: header unless 'l' (lower case el) header is
73566338Seric		specified.  The Errors-To: header violates RFC 1123.
73666338Seric		Errors-To: was only needed to take the place of the
73766338Seric		envelope sender in the days when most Unix mailers
73866338Seric		didn't understand about the two kinds of senders.
73966338Seric	Don't send warning messages in response to automatically generated
74066338Seric		messages (that is, those From:<>).
74166338Seric	CONFIG: fix some rather stupid typos in the mailertable code
74266338Seric		pointed out by Motonori Nakamura of Kyoto University.
74366338Seric	CONFIG: add confUSE_ERRORS_TO configuration option.
74466338Seric	CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M
74566338Seric		(masquerade name) instead of $j.
74666338Seric	CONFIG: don't add dots to relay names (added in 6.29); it breaks
74766338Seric		several things, and can be simulated by dot terminating
74866338Seric		the names of relays.  For example, use:
74966338Seric			DBbit.net.relay.
75066338Seric		(note the trailing dot).
75166338Seric
75266338Seric6.63/6.32	93/06/01
75366338Seric	Fix prototypes to eliminate chars in argument lists -- some
75466338Seric		compilers are pissy about this.
75566338Seric	Log protocol ($r) and body type if set so we can determine if
75666338Seric		the adaptive algorithms are working.
75766338Seric	Pessimize on locking of database files (particularly for NEWDB
75866338Seric		databases) during opens.  There were problems with
75966338Seric		processes opening the file while it was rebuilt; since
76066338Seric		NEWDB caches heavily, the reader opened an empty file,
76166338Seric		which is an error.  If your system has the ability to
76266338Seric		lock atomically on open, this works properly; otherwise,
76366338Seric		there are race conditions.
76466338Seric	Check mod time on .pag file instead of .dir in NDBM aliases
76566338Seric		because the .dir file doesn't get updated for small
76666338Seric		alias files.  From John Gardiner Myers of CMU.
76766338Seric	More Solaris portability -- it now compiles on Solaris, but
76866338Seric		hangs up in gethostbyname().
76966338Seric	Move setting of RES_DEBUG flag before first myhostname() call
77066338Seric		so we can see name server traffic on that call.
77166338Seric	Fsync() queue files.
77266338Seric	Fix a problem that causes -bi to try to rebuild maps other than
77366338Seric		the alias file(s).
77466338Seric	Fix a problem that caused udb to reject entries from any but
77566338Seric		the first database listed.
77666338Seric	Rearrange doc subdirectory for 4.4BSD release tape.
77766338Seric	CONFIG: put $r into the Received line.  This was an oversight.
77866338Seric	CONFIG: fix typo (call to ruleset 99 should have been rulset 90).
77966338Seric	CONFIG: move "auxiliary" subroutines to be in ruleset 90-99
78066338Seric		range -- in the long run, single digit rulesets may
78166338Seric		become reserved for builtin use by sendmail.
78266338Seric	CONFIG: fix major problem that causes host aliases (that is,
78366338Seric		anything in $=w != $j) to not be recognized.  This has
78466338Seric		been around since 6.30.
78566338Seric
78666338Seric6.62/6.31	93/05/28
78766338Seric	BETA RELEASE
78866338Seric	Fix recursive syserr (if there is an error printing a syserr
78966338Seric		message).  This makes the code much less eager to consider
79066338Seric		a write error as serious.  This also includes some
79166338Seric		heuristics to be clever about closed connections.
79266338Seric	Lock NEWDB files during gets.  This requires version 1.5 or later
79366338Seric		of the db library.  If you have an older version, you
79466338Seric		can use -DOLD_NEWDB.  This will go away in a few weeks.
79566338Seric	Fix problem causing aliases that use host maps to get overwritten.
79666338Seric	Do appropriate byte swapping on port numbers in ident protocol
79766338Seric		code.  Fix from Allan Johannesen of WPI.
79866338Seric	Defer opening of map files to the same time as alias files so that
79966338Seric		the daemon will tend to pick up new versions more promptly.
80066338Seric	Prototype a bunch more functions.
80166338Seric	Some Solaris 2.1 changes (still doesn't link though).
80266338Seric	Try to simplify Makefiles by including more subordinate #defines
80366338Seric		in conf.h (based on OS type).
80466338Seric	CONFIG: check for domains if FEATURE(mailertable) is defined.
80566338Seric		For example, if the host name is "knecht.cs.berkeley.edu"
80666338Seric		it will search the following mailertable keys:
80766338Seric			knecht.cs.berkeley.edu
80866338Seric			.cs.berkeley.edu
80966338Seric			.berkeley.edu
81066338Seric			.edu
81166338Seric		This could be used to replace the special relays for bitnet
81266338Seric		and similar nets.
81366338Seric
81466338Seric6.61/6.30	93/05/24
81566338Seric	Fix problem that prevented appending dots on canonified host
81666338Seric		names.  This breaks tons of config files -- very
81766338Seric		important fix.
81866338Seric	Fix improper pointer dereference in response to HELO command.
81966338Seric	Fix core dump if debugging set in map_rewrite.
82066338Seric	CONFIG: add FEATURE(always_add_domain) to always attach the
82166338Seric		local domain (only impacts local mail).
82266338Seric	CONFIG: try to avoid turning names into $j -- although
82366338Seric		technically a host can only have one "canonical name",
82466338Seric		it seems to be common practice to have several.
82566338Seric
82666338Seric6.60/6.29	93/05/22
82766338Seric	Major change: merge alias databases with maps.  This expands and
82866338Seric		changes the map class interface but fixes a bunch of bugs.
82966338Seric		The important user-visible change is that the file name
83066338Seric		in a K line now does not include the ".db" extension; this
83166338Seric		is added automatically.  Also, the -d (NIS domain) flag is
83266338Seric		missing from the K config line; use @domain instead.
83366338Seric		When compiling, the *_MAP names are gone -- just compile
83466338Seric		in NDBM, NEWDB, and/or NIS support.
83566338Seric	Announce mailer/host/user triple on -bv flag -- from Brian
83666338Seric		Bullen of Stirling University.
83766338Seric	Don't send more than one line in response to HELO -- it confuses
83866338Seric		Pony Express, which then behaves very badly.  However,
83966338Seric		this change does send two line 220 greetings, with the
84066338Seric		second line reading "ESMTP spoken here".  The usersmtp
84166338Seric		module recognizes this and goes into ESMTP mode regardless
84266338Seric		of the setting of the "a" mailer flag.  Thus, "a" means
84366338Seric		"always try EHLO".
84466338Seric	AIX portability changes (thanks to Christophe Wolfhugel of
84566338Seric		Herve Schauer Consultants (Paris) for providing me with
84666338Seric		an INSA account for this purpose).  Lightly tested.  Use
84766338Seric		-D_AIX3.  This probably breaks compatibility with some
84866338Seric		older systems (e.g., 4.2bsd) but still works on SunOS
84966338Seric		4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3.
85066338Seric	Fix a problem causing an error message loop if the output channel
85166338Seric		is hosed.
85266338Seric	Add the Makefiles that I use for various environments -- some are
85366338Seric		Berkeley make versions and some are old make versions.
85466338Seric		My makefile for the NeXT box has gotten lost, alas!
85566338Seric	PRALIASES: support for printing NEWDB databases.  From
85666338Seric		Michael J. Corrigan of U.C. San Diego.
85766338Seric	CONFIG: don't pass pseudo-domains to $[ ... $] (if you have
85866338Seric		a wildcard MX it can have wierd results).  From
85966338Seric		Christophe Wolfhugel.
86066338Seric	CONFIG: dot terminate relay hostnames in S0.  From Christophe
86166338Seric		Wolfhugel.
86266338Seric
86366338Seric6.59/6.28	93/05/13
86466338Seric	Log version with SMTP daemon startup message.
86566338Seric	Adjust setproctitle to work on NetBSD and BSD/386.
86666338Seric	Fix null pointer reference in MX fallback code.
86766338Seric	A bunch of minor fixes from Eric Wassenaar:
86866338Seric		If deliver cannot execv the mailer, return EX_OSERR
86966338Seric			instead of EX_TEMPFAIL (to give better
87066338Seric			error messages).
87166338Seric		Consistently malloc e_message.
87266338Seric		Catch degenerate case of calling returntosender()
87366338Seric			with an empty returnq.
87466338Seric		MIME reformatting.
87566338Seric
87666338Seric6.58/6.28	93/05/13
87766338Seric	Fix bug that can cause incorrect verbose display of user smtp
87866338Seric		messages.
87966338Seric	Disable SMTP VERB command if PRIV_NOEXPN is set (since this
88066338Seric		could reveal the same information.
88166338Seric	Allow failure when reading SMTP greeting message to go on to
88266338Seric		next MX host.
88366338Seric	Add "MIME-Version: 1.0" header if using MIME (this was NOT
88466338Seric		included in RFC 1344, but Bill King of Allan-Bradley
88566338Seric		Company forwarded me email from Nathaniel Borenstein
88666338Seric		claiming that it was an inadvertent omission).
88766338Seric	Don't use Content-Type: X-message-header.  According to John
88866338Seric		Myers of CMU, many MIME readers will completely ignore
88966338Seric		the data if they don't recognize it.  Instead, just
89066338Seric		add a blank line to make it a legal (empty) message.
89166338Seric	Fix problem causing dots to keep getting appended to cached
89266338Seric		hostnames.  This can cause buffer overrun conditions.
89366338Seric		The problem was found by Erik Forsberg of Retix,
89466338Seric		although I used a different bug fix than he provided.
89566338Seric	Fix parsing of split header/envelope rewriting specs -- from
89666338Seric		Eric Forsberg.
89766338Seric	Fix from Eric Wassenaar to correct To: lists in error messages.
89866338Seric
89966338Seric6.57/6.28	93/05/11
90066338Seric	Fix minor glitch causing extra ctladdrs to be output to queue
90166338Seric		file.  Just an annoyance.
90266338Seric	Cache results of name server canonification lookups to avoid
90366338Seric		backed up queue runs.
90466338Seric	Major rewrite of alias.c: considerable cleanup, plus sample
90566338Seric		(untested) support for NIS aliases.  The "A" option
90666338Seric		can now be a comma separated list (or be repeated) --
90766338Seric		that is, you can have multiple alias databases.  Each
90866338Seric		database can have the syntax ``class:file''; if no class
90966338Seric		is specified, the "implicit" class is assumed.  Implicit
91066338Seric		searches through a list of compiled in types -- hash,
91166338Seric		dbm, nis, and stab.  Alias files are searched in the
91266338Seric		order they are listed.  For example:
91366338Seric			OAhash:/etc/aliases.local,/etc/aliases
91466338Seric			OAnis:mail.aliases@my.nis.domain
91566338Seric		first searches the hash database /etc/aliases.local,
91666338Seric		then the regular /etc/aliases database, then the NIS
91766338Seric		map "mail.aliases" in the NIS domain "my.nis.domain".
91866338Seric	If in Verbose mode (probably from VERB command) run SMTP job
91966338Seric		in foreground and don't do RCPT optimizations.
92066338Seric	Add udb :mailsender as equivalent to owner- for regular aliases.
92166338Seric	Delete option 8; add option 7 that means the opposite.  That is,
92266338Seric		default to 8-bit mode; a special option is needed to
92366338Seric		force sendmail into 7 bit mode.
92466338Seric	Send error messages in encapsulated MIME format.
92566338Seric	New compile flag "NIS" that turns on NIS alias and NIS map
92666338Seric		support.
92766338Seric	Add "j" option to send error messages in MIME (RFC 1341)
92866338Seric		encapsulated message format per RFC 1344.  The
92966338Seric		syntax is pretty ugly if you don't have MIME-aware
93066338Seric		user agents.
93166338Seric	Clean up message handling (for display in mailq output).
93266338Seric	New setproctitle implementation for 4.4bsd.
93366338Seric	Create files (such as ~/dead.letter) using mode FileMode (the
93466338Seric		F option value) instead of 0666.
93566338Seric	Fix bug causing output of EXPN command to not be fully qualified.
93666338Seric		This may cause some problems with UUCP addresses that
93766338Seric		will require some config file assistance -- specifically,
93866338Seric		the $: part has to include the host name for this output
93966338Seric		to make sense.
94066338Seric	Fix a problem that sometimes diagnosed errors and still sent the
94166338Seric		message if the header syntax was bad.
94266338Seric	Fix a bug that caused an error message to be emailed when sendmail
94366338Seric		was operating in -bv mode.
94466338Seric	Add "ListenQueueSize" keyword to daemon options option (OO) to
94566338Seric		set the queue size parameter passed to listen().  You
94666338Seric		will normally have to tweak your kernel to up this.
94766338Seric	Strip spaces off of beginning of message-id before logging (in
94866338Seric		case it was folded across lines).
94966338Seric	Tweak compile flags in daemon.c -- there were some cases where
95066338Seric		it wouldn't work without NETINET.
95166338Seric	Change *file* mailer to output all the usual default headers
95266338Seric		(From, Date, Message-Id).  It gets used when sending
95366338Seric		back error messages.
95466338Seric	CONFIG: explicitly catch and diagnose list:; syntax in ruleset
95566338Seric		zero -- this is not a valid recipient syntax according
95666338Seric		to RFC 821.
95766338Seric	CONFIG: add confMIME_FORMAT_ERRORS to send error messages in
95866338Seric		MIME format.  Defaults to on.
95966338Seric	CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment
96066338Seric		the flags for those mailers.
96166338Seric
96266338Seric6.56/6.27	93/05/01
96366338Seric	Fix problem that causes the fallback mail to postmaster
96466338Seric		(case ESM_POSTMASTER in savemail()) to not look at
96566338Seric		aliases (ugh).
96666338Seric	Some more HPUX tweaking (compile flag hpux => __hpux so it
96766338Seric		still works in ANSI mode).
96866338Seric	Don't try to flock non-regular files when mailing to a file.
96966338Seric		In particular, this was a problem if you tried to
97066338Seric		send to /dev/null.
97166338Seric	Fix a wierd bug that can cause senders to be queued as
97266338Seric		recipients if the name server is down when the mail
97366338Seric		is initially sent.  This hack just ignores sender
97466338Seric		deletion (essentially, it sets the MeToo flag) if there
97566338Seric		is a TEMPFAIL during processing of the sender address.
97666338Seric		Obscure.
97766338Seric	Fix a dangling else problem -- from Brian Bullen from University
97866338Seric		of Stirling, UK.
97966338Seric	Add the "b" mailer flag to force a blank line on the end of
98066338Seric		messages.  Some brilliant versions of /bin/mail insist
98166338Seric		on this but do not add it themselves.
98266338Seric	Add the "g" mailer flag to prevent user SMTP from sending
98366338Seric		"MAIL From:<>".  This is only intended to be a
98466338Seric		transitional gesture, and should not be used if at
98566338Seric		all possible.  It appears that Berkeley and IDA
98666338Seric		config files have always handled this properly; the
98766338Seric		UK config kit apparently does not.
98866338Seric	Don't lowercase and then capitalize header field names -- leave
98966338Seric		them with original capitalization.  Fixes from Bill
99066338Seric		King of Allen-Bradley Company.
99166338Seric	Further cleanup and improved reporting of error messages,
99266338Seric		particularly conditions that cause messages to be
99366338Seric		requeued for future delivery.
99466338Seric	Tweak syslog priorities in some cases.
99566338Seric	CONFIG: clean up route-addr on UUCP addresses.
99666338Seric
99766338Seric6.55/6.25	93/04/27
99866338Seric	HPUX 8.07 compatibility changes in getla() -- I had to make
99966338Seric		these changes to get it to work at Berkeley, although
100066338Seric		others seem to have been working before (???).
100166338Seric	Various patches to XLA code.
100266338Seric	Fix problem that causes setuid bit on files to be ignored from
100366338Seric		SMTP or in queue runs.  Problem noted by Jason Ornstein
100466338Seric		of Under The Wire, Inc.
100566338Seric	Fix problem that can cause CNAMEs to be ignored.
100666338Seric	Generalize getmxrr to match local host in $=w instead of a
100766338Seric		single name passed in.
100866338Seric	Some cleanup from Eric Wassenaar:
100966338Seric		Use FileMailer instead of ProgMailer in two places.
101066338Seric		Eliminate duplicate 8th-bit stripping in commaize.
101166338Seric		Fix a problem with mis-parsing of backslash escapes
101266338Seric			under some circumstances.
101366338Seric	NIS map fix (was always including trailing null character)
101466338Seric		from Mike Glendinning of Ingres UK.
101566338Seric	Add "a" mailer flag to try using ESMTP.  It tries the EHLO
101666338Seric		command and if that fails falls back to regular SMTP.
101766338Seric		Also parses EHLO option keywords.  If host supports
101866338Seric		SIZE extension, this is added to the MAIL FROM:
101966338Seric		command.
102066338Seric	Extend "b" option to include a second value which is the
102166338Seric		maximum message size this server is willing to accept.
102266338Seric		For example, a value of "10/1000000" says that there
102366338Seric		must be ten blocks free, and sendmail will reject
102466338Seric		any message larger than one megabyte.
102566338Seric	Some portability hooks for NeXT (this could be applicable
102666338Seric		to Mach in general).  You have to create an empty
102766338Seric		file called "unistd.h" to get it to compile.
102866338Seric	Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to
102966338Seric		be more generous.
103066338Seric	Add X400-Received: to the list of headers tagged with H_TRACE
103166338Seric		in conf.c.  From Bill King, Allen-Bradley Co.
103266338Seric
103366338Seric6.54/6.25	93/04/19
103466338Seric	Fix problem that caused redefinition of SMTP and QUEUE compile
103566338Seric		flags.  Pointed out by Jon Forrest of the Sequoia 2000
103666338Seric		project at Berkeley.
103766338Seric	Properly handle \! hack -- it was treating host\!user as one
103866338Seric		token (host!user) instead of three (host, !, user).
103966338Seric		Fix from Eric Wassenaar of NIKHEF-H.
104066338Seric	Fix compilation problem in getauthinfo() if IDENTPROTO is off.
104166338Seric	Turn off DEFNAMES and DNSRCH when getting the hostsignature
104266338Seric		(i.e., MX records) in level 1 configuration files; this
104366338Seric		matches the old behaviour.  From Motonori Nakamura of
104466338Seric		Kyoto University.
104566338Seric	Improve error message printing -- if sent through an alias,
104666338Seric		error messages include the name of the alias in the
104766338Seric		message.  Unfortunately, in order to make this work
104866338Seric		properly in queue runs, this changes the format of the
104966338Seric		C line in the qf file.  The relatively uselessness of
105066338Seric		the previous information was pointed out to me by
105166338Seric		Allan E Johannesen of WPI.
105266338Seric	Add XLA compile flag to add hooks to Christophe Wolfhugel's
105366338Seric		extended load average code.  This is still in very early
105466338Seric		form.  For information regarding the guts of the xla
105566338Seric		code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr.
105666338Seric	Additional hooks for detecting tempfails in rewriting rules
105766338Seric		(that is, in map lookups).
105866338Seric
105966338Seric6.53/6.25	93/04/15
106066338Seric	Properly diagnose ruleset zero returning null (instead of a mailer
106166338Seric		triple).  From Motonori Nakamura of Kyoto University.
106266338Seric	More generalization of socket code for other protocols.
106366338Seric	Shorten timeouts on reverse name lookups -- since they are done
106466338Seric		during connection establishment, long timeouts here can
106566338Seric		cause higher level timeouts.  This mainly serves to accept
106666338Seric		mail from hosts that do not have proper reverse (PTR) DNS
106766338Seric		records set up.
106866338Seric	Reset e_statmsg before each mailer invocation to avoid bogus
106966338Seric		messages in the log.
107066338Seric	Redefine $r, $s, and $_ in error envelopes so you don't get
107166338Seric		incorrect cruft in the error message.  Problem noted by
107266338Seric		Motonori Nakamura of Kyoto University.
107366338Seric	Fix a problem that can cause failure to return errors to Postmaster
107466338Seric		in certain cases.  From Motonori Nakamura.
107566338Seric	Fix a problem that can cause some systems to give duplicate error
107666338Seric		messages when a bad syntax address such as "<a" is presented
107766338Seric		to an SMTP server.   It doesn't seem to occur on all
107866338Seric		machines.  From Motonori Nakamura.
107966338Seric	Default IDENTPROTO off for Ultrix and HPUX, which apparently have
108066338Seric		the interesting "feature" that when they receive a "Host
108166338Seric		unreachable" message they closes all open connections to
108266338Seric		that host.  However, some firewall gateways send this message
108366338Seric		if you try to connect to an unauthorized port, such as the
108466338Seric		IDENT port (113).  Thus, no email can be received from such
108566338Seric		hosts.  There is some evidence that versions of Ultrix before
108666338Seric		4.3 do not have this problem.  Thanks to Tom Ivar Helbekkmo
108766338Seric		for pointing out this behaviour to me and to Michael Corrigan
108866338Seric		of U.C. San Diego for informing me about the HPUX problem.
108966338Seric	Allow IPC mailers to return a colon-separated list of hosts in the
109066338Seric		$@ clause; these are searched in order as though they were
109166338Seric		MX records.
109266338Seric	When sending an error report, print the list of addresses tagged
109366338Seric		as bad.  Requested by Allan E Johannesen of WPI.
109466338Seric	Change map function calls to return a status code.  This gets
109566338Seric		passed back as the result of rewrite.  Parseaddr marks
109666338Seric		the address as a QUEUEUP address if the return code is
109766338Seric		EX_TEMPFAIL.  All this to queue properly if the name
109866338Seric		server is down.  This code is not well tested.  This code
109966338Seric		changes the interface to map lookup functions (a fifth
110066338Seric		parameter, int *statp, is added).  Feature requested by
110166338Seric		Dan Oscarsson.
110266338Seric	Don't delete quotes (in the dequote map) if there are spaces in
110366338Seric		the string, since this would cause them to be replaced by
110466338Seric		the SpaceSub character.
110566338Seric	Accept BODY=8BITMIME on SMTP MAIL command.  This isn't advertised
110666338Seric		because the 8BIT to 7BIT translation doesn't exist yet.
110766338Seric		This does add a "bodytype" field to both envelope and
110866338Seric		queue file and a -B command line flag to pass the type in
110966338Seric		during direct invocations.
111066338Seric	Discard return error messages only on responses to responses to
111166338Seric		responses, not on responses to responses.  That is, the
111266338Seric		algorithm is to try return to sender, then return to
111366338Seric		postmaster, then discard.  Previously it discarded
111466338Seric		immediately if the return to sender pass failed.
111566338Seric	CONFIG: back out change to hide unqualified hostnames behind %-hack.
111666338Seric		This screws up local aliases and .forward files.
111766338Seric	CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $];
111866338Seric		some sites only handle completely canonified names.
111966338Seric		Requested by John Gardiner Myers of CMU.
112066338Seric	CONFIG: some UUCP code was still included even if FEATURE(nouucp)
112166338Seric		was specified.
112266338Seric
112366338Seric6.52/6.24	93/04/10
112466338Seric	Clean up some minor glitches on error return messages pointed out
112566338Seric		by Motonori Nakamura of Kyoto University.
112666338Seric	Fix reply() to not reset SmtpReplyBuffer on fatal errors; this
112766338Seric		was supposed to reset SmtpMsg Buffer.  This makes the
112866338Seric		client side code virtually useless.  Reported by Allan
112966338Seric		E Johannesen of WPI and Phil Brandenberger of Swarthmore.
113066338Seric	Better debug messages if fuzzy is disabled, suggested by Allan
113166338Seric		E Johannesen of WPI.
113266338Seric	Offset SmtpReplyBuffer by four in usersmtp when checking for
113366338Seric		loopback.  From Eric Wassenaar.
113466338Seric	Don't set $s until after runinchild in srvrsmtp -- otherwise
113566338Seric		it gets cleared.  From Eric Wassenaar.
113666338Seric	Implement IDA-style $&x for deferred macro expansion.
113766338Seric	More POSIX compatibility.
113866338Seric	CONFIG: Hide unqualified hostnames behind %-hack using $s as the
113966338Seric		actual sender.  This is only done if $r is non-null, that
114066338Seric		is, if this is not locally submitted mail.
114166338Seric	CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host
114266338Seric		names to internet domains.  A program contributed by
114366338Seric		John Gardiner Myers of CMU to create the maps is included
114466338Seric		in the contrib directory (in the "misc" tar file).
114566338Seric	CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP
114666338Seric		hosts.  There is currently no tool to create this map.
114766338Seric
114866338Seric6.51/6.23	93/04/04
114966338Seric	Add D= mailer flag to specify a path of possible working directories
115066338Seric		in which to execute the mailer.  This is intended for the
115166338Seric		prog mailer; some shells can get upset if they don't have
115266338Seric		access to the current directory.
115366338Seric	Add RFC 1413 (IDENT) protocol support.  This is only very loosely
115466338Seric		tested.  This adds a $_ macro to be the authenticated
115566338Seric		info (in ``user@domain [address]'' form) and debug flag
115666338Seric		9 to trace the protocol.
115766338Seric	Check for loopbacks in usersmtp instead of srvrsmtp -- there is no
115866338Seric		reason for a local agent to not be talking to the localhost
115966338Seric		(although the inverse is not true).
116066338Seric	Add a few hooks for automated map rebuilding.  This is certainly
116166338Seric		not done yet.
116266338Seric	CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is,
116366338Seric		user's home directory then the root.
116466338Seric	CONFIG: Log RFC 1413 identification in Received: line.
116566338Seric
116666338Seric6.50/6.22	93/04/01
116766338Seric	Fixes to requeueing code to make it compute priority, nrcpts,
116866338Seric		and the like properly.
116966338Seric
117066338Seric6.49/6.22	93/04/01
117166338Seric	Diagnose incorrect privacy flags.  Suggested by Bryan Costales
117266338Seric		of ICSI.
117366338Seric	Some ANSI C fixes.
117466338Seric	Arrange to quote backslashes as well as other special characters
117566338Seric		in the phrase part of a route-addr.
117666338Seric	Some fixes to FallBackMX code suggested by Motonori Nakamura of
117766338Seric		Kyoto University.
117866338Seric	More vigorous zeroing of CurHostAddr to avoid logging of bogus
117966338Seric		host addresses when you are actually just printing
118066338Seric		information from the MCI structure; problem noted by
118166338Seric		Michael Corrigan of U.C. San Diego.
118266338Seric	Don't ignore rest of queue if any job is not runnable.  This can
118366338Seric		also cause an incorrect job to be lost.  Fix from
118466338Seric		Eric Wassenaar.
118566338Seric	Always respond "quickly" to RCPT command; do alias expansion and
118666338Seric		the like later.  This also means that mail for lists that
118766338Seric		have errors will be acccepted, and an error sent back
118866338Seric		later.  This is done by instantiating the queue file
118966338Seric		and then immediately running and requeueing it.
119066338Seric
119166338Seric6.48/6.22	93/03/30
119266338Seric	Fix incorrect diagnosis of infinite loop in ruleset.  Problem noted
119366338Seric		by several people.
119466338Seric	Improve information printed when infinite loops are discovered.
119566338Seric	Zero CurHostAddr to fix erroneous internet addresses in log when no
119666338Seric		addresses can be bound.  Pointed out by Motonori Nakamura
119766338Seric		of Kyoto University.
119866338Seric	"Probe" SMTP connections using RSET instead of NOOP "just in case".
119966338Seric		Suggested by John Gardiner Myers of CMU.
120066338Seric	Don't warn about -f if you are setting sender to yourself.
120166338Seric
120266338Seric6.47/6.22	93/03/29
120366338Seric	Fix incompatible call to endmailer in smtpquit which causes core
120466338Seric		dumps.  Noted by Allan E Johannesen of WPI.
120566338Seric	HPUX portability changes from Michael J. Corrigan of UC San Diego.
120666338Seric	Require MAIL before RCPT command in srvrsmtp.c.  This had been
120766338Seric		intentional from the 821 draft days when the order wasn't
120866338Seric		clear, but is silly now.
120966338Seric	Fix bug in nis_magic routine that was initializing parameters
121066338Seric		incorrectly.  Fix from Takahiro Kanbe of Fuji Xerox
121166338Seric		Information Systems Co., Ltd.
121266338Seric	Change default for PrivacyFlags in conf.c to 0 -- since it always
121366338Seric		"or"s in new values, there was no way to turn off the
121466338Seric		AuthWarning stuff.
121566338Seric	Add O option to set SMTP daemon options.
121666338Seric	Add V option to set fallback MX host.  This always sorts at lower
121766338Seric		priority than anything it gets from the name server.  It
121866338Seric		should only be used for environments with very bad network
121966338Seric		connectivity.  Requested by several people.
122066338Seric	Log sending info.  It's not clear this is a good idea.
122166338Seric	CONFIG: fix typo in mailertable code.  Noted by Phil Brandenberger
122266338Seric		of Swarthmore.
122366338Seric	CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options
122466338Seric		O and V, respectively.
122566338Seric
122666338Seric6.46/6.21	93/03/26
122766338Seric	Fix botch in server SMTP that broke transactions that did not
122866338Seric		use HELO first (like MH).  Fix from Michael Corrigan
122966338Seric		of U.C. San Diego.
123066338Seric	Fall back to other MX records if there is an error anywhere
123166338Seric		in delivery (actually on MAIL or DATA -- RCPT is harder).
123266338Seric		Suggested by John Gardiner Myers and Motonori Nakamura.
123366338Seric	Revert to non-prototypes -- it turns out that our ANSI C
123466338Seric		compiler is more forgiving than most others about
123566338Seric		mixing prototyped extern declarations with non-prototyped
123666338Seric		function definitions.
123766338Seric	Fix a problem with multi-word class matching pointed out by
123866338Seric		Neil Rickert.  Given:
123966338Seric			CX b a.b.c
124066338Seric			R$+ $=X $+	$: $1 < $2 > $3
124166338Seric		the input "user@a.b.c" failed instead of being properly
124266338Seric		rewritten as "user@a.<b>.c".
124366338Seric	Neil also convinced me that it was correct that $~ should match
124466338Seric		only one token -- the problem is that it's always possible
124566338Seric		to add another token, so $~ matches far too eagerly.
124666338Seric
124766338Seric6.45/6.21	93/03/25
124866338Seric	Implement multi-word classes (properly!).
124966338Seric
125066338Seric6.44/6.21	93/03/25
125166338Seric	Add X-Authentication-Warning: headers to clue users into possible
125266338Seric		attempts to forge mail.  This is on the authwarnings
125366338Seric		privacy flag, but is the default.  Suggested by Bryan
125466338Seric		Costales of ICSI.
125566338Seric	Pass default units for convtime in so they can be more reasonable.
125666338Seric	Allow config files to always add a new Comments: header (i.e.,
125766338Seric		they will be added even if an old one already exists).
125866338Seric		Suggested by Bryan Costales of ICSI.
125966338Seric	Allow config files to delete an existing Return-Path: header.
126066338Seric		These should only be added at final delivery.  Suggested
126166338Seric		by Bryan Costales of ICSI.
126266338Seric	Some debugging additions.  Suggested by Bryan Costales of ICSI.
126366338Seric	Clean up logging of Family 0 addresses.  Noted by David Muir
126466338Seric		Sharnoff and others.
126566338Seric	Add a "dequote" map class.  This allows config files to strip
126666338Seric		quotes off of addresses.  Note that this is not a builtin
126766338Seric		map, just a class -- so you have to define the map
126866338Seric		using the K line.
126966338Seric	Fix a bug in the queueup() loop getting a locked tf where in
127066338Seric		very odd cases it can fall off the bottom and core dump.
127166338Seric		Of course, it was P{r Emanuelsson who found it....
127266338Seric	Open a new transcript when splitting an envelope.  Problem found
127366338Seric		by Allan E Johannesen of WPI.
127466338Seric	Improved error output in endmailer if the mailer core dumps.
127566338Seric	CONFIG: Fix typo in UUCP mailer definition.
127666338Seric	CONFIG: Default several of the new options on: eight bit input,
127766338Seric		privacy flags set to "authwarnings", and message warning
127866338Seric		set to 4h.
127966338Seric	CONFIG: Use dequote map.
128066338Seric
128166338Seric6.43/6.20	93/03/23
128266338Seric	Fix problem with assumption of an sa_len field in a generic
128366338Seric		sockaddr -- it turns out that most vendors haven't
128466338Seric		picked up this (very important) fix.
128566338Seric	Change compilation flags for daemon code -- select one or both
128666338Seric		of NETINET or NETISO, but don't ever set DAEMON manually.
128766338Seric	CONFIG: add FEATURE(mailertable) to do IDA-style mailertables.
128866338Seric
128966338Seric6.42/6.19	93/03/19
129066338Seric	Use Postmaster as default fallback return address, not root.
129166338Seric	POSIX changes for file descriptor handling.
129266338Seric	Diagnose errors writing new queue file.
129366338Seric	If you change the owner using an owner- alias, also change the
129466338Seric		error mode to EM_MAIL so that errors don't get dropped
129566338Seric		into an inappropriate directory.  Problem noted by
129666338Seric		Allan E Johannesen of WPI.
129766338Seric	If you are su'ed to root, send email as who you really are, not
129866338Seric		as root.  From Brian Kantor of U.C. San Diego.
129966338Seric	Allow warning messages to be sent after a configurable interval
130066338Seric		has passed without delivery.  The message is sent only
130166338Seric		once per envelope.  This changes the format of the qf
130266338Seric		file to have an F line, and the format of the T option
130366338Seric		to accept take the format "return/warn" (both intervals).
130466338Seric	Don't force all local names to lower case -- this was left over
130566338Seric		from the wierd handling of case mapping on aliases.  It
130666338Seric		is now driven (as expected) by the "u" mailer flag.
130766338Seric		Problem noted by P{r Emanuelsson.
130866338Seric	Fix problem that caused headers on returned email to be trashed;
130966338Seric		they were getting freed, but are still accessible via
131066338Seric		BlankEnvelope.
131166338Seric	Fix problem that caused bogus ids to be created on returned
131266338Seric		mail.
131366338Seric	Add support for ISO and other non-INET networking.  This is by
131466338Seric		no means finished yet.  This does assume a lot of other
131566338Seric		system support, like a version of gethostbyname that
131666338Seric		returns non-AF_INET addresses.
131766338Seric	CONFIG: change default on prog mailer to keep upper case in
131866338Seric		user names (i.e., in the program command line).
131966338Seric	CONFIG: strip trailing dots off of hosts in uucp mailer before
132066338Seric		convert to bang format.
132166338Seric	CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H
132266338Seric		(MAIL_HUB) delivery that doesn't add local domain.  Note
132366338Seric		that this violates 821, but is probably "more correct"
132466338Seric		for what we are trying to do.  Problem pointed out by
132566338Seric		Michael Graff of Iowa State.
132666338Seric
132766338Seric6.41/6.18	93/03/18
132866338Seric	Clean up unnecessary creates of queue ids (i.e., empty qf files)
132966338Seric		when not needed, such as when starting up an SMTP
133066338Seric		connection.
133166338Seric	Fix problem where split envelopes aren't instantiated in the queue.
133266338Seric		This is quite a serious bug.
133366338Seric	Owner- aliases had problems with leading spaces causing a
133466338Seric		premature delimitation.
133566338Seric
133666338Seric6.40/6.18	93/03/18
133766338Seric	Have ending 250 (after DATA) include the id; suggested by
133866338Seric		Brian Kantor of UC San Diego.
133966338Seric	Add logging on envelope splitting.
134066338Seric	Change queue ids to have one more letter encoding the hour of
134166338Seric		the day so that during a single day there is a greater
134266338Seric		likelihood of uniqueness; requested by Brian Kantor.
134366338Seric
134466338Seric6.39/6.18	93/03/18
134566338Seric	Fix minor compile problem if LOCKF is defined.
134666338Seric	Define size of tobuf in conf.h.  Observed by Toshinari Takahashi
134766338Seric		of Toshiba.
134866338Seric	Restore e_sender -- this is equivalent to e_from.q_paddr without
134966338Seric		decorations such as angle brackets and comments.
135066338Seric	OSF/1 on Alpha changes from Allan E Johannesen of WPI.
135166338Seric	CONFIG: fix typo in S3 for list syntax (;: => :;).  Thanks to
135266338Seric		Christopher Hoover for noting the problem.
135366338Seric
135466338Seric6.38/6.17	93/03/17
135566338Seric	Pass envelope to disconnect to avoid another use of CurEnv, which
135666338Seric		can apparently end up being null at inopportune times.
135766338Seric	Log "received from" as "relay=" for consistency (suggested by
135866338Seric		John Gardiner Myers).
135966338Seric	Fix major bug in header handling:  if no From: line existed in
136066338Seric		the header (so sendmail inserts one), and the sender is
136166338Seric		an alias that has an owner, the From: line shows the
136266338Seric		owner (as well as the envelope).  Fixed by early binding
136366338Seric		the headers (which will change debugging output).
136466338Seric	HPUX portability patches from Michael J. Corrigan of UC San Diego.
136566338Seric	Some attempts to adapt better to out of open file conditions.
136666338Seric	Some changes to ctladdr handling in queue files.
136766338Seric
136866338Seric6.37/6.17	93/03/16
136966338Seric	MAJOR CHANGE:  delete e_sender and e_returnpath (why are these
137066338Seric		different from e_from?) and $< macro.
137166338Seric	Log correct IP address in relay= field even if the connection
137266338Seric		times out.
137366338Seric	Log "received from [RESPONSE]" on EF_RESPONSE messages (from
137466338Seric		John Gardiner Myers).
137566338Seric	Fixes to SysExMsg logging (sometimes just got "message: %s"
137666338Seric		instead of "message: error message"), noted by Eric
137766338Seric		Wassenaar.  Also reported by Motonori Nakamura.
137866338Seric	Improvements to MX piggybacking code, from Motonori Nakamura.
137966338Seric	Fix case where CurHostName points to an auto variable that has
138066338Seric		been deallocated (from Motonori Nakamura).
138166338Seric	Fix bug causing newlines to be included in aliases if option
138266338Seric		"n" (check alias RHS) is set; bug noted by David Muir
138366338Seric		Sharnoff.
138466338Seric	Fix problem causing user names that should be mapped to lower
138566338Seric		case to not be mapped if they are sent during a queue
138666338Seric		run.  This greatly simplifies the case mapping code.
138766338Seric		Problem noted by Allan E Johannesen of WPI.
138866338Seric	Don't do recipient address rewriting in buildaddr.  This
138966338Seric		improperly did recipient rewriting on sender addresses,
139066338Seric		and just seems bogus in general -- but the change could
139166338Seric		break some .cf files.
139266338Seric	Pass TZ envariable to child processes for System V.
139366338Seric	CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to
139466338Seric		define those rulesets.
139566338Seric	KNOWN PROBLEM:  I have seen some problems on SunOS that causes
139666338Seric		the User Data Base to give errors on some addresses.  I
139766338Seric		have tracked the problem back at least as far as 93.02.15
139866338Seric		(version 6.22).  Running with debugging on makes it
139966338Seric		go away, so I conclude that it is referencing uninitialized
140066338Seric		stack data.  I haven't been able to track this down yet.
140166338Seric
140266338Seric6.36/6.16	93/03/08
140366338Seric	Allow local mailer to specify $@host -- this lets you assign the
140466338Seric		"foo" part of jgm+foo to $h for passing in to the local
140566338Seric		mailer.
140666338Seric	Additional debug printing in getcanonname (show query type).
140766338Seric	Don't add the e_fromdomain on sender addresses -- this interacts
140866338Seric		wierdly with the owner- code.
140966338Seric	Improve delivery logging to not log obvious or meaningless stuff.
141066338Seric	Include numeric IP address in Received: lines per RFC 1123 section
141166338Seric		5.2.8.
141266338Seric	Fixed a bug in checking stat() return value if restrictmailq is
141366338Seric		set.  Also, check the entire group set instead of just the
141466338Seric		primary group.  Both from John Gardiner Myers.
141566338Seric	Don't have usrerr automatically print errno, since this is often
141666338Seric		misleading.
141766338Seric	Use transienterror() in makeconnection after connect() fails and
141866338Seric		in openmailer after execve() fails (from Eric Wassenaar).
141966338Seric		Also moved transienterror() from util.c to conf.c.
142066338Seric	Clean up from= logging on response messages.
142166338Seric	Undo patch allowing prescan to return a null vector -- it breaks
142266338Seric		too many things.
142366338Seric	Config: FEATURE(notsticky) lets you use UDB for everything coming
142466338Seric		in to the machine, even if it is specifically targetted
142566338Seric		to this machine.  Without it, UDB is bypassed if the user
142666338Seric		name is fully qualified.
142766338Seric	Config: fix another minor botch with <> (local mailer wasn't
142866338Seric		mapping them properly).
142966338Seric
143066338Seric6.35/6.15	93/03/05
143166338Seric	Fix getrealhostname to return null if sinlen <= 0 -- this can
143266338Seric		occur if stdin is a pipe.
143366338Seric	Avoid infinite loop in getcanonname if name server return
143466338Seric		NO_DATA (for example).
143566338Seric	Config: avoid having C flag qualify list syntax and error syntax.
143666338Seric
143766338Seric6.34/6.14	93/03/05
143866338Seric	Fix logging in deliver to not pass too many parameters to Ultrix
143966338Seric		versions of syslog.
144066338Seric	Don't write the pid file until after the daemon has actually
144166338Seric		opened and conditioned the connection.
144266338Seric	Consider addresses "different" if their q_uids differ (so that
144366338Seric		two users forwarding to the same program will be seen
144466338Seric		as different, rather than the same).
144566338Seric	Fix problem with bad parameters in main() -- they set ExitStat
144666338Seric		but don't exit.
144766338Seric	Fix null pointer references through RealHostName -- painfully
144866338Seric		discovered by Allan E Johannesen of WPI.
144966338Seric	Fix bug causing user@@localhost to core dump (yuch).
145066338Seric	Config: don't put two @host.dom.ain on users in $=E in SMTP
145166338Seric		mailer.  Also, catch user@ (no host) in ruleset 0.
145266338Seric
145366338Seric6.33/6.13	93/03/03
145466338Seric	Config: add confCW_FILE as the name of the cw configuration file
145566338Seric		(defaults to /etc/sendmail.cw).  From P{r Emanuelsson.
145666338Seric	Allow prescan to return a pointer to an empty list -- this is
145766338Seric		not an error.  Also, clean up error reporting to avoid
145866338Seric		double errors (prescan reports once, then the caller
145966338Seric		reports again).
146066338Seric	Changes to avoid trusting T_ANY queries -- run them, but if you
146166338Seric		don't get the info you expected, do T_A and T_MX queries
146266338Seric		anyhow.  This also fixes an oversight where _res.options
146366338Seric		bits were being ignored.
146466338Seric	If PRIV_NOVRFY is set, use 252 response code instead of 502 per
146566338Seric		RFC 1123 section 5.2.3.  It's not 100% clear that this
146666338Seric		is correct, but it probably works better with stupid
146766338Seric		mailers that do a VRFY and only check the first digit.
146866338Seric
146966338Seric6.32/6.12	93/03/02
147066338Seric	Fix uninitialized variable "protocol" in smtp code.
147166338Seric	Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI.
147266338Seric	Additional hooks for RFC 1427 (ESMTP SIZE extension).  This
147366338Seric		includes requiring that enoughspace() know the system
147466338Seric		block size, which will undoubtedly break most ports.
147566338Seric	Trace flag 19 in use for srvrsmtp.c.
147666338Seric	Additional logging -- notably the sending mailer name.  This
147766338Seric		also changes the delivery logging to strict field=value
147866338Seric		syntax.
147966338Seric	Fix some problems with messages getting sent even to addresses
148066338Seric		that had been marked bad -- from Eric Wassenaar.
148166338Seric	More WIDE changes: accept host name inside [...] as non-MXed
148266338Seric		host.  This is intended ONLY for use inside firewalled
148366338Seric		environments, where the MX points at the gateway.
148466338Seric	Change .cf file conventions so that mapping for <> addresses
148566338Seric		don't have an @ in them (to avoid confusing the C mailer
148666338Seric		flag).  Pointed out by Neil Rickert.
148766338Seric	Config extensions for Sam Leffler's FlexFAX software.
148866338Seric
148966338Seric6.31/6.10	93/02/28
149066338Seric	Fix some more bugs in alias owner code -- there were some wierd
149166338Seric		cases where an error in a non-aliased name would override
149266338Seric		the return info in an aliased name with an owner.
149366338Seric	Changes from WIDE Project, forwarded to me by Motonori Nakamura:
149466338Seric		Log actual delivery host (after MX et al); from
149566338Seric			yasuhiro@dcl.co.jp.
149666338Seric		Log daemon startup.
149766338Seric		Deliver Postmaster copies without a body.
149866338Seric		Better logging of SMTP senders.
149966338Seric		Send all program email as daemon even when local.
150066338Seric	As requested in various forms from many people, accept -qIstring
150166338Seric		to limit queue runs to jobs with queue-id matching string.
150266338Seric		Similarly for -qRstring for recipients, -qSstring for
150366338Seric		senders.
150466338Seric	Initial hooks for ESMTP support (see RFC 1425).
150566338Seric	Fixed a syntax error in the UUCP mailer specification that caused
150666338Seric		core dumps on startup.
150766338Seric	Check for missing A= or P= arguments in mailer definitions.
150866338Seric
150966338Seric6.30/6.10	93/02/27
151066338Seric	Require FROZENCONFIG compilation flag to include frozen
151166338Seric		configuration code.  Frozen configuration is really
151266338Seric		not a very good idea any more, particularly in shared
151366338Seric		library environments.
151466338Seric	Do better checking of errno after opens of :include: and .forward
151566338Seric		files to defer delivery on network and other transient
151666338Seric		errors.  Suggestion from Craig Everhart.
151766338Seric	Fix minor botch in read timeout macro processing.
151866338Seric	Add FEATURE(nouucp) to config files for sites that know absolutely
151966338Seric		nothing about UUCP.
152066338Seric	Add built cf files to distribution tape and clarify how to build
152166338Seric		them if you don't have the Berkeley make.
152266338Seric	Some sizeof(long) portability changes for the Alpha, from Allan
152366338Seric		E Johannesen.
152466338Seric	Add "restrictmailq" privacy flag -- if set, only people in the same
152566338Seric		group as your queue directory can print the queue.  If you
152666338Seric		set this, be sure you also restrict access to log files....
152766338Seric	Fix another bug in owner-list stuff that can cause data files to
152866338Seric		be "lost".
152966338Seric	Fix a bug with queue runs that cause forwards to yourself to go
153066338Seric		into alias/forwarding loops.  I'm still iffy about this
153166338Seric		fix.
153266338Seric	Fix from Eric Wassenaar for suppression of return message code.
153366338Seric
153466338Seric6.29/6.9	93/02/24
153566338Seric	Fix yet another problem in alias owner code -- put the wrong return
153666338Seric		address on the enclosed return-to-sender letter.
153766338Seric
153866338Seric6.28/6.9	93/02/24
153966338Seric	Fix botch in alias owner code that caused it to not operate if the
154066338Seric		error was detected locally.
154166338Seric
154266338Seric6.27/6.9	93/02/24
154366338Seric	M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include
154466338Seric		file <sys/mount.h>.
154566338Seric	Miscellaneous bug fixes from Eric Wassenaar:
154666338Seric		sendmail -bv -t logs the from line even though in verify
154766338Seric			mode only.
154866338Seric		sendmail -v can go into queue mode if shouldqueue returns
154966338Seric			TRUE.
155066338Seric	Add route-addr pruning per RFC 1123 section 5.3.3.  This can be
155166338Seric		disabled using the "R" option.
155266338Seric	Delete (always undocumented) -R flag (save original recipients);
155366338Seric		there are ways to syslog(3) these now.
155466338Seric	Clean up SMTP reply codes -- specify them as needed in the code,
155566338Seric		instead of in conf.c -- this was needed during the NCP to
155666338Seric		TCP transition, but seems silly now.  This also changes
155766338Seric		parameters to message and nmessage.
155866338Seric	Have mailstats read the .cf file to find the sendmail.st file and
155966338Seric		get text versions of mailer names.  An initial version of
156066338Seric		this code was provided by Tuominen Keijo (although the
156166338Seric		comments indicate the good bits were written by "E.V.").
156266338Seric	Add yet more System V compatibility hacks.
156366338Seric	Fix bug in VRFY code (assumes everything must be a local user).
156466338Seric	Allow specification of any of the hard-wired pathnames in the
156566338Seric		Makefile.
156666338Seric	Delete concept of "trusted users" -- this really didn't provide
156766338Seric		any security anyway, and caused some problems.
156866338Seric	Delete last vestige of support for the word "at" as an equivalent
156966338Seric		to the character "@".
157066338Seric	Propagate owner-foo alias information into the envelope sender.
157166338Seric		Based on code from John Gardiner Myers.  This is a major
157266338Seric		semantic change -- beware!
157366338Seric	Allow $@ on LHS to indicate "match zero" -- this is used to match
157466338Seric		the null expression.
157566338Seric
157666338Seric6.26/6.8	93/02/21
157766338Seric	Don't "lose" queue runs.  Very important fix from (who else?)
157866338Seric		Eric Wassenaar.
157966338Seric	Completely reset state on RSET command -- from Eric Wassenaar.
158066338Seric	Send error messages and return receipts using an envelope sender
158166338Seric		of <> regardless of the setting of $n.  Rewriting rules
158266338Seric		can undo this if they feel the necessity, as might be
158366338Seric		needed for networks that don't understand the syntax.
158466338Seric		This is permitted by RFC 821 section 3.6 and required by
158566338Seric		RFC 1123 section 5.3.3.  THIS REQUIRES VERSION 4 CONFIG
158666338Seric		FILES because the rulesets must be able to parse <>
158766338Seric		properly.
158866338Seric	Don't ever send error messages to "<>" -- they will get sent to
158966338Seric		the local postmaster or dumped in /usr/tmp/dead.letter
159066338Seric		instead.  Per RFC 1123 section 5.3.3.
159166338Seric	Explicitly check for email to yourself as a dotted quad.  You
159266338Seric		have to call $[ [ ... ] $] to get this.
159366338Seric	Up the message timeout to five days per RFC 1123 section 5.3.1.1.
159466338Seric	Make all read timeouts individually configurable, as strongly
159566338Seric		recommended by RFC 1123 section 5.3.2.
159666338Seric	Use f_bavail (blocks available to regular users) instead of f_bfree
159766338Seric		(blocks available to superuser) in free block checks.
159866338Seric	Change $d macro to be the current time, not the origination time,
159966338Seric		since this is consistent with how it is used now.
160066338Seric	Generalization of enoughspace from Eric Wassenaar covering
160166338Seric		SGI, Apollo, HPUX, Ultrix, and SunOS.
160266338Seric	Ignore process group signals -- some front ends can do this if
160366338Seric		you kill a window too quickly.  From Eric Wassenaar.
160466338Seric	Change umask to 022.
160566338Seric
160666338Seric6.25/6.8	93/02/20
160766338Seric	Close all cached connections before calling mailers and after
160866338Seric		forking for delivery (caused double closes which resulted
160966338Seric		in false errors).
161066338Seric	Add FEATURE(redirect) in config files -- this allows you to alias
161166338Seric		old addresses to a pointer to the new address that will
161266338Seric		give a 551 error message, but not deliver the mail.
161366338Seric	Some code changes to make the 551 errors look pretty.
161466338Seric	Names of M4 program paths in config files have changed -- they
161566338Seric		are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS.
161666338Seric	Fix a bug in the QSELFREF code having to do with empty .forward
161766338Seric		files, reported by Eric Wassenaar.
161866338Seric	Add option "p" (privacy flags); this allows you to tune how
161966338Seric		picky the SMTP server will be.  This also adds the
162066338Seric		confPRIVACY_FLAGS M4 macro in the config files.
162166338Seric	Add option "b" (minimum blocks free).  If there are fewer than
162266338Seric		this number of blocks free on the filesystem containing
162366338Seric		the queue directory, the SMTP MAIL command will return
162466338Seric		a 452 response and ask you to try again later.  This
162566338Seric		also adds the confMIN_FREE_BLOCKS M4 macro in the config
162666338Seric		files.
162766338Seric	Made VRFY just verify (doesn't expand aliases and .forward files);
162866338Seric		EXPN does full expansion.  RCPT in queue-only mode also
162966338Seric		doesn't chase aliases and .forward.
163066338Seric
163166338Seric6.24/6.7	93/02/19
163266338Seric	Increase the number of domain search entries in domain.c to allow
163366338Seric		for the extra "" entry indicating the root domain.
163466338Seric		Reported by Motonori Nakamura of Kyoto U.
163566338Seric	Add a "SMART_HOST" in the configs for UUCP-connected sites that
163666338Seric		want to forward all mail with extra "@"s to that site.
163766338Seric		Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to
163866338Seric		be specified as ``mailer:hostname'' to use an alternate
163966338Seric		mailer.
164066338Seric	Clarified and updated some wording in the Operations Guide.
164166338Seric	Add the "c" mailer flag -- this suppresses all comment parts of
164266338Seric		addresses (requested by John Curran of NEARnet).
164366338Seric	Have -v print prompts in -bt mode even if stdin is not a terminal
164466338Seric		(default behaviour is to be silent if not reading from
164566338Seric		a terminal).  Suggested by Bryan Costales, ICSI.
164666338Seric	Move the metacharacters from C0 space (\001-\037) into C1 space
164766338Seric		(\201-\237).  This also fixes a bunch of potential bugs
164866338Seric		with G1 characters (\240-\276) in headers relating to
164966338Seric		negative numbers passed to isspace() et al.
165066338Seric	Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias
165166338Seric		database if YPCOMPAT is #defined.  Enhancement from
165266338Seric		Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd.
165366338Seric	Add "list" Precedence (-30); this can be used with old sendmails
165466338Seric		which will map to precedence 0 (which will return error
165566338Seric		messages).  Suggested by Stephen R. van den Berg.
165666338Seric	Many bug fixes from Eric Wassenaar of the National Institute for
165766338Seric			Nuclear and High-Energy Physics, Amsterdam:
165866338Seric		Clear timeouts properly on open failures in include().
165966338Seric		Don't dereference through NULL if no home directory found.
166066338Seric		Re-establish SIGCHLD signal on System 5 in reapchild().
166166338Seric		Avoid NULL pointer reference on -pFOO flag.
166266338Seric		Properly handle backslash escapes in comments.
166366338Seric		Correctly check reply status on SMTP NOOP command.
166466338Seric		Properly save SMTP error message if peer gives
166566338Seric			"Service Shutting Down" message.
166666338Seric		Avoid writing to the transcript if it couldn't be opened.
166766338Seric		Signal errors in SMTP children to parent properly.
166866338Seric	Handle self references in a list more globally (include a
166966338Seric		QSELFREF bit in the address flags).  This enhancement
167066338Seric		was suggested by Eric Wassenaar.
167166338Seric	Use initgroups() in hpux, even though it's System-V based.  The
167266338Seric		HASINITGROUPS compile flag can set this on other systems.
167366338Seric		This HPUX behaviour was pointed out by Eric Wassenaar.
167466338Seric
167566338Seric6.23/6.6	93/02/16
167666338Seric	Clean up handling of LogLevel to make it easier to figure out
167766338Seric		what's on what level.
167866338Seric	Change log levels to have some consistency:
167966338Seric		1    serious system failures, security problems
168066338Seric		2    lost communications, protocol failures
168166338Seric		3    other serious failures
168266338Seric		4    minor errors
168366338Seric		5    message collection
168466338Seric		6    vrfy logging, creation of return-to-sender
168566338Seric		7    delivery failures
168666338Seric		8    delivery successes
168766338Seric		9    delivery tempfails (queue ups)
168866338Seric		10   database expansion
168966338Seric		>64  debugging
169066338Seric	Allow IDA-style separated processing on S= and R= in Mailer
169166338Seric		definition lines.  Note that rulesets 1 and 2 are
169266338Seric		still used for both addresses as before.  Bruce Lilly
169366338Seric		gave a convincing argument that RFC976 insists on
169466338Seric		this behaviour.
169566338Seric	Added some time zones to arpatounix -- they may not be in the
169666338Seric		standards, but they are in use.  However, I may delete
169766338Seric		arpatounix entirely -- there appears to be no reason
169866338Seric		for it to exist.
169966338Seric	Change to UUCP mailer (in cf directory) to try to do a saner job.
170066338Seric		I'm still not certain about this mailer in general.
170166338Seric
170266338Seric6.22/6.5	93/02/15
170366338Seric	Fix bug that prevents saving letters in ~/dead.letter.
170466338Seric	Don't add angle brackets in VRFY command if angle brackets already
170566338Seric		exist in the address.
170666338Seric	Fix bogus error message in udbexpand.
170766338Seric	Null terminate host buffers in buildaddr (broken in 6.21) --
170866338Seric		IMPORTANT FIX!!
170966338Seric
171066338Seric6.21/6.5	93/02/15
171166338Seric	Fix another incorrect error message in alias.c, found by Azuma
171266338Seric		Okamoto.
171366338Seric	Fix a couple of problems in the more-configurable config files,
171466338Seric		found by Tom Ivar Helbekkmo.
171566338Seric	Fix problem with quoted :include: entries.
171666338Seric	Don't duplicate the filename on verbose printing of .forward and
171766338Seric		:include: contents.
171866338Seric	Extend size of prescan buffer (to allow bigger addresses).  Also,
171966338Seric		detect some buffer overflows.
172066338Seric	Log user SMTP protocol errors (log level 4).
172166338Seric
172266338Seric6.20/6.4	93/02/14
172366338Seric	Fix another problem in the MCI state machine caused when there
172466338Seric		were errors generated from the other end to commands
172566338Seric		other than RCPT.
172666338Seric
172766338Seric6.19/6.4	93/02/14
172866338Seric	Include load average support for DEC Alpha running OSF/1.
172966338Seric	Fix multiple-response problem with errors in MAIL From: line.
173066338Seric	Fix SMTP reply codes for invalid address syntaxes (give 501;
173166338Seric		never give multiple error messages for a single message).
173266338Seric	Fix problem where a cached connection timeout rejects all
173366338Seric		later connects to that host.
173466338Seric	Fix incorrect error message if alias.c is compiled with DBM only.
173566338Seric	Additional changes to fix nested conditionals (from Bruce Lilly).
173666338Seric	Recover more gracefully from operating system failures, particularly
173766338Seric		NULL returns from openmailer (from Noritoshi Demizu,
173866338Seric		OMRON Corporation).
173966338Seric	Log forward, alias, and userdb expand operations on log level 10;
174066338Seric		concept suggested by P{r (Pell) Emanuelsson.
174166338Seric	Changes for HPUX 8.07 compatibility.
174266338Seric
174366338Seric6.18/6.4	93/02/12
174466338Seric	Allow any config option to be set using an M4 define.
174566338Seric	Change UNAME compile flag to HASUNAME for IDA compatibility
174666338Seric		(besides, it's a better name).
174766338Seric	Note in README that on SunOS it must be linked -Bstatic.
174866338Seric	Fairly major change in domain.c to handle wildcard MX records
174966338Seric		more rationally.  NOTE: the "w" option (no wildcard MX
175066338Seric		records match local domain) has been eliminated.
175166338Seric	Fix some unset variable references pointed out by Bruce Lilly.
175266338Seric	Fix host name in process titles when using cached connection.
175366338Seric
175466338Seric6.17/6.3	93/01/28
175566338Seric	Fix System 5 compatibility changes to be compatible with the rest
175666338Seric		of the world.
175766338Seric
175866338Seric6.16/6.3	93/01/28
175966338Seric	Experimental fix for problem handling errors in the SMTP
176066338Seric		protocol in conjunction with connection caching.
176166338Seric	System 5 compatibility changes.
176266338Seric
176366338Seric6.15/6.3	93/01/26
176466338Seric	Fix a bug that causes local mail delivered using -odq to be
176566338Seric		eliminated as a duplicate (because it matched the
176666338Seric		ctladdr, now passed in as a C line).  These changes
176766338Seric		are pretty tricky......
176866338Seric
176966338Seric6.14/6.3	93/01/25
177066338Seric	Add debugging for some MCI errors.
177166338Seric
177266338Seric6.13/6.3	93/01/22
177366338Seric	Fix -e compatibility flag to take a value.
177466338Seric	Fix a couple of minor compilation warnings on Sun cc.
177566338Seric	Improve error messages in a few cases to be more self-explanatory.
177666338Seric
177766338Seric6.12/6.3	93/01/21
177866338Seric	Fix yet-another problem with environment handling, pointed out
177966338Seric		by Yoshitaka Tokugawa and Tom Ivar Helbekkmo.
178066338Seric	Some heuristics to try to limit resource exhaustion problems
178166338Seric		if a downstream host has been down for a long time.
178266338Seric	Fix problem with incorrect host name being logged in "Connection
178366338Seric		timed out" messages (from Tom Ivar Helbekkmo).
178466338Seric	Fix some ANSI C problems (from Takahiro Kanbe).
178566338Seric	Properly log message sender on returned mail during queue run.
178666338Seric	Count number of recipients properly.
178766338Seric	Fix a problem in yp map code.
178866338Seric	Diagnose "message timed out" (from Motonori Nakamura).
178966338Seric
179066338Seric6.11/6.3	93/01/20
179166338Seric	Fix problem with address delimitor inside quotes.
179266338Seric	Define $k and $=k to be the UUCP name (from the uname call)
179366338Seric		based on code from Bruce Lilly.
179466338Seric
179566338Seric6.10/6.2	93/01/18
179666338Seric	Implement arpatounix (largely code from Bruce Lilly).
179766338Seric	Log more info (suggested by John Myers).
179866338Seric	Allow nested $?...$|...$. (inspired by code from Bruce Lilly of
179966338Seric		Sony US).
180066338Seric	POSIX compatibility (noted by Keith Bostic).
180166338Seric	Handle SMTP MAIL command errors properly (urged by several people,
180266338Seric		notably John Myers of CMU).
180366338Seric	Do early diagnosis of .cf errors (notably referencing a RHS
180466338Seric		substitution that isn't on the LHS).
180566338Seric	Adjust checkpointing to better handle batched recipients, suggested
180666338Seric		by John Myers.
180766338Seric	Fix miscellaneous bugs.
180866338Seric	(config files:)  Implement MAIL_HUB for all local mail (to handle
180966338Seric		NFS-mounted directories) as urged by Tom Ivar Helbekkmo
181066338Seric		of the Norwegian School of Economics.
181166338Seric
181266338Seric6.9/6.1 	93/01/13
181366338Seric	Environment handling simplification/bug fix -- child processes
181466338Seric		get a minimal, fixed environment.  This avoids different
181566338Seric		behaviour in queue runs.
181666338Seric	Handle commas inside comments properly.
181766338Seric	Properly limit large messages submitted in -obq mode.
181866338Seric
181966338Seric6.8/6.1		93/01/10
182066338Seric	Check mtime of thaw file against .cf and sendmail binary, based on
182166338Seric		code from John Myers.
182266338Seric
182366338Seric6.7/6.1		93/01/10
182466338Seric	MX piggybacking, based on code from John Myers@CMU.
182566338Seric	Allow checkcompat to return -1 to mean tempfail.
182666338Seric	Bug fix in m_mno computation.
182766338Seric
182866338Seric6.6/6.1		93/01/09
182966338Seric	Tuning of queueing functions as recommended by John Gardiner Myers.
183066338Seric	Return mail headers (no body) on messages with negative precedence.
183166338Seric	Minor other bug fixes.
183266338Seric
183366338Seric6.5/6.1		93/01/03
183466338Seric	Fix botch causing queued headers to have ?XX? prefixes.
183566338Seric
183666338Seric6.4/6.1		93/01/02
183766338Seric	Changes to recognize special mailer types (e.g., file) early.
183866338Seric
183966338Seric6.3/6.1		93/01/01
184066338Seric	Pass timeouts to sfgets.
184166338Seric	Check for control characters in addresses.
184266338Seric	Fixed deferred error reporting.
184366338Seric	Report duplicate aliases.
184466338Seric	Handle mixed case recursive aliases.
184566338Seric	Misc bug fixes.
184666338Seric
184766338Seric6.2/6.1		92/12/30
184866338Seric	Put return-receipt-to on a conf.c flag (but don't set it).
184966338Seric	Fix minor syslog problem.
1850