166352Seric			SENDMAIL RELEASE NOTES
2*69967Seric	     @(#)RELEASE_NOTES	8.7.Beta (Berkeley) 06/21/95
366352Seric
466352SericThis listing shows the version of the sendmail binary, the version
566352Sericof the sendmail configuration files, the date of release, and a
666352Sericsummary of the changes in that release.
766352Seric
869632Seric8.7/8.7		95/xx/xx	CURRENTLY IN BETA PRERELEASE!!!
969632Seric	Fix a problem that could cause sendmail to run out of file
1069632Seric		descriptors due to a trashed data structure after a
1169632Seric		vfork.  Fix from Brian Coan of the Institute for
1269632Seric		Global Communications.
1369632Seric	Change the VRFY response if you have disabled VRFY -- some
1469632Seric		people seemed to think that it was too rude.
1569632Seric	Avoid reference to uninitialized file descriptor if HASFLOCK
1669632Seric		was not defined.  This was used "safely" in the sense
1769632Seric		that it only did a stat, but it would have set the
1869632Seric		map modification time improperly.  Problem pointed out
1969632Seric		by Roy Mongiovi of Georgia Tech.
2069632Seric	Clean up the Subject: line on warning messages and return
2169632Seric		receipts so that they don't say "Returned mail:"; this
2269632Seric		can be confusing.
2369632Seric	Move ruleset entry/exit debugging from 21.2 to 21.1 -- this is
2469632Seric		useful enough to make it worthwhile printing on "-d".
2569632Seric	Avoid logging alias statistics every time you read the alias
2669632Seric		file on systems with no database method compiled in.
2769632Seric	If you have a name with a trailing dot, and you try looking it
2869632Seric		up using gethostbyname without the dot (for /etc/hosts
2969632Seric		compatibility), be sure to turn off RES_DEFNAMES and
3069632Seric		RES_DNSRCH to avoid finding the wrong name accidently.
3169632Seric		Problem noted by Charles Amos of the University of
3269632Seric		Maryland.
3369632Seric	Don't do timeouts in collect if you are not running SMTP.
3469632Seric		There is nothing that says you can't have a long
3569632Seric		running program piped into sendmail (possibly via
3669632Seric		/bin/mail, which just execs sendmail).  Problem reported
3769632Seric		by Don "Truck" Lewis of Silicon Systems.
3869632Seric	Try gethostbyname() even if the DNS lookup fails iff option I
3969632Seric		is not set.  This allows you to have hosts listed in
4069632Seric		NIS or /etc/hosts that are not known to DNS.  It's normally
4169632Seric		a bad idea, but can be useful on firewall machines.  This
4269632Seric		should really be broken out on a separate flag, I suppose.
4369632Seric	Avoid compile warnings against BIND 4.9.3, which uses function
4469632Seric		prototypes.  From Don Lewis of Silicon Systems.
4569632Seric	Avoid possible incorrect diagnosis of DNS-related errors caused
4669632Seric		by things like attempts to resolve uucp names using
4769632Seric		$[ ... $] -- the fix is to clear h_errno at appropriate
4869632Seric		times.  From Kyle Jones of UUNET.
4969632Seric	SECURITY: avoid denial-of-service attacks possible by destroying
5069632Seric		the alias database file by setting resource limits low.
5169632Seric		This involves adding two new compile-time options:
5269632Seric		HASSETRLIMIT (indicating that setrlimit(2) support is
5369632Seric		available) and HASULIMIT (indicating that ulimit(2) support
5469632Seric		is available -- the Release 3 form is used).  The former
5569632Seric		is assumed on BSD-based systems, the latter on System
5669632Seric		V-based systems.  Attack noted by Phil Brandenberger of
5769632Seric		Swarthmore University.
5869632Seric	New syntaxes in test (-bt) mode:
5969632Seric		``.Dmvalue'' will define macro "m" to "value".
6069632Seric		``.Ccvalue'' will add "value" to class "c".
6169632Seric		``.Sruleset'' will dump the contents of the indicated
6269632Seric			ruleset.
6369632Seric		``-ddebug-spec'' is equivalent to the command-line
6469632Seric			-d debug flag.
6569632Seric		``$m'' will print the value of macro "m".
6669632Seric		``/mx host'' returns the MX records for ``host''.
6769632Seric		``/try address'' will parse address, returning the value of
6869632Seric			crackaddr (essentially, the comment information)
6969632Seric			and the parsed address (the same as -bv).
7069947Seric		``/tryflags flags'' will set flags used by parsing.  The
7169947Seric			flags can be `H' for header or `E' for envelope,
7269947Seric			and `S' for sender or `R' for recipient.  These
7369947Seric			can be combined, so `HR' sets flags for header
7469947Seric			recipients.
7569632Seric	Somewhat better handling of UNIX-domain socket addresses -- it
7669632Seric		should show the pathname rather than hex bytes.
7769632Seric	Restore ``-ba'' mode -- this reads a file from stdin and parses
7869632Seric		the header for envelope sender information and uses
7969632Seric		CR-LF as message terminators.  It was thought to be
8069632Seric		obsolete (used only for Arpanet NCP protocols), but it
8169632Seric		turns out that the UK ``Grey Book'' protocols require
8269632Seric		that functionality.
8369632Seric	Fix a fix in previous release -- if gethostname and gethostbyname
8469913Seric		return a name without dots, and if an attempt to canonify
8569913Seric		that name fails, wait one minute and try again.  This can
8669913Seric		result in an extra 60 second delay on startup if your system
8769913Seric		hostname (as returned by hostname(1)) has no dot and no names
8869913Seric		listed in /etc/hosts or your NIS map have a dot.
8969632Seric	Check for proper domain name on HELO and EHLO commands per
9069632Seric		RFC 1123 section 5.2.5.  Problem noted by Thomas Dwyer III
9169632Seric		of Michigan Technological University.
9269632Seric	Relax chownsafe rules slightly -- old version said that if you
9369632Seric		can't tell if _POSIX_CHOWN_RESTRICTED is set (that is,
9469632Seric		if fpathconf returned EINVAL or ENOSYS), assume that
9569632Seric		chown is not safe.  The new version falls back to whether
9669632Seric		you are on a BSD system or not.  This is important for
9769632Seric		SunOS, which apparently always returns one of those
9869632Seric		error codes.  This impacts whether you can mail to files
9969632Seric		or not.
10069632Seric	Syntax errors such as unbalanced parentheses in the configuration
10169632Seric		file could be omitted if you had "Oem" prior to the
10269632Seric		syntax error in the config file.  Change to always print
10369632Seric		the error message.  It was especially wierd because it
10469632Seric		would cause a "warning" message to be sent to the Postmaster
10569632Seric		for every message sent (but with no transcript).  Problem
10669632Seric		noted by Gregory Paris of Motorola.
10769632Seric	Rewrite collect and putbody to handle full 8-bit data, including
10869632Seric		zero bytes.  These changes are internally extensive, but
10969632Seric		should have minimal impact on external function.
11069632Seric	Allow full words for option names -- if the option letter is
11169632Seric		(apparently) a space, then take the word following -- e.g.,
11269632Seric			O MatchGECOS=TRUE
11369632Seric		The full list of old and new names is as follows:
11469632Seric			7	SevenBitInput
11569632Seric			8	EightBitMode
11669632Seric			A	AliasFile
11769632Seric			a	AliasWait
11869632Seric			B	BlankSub
11969632Seric			b	MinFreeBlocks/MaxMessageSize
12069632Seric			C	CheckpointInterval
12169632Seric			c	HoldExpensive
12269632Seric			D	AutoRebuildAliases
12369632Seric			d	DeliveryMode
12469632Seric			E	ErrorHeader
12569632Seric			e	ErrorMode
12669632Seric			f	SaveFromLine
12769632Seric			F	TempFileMode
12869632Seric			G	MatchGECOS
12969632Seric			H	HelpFile
13069632Seric			h	MaxHopCount
13169632Seric			i	IgnoreDots
13269632Seric			I	ResolverOptions
13369632Seric			J	ForwardPath
13469632Seric			j	SendMimeErrors
13569632Seric			k	ConnectionCacheSize
13669632Seric			K	ConnectionCacheTimeout
13769632Seric			L	LogLevel
13869632Seric			l	UseErrorsTo
13969632Seric			m	MeToo
14069632Seric			n	CheckAliases
14169632Seric			O	DaemonPortOptions
14269632Seric			o	OldStyleHeaders
14369632Seric			P	PostmasterCopy
14469632Seric			p	PrivacyOptions
14569632Seric			Q	QueueDirectory
14669632Seric			q	QueueFactor
14769632Seric			R	DontPruneRoutes
14869632Seric			r, T	Timeout
14969632Seric			S	StatusFile
15069632Seric			s	SuperSafe
15169632Seric			t	TimeZoneSpec
15269632Seric			u	DefaultUser
15369632Seric			U	UserDatabaseSpec
15469632Seric			V	FallbackMXhost
15569632Seric			v	Verbose
15669632Seric			w	TryNullMXList
15769632Seric			x	QueueLA
15869632Seric			X	RefuseLA
15969632Seric			Y	ForkEachJob
16069632Seric			y	RecipientFactor
16169632Seric			z	ClassFactor
16269632Seric			Z	RetryFactor
16369632Seric		To avoid possible problems with an older sendmail,
16469632Seric		configuration level 6 is accepted by this version of
16569632Seric		sendmail; any config file using the new names should
16669632Seric		specify "V6" in the configuration.
16769632Seric	Change address parsing to properly note that a phrase before a
16869632Seric		colon and a trailing semicolon are essentially the same
16969632Seric		as text outside of angle brackets (i.e., sendmail should
17069632Seric		treat them as comments).  This is to handle the
17169632Seric		``group name: addr1, addr2, ..., addrN;'' syntax (it will
17269632Seric		assume that ``group name:'' is a comment on the first
17369632Seric		address and the ``;'' is a comment on the last address).
17469632Seric		This requires config file support to get right.  It does
17569632Seric		understand that :: is NOT this syntax, and can be turned
17669632Seric		off completely by setting the ColonOkInAddresses option.
17769632Seric	Level 6 config files added with new mailer flags:
17869632Seric		    A	Addresses are aliasable.
17969632Seric		    i	Do udb rewriting on envelope as well as header
18069632Seric			sender lines.  Applies to the from address mailer
18169632Seric			flags rather than the recipient mailer flags.
18269632Seric		    j	Do udb rewriting on header recipient addresses.
18369632Seric			Applies to the sender mailer flags rather than the
18469632Seric			recipient mailer flags.
18569632Seric		    k	Disable check for loops when doing HELO command.
18669632Seric		    o	Always run as the mail recipient, even on local
18769632Seric			delivery.
18869632Seric		    w	Check for an /etc/passwd entry for this user.
18969632Seric		    5	Pass addresses through ruleset 5.
19069632Seric		    :	Check for :include: on this address.
19169632Seric		    |	Check for |program on this address.
19269632Seric		    /	Check for /file on this address.
19369632Seric		    @	Look up sender header addresses in the user
19469632Seric			database.  Applies to the mailer flags for the
19569632Seric			mailer corresponding to the envelope sender
19669632Seric			address, rather than to recipient mailer flags.
19769632Seric		Pre-level 6 configuration files set A, w, 5, :, |, /, and @
19869632Seric		on the "local" mailer, the o flag on the "prog" and "*file*"
19969632Seric		mailers, and the ColonOkInAddresses option.
20069632Seric	Eight-to-seven bit MIME conversions.  This borrows ideas from
20169632Seric		John Beck of Hewlett-Packard, who generously contributed
20269632Seric		their implementation to me, which I then didn't use (see
20369632Seric		mime.c for an explanation of why).  This adds the
20469632Seric		EightBitMode option (a.k.a. `8') and an F=8 mailer flag
20569632Seric		to control handling of 8-bit data.  These have to cope with
20669632Seric		two types of 8-bit data: unlabelled 8-bit data (that is,
20769632Seric		8-bit data that is entered without declaring it as 8-bit
20869632Seric		MIME -- technically this is illegal according to the
20969632Seric		specs) and labelled 8-bit data (that is, it was declared
21069632Seric		as 8BITMIME in the ESMTP session or by using the
21169632Seric		-B8BITMIME command line flag).  If the F=8 mailer flag is
21269632Seric		set then 8-bit data is sent to non-8BITMIME machines
21369632Seric		instead of converting to 7 bit (essentially using
21469632Seric		just-send-8 semantics).  The values for EightBitMode are:
21569632Seric		    m	convert unlabelled 8-bit input to 8BITMIME, and do
21669632Seric			any necessary conversion of 8BITMIME to 7BIT
21769632Seric			(essentially, the full MIME option).
21869632Seric		    p	pass unlabelled 8-bit input, but convert labelled
21969632Seric			8BITMIME input to 7BIT as required (default).
22069632Seric		    s	strict adherence: reject unlabelled 8-bit input,
22169632Seric			convert 8BITMIME to 7BIT as required.  The F=8
22269632Seric			flag is ignored.
22369632Seric		Unlabelled 8-bit data is rejected in mode `s' regardless of
22469632Seric			the setting of F=8.
22569632Seric	Add new internal class 'n', which is the set of MIME Content-Types
22669632Seric		which can not be 8 to 7 bit encoded because of other
22769632Seric		considerations.  Types "multipart/*" and "message/*" are
22869632Seric		never directly encoded (although their components can be).
22969947Seric	Add new internal class 'm', which is the set of subtypes of the
23069947Seric		MIME message/* content type that can be treated as though
23169947Seric		they are an RFC822 message.  It is predefined to have
23269947Seric		"rfc822".  Suggested By Kari Hurtta.
23369632Seric	Add new internal class 'e'.  This is the set of MIME
23469632Seric		Content-Transfer-Encodings that can be converted to
23569632Seric		a seven bit format (Quoted-Printable or Base64).  It is
23669632Seric		preinitialized to contain "7bit", "8bit", and "binary".
23769632Seric	Add C=charset mailer parameter and the the DefaultCharSet option (no
23869632Seric		short name) to set the default character set to use in the
23969632Seric		Content-Type: header when doing encoding of an 8-bit message
24069632Seric		which isn't marked as MIME into MIME format.  If the C=
24169632Seric		parameter is set on the Envelope From address, use that as
24269632Seric		the default encoding; else use the DefaultCharSet option.
24369632Seric		If neither is set, it defaults to "unknown-8bit" as
24469632Seric		suggested by RFC 1428 section 3.
24569632Seric	Allow ``U=user:group'' field in mailer definition to set a default
24669632Seric		user and group that a mailer will be executed as.  This
24769632Seric		overrides the 'u' and 'g' options, and if the `F=S' flag is
24869632Seric		also set, it is the uid/gid that will always be used (that
24969632Seric		is, the controlling address is ignored).  The values may be
25069632Seric		numeric or symbolic; if only a symbolic user is given (no
25169632Seric		group) that user's default group in the passwd file is used
25269632Seric		as the group.  Based on code donated by Chip Rosenthal of
25369632Seric		Unicom.
25469632Seric	Allow `u' option to also accept user:group as a value, in the same
25569632Seric		fashion as the U= mailer option.
25669632Seric	Add the symbolic time zone name in the Arpanet format dates (as
25769632Seric		a comment).  This adds a new compile-time configuration
25869632Seric		flag: TZ_TYPE can be set to TZ_TM_NAME (use the value
25969632Seric		of (struct tm *)->tm_name), TZ_TM_ZONE (use the value
26069632Seric		of (struct tm *)->tm_zone), TZ_TZNAME (use extern char
26169632Seric		*tzname[(struct tm *)->tm_isdst]), TZ_TIMEZONE (use
26269632Seric		timezone()), or TZ_NONE (don't include the comment).  Code
26369632Seric		from Chip Rosenthal.
26469632Seric	The "Timeout" option (formerly "r") is extended to allow suboptions.
26569632Seric		For example,
26669632Seric		    O Timeout.helo = 2m
26769632Seric		There are also two new suboptions "queuereturn" and
26869632Seric		"queuewarn"; these subsume the old T option.  Thus, to
26969632Seric		set them both the preferred new syntax is
27069632Seric		    O Timeout.queuereturn = 5d
27169632Seric		    O Timeout.queuewarn = 4h
27269632Seric	Sort queue by host name instead of by message priority if the
27369632Seric		QueueSortOrder option (no short name) is set is set to
27469632Seric		``host''.  This makes better use of the connection cache,
27569632Seric		but may delay more ``interactive'' messages behind large
27669632Seric		backlogs under some circumstances.  This is probably a
27769632Seric		good option if you have high speed links or don't do lots
27869632Seric		of ``batch'' messages, but less good if you are using
27969632Seric		something like PPP on a 14.4 modem.  Based on code
28069632Seric		contributed by Roy Mongiovi of Georgia Tech (my main
28169632Seric		contribution was to make it configurable).
28269632Seric	Save i-number of df file in qf file to simplify rebuilding of queue
28369632Seric		after disasterous disk crash.  Suggested by Kyle Jones of
28469632Seric		UUNET; closely based on code from KJS DECWRL code written
28569632Seric		by Paul Vixie.  NOTA BENE: The qf files produced by 8.7
28669632Seric		are NOT back compatible with 8.6 -- that is, you can convert
28769632Seric		from 8.6 to 8.7, but not the other direction.
28869632Seric	Add ``F=d'' mailer flag to disable all use of angle brackets in
28969632Seric		route-addrs in envelopes; this is because in some cases
29069632Seric		they can be sent to the shell, which interprets them as
29169632Seric		I/O redirection.
29269632Seric	Don't include error file (option E) with return-receipts; this
29369632Seric		can be confusing.
29469632Seric	Don't send "Warning: cannot send" messages to owner-* or
29569632Seric		*-request addresses.  Suggested by Christophe Wolfhugel
29669632Seric		of the Institut Pasteur, Paris.
29769632Seric	Allow -O command line flag to set long form options.
29869632Seric	Add "MinQueueAge" option to set the minimum time between attempts
29969632Seric		to run the queue.  For example, if the queue interval
30069632Seric		(-q value) is five minutes, but the minimum queue age
30169632Seric		is fifteen minutes, jobs won't be tried more often than
30269632Seric		once every fifteen minutes.  This can be used to give
30369632Seric		you more responsiveness if your delivery mode is set to
30469632Seric		queue-only.
30569632Seric	Allow "fileopen" timeout (default: 60 seconds) for opening
30669632Seric		:include: and .forward files.
30769632Seric	Add "-k", "-v", and "-z" flags to map definitions; these set the
30869632Seric		key field name, the value field name, and the field
30969632Seric		delimiter.  The field delimiter can be a single character
31069632Seric		or the sequence "\t" or "\n" for tab or newline.
31169632Seric		These are for use by NIS+ and similar access methods.
31269732Seric	Change maps to always strip quotes before lookups; the -q flag
31369732Seric		turns off this behaviour.  Suggested by Motonori Nakamura.
31469632Seric	Add "nisplus" map class.  Takes -k and -v flags to choose the
31569632Seric		key and value field names respectively.  Code donated by
31669632Seric		Sun Microsystems.
31769632Seric	Add "hesiod" map class.  The "file name" is used as the
31869632Seric		"HesiodNameType" parameter to hes_resolve(3).  Returns the
31969632Seric		first value found for the match.  Code donated by Scott
32069632Seric		Hutton of Indiana University.
32169632Seric	Add "netinfo" (NeXT NetInfo) map class.  Maps can have a -k flag to
32269632Seric		specify the name of the property that is searched as the
32369632Seric		key and a -v flag to specify the name of the property that
32469632Seric		is returned as the value (defaults to "members").  The
32569632Seric		default map is "/aliases".
32669632Seric	Add "text" map class.  This does slow, linear searches through
32769632Seric		text files.  The -z flag specifies a column delimiter
32869632Seric		(defaults to any sequence of white space), the -k flag
32969632Seric		sets the key column number, and the -v flag sets the
33069632Seric		value column number.  Lines beginning with `#' are treated
33169632Seric		as comments.
33269632Seric	Add "program" map class to execute arbitrary programs.  The search
33369632Seric		key is presented as the last argument; the output is one
33469632Seric		line read from the programs standard output.  Exit statuses
33569632Seric		are from sysexits.h.
33669632Seric	Add "sequence" map class -- searches maps in sequence until it
33769632Seric		finds a match.  For example, the declarations:
33869632Seric		    Kmap1 ...
33969632Seric		    Kmap2 ...
34069632Seric		    Kmapseq sequence map1 map2
34169632Seric		defines a map "mapseq" that first searches map1; if the
34269632Seric		value is found it is returned immediately, otherwise
34369632Seric		map2 is searched and the value returned.
34469632Seric	Add "switch" map class.  This is much like "sequence" except that
34569632Seric		the ordering is fetched from an external file, usually
34669632Seric		the system service switch.  The parameter is the name of
34769632Seric		the service to switch on, and the maps that it will use
34869632Seric		are this name followed by ".service_type".  For example,
34969632Seric		if the declaration of the map is
35069632Seric		    Ksample switch hosts
35169632Seric		and the system service switch specifies that hosts are
35269632Seric		looked up using dns and nis in that order, then this is
35369632Seric		equivalent to
35469632Seric		    Ksample sequence hosts.dns hosts.nis
35569632Seric		The subordinate maps must already be defined.
35669632Seric	Add "user" map class -- looks up users using getpwnam.  Takes a
35769632Seric		"-v field" flag on the definition that tells what passwd
35869632Seric		entry to return -- legal values are name, passwd, uid, gid,
35969632Seric		gecos, dir, and shell.  Generally expected to be used with
36069632Seric		the -m (matchonly) flag.
36169632Seric	Add "bestmx" map class -- returns the best MX value for the host
36269632Seric		listed as the value.  If there are several "best" MX records
36369632Seric		for this host, one will be chosen at random.
36469632Seric	Add "userdb" map class -- looks up entries in the user database.
36569632Seric		The "file name" is actually the tag that will be used,
36669632Seric		typically "mailname".  If there are multiple entries
36769632Seric		matching the name, the one chosen is undefined.
36869632Seric	Add multiple queue timeouts (both return and warning).  These are
36969632Seric		set by the Precedence: or Priority: header fields to one of
37069632Seric		three values.  If a Priority: is set and has value "normal",
37169632Seric		"urgent", or "non-urgent" the corresponding timeouts are
37269632Seric		used.  If no priority is set, the Precedence: is consulted;
37369632Seric		if negative, non-urgent timeouts are used; if greater than
37469632Seric		zero, urgent timeouts are used.  Otherwise, normal timeouts
37569632Seric		are used.  The timeouts are set by setting the six timeouts
37669632Seric		queue{warn,return}.{urgent,normal,non-urgent}.
37769632Seric	Fix problem when a mail address is resolved to a $#error mailer
37869632Seric		with a temporary failure indication; it works in SMTP,
37969632Seric		but when delivering locally the mail is silently discarded.
38069632Seric		This patch, from Kyle Jones of UUNET, bounces it instead
38169632Seric		of queueing it (queueing is very hard).
38269632Seric	When using /etc/hosts or NIS-style lookups, don't assume that
38369632Seric		the first name in the list is the best one -- instead,
38469632Seric		search for the first one with a dot.  For example, if
38569632Seric		an /etc/hosts entry reads
38669632Seric		    128.32.149.68	mammoth mammoth.CS.Berkeley.EDU
38769632Seric		this change will use the second name as the canonical
38869632Seric		machine name instead of the initial, unqualified name.
38969632Seric	Change dequote map to replace spaces in quoted text with a value
39069632Seric		indicated by the -s flag on the dequote map definition.
39169632Seric		For example, ``Mdequote dequote -s_'' will change
39269632Seric		"Foo Bar" into an unquoted Foo_Bar instead of leaving it
39369632Seric		quoted (because of the space character).  Suggested by Dan
39469632Seric		Oscarsson for use in X.400 addresses.
39569632Seric	Implement long macro names as ${name}; long class names can
39669632Seric		be similarly referenced as $={name} and $~{name}.
39769632Seric		Definitions are (e.g.) ``D{name}value''.  Names that have
39869632Seric		a leading lower case letter or punctuation characters are
39969632Seric		reserved for internal use by sendmail; i.e., config files
40069632Seric		should use names that begin with a capital letter.  Based
40169632Seric		on code contributed by Dan Oscarsson.
40269632Seric	Fix core dump if getgrgid returns a null group list (as opposed
40369632Seric		to an empty group list, that is, a pointer to a list
40469632Seric		with no members).  Fix from Andrew Chang of Sun Microsystems.
40569632Seric	Fix possible core dump if malloc fails -- if the malloc in xalloc
40669632Seric		failed, it called syserr which called newstr which called
40769632Seric		xalloc....  The newstr is now avoided for "panic" messages.
40869632Seric		Reported by Stuart Kemp of James Cook University.
40969632Seric	Improve connection cache timeouts; previously, they were not even
41069632Seric		checked if you were delivering to anything other than an
41169632Seric		IPC-connected host, so a series of (say) local mail
41269632Seric		deliveries could cause cached connections to be open
41369632Seric		much longer than the specified timeout.
41469632Seric	If an incoming message exceeds the maximum message size, stop
41569632Seric		writing the incoming bytes to the queue data file, since
41669632Seric		this can fill your mqueue partition -- this is a possible
41769632Seric		denial-of-service attack.
41869632Seric	Don't reject all numeric local user names unless HESIOD is
41969632Seric		defined.  It turns out that Posix allows all-numeric
42069632Seric		user names.  Fix from Tony Sanders of BSDI.
42169632Seric	Add service switch support.  If the local OS has a service
42269791Seric		switch (e.g., /etc/nsswitch.conf on Solaris or /etc/svc.conf
42369791Seric		on DEC systems) that will be used; otherwise, it falls back
42469791Seric		to using a local mechanism based on the ServiceSwitchFile
42569791Seric		option (default: /etc/service.switch).  For example, if the
42669632Seric		service switch lists "files" and "nis" for the aliases
42769791Seric		service, that will be the default lookup order.  the "files"
42869791Seric		("local" on DEC) service type expands to any alias files
42969791Seric		you listed in the configuration file, even if they aren't
43069791Seric		actually file lookups.
43169632Seric	Option I (NameServerOptions) no longer sets the "UseNameServer"
43269632Seric		variable which tells whether or not DNS should be considered
43369632Seric		canonical.  This is now determined based on whether or not
43469632Seric		"dns" is in the service list for "hosts".
43569632Seric	Add preliminary support for the ESMTP "DSN" extension (Delivery
43669632Seric		Status Notifications).  This is not yet a standard
43769632Seric		and the implementation is for experimentation only.
43869632Seric		For this reason it only announces itself as "X-DSN-0"
43969632Seric		instead of "DSN".  DSN notifications override
44069632Seric		Return-Receipt-To:.
44169632Seric	Add T=mtstype keyletter to mailer definitions to define the value
44269632Seric		for the Final-MTS-Type: and Remote-MTS-Type: fields in the
44369632Seric		DSN-standard return message.
44469632Seric	Extend heuristic to force running in ESMTP mode to look for the
44569632Seric		six-character string "ESMTP " anywhere in the 220 greeting
44669632Seric		message (not just the second line).  This is to provide
44769632Seric		better compatibility with other ESMTP servers.
44869632Seric	Print sequence number of job when running the queue so you can
44969632Seric		easily see how much progress you have made.  Suggested
45069632Seric		by Peter Wemm of DIALix.
45169632Seric	Map newlines to spaces in logged message-ids; some versions of
45269632Seric		syslog truncate the rest of the line after newlines.
45369632Seric		Suggested by Fletcher Mattox of U. Texas.
45469632Seric	Move up forking for job runs so that if a message is split into
45569632Seric		multiple envelopes you don't get "fork storms" -- this
45669632Seric		also improves the connection cache utilization.
45769632Seric	Accept "<<>>", "<<<>>>", and so forth as equivalent to "<>" for
45869632Seric		the purposes of refusing to send error returns.  Suggested
45969632Seric		by Motonori Nakamura of Ritsumeikan University.
46069632Seric	Relax rules on when a file can be written when referenced from
46169632Seric		the aliases file: use the default uid/gid instead of the
46269632Seric		real uid/gid.  This allows you to create a file owned by
46369632Seric		and writable only by the default uid/gid that will work
46469632Seric		all the time (without having the setuid bit set).  Change
46569632Seric		suggested by Shau-Ping Lo and Andrew Cheng of Sun
46669632Seric		Microsystems.
46769632Seric	Add "DialDelay" option (no short name) to provide an "extra"
46869632Seric		delay for dial on demand systems.  If this is non-zero
46969632Seric		and a connect fails, sendmail will wait this long and
47069632Seric		then try again.  If it takes longer than the kernel
47169632Seric		timeout interval to establish the connection, this
47269632Seric		option can give the network software time to establish
47369632Seric		the link.  The default units are seconds.
47469632Seric	Move logging of sender information to be as early as possible;
47569632Seric		previously, it could be delayed a while for SMTP mail
47669632Seric		sent to aliases.  Suggested by Brad Knowles of the
47769632Seric		Defense Information Systems Agency.
47869632Seric	Call res_init() before setting RES_DEBUG; this is required by
47969632Seric		BIND 4.9.3, or so I'm told.  From Douglas Anderson of
48069632Seric		the National Computer Security Center.
48169632Seric	Add xdelay= field in logs -- this is a transaction delay, telling
48269632Seric		you how long it took to deliver to this address on the
48369632Seric		last try.  It is intended to be used for sorting mailing
48469632Seric		lists to favor "quick" addresses.  Provided for use by
48569632Seric		the mailprio scripts (see below).
48669632Seric	If a map cannot be opened, and that map is non-optional, and
48769632Seric		an address requires that map for resolution, queue the
48869632Seric		map instead of bouncing it.  This involves creating a
48969632Seric		pseudo-class of maps called "bogus-map" -- if a required
49069632Seric		map cannot be opened, the class is changed to bogus-map;
49169632Seric		all queries against bogus-map return "tempfail".  The
49269632Seric		bogus-map class is not directly accessible.  A sample
49369632Seric		implementation was donated by Jem Taylor of Glasgow
49469632Seric		University Computing Service.
49569632Seric	Don't make a bad ``MAIL FROM:'' address on one message blow away
49669632Seric		other messages to the same host later in the queue.
49769632Seric		Problem noted by Eric Prestemon of American University.
49869632Seric	Fix a possible core dump when mailing to a program that talks
49969632Seric		SMTP on its standard input.  Fix from Keith Moore of
50069632Seric		the University of Kentucky.
50169632Seric	Make it possible to resolve filenames to $#local $: @ /filename;
50269632Seric		previously, the "@" would cause it to not be recognized
50369632Seric		as a file.  Problem noted by Brian Hill of U.C. Davis.
50469632Seric	Accept a -1 signal to re-exec the daemon.  This only works if
50569632Seric		argv[0] is a full path to sendmail.
50669632Seric	Fix bug in "addr=..." field in O option on little-endian machines
50769632Seric		-- the network number wasn't being converted to network
50869632Seric		byte order.  Patch from Kurt Lidl of Pix Technologies
50969632Seric		Corporation.
51069632Seric	Pre-initialize the resolver early on; this is to avoid a bug with
51169632Seric		BIND 4.9.3 that can cause the _res.retry field to get
51269632Seric		reset to zero, causing all name server lookups to time
51369632Seric		out.  Fix from Matt Day of Artisoft.
51469632Seric	Restore T line (trusted users) in config file -- but instead of
51569632Seric		locking out the -f flag, they just tell whether or not
51669632Seric		an X-Authentication-Warning: will be added.  This really
51769632Seric		just creates new entries in class 't', so "Ft/file/name"
51869632Seric		can be used to read trusted user names from a file.
51969913Seric		Trusted users are also allowed to execute programs even
52069913Seric		if they have a shell that isn't in /etc/shells.
52169632Seric	Improve NEWDB alias file rebuilding so it will create them
52269632Seric		properly if they do not already exist.  This had been
52369632Seric		a MAYBENEXTRELEASE feature in 8.6.9.
52469632Seric	Check for @:@ entry in NIS maps before starting up to avoid
52569632Seric		(but not prevent, sigh) race conditions.  This ought to
52669632Seric		be handled properly in ypserv, but isn't.  Suggested by
52769632Seric		Michael Beirne of Motorola.
52869632Seric	Refuse connections if there isn't enough space on the filesystem
52969632Seric		holding the queue.  Contributed by Robert Dana of Wolf
53069632Seric		Communications.
53169632Seric	Skip checking for directory permissions in the path to a file
53269632Seric		when checking for file permissions iff setreuid()
53369632Seric		succeeded -- it is unnecessary in that case.  This avoids
53469632Seric		significant performance problems when looking for .forward
53569632Seric		files.  Based on a suggestion by Win Bent of USC.
53669632Seric	Allow symbolic ruleset names.  Syntax can be "Sname" to get an
53769632Seric		arbitrary ruleset number assigned or "Sname = integer"
53869632Seric		to assign a specific ruleset number.  Reference is
53969632Seric		$>name_or_number.  Names can be composed of alphas, digits,
54069632Seric		underscore, or hyphen (first character must be non-numeric).
54169632Seric	Allow -o flag on AliasFile lines to make the alias file optional.
54269632Seric		From Bryan Costales of ICSI.
54369632Seric	Add NoRecipientAction option to handle the case where there is
54469632Seric		no legal recipient header in the message.  It can take
54569632Seric		on values:
54669632Seric		  None			Leave the message as is.  The
54769632Seric					message will be passed on even
54869632Seric					though it is in technically
54969632Seric					illegal syntax.
55069632Seric		  Add-To		Add a To: header with any
55169632Seric					recipients that it can find from
55269632Seric					the envelope.  This risks exposing
55369632Seric					Bcc: recipients.
55469632Seric		  Add-Apparently-To	Add an Apparently-To: header.  This
55569632Seric					has almost no redeeming social value,
55669632Seric					and is provided only for back
55769632Seric					compatibility.
55869632Seric		  Add-To-Undisclosed	Add a header reading
55969632Seric					To: undisclosed-recipients:;
56069632Seric					which will have the effect of
56169632Seric					making the message legal without
56269632Seric					exposing Bcc: recipients.
56369632Seric		  Add-Bcc		To add an empty Bcc: header.
56469632Seric					There is a chance that mailers down
56569632Seric					the line will delete this header,
56669632Seric					which could cause exposure of Bcc:
56769632Seric					recipients.
56869632Seric		The default is NoRecipientAction=None.
56969632Seric	Truncate (rather than delete) Bcc: lines in the header.  This
57069632Seric		should prevent later sendmails (at least, those that don't
57169632Seric		themselves delete Bcc:) from considering this message to
57269632Seric		be non-conforming -- although it does imply that non-blind
57369632Seric		recipients can see that a Bcc: was sent, albeit not to whom.
57469632Seric	Add SafeFileEnvironment option.  If declared, files named as delivery
57569632Seric		targets must be regular files in addition to the regular
57669632Seric		checks.  Also, if the option is non-null then it is used as
57769632Seric		the name of a directory that is used as a chroot(2)
57869632Seric		environment for the delivery; the file names listed in an
57969632Seric		alias or forward should include the name of this root.
58069632Seric		For example, if you run with
58169632Seric			O SafeFileEnvironment=/arch
58269632Seric		then aliases should reference "/arch/rest/of/path".  If a
58369632Seric		value is given, sendmail also won't try to save to
58469632Seric		/usr/tmp/dead.letter (instead it just leaves the job in the
58569632Seric		queue as Qfxxxxxx).  Inspired by *Hobbit*'s sendmail patch kit.
58669632Seric	Support -A flag for alias files; this will comma concatenate like
58769632Seric		entries.  For example, given the aliases:
58869632Seric			list: member1
58969632Seric			list: member2
59069632Seric		and an alias file declared as:
59169632Seric			OAhash:-A /etc/aliases
59269632Seric		the final alias inserted will be "list: member1,member2";
59369632Seric		without -A you will get an error on the second and subsequent
59469632Seric		alias for "list".  Contributed by Bryan Costales of ICSI.
59569632Seric	Line-buffer transcript file.  Suggested by Liudvikas Bukys.
59669632Seric	Fix a problem that could cause very long addresses to core dump in
59769632Seric		some special circumstances.  Problem pointed out by Allan
59869632Seric		Johannesen.
59969632Seric	(Internal change.)  Change interface to expand() (macro expansion)
60069632Seric		to be simpler and more consistent.
60169632Seric	Delete check for funny qf file names.  This didn't really give
60269632Seric		any extra security and caused some people some problems.
60369632Seric		(If you -really- want this, define PICKY_QF_NAME_CHECK
60469632Seric		at compile time.)  Suggested by Kyle Jones of UUNET.
60569632Seric	(Internal change.)  Change EF_NORETURN to EF_NO_BODY_RETN and
60669632Seric		merge with DSN code; this is simpler and more consistent.
60769632Seric		This may affect some people who have written their own
60869632Seric		checkcompat() routine.
60969632Seric	(Internal change.)  Eliminate `D' line in qf file.  The df file
61069632Seric		is now assumed to be the same name as the qf file (with
61169632Seric		the `q' changed to a `d', of course).
61269632Seric	Avoid forking for delivery if all recipient mailers are marked as
61369632Seric		"expensive" -- this can be a major cost on some systems.
61469632Seric		Essentially, this forces sendmail into "queue only" mode
61569632Seric		if all it is going to do is queue anyway.
61669632Seric	Avoid sending a null message in some rather unusual circumstances
61769632Seric		(specifically, the RCPT command returns a temporary
61869632Seric		failure but the connection is lost before the DATA
61969632Seric		command).  Fix from Scott Hammond of Secure Computing
62069632Seric		Corporation.
62169632Seric	Change makesendmail to use a somewhat more rational naming scheme:
62269632Seric		Makefiles and obj directories are named $os.$rel.$arch,
62369632Seric		where $os is the operating system (e.g., SunOS), $rel is
62469632Seric		the release number (e.g., 5.3), and $arch is the machine
62569632Seric		architecture (e.g., sun4).  Any of these can be omitted,
62669632Seric		and anything after the first dot in a release number can
62769632Seric		be replaced with "x" (e.g., SunOS.4.x.sun4).  The previous
62869632Seric		version used $os.$arch.$rel and was rather less general.
62969947Seric	Change makesendmail to do a "make depend" in the target directory
63069947Seric		when it is being created.  This involves adding an empty
63169947Seric		"depend:" entry in most Makefiles.
63269632Seric	Ignore IDENT return value if the OSTYPE field returns "OTHER",
63369632Seric		as indicated by RFC 1413.  Pointed out by Kari Hurtta
63469632Seric		of the Finnish Meteorological Institute.
63569632Seric	Fix problem that could cause multiple responses to DATA command
63669632Seric		on header syntax errors (e.g., lines beginning with colons).
63769632Seric		Problem noted by Jens Thomassen of the University of Oslo.
63869632Seric	Don't let null bytes in headers cause truncation of the rest of
63969632Seric		the header.
64069632Seric	Log Authentication-Warning:s.  Suggested by Motonori Nakamura.
64169632Seric	Increase timeouts on message data puts to allow time for receivers
64269632Seric		to canonify addresses in headers on the fly.  This is still
64369632Seric		a rather ugly heuristic.  From Motonori Nakamura.
64469632Seric	Add "HasWildcardMX" suboption to ResolverOptions; if set, MX
64569947Seric		records are not used when canonifying names, and when MX
64669947Seric		lookups are done for addressing they must be fully
64769947Seric		qualified.  This is useful if you have a wildcard MX record,
64869947Seric		although it may cause other problems.  In general, don't use
64969947Seric		wildcard MX records.  Patch from Motonori Nakamura.
65069632Seric	Eliminate default two-line SMTP greeting message.  Instead of
65169632Seric		adding an extra "ESMTP spoken here" line, the word "ESMTP"
65269632Seric		is added between the first and second word of the first
65369632Seric		line of the greeting message (i.e., immediately after the
65469632Seric		host name).  This eliminates the need for the BROKEN_SMTP_PEERS
65569632Seric		compile flag.  Old sendmails won't see the ESMTP, but that's
65669632Seric		acceptable because SIZE was the only useful extension that
65769632Seric		old sendmails understand.
65869632Seric	Avoid gethostbyname calls on UNIX domain sockets during SIGUSR1
65969632Seric		invoked state dumps.  From Masaharu Onishi.
66069632Seric	Allow on-line comments in .forward and :include: files; they are
66169632Seric		introduced by the string "<LWSP>#@#<LWSP>", where <LWSP>
66269632Seric		is a space or a tab.  This is intended for native
66369632Seric		representation of non-ASCII sets such as Japanese, where
66469632Seric		existing encodings would be unreadable or would lose
66569632Seric		data -- for example,
66669632Seric		 <motonori@cs.ritsumei.ac.jp> NAKAMURA Motonori
66769632Seric					(romanized/less information)
66869632Seric		 <motonori@cs.ritsumei.ac.jp> =?ISO-2022-JP?B?GyRCQ2ZCPBsoQg==?=
66969632Seric					      =?ISO-2022-JP?B?GyRCQUdFNRsoQg==?=
67069632Seric					(with MIME encoding, not human readable)
67169632Seric		 <motonori@cs.ritsumei.ac.jp> #@# ^[$BCfB<^[(B ^[$BAGE5^[(B
67269632Seric					(native encoding with ISO-2022-JP)
67369632Seric		The last form is human readable in the Japanese environment.
67469632Seric		Based on a fix from (surprise!) Motonori Nakamura.
67569632Seric	Don't make SMTP error returns on MAIL FROM: line be "sticky" for all
67669632Seric		messages to that host; these are most frequently associated
67769632Seric		with addresses rather than the host, with the exception of
67869632Seric		421 (service shutting down).  The effect was to cause queues
67969632Seric		to sometimes take an excessive time to flush.  Reported by
68069632Seric		Robert Sargent of Southern Geographics Technologies.
68169632Seric	Add Nice=N mailer option to set the niceness at which a mailer will
68269632Seric		run.
68369632Seric	When looking for a default config file (that is, not specified using
68469632Seric		a -C flag), try a configuration file name extended by the
68569632Seric		binary version number -- e.g., sendmail.8.7.Alpha.9.cf,
68669632Seric		sendmail.8.7.Alpha.cf, sendmail.8.7.cf, sendmail.8.cf, and
68769632Seric		sendmail.cf in that order.  This should make it easier to
68869632Seric		test new versions in a shared environment.
68969632Seric	Log queue runs that are skipped due to high loads.  They are logged
69069632Seric		at LOG_INFO priority iff the log level is > 8.  Contributed
69169632Seric		by Bruce Nagel of Data General.
69269632Seric	Allow the error mailer to accept a DSN-style error status code
69369632Seric		instead of an sysexits status code in the host part.
69469632Seric		Anything with a dot will be interpreted as a DSN-style code.
69569632Seric	Add new mailer flag: F=3 will tell translations to Quoted-Printable
69669632Seric		to encode characters that might be munged by an EBCDIC system
69769632Seric		in addition to the set required by RFC 1521.  The additional
69869632Seric		characters are !, ", #, $, @, [, \, ], ^, `, {, |, }, and ~.
69969632Seric		(Think of "IBM 360" as the mnemonic for this flag.)
70069632Seric	Change check for mailing to files to look for a pathname of [FILE]
70169632Seric		rather than looking for the mailer named *file*.  The mapping
70269632Seric		of leading slashes still goes to the *file* mailer.  This
70369632Seric		allows you to implement the *file* mailer as a separate
70469632Seric		program, for example, to insert a Content-Length: header
70569632Seric		or do special security policy.  However, note that the usual
70669632Seric		initial checking for the file permissions is still done, and
70769632Seric		the program in question needs to be very careful about how
70869632Seric		it does the file write to avoid security problems.
70969632Seric	Be able to read ~root/.forward even if the path isn't accessible to
71069632Seric		regular users.  This is disrecommended because sendmail
71169632Seric		sometimes does not run as root (e.g., when an unsafe option
71269632Seric		is specified on the command line), but should otherwise be
71369632Seric		safe because .forward files must be owned by the user for
71469632Seric		whom mail is being forwarded, and cannot be a symbolic link.
71569632Seric		Suggested by Forrest Aldrich of Wang Laboratories.
71669632Seric	Add new "HostsFile" option that is the pathname to the /etc/hosts
71769632Seric		file.  This is used for canonifying hostnames when the
71869632Seric		service type is "files".
71969632Seric	Implement programs on F (read class from file) line.  The syntax is
72069632Seric		Fc|/path/to/program to read the output from the program
72169632Seric		into class "c".
72269632Seric	Probe the network interfaces to find alternate names for this
72369632Seric		host.  Requires the SIOCGIFCONF ioctl call.  Code
72469632Seric		contributed by SunSoft.
72569632Seric	Add "E" configuration line to set or propogate environment
72669632Seric		variables into children.  "E<envar>" will propogate
72769632Seric		the named variable from the environment when sendmail
72869632Seric		was invoked into any children it calls; "E<envar>=<value>"
72969632Seric		sets the named variable to the indicated value.  Any
73069632Seric		variables not explicitly named will not be in the child
73169632Seric		environment.  However, sendmail still forces an
73269632Seric		"AGENT=sendmail" environment variable, in part to enforce
73369632Seric		at least one environment variable, since many programs and
73469632Seric		libraries die horribly if this is not guaranteed.
73569664Seric	Change heuristic for rebuilding both NEWDB and NDBM versions of
73669664Seric		alias databases -- new algorithm looks for the substring
73769664Seric		"/yp/" in the file name.  This is more portable and involves
73869664Seric		less overhead.  Suggested by Motonori Nakamura.
73969732Seric	Dynamically allocate the queue work list so that you don't lose
74069732Seric		jobs in large queue runs.  The old QUEUESIZE compile parameter
74169732Seric		is replaced by QUEUESEGSIZE (the unit of allocation, which
74269732Seric		should not need to be changed) and the MaxQueueRunSize option,
74369732Seric		which is the absolute maximum number of jobs that will ever
74469732Seric		be handled in a single queue run.  Based on code contributed
74569732Seric		by Brian Coan of the Institute for Global Communications.
74669732Seric	Log message when a message is dropped because it exceeds the maximum
74769732Seric		message size.  Suggested by Leo Bicknell of Virginia Tech.
74869791Seric	Allow trusted users (those on a T line or in $=t) to use -bs without
74969791Seric		an X-Authentication-Warning: added.  Suggested by Mark Thomas
75069791Seric		of Mark G. Thomas Consulting.
75169857Seric	Announce state of compile flags on -d0.1 (-d0.10 throws in the
75269857Seric		OS-dependent defines).  The old semantic of -d0.1 to not
75369857Seric		run the daemon in background has been moved to -d99.100,
75469857Seric		and the old 52.5 flag (to avoid disconnect() from closing
75569857Seric		all output files) has been moved to 52.100.  This makes
75669857Seric		things more consistent (flags below .100 don't change
75769857Seric		semantics) and separates out the backgrounding so that
75869913Seric		it doesn't happen automatically on other unrelated debugging
75969913Seric		flags.
76069857Seric	If -t is used but no addresses are found in the header, give an
76169857Seric		error message rather than just doing nothing.  Fix from
76269857Seric		Motonori Nakamura.
76369857Seric	On systems (like SunOS) where the effective gid is not necessarily
76469857Seric		included in the group list returned by getgroups(), the
76569857Seric		`restrictmailq' option could sometimes cause an authorized
76669857Seric		user to not be able to use `mailq'.  Fix from Charles Hannum
76769857Seric		of MIT.
76869857Seric	Allow symbolic service names for [IPC] mailers.  Suggested by
76969857Seric		Gerry Magennis of Logica International.
77069857Seric	Add DontExpandCnames option to prevent $[ ... $] from expanding CNAMEs
77169857Seric		when running DNS.  For example, if the name FTP.Foo.ORG is
77269857Seric		a CNAME for Cruft.Foo.ORG, then when sitting on a machine in
77369857Seric		the Foo.ORG domain a lookup of "FTP" returns "Cruft.Foo.ORG"
77469857Seric		if this option is not set, or "FTP.Foo.ORG" if it is set.
77569857Seric		This is technically illegal under RFC 822 and 1123, but the
77669857Seric		IETF is moving toward legalizing it.  Note that turning on
77769857Seric		this option is not sufficient to guarantee that a downstream
77869857Seric		neighbor won't rewrite the address for you.
77969869Seric	Add "-m" flag to makesendmail script -- this tells you what object
78069869Seric		directory and Makefile it will use, but doesn't actually do
78169869Seric		the make.
78269913Seric	Do some additional checking on the contents of the qf file to try
78369913Seric		to detect attacks against the qf file.  In particular,
78469913Seric		abort on any line beginning "From ", and add an "end of
78569913Seric		file" line -- any data after that line is prohibited.
78669947Seric	Always use /etc/sendmail.cf, regardless of the arbitrary vendor
78769947Seric		choices.  This can be overridden in the Makefile by using
78869947Seric		either -DUSE_VENDOR_CF_PATH to get the vendor location
78969947Seric		(to the extent that we know it) or by defining
79069947Seric		_PATH_SENDMAILCF (which is a "hard override").  This allows
79169947Seric		sendmail 8 to have more consistent installation instructions.
79269632Seric	PORTABILITY FIXES:
79369632Seric		Solaris 2 from Rob McMahon <cudcv@csv.warwick.ac.uk>.
79469632Seric		System V Release 4 from Motonori Nakamura of Ritsumeikan
79569632Seric			University.  This expands the disk size
79669632Seric			checking to include all (?) SVR4 configurations.
79769632Seric		System V Release 4 from Kimmo Suominen -- initgroups(3)
79869632Seric			and setrlimit(2) are both available.
79969632Seric		System V Release 4 from sob@sculley.ffg.com -- some versions
80069632Seric			apparently "have EX_OK defined in other headerfiles."
80169632Seric		Linux Makefile typo.
80269632Seric		Linux getusershell(3) is broken in Slackware 2.0 --
80369632Seric			from Andrew Pam of Xanadu Australia.
80469632Seric		More Linux tweaking from John Kennedy of California State
80569632Seric			University, Chico.
80669632Seric		Cray changes from Eric Wassenaar:  ``On Cray, shorts,
80769632Seric			ints, and longs are all 64 bits, and all structs
80869632Seric			are multiples of 64 bits.  This means that the
80969632Seric			sizeof operator returns only multiples of 8.
81069632Seric			This requires adaptation of code that really
81169632Seric			deals with 32 bit or 16 bit fields, such as IP
81269632Seric			addresses or nameserver fields.''
81369632Seric		DG/UX 5.4.3 from Mark T. Robinson <mtr@ornl.gov>.  To
81469632Seric			get the old behaviour, use -DDGUX_5_4_2.
81569632Seric		DG/UX hack: add _FORCE_MAIL_LOCAL_=yes environment
81669632Seric			variable to fix bogus /bin/mail behaviour.
81769632Seric		Tandem NonStop-UX from Rick McCarty <mccarty@mpd.tandem.com>.
81869632Seric			This also cleans up some System V Release 4 compile
81969632Seric			problems.
82069632Seric		Solaris 2: sendmail.cw file should be in /etc/mail to
82169632Seric			match all the other configuration files.  Fix
82269632Seric			from Glenn Barry of Emory University.
82369632Seric		Solaris 2.3: compile problem in conf.c.  Fix from Alain
82469632Seric			Nissen of the University of Liege, Belgium.
82569632Seric		Ultrix: freespace calculation was incorrect.  Fix from
82669632Seric			Takashi Kizu of Osaka University.
82769632Seric		SVR4: running in background gets a SIGTTOU because the
82869632Seric			emulation code doesn't realize that "getpeername"
82969632Seric			doesn't require reading the file.  Fix from Peter
83069632Seric			Wemm of DIALix.
83169632Seric		Solaris 2.3: due to an apparent bug in the socket emulation
83269632Seric			library, sockets can get into a "wedged" state where
83369632Seric			they just return EPROTO; closing and re-opening the
83469632Seric			socket clears the problem.  Fix from Bob Manson
83569632Seric			of Ohio State University.
83669632Seric		Hitachi 3050R & 3050RX running HI-UX/WE2: portability
83769632Seric			fixes from Akihiro Hashimoto ("Hash") of Chiba
83869632Seric			University.
83969632Seric		AIX changes to allow setproctitle to work from Rainer Sch�pf
84069632Seric			of Zentrum f�r Datenverarbeitung der Universit�t
84169632Seric			Mainz.
84269857Seric		AIX changes for load average from Ed Ravin of NASA/Goddard.
84369632Seric		SCO Unix from Chip Rosenthal of Unicom (code was using the
84469632Seric			wrong statfs call).
84569632Seric		ANSI C fixes from Adam Glass (NetBSD project).
84669632Seric		Stardent Titan/ANSI C fixes from Kate Hedstrom of Rutgers
84769632Seric			University.
84869632Seric		DG-UX fixes from Bruce Nagel of Data General.
84969632Seric		IRIX64 updates from Mark Levinson of the University of
85069632Seric			Rochester Medical Center.
85169632Seric		Altos System V (``the first UNIX/XENIX merge the Altos
85269632Seric			did for their Series 1000 & Series 2000 line;
85369632Seric			their merged code was licenced back to AT&T and
85469632Seric			Microsoft and became System V release 3.2'') from
85569632Seric			Tim Rice <timr@crl.com>.
85669632Seric		OSF/1 running on Intel Paragon from Jeff A. Earickson
85769632Seric			<jeff@ssd.intel.com> of Intel Scalable Systems
85869632Seric			Divison.
85969632Seric		Amdahl UTS System V 2.1.5 (SVr3-based) from Janet Jackson
86069632Seric			<janet@dialix.oz.au>.
86169632Seric		System V Release 4 (statvfs semantic fix) from Alain
86269632Seric			Durand of I.M.A.G.
86369632Seric		HP-UX 10.x multiprocessor load average changes from
86469632Seric			Scott Hutton and Jeff Sumler of Indiana University.
86569632Seric		Cray CSOS from Scott Bolte of Cray Computer Corporation.
86669632Seric		Unicos 8.0 from Douglas K. Rand of the University of North
86769632Seric			Dakota, Scientific Computing Center.
86869632Seric		Solaris 2.4 fixes from Sanjay Dani of Dani Communications.
86969632Seric		ConvexOS 11.0 from Christophe Wolfhugel.
87069632Seric		IRIX 4.0.5 from David Ashton-Reader of CADcentre.
87169632Seric		ISC UNIX from J. J. Bailey.
87269632Seric		HP-UX 9.xx on the 8xx series machines from Remy Giraud
87369632Seric			of Meteo France.
87469632Seric		HP-UX configuration from Tom Lane <tgl@sss.pgh.pa.us>.
87569632Seric		IRIX 5.2 and 5.3 from Kari E. Hurtta.
87669632Seric		FreeBSD 2.0 from Mike Hickey of Federal Data Corporation.
87769632Seric		Sony NEWS-OS 4.2.1R and 6.0.3 from Motonori Nakamura.
87869632Seric		Omron LUNA unios-b, mach from Motonori Nakamura.
87969632Seric		NEC EWS-UX/V 4.2 from Motonori Nakamura.
88069632Seric		NeXT 2.1 from Bryan Costales.
88169632Seric		AUX patch thanks to Mike Erwin of Apple Computer.
88269632Seric		HP-UX 10.0 from John Beck of Hewlett-Packard.
88369632Seric		Ultrix: allow -DBROKEN_RES_SEARCH=0 if you are using a
88469632Seric			non-DEC resolver.  Suggested by Allan Johannesen.
88569857Seric		UnixWare 2.0 fixes from Petr Lampa of the Technical
88669857Seric			University of Brno (Czech Republic).
887*69967Seric		KSR OS 1.2.2 support from Todd Miller of the University
888*69967Seric			of Colorado.
88969632Seric	MAKEMAP: allow -d flag to allow insertion of duplicate aliases
89069632Seric		in type ``btree'' maps.  The semantics of this are undefined
89169632Seric		for regular maps, but it can be useful for the user database.
89269632Seric	MAKEMAP: lock database file while rebuilding to avoid sendmail
89369632Seric		lookups while the rebuild is going on.  There is a race
89469632Seric		condition between the open(... O_TRUNC ...) and the lock
89569632Seric		on the file, but it should be quite small.
89669632Seric	SMRSH: sendmail restricted shell added to the release.  This can
89769632Seric		be used as an alternative to /bin/sh for the "prog" mailer,
89869632Seric		giving the local administrator more control over what
89969632Seric		programs can be run from sendmail.
90069791Seric	MAIL.LOCAL: add this local mailer to the tape.  It is not really
90169791Seric		part of the release proper, and isn't fully supported; in
90269791Seric		particular, it does not run on System V based systems and
90369791Seric		never will.
90469632Seric	CONTRIB: a patch to rmail.c from Bill Gianopoulos of Raytheon
90569632Seric		to allow rmail to compile on systems that don't have
90669632Seric		function prototypes and systems that don't have snprintf.
90769632Seric	CONTRIB: add the "mailprio" scripts that will help you sort mailing
90869632Seric		lists by transaction delay times so that addresses that
90969632Seric		respond quickly get sent first.  This is to prevent very
91069632Seric		sluggish servers from delaying other peoples' mail.
91169632Seric		Contributed by Tony Sanders of BSDI.
91269632Seric	CONTRIB: add the "bsdi.mc" file as contributed by Tony Sanders
91369632Seric		of BSDI.  This has a lot of comments to help people out.
91469632Seric	CONFIG: fix mail from <> so it will properly convert to
91569632Seric		MAILER-DAEMON on local addresses.
91669632Seric	CONFIG: fix code that was supposed to catch colons in host
91769632Seric		names.  Problem noted by John Gardiner Myers of CMU.
91869632Seric	CONFIG: allow use of SMTP_MAILER_MAX in nullclient configuration.
91969632Seric		From Paul Riddle of the University of Maryland, Baltimore
92069632Seric		County.
92169632Seric	CONFIG: Catch and reject "." as a host address.
92269632Seric	CONFIG: Generalize domaintable to look up all domains, not
92369632Seric		just unqualified ones.
92469632Seric	CONFIG: Delete OLD_SENDMAIL support -- as near as I can tell, it
92569632Seric		was never used and didn't work anyway.
92669632Seric	CONFIG: Set flags A, w, 5, :, /, |, and @ on the "local" mailer
92769632Seric		and d on all mailers in the UUCP class.
92869632Seric	CONFIG: Allow "user+detail" to be aliased specially: it will first
92969632Seric		look for an alias for "user+detail", then for "user+*", and
93069632Seric		finally for "user".  This is intended for forwarding mail
93169632Seric		for system aliases such as root and postmaster to a
93269632Seric		centralized hub.
93369632Seric	CONFIG: add confEIGHT_BIT_HANDLING to set option 8 (see above).
93469632Seric	CONFIG: add smtp8 mailer; this has the F=8 (just-send-8) flag set.
93569632Seric		The F=8 flag is also set on the "relay" mailer, since
93669632Seric		this is expected to be another sendmail.
93769632Seric	CONFIG: avoid qualifying all UUCP addresses sent via SMTP with
93869632Seric		the name of the UUCP_RELAY -- in some cases, this is the
93969632Seric		wrong value (e.g., when we have local UUCP connections),
94069632Seric		and this can create unreplyable addresses.  From Chip
94169632Seric		Rosenthal of Unicom.
94269632Seric	CONFIG: add confRECEIVED_HEADER to change the format of the
94369632Seric		Received: header inserted into all messages. Suggested by
94469632Seric		Gary Mills of the University of Manitoba.
94569632Seric	CONFIG: Make "notsticky" the default; use FEATURE(stickyhost)
94669632Seric		to get the old behaviour.  I did this upon observing
94769632Seric		that almost everyone needed this feature, and that the
94869632Seric		concept I was trying to make happen didn't work with
94969632Seric		some user agents anyway.  FEATURE(notsticky) still works,
95069632Seric		but it is a no-op.
95169632Seric	CONFIG: Add LUSER_RELAY -- the host to which unrecognized user
95269632Seric		names are sent, rather than immediately diagnosing them
95369632Seric		as User Unknown.
95469632Seric	CONFIG: Add SMTP_MAILER_ARGS, ESMTP_MAILER_ARGS, SMTP8_MAILER_ARGS,
95569632Seric		and RELAY_MAILER_ARGS to set the arguments for the
95669632Seric		indicated mailers.  All default to "IPC $h".  Patch from
95769632Seric		Larry Parmelee of Cornell University.
95869632Seric	CONFIG: pop mailer needs F=n flag to avoid "annoying side effects
95969632Seric		on the client side" and F=P to get an appropriate
96069632Seric		return-path.  From Kimmo Suominen.
96169632Seric	CONFIG: add FEATURE(local_procmail) to use the procmail program
96269632Seric		as the local mailer.  For addresses of the form "user+detail"
96369632Seric		the "detail" part is passed to procmail via the -a flag.
96469632Seric		Contributed by Kimmo Suominen.
96569632Seric	CONFIG: add MAILER(procmail) to add an interface to procmail for
96669632Seric		use from mailertables.  This lets you execute arbitrary
96769632Seric		procmail scripts.  Contributed by Kimmo Suominen.
96869632Seric	CONFIG: add T= fields (MTS type) to local, smtp, and uucp mailers.
96969632Seric	CONFIG: add OSTYPE(ptx2) for DYNIX/ptx 2.x from Sequent.  From
97069632Seric		Paul Southworth of CICNet Systems Support.
97169632Seric	CONFIG: use -a$g as default to UUCP mailers, instead of -a$f.
97269632Seric		This causes the null return path to be rewritten as
97369632Seric		MAILER-DAEMON; otherwise UUCP gets horribly confused.
97469632Seric		From Michael Hohmuth of Technische Universitat Dresden.
97569632Seric	CONFIG: Add FEATURE(bestmx_is_local) to cause any hosts that
97669632Seric		list us as the best possible MX record to be treated as
97769632Seric		though they were local (essentially, assume that they
97869632Seric		are included in $=w).  This can cause additional DNS
97969632Seric		traffic, but is easier to administer if this fits your
98069632Seric		local model.  It does not work reliably if there are
98169632Seric		multiple hosts that share the best MX preference.
98269632Seric		Code contributed by John Oleynick of Rutgers.
98369632Seric	CONFIG: Add FEATURE(smrsh) to use smrsh (the SendMail Restricted
98469632Seric		SHell) instead of /bin/sh as the program used for delivery
98569632Seric		to programs.  If an argument is included, it is used as
98669632Seric		the path to smrsh; otherwise, /usr/local/etc/smrsh is
98769632Seric		assumed.
98869632Seric	CONFIG: Add LOCAL_MAILER_MAX and PROCMAILER_MAILER_MAX to limit the
98969632Seric		size of messages to the local and procmail mailers
99069632Seric		respectively.  Contributed by Brad Knowles of the Defense
99169632Seric		Information Systems Agency.
99269632Seric	CONFIG: Handle leading ``phrase:'' and trailing ``;'' as comments
99369632Seric		(just like text outside of angle brackets) in order to
99469632Seric		properly deal with ``group: addr1, ... addrN;'' syntax.
99569632Seric	CONFIG: Require OSTYPE macro (the defaults really don't apply to
99669632Seric		any real systems any more) and tweak the DOMAIN macro
99769632Seric		so that it is less likely that users will accidently use
99869632Seric		the Berkeley defaults.  Also, create some generic files
99969632Seric		that really can be used in the real world.
100069632Seric	CONFIG: Add new configuration macros to set character sets for
100169632Seric		messages _arriving from_ various mailers: LOCAL_MAILER_CHARSET,
100269632Seric		SMTP_MAILER_CHARSET, and UUCP_MAILER_CHARSET.
100369632Seric	CONFIG: Change UUCP_MAX_SIZE to UUCP_MAILER_MAX for consistency.
100469632Seric		The old name will still be accepted for a while at least.
100569632Seric	CONFIG: Implement DECNET_RELAY as spec for host to which DECNET
100669632Seric		mail (.DECNET pseudo-domain or node::user) will be sent.
100769632Seric		As with all relays, it can be ``mailer:hostname''.  Suggested
100869632Seric		by Scott Hutton.
100969632Seric	CONFIG: Add MAILER(mail11) to get DECnet support.  Code contributed
101069632Seric		by Barb Dijker of Labyrinth Computer Services.
101169664Seric	CONFIG: change confCHECK_ALIASES to default to False -- it has poor
101269664Seric		performance for large alias files, and this confused many
101369664Seric		people.
101469857Seric	CONFIG: Add confCF_VERSION to append local information to the
101569857Seric		configuration version number displayed during SMTP startup.
101669857Seric	CONFIG: fix some.newsgroup.usenet@local.host syntax (previously it
101769857Seric		would only work when locally addressed.  Fix from
101869857Seric		Edvard Tuinder of Cistron Internet Services.
101969632Seric	NEW FILES:
102069632Seric		cf/cf/cs-hpux10.mc
102169632Seric		cf/cf/cs-solaris2.mc
102269632Seric		cf/cf/generic-hpux10.mc
102369632Seric		cf/cf/generic-hpux9.mc
102469632Seric		cf/cf/generic-osf1.mc
102569632Seric		cf/cf/generic-solaris2.mc
102669632Seric		cf/cf/generic-sunos4.1.mc
102769632Seric		cf/cf/generic-ultrix4.mc
102869632Seric		cf/cf/huginn.cs.mc
102969632Seric		cf/domain/berkeley-only.m4
103069632Seric		cf/domain/generic.m4
103169632Seric		cf/feature/bestmx_is_local.m4
103269632Seric		cf/feature/local_procmail.m4
103369632Seric		cf/feature/smrsh.m4
103469632Seric		cf/feature/stickydomain.m4
103569664Seric		cf/mailer/mail11.m4
103669632Seric		cf/mailer/procmail.m4
103769632Seric		cf/ostype/amdahl-uts.m4
103869632Seric		cf/ostype/hpux10.m4
103969913Seric		cf/ostype/isc4.1.m4
104069632Seric		cf/ostype/ptx2.m4
104169632Seric		cf/ostype/unknown.m4
104269632Seric		contrib/bsdi.mc
104369632Seric		contrib/mailprio
104469632Seric		contrib/rmail.oldsys.patch
104569632Seric		smrsh/README
104669632Seric		smrsh/smrsh.8
104769632Seric		smrsh/smrsh.c
104869632Seric		src/Makefiles/Makefile.CSOS
104969664Seric		src/Makefiles/Makefile.EWS-UX_V
105069913Seric		src/Makefiles/Makefile.HP-UX.10
105169632Seric		src/Makefiles/Makefile.IRIX.5.x
105269632Seric		src/Makefiles/Makefile.IRIX64
105369632Seric		src/Makefiles/Makefile.ISC
1054*69967Seric		src/Makefiles/Makefile.KSR
105569664Seric		src/Makefiles/Makefile.NEWS-OS.4.x
105669664Seric		src/Makefiles/Makefile.NEWS-OS.6.x
105769947Seric		src/Makefiles/Makefile.NEXTSTEP
105869632Seric		src/Makefiles/Makefile.NonStop-UX
105969632Seric		src/Makefiles/Makefile.Paragon
106069632Seric		src/Makefiles/Makefile.SunOS.5.3
106169632Seric		src/Makefiles/Makefile.SunOS.5.4
106269791Seric		src/Makefiles/Makefile.SunOS.5.5
106369857Seric		src/Makefiles/Makefile.UNIX_SV.4.x.i386
106469632Seric		src/Makefiles/Makefile.uts.systemV
106569632Seric		src/mime.c
106669664Seric		test/t_seteuid.c
106769632Seric	RENAMED FILES:
106869632Seric		cf/cf/alpha.mc =>		cf/cf/s2k-osf1.mc
106969632Seric		cf/cf/chez.mc =>		cf/cf/chez.cs.mc
107069632Seric		cf/cf/hpux-cs-exposed.mc =>	cf/cf/cs-hpux9.mc
107169632Seric		cf/cf/osf1-cs-exposed.mc =>	cf/cf/cs-osf1.mc
107269632Seric		cf/cf/s2k.mc =>			cf/cf/s2k-ultrix4.mc
107369632Seric		cf/cf/sunos4.1-cs-exposed.mc =>	cf/cf/cs-sunos4.1.mc
107469632Seric		cf/cf/ultrix4.1-cs-exposed.mc => cf/cf/cs-ultrix4.mc
107569632Seric		cf/cf/vangogh.mc =>		cf/cf/vangogh.cs.mc
107669632Seric		cf/domain/Berkeley.m4 =>	cf/domain/Berkeley.EDU.m4
107769632Seric		cf/domain/cs-exposed.m4 =>	cf/domain/CS.Berkeley.EDU.m4
107869632Seric		cf/domain/eecs-hidden.m4 =>	cf/domain/EECS.Berkeley.EDU.m4
107969632Seric		cf/domain/s2k.m4 =>		cf/domain/S2K.Berkeley.EDU.m4
108069632Seric		cf/ostype/hpux.m4 =>		cf/ostype/hpux9.m4
108169632Seric		cf/ostype/ultrix4.1.m4 =>	cf/ostype/ultrix4.m4
108269632Seric		src/Makefile.* =>		src/Makefiles/Makefile.*
108369867Seric		src/Makefile.BSDI =>		src/Makefiles/Makefile.BSD-OS
108469947Seric		src/Makefile.DGUX =>		src/Makefiles/Makefile.dgux
108569678Seric		src/Makefile.SunOS.4.0.3 =>	src/Makefiles/Makefile.SunOS.4.0
108669632Seric	OBSOLETED FILES:
108769632Seric		cf/cf/cogsci.mc
108869632Seric		cf/cf/cs-exposed.mc
108969632Seric		cf/cf/cs-hidden.mc
109069632Seric		cf/cf/hpux-cs-hidden.mc
109169632Seric		cf/cf/knecht.mc
109269632Seric		cf/cf/osf1-cs-hidden.mc
109369632Seric		cf/cf/sunos3.5-cs-exposed.mc
109469632Seric		cf/cf/sunos3.5-cs-hidden.mc
109569632Seric		cf/cf/sunos4.1-cs-hidden.mc
109669632Seric		cf/cf/ultrix4.1-cs-hidden.mc
109769632Seric		cf/domain/cs-hidden.m4
109869632Seric		contrib/rcpt-streaming
109969632Seric		src/Makefiles/Makefile.SunOS.5.x
110069632Seric
110168613Seric8.6.12/8.6.12	95/03/28
110268613Seric	Fix to IDENT code (it was getting the size of the reply buffer
110368613Seric		too small, so nothing was ever accepted).  Fix from several
110468613Seric		people, including Allan Johannesen, Shane Castle of the
110568613Seric		Boulder County Information Services, and Jeff Smith of
110668613Seric		Warwick University (all arrived within a few hours of
110768613Seric		each other!).
110868613Seric	Fix a problem that could cause large jobs to run out of
110968613Seric		file descriptors on systems that use vfork() rather
111068613Seric		than fork().
111168613Seric
111268503Seric8.6.11/8.6.11	95/03/08
111368503Seric	The ``possible attack'' message would be logged more often
111468503Seric		than necessary if you are using Pine as a user agent.
111568503Seric	The wrong host would be reported in the ``possible attack''
111668503Seric		message when attempted from IDENT.
111768503Seric	In some cases the syslog buffer could be overflowed when
111868503Seric		reporting the ``possible attack'' message.  This can
111968503Seric		cause denial of service attacks.  Truncate the message
112068503Seric		to 80 characters to prevent this problem.
112168503Seric	When reading the IDENT response a loop is needed around the
112268503Seric		read from the network to ensure that you don't get
112368503Seric		partial lines.
112468503Seric	Password entries without any shell listed (that is, a null
112568503Seric		shell) wouldn't match as "ok".  Problem noted by
112668503Seric		Rob McMahon.
112768503Seric	When running BIND 4.9.x a problem could occur because the
112868503Seric		_res.options field is initialized differently than it
112968503Seric		was historically -- this requires that sendmail call
113068503Seric		res_init before it tweaks any bits.
113168503Seric	Fix an incompatibility in openxscript() between the file open mode
113268503Seric		and the stdio mode passed to fdopen.  This caused UnixWare
113368503Seric		2.0 to have conniptions.  Fix from Martin Sohnius of
113468503Seric		Novell Labs Europe.
113568503Seric	Fix problem with static linking of local getopt routine when
113668503Seric		using GNU's ld command.  Fix from John Kennedy of
113768503Seric		Cal State Chico.
113868503Seric	It was possible to turn off privacy flags.  Problem noted by
113968503Seric		*Hobbit*.
114068503Seric	Be more paranoid about writing files.  Suggestions by *Hobbit*
114168503Seric		and Liudvikas Bukys.
114268503Seric	MAKEMAP: fixes for 64 bit machines (DEC Alphas in particular)
114368503Seric		from Spider Boardman.
114468503Seric	CONFIG: No changes (version number only, to keep it in sync
114568503Seric		with the binaries).
114668503Seric
114768280Seric8.6.10/8.6.10	95/02/10
114868274Seric	SECURITY: Diagnose bogus values to some command line flags that
114968274Seric		could allow trash to get into headers and qf files.
115068274Seric	Validate the name of the user returned by the IDENT protocol.
115168274Seric		Some systems that really dislike IDENT send intentionally
115268274Seric		bogus information.  Problem pointed out by Michael Bushnell
115368274Seric		of the Free Software Foundation.  Has some security
115468274Seric		implications.
115568274Seric	Fix a problem causing error messages about DNS problems when
115668274Seric		the host name contained a percent sign to act oddly
115768274Seric		because it was passed as a printf-style format string.
115868274Seric		In some cases this could cause core dumps.
115968274Seric	Avoid possible buffer overrun in returntosender() if error
116068274Seric		message is quite ling.  From Fletcher Mattox of the
116168274Seric		University of Texas.
116268274Seric	Fix a problem that would silently drop "too many hops" error
116368274Seric		messages if and only if you were sending to an alias.
116468274Seric		From Jon Giltner of the University of Colorado and
116568274Seric		Dan Harton of Oak Ridge National Laboratory.
116668274Seric	Fix a bug that caused core dumps on some systems if -d11.2 was
116768274Seric		set and e->e_message was null.  Fix from Bruce Nagel of
116868274Seric		Data General.
116968274Seric	Fix problem that can still cause df files to be left around
117068274Seric		after "hop count exceeded" messages.  Fix from Andrew
117168274Seric		Chang and Shau-Ping Lo of SunSoft.
117268274Seric	Fix a problem that can cause buffer overflows on very long
117368274Seric		user names (as might occur if you piped to a program
117468274Seric		with a lot of arguments).
117568274Seric	Avoid returning an error and re-queueing if the host signature
117668274Seric		is null; this can occur on addresses like ``user@.''.
117768274Seric		Problem noted by Wesley Craig and the University of
117868274Seric		Michigan.
117968274Seric	Avoid possible calls to malloc(0) if MCI caching is turned
118068274Seric		off.  Bug fix from Pierre David of the Laboratoire
118168274Seric		Parallelisme, Reseaux, Systemes et Modelisation (PRiSM),
118268274Seric		Universite de Versailles - St Quentin, and Jacky
118368274Seric		Thibault.
118468274Seric	Make a local copy of the line being sent via senttolist() -- in
118568274Seric		some cases, buffers could get trashed by map lookups
118668274Seric		causing it to do unexpected things.  This also simplifies
118768274Seric		some of the map code.
118868503Seric	CONFIG: No changes (version number only, to keep it in sync
118968503Seric		with the binaries).
119068274Seric
119166956Seric8.6.9/8.6.9	94/04/19
119266920Seric	Do all mail delivery completely disconnected from any terminal.
119366920Seric		This provides consistency with daemon delivery and
119466920Seric		may have some security implications.
119566920Seric	Make sure that malloc doesn't get called with zero size,
119666920Seric		since that fails on some systems.  Reported by Ed
119766920Seric		Hill of the University of Iowa.
119866920Seric	Fix multi-line values for $e (SMTP greeting message).  Reported
119966920Seric		by Mike O'Connor of Ford Motor Company.
120066920Seric	Avoid syserr if no NIS domain name is defined, but the map it
120166920Seric		is trying to open is optional.  From Win Bent of USC.
120266920Seric	Changes for picky compilers from Ed Gould of Digital Equipment.
120366920Seric	Hesiod support for UDB from Todd Miller of the University of
120466920Seric		Colorado.  Use "hesiod" as the service name in the U
120566920Seric		option.
120666920Seric	Fix a problem that failed to set the "authentic" host name (that
120766920Seric		is, the one derived from the socket info) if you called
120866920Seric		sendmail -bs from inetd.  Based on code contributed by
120966920Seric		Todd Miller (this problem was also reported by Guy Helmer
121066920Seric		of Dakota State University).  This also fixes a related
121166996Seric		problem reported by Liudvikas Bukys of the University of
121266996Seric		Rochester.
121366920Seric	Parameterize "nroff -h" in all the Makefiles so people with
121466920Seric		variant versions can use them easily.  Suggested by
121566920Seric		Peter Collinson of Hillside Systems.
121666920Seric	SMTP "MAIL" commands with multiple ESMTP parameters required two
121766920Seric		spaces between parameters instead of one.  Reported by
121866920Seric		Valdis Kletnieks of Virginia Tech.
121966920Seric	Reduce the number of system calls during message collection by
122066920Seric		using global timeouts around the collect() loop.  This
122166920Seric		code was contributed by Eric Wassenaar.
122266920Seric	If the initial hostname name gathering results in a name
122366920Seric		without a dot (usually caused by NIS misconfiguration)
122466920Seric		and BIND is compiled in, directly access DNS to get
122566920Seric		the canonical name.  This should make life easier for
122666920Seric		Solaris systems.  If it still can't be resolved, and
122766920Seric		if the name server is listed as "required", try again
122866920Seric		in 30 seconds.  If that also fails, exit immediately to
122966920Seric		avoid bogus "config error: mail loops back to myself"
123066920Seric		messages.
123166920Seric	Improve the "MAIL DELETED BECAUSE OF LACK OF DISK SPACE" error
123266920Seric		message to explain how much space was available and
123366920Seric		sound a bit less threatening.  Suggested by Stan Janet
123466920Seric		of the National Institute of Standards and Technology.
123566920Seric	If mail is delivered to an alias that has an owner, deliver any
123666920Seric		requested return-receipt immediately, and strip the
123766920Seric		Return-Receipt-To: header from the subsequent message.
123866920Seric		This prevents a certain class of denial of service
123966920Seric		attack, arguably gives more reasonable semantics, and
124066920Seric		moves things more towards what will probably become a
124166920Seric		network standard.  Suggested by Christopher Davis of
124266920Seric		Kapor Enterprises.
124366920Seric	Add a "noreceipts" privacy flag to turn off all return receipts
124466920Seric		without recompiling.
124566920Seric	Avoid printing ESMTP parameters as part of the error message
124666920Seric		if there are errors during parsing.  This change is
124766920Seric		purely cosmetic.
124866920Seric	Avoid sending out error messages during the collect phase of
124966920Seric		SMTP; there is an MVS mailer from UCLA that gets
125066920Seric		confused by this.  Of course, I think it's their bug....
125166920Seric	Check for the $j macro getting undefined, losing a dot, or getting
125266920Seric		lost from $=w in the daemon before accepting a connection;
125366920Seric		if it is, it dumps state, prints a LOG_ALERT message,
125466920Seric		and drops core for debugging.  This is an attempt to
125566920Seric		track down a bug that I thought was long since gone.
125666920Seric		If you see this, please forward the log fragment to
125766920Seric		sendmail@CS.Berkeley.EDU.
125866920Seric	Change OLD_NEWDB from a #ifdef to a #if so it can be turned off
125966920Seric		with -DOLD_NEWDB=0 on the command line.  From Christophe
126066920Seric		Wolfhugel.
126166920Seric	Instead of trying to truncate the listen queue for the server
126266920Seric		SMTP port when the load average is too high, just close
126366920Seric		the port completely and reopen it later as needed.
126466920Seric		This ensures that the other end gets a quick "connection
126566920Seric		refused" response, and that the connection can be
126666920Seric		recovered later.  In particular, some socket emulations
126766920Seric		seem to get confused if you tweak the listen queue
126866920Seric		size around and can never start listening to connections
126966920Seric		again.  The down side is that someone could start up
127066920Seric		another daemon process in the interim, so you could
127166920Seric		have multiple daemons all not listening to connections;
127266920Seric		this could in turn cause the sendmail.pid file to be
127366920Seric		incorrect.  A better approach might be to accept the
127466920Seric		connection and give a 421 code, but that could break
127566920Seric		other mailers in mysterious ways and have paging behaviour
127666920Seric		implications.
127766920Seric	Fix a glitch in TCP-level debugging that caused flag 16.101 to
127866920Seric		set debugging on the wrong socket.  From Eric Wassenaar.
127966920Seric	When creating a df* temporary file, be sure you truncate any
128066920Seric		existing data in the file -- otherwise system crashes
128166920Seric		and the like could result in extra data being sent.
128266920Seric	DOC: Replace the CHANGES-R5-R8 readme file with a paper in the
128366920Seric		doc directory.  This includes some additional
128466920Seric		information.
128566920Seric	CONFIG: change UUCP rules to never add $U! or $k! on the front
128666920Seric		of recipient envelope addresses.  This should have been
128766920Seric		handled by the $&h trick, but broke if people were
128866920Seric		mixing domainized and UUCP addresses.  They should
128966920Seric		probably have converted all the way over to uucp-uudom
129066920Seric		instead of uucp-{new,old}, but the failure mode was to
129166920Seric		loop the mail, which was bad news.
129266920Seric	Portability fixes:
129366920Seric		Newer BSDI systems (several people).
129466920Seric		Older BSDI systems from Christophe Wolfhugel.
129566920Seric		Intergraph CLIX, from Paul Southworth of CICNet.
129666920Seric		UnixWare, from Evan Champion.
129766920Seric		NetBSD from Adam Glass.
129866920Seric		Solaris from Quentin Campbell of the University of
129966920Seric			Newcastle upon Tyne.
130066920Seric		IRIX from Dean Cookson and Bill Driscoll of Mitre
130166920Seric			Corporation.
130269632Seric		NCR 3000 from Kevin Darcy of Chrysler Financial Corporation.
130366920Seric		SunOS (it has setsid() and setvbuf() calls) from
130466920Seric			Jonathan Kamens of OpenVision Technologies.
130566920Seric		HP-UX from Tor Lillqvist.
130666920Seric	New Files:
130766920Seric		src/Makefile.CLIX
130866920Seric		src/Makefile.NCR3000
130966920Seric		doc/changes/Makefile
131066920Seric		doc/changes/changes.me
131166920Seric		doc/changes/changes.ps
131266920Seric
131366432Seric8.6.8/8.6.6	94/03/21
131466432Seric	SECURITY: it was possible to read any file as root using the
131566432Seric		E (error message) option.  Reported by Richard Jones;
131666432Seric		fixed by Michael Corrigan and Christophe Wolfhugel.
131766432Seric
131866356Seric8.6.7/8.6.6	94/03/14
131966356Seric	SECURITY: it was possible to get root access by using wierd
132066356Seric		values to the -d flag.  Thanks to Alain Durand of
132166356Seric		INRIA for forwarding me the notice from the bugtraq
132266356Seric		list.
132366356Seric
132466352Seric8.6.6/8.6.6	94/03/13
132566352Seric	SECURITY: the ability to give files away on System V-based
132666352Seric		systems proved dangerous -- don't run as the owner
132766352Seric		of a :include: file on a system that allows giveaways.
132866352Seric		Unfortunately, this also applies to determining a
132966352Seric		valid shell.
133066352Seric	IMPORTANT: Previous versions weren't expiring old connections
133166352Seric		in the connection cache for a long time under some
133266352Seric		circumstances.  This could result in resource exhaustion,
133366352Seric		both at your end and at the other end.  This checks the
133466352Seric		connections for timeouts much more frequently.  From
133566352Seric		Doug Anderson of NCSC.
133666352Seric	Fix a glitch that snuck in that caused programs to be run as
133766352Seric		the sender instead of the recipient if the mail was
133866352Seric		from a local user to another local user.  From
133966352Seric		Motonori Nakamura of Kyoto University.
134066352Seric	Fix "wildcard" on /etc/shell matching -- instead of looking
134166352Seric		for "*", look for "/SENDMAIL/ANY/SHELL/".  From
134266352Seric		Bryan Costales of ICSI.
134366352Seric	Change the method used to declare the "statfs" availability;
134466352Seric		instead of HASSTATFS and/or HASUSTAT with a ton of
134566352Seric		tweaking in conf.c, there is a single #define called
134666352Seric		SFS_TYPE which takes on one of six values (SFS_NONE
134766352Seric		for no statfs availability, SFS_USTAT for the ustat(2)
134866352Seric		syscall, SFS_4ARGS for a four argument statfs(2) call,
134966352Seric		and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument
135066352Seric		statfs(2) call with the declarations in <sys/vfs.h>,
135166352Seric		<sys/mount.h>, or <sys/statfs.h> respectively).
135266352Seric	Fix glitch in NetInfo support that could return garbage if
135366352Seric		there was no "/locations/sendmail" property.  From
135466352Seric		David Meyer of the University of Virginia.
135566352Seric	Change HASFLOCK from defined/not-defined to a 0/1 definition
135666352Seric		to allow Linux to turn it off even though it is a
135766352Seric		BSD-like system.
135866352Seric	Allow setting of "ident" timeout to zero to turn off the ident
135966352Seric		protocol entirely.
136066352Seric	Make 7-bit stripping local to a connection (instead of to a
136166352Seric		mailer); this allows you to specify that SMTP is a
136266352Seric		7-bit channel, but revert to 8-bit should it advertise
136366352Seric		that it supports 8BITMIME.  You still have to specify
136466352Seric		mailer flag 7 to get this stripping at all.
136566352Seric	Improve makesendmail script so it handles more cases automatically.
136666352Seric	Tighten up restrictions on taking ownership of :include: files
136766352Seric		to avoid problems on systems that allow you to give away
136866352Seric		files.
136966352Seric	Fix a problem that made it impossible to rebuild the alias
137066352Seric		file if it was on a read-only file system.  From
137166352Seric		Harry Edmon of the University of Washington.
137266352Seric	Improve MX randomization function.  From John Gardiner Myers
137366352Seric		of CMU.
137466352Seric	Fix a minor glitch causing a bogus message to be printed (used
137566352Seric		%s instead of %d in a printf string for the line number)
137666352Seric		when a bad queue file was read.  From Harry Edmon.
137766352Seric	Allow $s to remain NULL on locally generated mail.  I'm not
137866352Seric		sure this is necessary, but a lot of people have complained
137966352Seric		about it, and there is a legitimate question as to whether
138066352Seric		"localhost" is legal as an 822-style domain.
138166352Seric	Fix a problem with very short line lengths (mailer L= flag) in
138266352Seric		headers.  This causes a leading space to be added onto
138366352Seric		continuation lines (including in the body!), and also
138466352Seric		tries to wrap headers containing addresses (From:, To:,
138566352Seric		etc) intelligently at the shorter line lengths.  Problem
138666352Seric		Reported by Lars-Johan Liman of SUNET Operations Center.
138766352Seric	Log the real user name when logging syserrs, since these can have
138866352Seric		security implications.  Suggested by several people.
138966352Seric	Fix address logging of cached connections -- it used to always
139066352Seric		log the numeric address as zero.  This is a somewhat
139166352Seric		bogus implementation in that it does an extra system
139266352Seric		call, but it should be an inexpensive one.  Fix from
139366352Seric		Motonori Nakamura.
139466352Seric	Tighten up handling of short syslog buffers even more -- there
139566352Seric		were cases where the outgoing relay= name was too long
139666352Seric		to share a line with delay= and mailer= logging.
139766352Seric	Limit the overhead on split envelopes to one open file descriptor
139866352Seric		per envelope -- previously the overhead was three
139966352Seric		descriptors.  This was in response to a problem reported
140066352Seric		by P{r (Pell) Emanuelsson.
140166352Seric	Fixes to better handle the case of unexpected connection closes;
140266352Seric		this redirects the output to the transcript so the info
140366352Seric		is not lost.  From Eric Wassenaar.
140466352Seric	Fix potential string overrun if you macro evaluate a string that
140566352Seric		has a naked $ at the end.  Problem noted by James Matheson
140666352Seric		<jmrm@eng.cam.ac.uk>.
140766352Seric	Make default error number on $#error messages 553 (``Requested
140866352Seric		action not taken: mailbox name not allowed'') instead of
140966352Seric		501 (``Syntax error in parameters or arguments'') to
141066352Seric		avoid bogus "protocol error" messages.
141166352Seric	Strip off any existing trailing dot on names during $[ ... $]
141266352Seric		lookup.  This prevents it from ending up with two dots
141366352Seric		on the end of dot terminated names.  From Wesley Craig
141466352Seric		of the University of Michigan and Bryan Costales of ICSI.
141566352Seric	Clean up file class reading so that the debugging information is
141666352Seric		more informative.  It hadn't been using setclass, so you
141766352Seric		didn't see the class items being added.
141866352Seric	Avoid core dump if you are running a version of sendmail where
141966352Seric		NIS is compiled in, and you specify an NIS map, but
142066352Seric		NIS is not running.  Fix from John Oleynick of
142166352Seric		Rutgers.
142266352Seric	Diagnose bizarre case where res_search returns a failure value,
142366352Seric		but sets h_errno to a success value.
142466352Seric	Make sure that "too many hops" messages are considered important
142566352Seric		enough to send an error to the Postmaster (that is, the
142666352Seric		address specified in the P option).  This fix should
142766352Seric		help problems that cause the df file to be left around
142866352Seric		sometimes -- unfortunately, I can't seem to reproduce
142966352Seric		the problem myself.
143066352Seric	Avoid core dump (null pointer reference) on EXPN command; this
143166352Seric		only occurred if your log level was set to 10 or higher
143266352Seric		and the target account was an alias or had a .forward file.
143366352Seric		Problem noted by Janne Himanka.
143466352Seric	Avoid "denial of service" attacks by someone who is flooding your
143566352Seric		SMTP port with bad commands by shutting the connection
143666352Seric		after 25 bad commands are issued.  From Kyle Jones of
143766352Seric		UUNET.
143866352Seric	Fix core dump on error messages with very long "to" buffers;
143966352Seric		fmtmsg overflows the message buffer.  Fixed by trimming
144066352Seric		the to address to 203 characters.  Problem reported by
144166352Seric		John Oleynick.
144266352Seric	Fix configuration for HASFLOCK -- there were some spots where
144366352Seric		a #ifndef was incorrectly #ifdef.  Pointed out by
144466352Seric		George Baltz of the University of Maryland.
144566352Seric	Fix a typo in savemail() that could cause the error message To:
144666352Seric		lists to be incorrect in some places.  From Motonori
144766352Seric		Nakamura.
144866352Seric	Fix a glitch that can cause duplicate error messages on split
144966352Seric		envelopes where an address on one of the lists has a
145066352Seric		name server failure.  Fix from Voradesh Yenbut of the
145166352Seric		University of Washington.
145266352Seric	Fix possible bogus pointer reference on ESMTP parameters that
145366352Seric		don't have an ``=value'' part.
145466352Seric	CNAME loops caused an error message to be generated, but also
145566352Seric		re-queued the message.  Changed to just re-queue the
145666352Seric		message (it's really hard to just bounce it because
145766352Seric		of the wierd way the name server works in the presence
145866352Seric		of CNAME loops).  Problem noted by James M.R.Matheson
145966352Seric		of Cambridge University.
146066352Seric	Avoid giving ``warning: foo owned process doing -bs'' messages
146166352Seric		if they use ``MAIL FROM:<foo>'' where foo is their true
146266352Seric		user name.  Suggested by Andreas Stolcke of ICSI.
146366352Seric	Change the NAMED_BIND compile flag to be a 0/1 flag so you can
146466352Seric		override it easily in the Makefile -- that is, you can
146566352Seric		turn it off using -DNAMED_BIND=0.
146666352Seric	If a gethostbyname(...) of an address with a trailing dot fails,
146766352Seric		try it without the trailing dot.  This is because if
146866352Seric		you have a version of gethostbyname() that falls back
146966352Seric		to NIS or the /etc/hosts file it will fail to find
147066352Seric		perfectly reasonable names that just don't happen to
147166352Seric		be dot terminated in the hosts file.  You don't want to
147266352Seric		strip the dot first though because we're trying to ensure
147366352Seric		that country names that match one of your subdomains get
147466352Seric		a chance.
147566352Seric	PRALIASES: fix bogus output on non-null-terminated strings.
147666352Seric		From Bill Gianopoulos of Raytheon.
147766352Seric	CONFIG: Avoid rewriting anything that matches $w to be $j.
147866352Seric		This was in code intended to only catch the self-literal
147966352Seric		address (that is, [1.2.3.4], where 1.2.3.4 is your
148066352Seric		IP address), but the code was broken.  However, it will
148166352Seric		still do this if $M is defined; this is necessary to
148266352Seric		get client configurations to work (sigh).  Note that this
148366352Seric		means that $M overrides :mailname entries in the user
148466352Seric		database!  Problem noted by Paul Southworth.
148566352Seric	CONFIG: Fix definition of Solaris help file location.  From
148666352Seric		Steve Cliffe <steve@gorgon.cs.uow.edu.au>.
148766352Seric	CONFIG: Fix bug that broke news.group.USENET mappings.
148866352Seric	CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX,
148966352Seric		and USENET_MAILER_MAX to tweak the maximum message
149066352Seric		size for various mailers.
149166352Seric	CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0]
149266352Seric		instead of assuming that it is "inews" for consistency
149366352Seric		with other mailers.  From Michael Corrigan of UC San Diego.
149466352Seric	CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB,
149566352Seric		qualify the address in the SMTP envelope as user@{relay|hub}
149666352Seric		instead of user@$j.  From Bill Wisner of The Well.
149766352Seric	CONFIG: Fix route-addr syntax in nullrelay configuration set.
149866352Seric	CONFIG: Don't turn off case mapping of user names in the local
149966352Seric		mailer for IRIX.  This was different than most every other
150066352Seric		system.
150166352Seric	CONFIG: Avoid infinite loops on certainly list:; syntaxes in
150266352Seric		envelope.  Noted by Thierry Besancon
150366352Seric		<besancon@excalibur.ens.fr>.
150466352Seric	CONFIG: Don't include -z by default on uux line -- most systems
150566352Seric		don't want it set by default.  Pointed out by Philippe
150666352Seric		Michel of Thomson CSF.
150766352Seric	CONFIG: Fix some bugs with mailertables -- for example, if your
150866352Seric		host name was foo.bar.ray.com and you matched against
150966352Seric		".ray.com", the old implementation bound %1 to "bar"
151066352Seric		instead of "foo.bar".  Also, allow "." in the mailertable
151166352Seric		to match anything -- essentially, take over SMART_HOST.
151266352Seric		This also moves matching of explicit local host names
151366352Seric		before the mailertable so they don't have to be special
151466352Seric		cased in the mailertable data.  Reported by Bill
151566352Seric		Gianopoulos of Raytheon; the fix for the %1 binding
151666352Seric		problem was contributed by Nicholas Comanos of the
151766352Seric		University of Sydney.
151866352Seric	CONFIG: Don't include "root" in class $=L (users to deliver
151966352Seric		locally, even if a hub or relay exists) by default.
152066352Seric		This is because of the known bug where definition of
152166352Seric		both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore
152266352Seric		both and deliver into the local mailbox.
152366352Seric	CONFIG: Move up bitdomain and uudomain handling so that they
152466352Seric		are done before .UUCP class matching; uudomain was
152566352Seric		reported as ineffective before.  This also frees up
152666352Seric		diversion 8 for future use.  Problem reported by Kimmo
152766352Seric		Suominen.
152866352Seric	CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4])
152966352Seric		into host names.  As pointed out by Jonathan Kamens,
153066352Seric		these are often used because either the forward or reverse
153166352Seric		mapping is broken; this translation makes it broken again.
153266352Seric	DOC: Clarify $@ and $: in the Install & Op Guide.  From Kimmo
153366352Seric		Suominen.
153466352Seric	Portability fixes:
153566352Seric		Unicos from David L. Kensiski of Sterling Sofware.
153666352Seric		DomainOS from Don Lewis of Silicon Systems.
153766352Seric		GNU m4 1.0.3 from Karst Koymans of Utrecht University.
153866352Seric		Convex from Kimmo Suominen <kim@tac.nyc.ny.us>.
153966352Seric		NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>.
154066352Seric		BSD/386 from Tony Sanders of BSDI.
154166352Seric		Apollo from Eric Wassenaar.
154266352Seric		DGUX from Doug Anderson.
154366352Seric		Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent.
154466352Seric	NEW FILES:
154566352Seric		src/Makefile.DomainOS
154666352Seric		src/Makefile.PTX
154766352Seric		src/Makefile.SunOS.5.1
154866352Seric		src/Makefile.SunOS.5.2
154966352Seric		src/Makefile.SunOS.5.x
155066352Seric		src/mailq.1
155166352Seric		cf/ostype/domainos.m4
155266352Seric		doc/op/Makefile
155366352Seric		doc/intro/Makefile
155466352Seric		doc/usenix/Makefile
155566352Seric
155666348Seric8.6.5/8.6.5	94/01/13
155766348Seric	Security fix:  /.forward could be owned by anyone (the test
155866348Seric		to allow root to own any file was backwards).  From
155966348Seric		Bob Campbell at U.C. Berkeley.
156066348Seric	Security fix: group ids were not completely set when programs
156166348Seric		were invoked.  This caused programs to have group
156266348Seric		permissions they should not have had (usually group
156366348Seric		daemon instead of their own group).  In particular,
156466348Seric		Perl scripts would refuse to run.
156566348Seric	Security: check to make sure files that are written are not
156666348Seric		symbolic links (at least under some circumstances).
156766348Seric		Although this does not respond to a specific known
156866348Seric		attack, it's just a good idea.  Suggested by
156966348Seric		Christian Wettergren.
157066348Seric	Security fix: if a user had an NFS mounted home directory on
157166348Seric		a system with a restricted shell listed in their
157266348Seric		/etc/passwd entry, they could still execute any
157366348Seric		program by putting that in their .forward file.
157466348Seric		This fix prevents that by insisting that their shell
157566348Seric		appear in /etc/shells before allowing a .forward to
157666348Seric		execute a program or write a file.  You can disable
157766348Seric		this by putting "*" in /etc/shells.  It also won't
157866348Seric		permit world-writable :include: files to reference
157966348Seric		programs or files (there's no way to disable this).
158066348Seric		These behaviours are only one level deep -- for
158166348Seric		example, it is legal for a world-writable :include:
158266348Seric		file to reference an alias that writes a file, on
158366348Seric		the assumption that the alias file is well controlled.
158466348Seric	Security fix: root was not treated suspiciously enough when
158566348Seric		looking into subdirectories.  This would potentially
158666348Seric		allow a cracker to examine files that were publically
158766348Seric		readable but in a non-publically searchable directory.
158866348Seric	Fix a problem that causes an error on QUIT on a cached
158966348Seric		connection to create problems on the current job.
159066348Seric		These are typically unrelated, so errors occur in
159166348Seric		the wrong place.
159266348Seric	Reset CurrentLA in sendall() -- this makes sendmail queue
159366348Seric		runs more responsive to load average, and fixes a
159466348Seric		problem that ignored the load average in locally
159566348Seric		generated mail.  From Eric Wassenaar.
159666348Seric	Fix possible core dump on aliases with null LHS.  From
159766348Seric		John Orthoefer of BB&N.
159866348Seric	Revert to using flock() whenever possible -- there are just
159966348Seric		too many bugs in fcntl() locking, particularly over
160066348Seric		NFS, that cause sendmail to fail in perverse ways.
160166348Seric	Fix a bug that causes the connection cache to get confused
160266348Seric		when sending error messages.  This resulted in
160366348Seric		"unexpected close" messages.  It should fix itself
160466348Seric		on the following queue run.  Problem noted by
160566996Seric		Liudvikas Bukys of the University of Rochester.
160666348Seric	Include $k in $=k as documented in the Install & Op Guide.
160766348Seric		This seems odd, but it was documented....  From
160866348Seric		Michael Corrigan of UCSD.
160966348Seric	Fix problem that caused :include:s from alias files to be
161066348Seric		forced to be owned by root instead of daemon
161166348Seric		(actually DefUid).  From Tim Irvin.
161266348Seric	Diagnose unrecognized I option values -- from Mortin Forssen
161366348Seric		of the Chalmers University of Technology.
161466348Seric	Make "error" mailer work consistently when there is no error
161566348Seric		code associated with it -- previously it returned OK
161666348Seric		even though there was a real problem.  Now it assumes
161766348Seric		EX_UNAVAILABLE.
161866348Seric	Fix bug that caused the last header line of messages that had
161966348Seric		no body and which were terminated with EOF instead of
162066348Seric		"." to be discarded.  Problem noted by Liudvikas Bukys.
162166348Seric	Fix core dump on SMTP mail to programs that failed -- it tried
162266348Seric		to go to a "next MX host" when none existed, causing
162366348Seric		a core dump.  From der Mouse at McGill University.
162466348Seric	Change IDENTPROTO from a defined/not defined to a 0/1 switch;
162566348Seric		this makes it easier to turn it off (using
162666348Seric		-DIDENTPROTO=0 in the Makefile).  From der Mouse.
162766348Seric	Fix YP_MASTER_NAME store to use the unupdated result of
162866348Seric		gethostname() (instead of myhostname(), which tries
162966348Seric		to fully qualify the name) to be consistent with
163066348Seric		SunOS.  If your hostname is unqualified, this fixes
163166348Seric		transfers to slave servers.  Bug noted by Keith
163266348Seric		McMillan of Ameritech Services, Inc.
163366348Seric	Fix Ultrix problem: gethostbyname() can return a very large
163466348Seric		(> 500) h_length field, which causes the sockaddr
163566348Seric		to be trashed.  Use the size of the sockaddr instead.
163666348Seric		Fix from Bob Manson of Ohio State.
163766348Seric	Don't assume "-a." on host lookups if NAMED_BIND is not
163866348Seric		defined -- this confuses gethostbyname on hosts
163966348Seric		file lookups, which doesn't understand the trailing
164066348Seric		dot convention.
164166348Seric	Log SMTP server subprocesses that die with a signal instead
164266348Seric		of from a clean exit.
164366348Seric	If you don't have option "I" set, don't assume that a DNS
164466348Seric		"host unknown" message is authoritative -- it
164566348Seric		might still be found in /etc/hosts.
164666348Seric	Fix a problem that would cause Deferred: messages to be sent
164766348Seric		as the subject of an error message, even though the
164866348Seric		actual cause of a message was more severe than that.
164966348Seric		Problem noted by Chris Seabrook of OSSI.
165066348Seric	Fix race condition in DBM alias file locking.  From Kyle
165166348Seric		Jones of UUNET.
165266348Seric	Limit delivery syslog line length to avoid bugs in some
165366348Seric		versions of syslog(3).  This adds a new compile time
165466348Seric		variable SYSLOG_BUFSIZE.  From Jay Plett of Princeton
165566348Seric		University, which is in turn derived from IDA.
165666348Seric	Fix quotes inside of comments in addresses -- previously
165766348Seric		it insisted that they be balanced, but the 822 spec
165866348Seric		says that they should be ignored.
165966348Seric	Dump open file state to syslog upon receiving SIGUSR1 (for
166066348Seric		debugging).  This also evaluates ruleset 89, if set
166166348Seric		(with the null input), and logs the result.  This
166266348Seric		should be used sparingly, since the rewrite process
166366348Seric		is not reentrant.
166466348Seric	Change -qI, -qR, and -qS flags to be case-insensitive as
166566348Seric		documented in the Bat Book.
166666348Seric	If the mailer returned EX_IOERR or EX_OSERR, sendmail did not
166766348Seric		return an error message and did not requeue the message.
166866348Seric		Fix based on code from Roland Dirlewanger of
166966348Seric		Reseau Regional Aquarel, Bordeaux, France.
167066348Seric	Fix a problem that caused a seg fault if you got a 421 error
167166348Seric		code during some parts of connection initialization.
167266348Seric		I've only seen this when talking to buggy mailers on
167366348Seric		the other end, but it shouldn't give a seg fault in
167466348Seric		any case.  From Amir Plivatsky.
167566348Seric	Fix core dump caused by a ruleset call that returns null.
167666348Seric		Fix from Bryan Costales of ICSI.
167766348Seric	Full-Name: field was being ignored.  Fix from Motonori Nakamura
167866348Seric		of Kyoto University.
167966348Seric	Fix a possible problem with very long input lines in setproctitle.
168066348Seric		From P{r Emanuelsson.
168166348Seric	Avoid putting "This is a warning message" out on return receipts.
168266348Seric		Suggested by Douglas Anderson.
168366348Seric	Detect loops caused by recursive ruleset calls.  Suggested by
168466348Seric		Bryan Costales.
168566348Seric	Initialize non-alias maps during alias rebuilds -- they may be
168666348Seric		needed for parsing.  Problem noted by Douglas Anderson.
168766348Seric	Log sender address even if no message was collected in SMTP
168866348Seric		(e.g., if all RCPTs failed).  Suggested by Motonori
168966348Seric		Nakamura.
169066348Seric	Don't reflect the owner-list contents into the envelope sender
169166348Seric		address if the value contains ", :, /, or | (to avoid
169266348Seric		illegal addresses appearing there).
169366348Seric	Efficiency hack for toktype macro -- from Craig Partridge of
169466348Seric		BB&N.
169566348Seric	Clean up DNS error printing so that a host name is always
169666348Seric		included.
169766348Seric	Remember to set $i during queue runs.  Reported by Stephen
169866348Seric		Campbell of Dartmouth University.
169966348Seric	If ${HOSTALIASES} is set, use it during canonification so that
170066348Seric		headers are properly mapped.  Reported by Anne Bennett
170166348Seric		of Concordia University.
170266348Seric	Avoid printing misleading error message if SMTP mailer (not
170366348Seric		using [IPC]) should die on a core dump.
170466348Seric	Avoid incorrect diagnosis of "file 1 closed" when it is caused
170566348Seric		by the other end closing the connection.  From
170666348Seric		Dave Morrison of Oracle.
170766348Seric	Improve several of the error messages printed by "mailq"
170866348Seric		to include a host name or other useful information.
170966348Seric	Add NetInfo preliminary support for NeXT systems.  From Vince
171066348Seric		DeMarco.
171166348Seric	Fix a glitch that sometimes caused :include:s that pointed to
171266348Seric		NFS filesystems that were down to give an "aliasing/
171366348Seric		forwarding loop broken" message instead of queueing
171466348Seric		the message for retry.  Noted by William C Fenner of
171566348Seric		the NRL Connection Machine Facility.
171666348Seric	Fix a problem that could cause a core dump if the input sequence
171766348Seric		had (or somehow acquired) a \231 character.
171866348Seric	Make sure that route-addrs always have <angle brackets> around
171966348Seric		them in non-SMTP envelopes (SMTP envelopes already do
172066348Seric		this properly).
172166348Seric	Avoid wierd headers on unbalanced punctuation of the form:
172266348Seric		``Joe User <user)'' -- this caused reference to the
172366348Seric		null macro.  Fix from Rick McCarty of IO.COM.
172466348Seric	Fix a problem that caused an alias "user: user@local.host" to
172566348Seric		not have the QNOTREMOTE bit set; this caused configs
172666348Seric		to act as if FEATURE(notsticky) was defined even when
172766348Seric		it was not.  The effect of the problem was to make it
172866348Seric		very hard to to set up satellite sites that had a few
172966348Seric		local accounts, with everything else forwarded to a
173066348Seric		corporate hub.  Reported by Detlef Drewanz of the
173166348Seric		University of Rostock and Mark Frost of NCD.
173266348Seric	Change queuing to not call rulesets 3, {1 or 2}, 4 on header
173366348Seric		addresses.  This is more efficient (fewer name server
173466348Seric		calls) and fixes certain unusual configurations, such
173566348Seric		as those that have ruleset 4 do something that is
173666348Seric		non-idempotent unless a mailer-specific ruleset did
173766348Seric		something else.  Problem reported by Brian J. Coan
173866348Seric		of the Institute for Global Communications.
173966348Seric	Fix the "obsolete argument" routine in main to better understand
174066348Seric		new arguments.  For example, if you used ``sendmail
174166348Seric		-C config -v -q'' it would choke on the -q because
174266348Seric		the -C would stop looking for old-format arguments.
174366348Seric	Fix the code that was intended to allow two users to forward their
174466348Seric		mail to the same program and have them appear unique.
174566348Seric	Portability fixes for:
174666348Seric		SCO UNIX from Murray Kucherawy.
174766348Seric		SCO Open Server 3.2v4 from Philippe Brand.
174866348Seric		System V Release 4 from Rick Ellis and others.
174966348Seric		OSF/1 from Steve Campbell.
175066348Seric		DG/UX from Ben Mesander of the USGS and Bryan Curnutt
175166348Seric			of Stoner Associates.
175266348Seric		Motorola SysV88 from Kevin Johnson of Motorola.
175366348Seric		Solaris 2.3 from Casper H.S. Dik of the University
175466348Seric			of Amsterdam and John Caruso of University
175566348Seric			of Maryland.
175666348Seric		FreeBSD from Ollivier Robert.
175766348Seric		NetBSD from Adam Glass.
175866348Seric		TitanOS from Kate Hedstrom of Rutgers University.
175966348Seric		Irix from Bryan Curnutt.
176066348Seric		Dynix from Jim Davis of the University of Arizona.
176166348Seric		RISC/os.
176266348Seric		Linux from John Kennedy of California State University
176366348Seric			at Chico.
176466348Seric		Solaris 2.x from Tony Boner of the U.S. Air Force.
176566348Seric		NEXTSTEP 3.x from Vince DeMarco.
176666348Seric		HP-UX from various people.  NOTA BENE:  the location
176766348Seric			of the config file has moved to /usr/lib
176866348Seric			to match the HP-UX version of sendmail.
176966348Seric	CONFIG: Don't do any recipient rewriting on relay mailer;
177066348Seric		since this is intended only for internal use, the
177166348Seric		usual RFC 821/822/1123 rules can be relaxed.  The
177266348Seric		main point of this is to avoid munging (ugh) UUCP
177366348Seric		addresses when relaying internally.
177466348Seric	CONFIG: fix typo in mailer/uucp.m4 that mutilates list:;
177566348Seric		syntax addresses delivered via UUCP.  Solution
177666348Seric		provided by Peter Wemm.
177766348Seric	CONFIG: fix thumb-fumble in default UUCP relaying in ruleset
177866348Seric		zero; it caused double @ signs in addresses.  From
177966348Seric		Irving Reid of the University of Toronto.
178066348Seric	CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1
178166348Seric		from Markku Toijala of ICL Personal Systems Oy.
178266348Seric	CONFIG: Add trailing "." on pseudo-domains for consistency;
178366348Seric		this fixes a problem (noted by Al Whaley of Sunnyside)
178466348Seric		that made it hard to recognize your own pseudodomain
178566348Seric		names.
178666348Seric	CONFIG: catch "@host" syntax errors (i.e., null local-parts)
178766348Seric		rather than letting them get "local configuration
178866348Seric		error"s.  Problem noted by John Gardiner Myers.
178966348Seric	CONFIG: add uucp-uudom mailer variant, based on code posted
179066348Seric		by Spider Boardman <spider@Orb.Nashua.NH.US>; this
179166348Seric		has uucp-dom semantics but old UUCP syntax.  This
179266348Seric		also permits "uucp-old" as an alias for "uucp" and
179366348Seric		"uucp-new" as a synonym for "suucp" for consistency.
179466348Seric	CONFIG: add POP mailer support (from Kimmo Suominen
179566348Seric		<kim@grendel.lut.fi>).
179666348Seric	CONFIG: drop CSNET_RELAY support -- CSNET is long gone.
179766348Seric	CONFIG: fix bug caused with domain literal addresses (e.g.,
179866348Seric		``[128.32.131.12]'') when FEATURE(allmasquerade)
179966348Seric		was set; it would get an additional @masquerade.host
180066348Seric		added to the address.  Problem noted by Peter Wan
180166348Seric		of Georgia Tech.
180266348Seric	CONFIG: make sure that the local UUCP name is in $=w.  From
180366348Seric		Jim Murray of Stratus.
180466348Seric	CONFIG: changes to UUCP rewriting to simulate IDA-style "V"
180566348Seric		mailer flag.  Briefly, if you are sending to host
180666348Seric		"foo", then it rewrites "foo!...!baz" to "...!baz",
180766348Seric		"foo!baz" remains "foo!baz", and anything else has
180866348Seric		the local name prepended.
180966348Seric	CONFIG: portability fixes for HP-UX.
181066348Seric	DOC: several minor problems fixed in the Install & Op Guide.
181166348Seric	MAKEMAP: fix core dump problem on lines that are too long or
181266348Seric		which lack newline.  From Mark Delany.
181366348Seric	MAILSTATS: print sums of columns (total messages & kbytes
181466348Seric		in and out of the system).  From Tom Ferrin of UC
181566348Seric		San Francisco Computer Graphics Lab.
181666348Seric	SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES:
181766348Seric		On HP-UX, /etc/sendmail.cf has been moved to
181866348Seric			/usr/lib/sendmail.cf to match HP sendmail.
181966348Seric		Permissions have been tightened up on world-writable
182066348Seric			:include: files and accounts that have shells
182166348Seric			that are not listed in /etc/shells.  This may
182266348Seric			cause some .forward files that have worked
182366348Seric			before to start failing.
182466348Seric		SIGUSR1 dumps some state to the log.
182566348Seric	NEW FILES:
182666348Seric		src/Makefile.DGUX
182766348Seric		src/Makefile.Dynix
182866348Seric		src/Makefile.FreeBSD
182966348Seric		src/Makefile.Mach386
183066348Seric		src/Makefile.NetBSD
183166348Seric		src/Makefile.RISCos
183266348Seric		src/Makefile.SCO
183366348Seric		src/Makefile.SVR4
183466348Seric		src/Makefile.Titan
183566348Seric		cf/mailer/pop.m4
183666348Seric		cf/ostype/bsdi1.0.m4
183766348Seric		cf/ostype/dgux.m4
183866348Seric		cf/ostype/dynix3.2.m4
183966348Seric		cf/ostype/sco3.2.m4
184066348Seric		makemap/Makefile.dist
184166348Seric		praliases/Makefile.dist
184266348Seric
184366347Seric8.6.4/8.6.4	93/10/31
184466347Seric	Repair core-dump problem (write to read-only memory segment)
184566347Seric		if you fall back to the return-to-Postmaster case in
184666347Seric		savemail.  Problem reported by Richard Liu.
184766347Seric	Immediately diagnose bogus sender addresses in SMTP.  This
184866347Seric		makes quite certain that crackers can't use this
184966347Seric		class of attack.
185066347Seric	Reliability Fix:  check return value from fclose() and fsync()
185166347Seric		in a few critical places.
185266347Seric	Minor problem in initsys() that reversed a condition for
185366347Seric		redirecting the output channel on queue runs.  It's
185466347Seric		not clear this code even does anything.  From Eric
185566347Seric		Wassenaar of the Dutch National Institute for Nuclear
185666347Seric		and High-Energy Physics.
185766347Seric	Fix some problems that caused queue runs to do "too much work",
185866347Seric		such as double-reading the Errors-To: header.  From
185966347Seric		Eric Wassenaar.
186066347Seric	Error messages on writing the temporary file (including the
186166347Seric		data file) were getting suppressed in SMTP -- this
186266347Seric		fix causes them to be properly reported.  From Eric
186366347Seric		Wassenaar.
186466347Seric	Some changes to support AF_UNIX sockets -- this will only
186566347Seric		really become relevant in the next release, but some
186666347Seric		people need it for local patches.  From Michael
186766347Seric		Corrigan of UC San Diego.
186866347Seric	Use dynamically allocated memory (instead of static buffers)
186966347Seric		for macros defined in initsys() and settime(); since
187066347Seric		these can have different values depending on which
187166347Seric		envelope they are in.  From Eric Wassenaar.
187266347Seric	Improve logging to show ctladdr on to= logging; this tells you
187366347Seric		what uid/gid processes ran as.
187466347Seric	Fix a problem that caused error messages to be discarded if
187566347Seric		the sender address was unparseable for some reason;
187666347Seric		this was supposed to fall back to the "return to
187766347Seric		postmaster" case.
187866347Seric	Improve aliaswait backoff algorithm.
187966347Seric	Portability patches for Linux (8.6.3 required another header
188066347Seric		file) (from Karl London) and SCO UNIX.
188166347Seric	CONFIG: patch prog mailer to not strip host name off of envelope
188266347Seric		addresses (so that it matches local again).  From
188366347Seric		Christopher Davis.
188466347Seric	CONFIG: change uucp-dom mailer so that "<>" translates to $n;
188566347Seric		this prevents uux from seeing lines with null names like
188666347Seric		``From   Sat Oct 30 14:55:31 1993''.  From Motonori
188766347Seric		Nakamura of Kyoto University.
188866347Seric	CONFIG: handle <list:;> syntax correctly.  This isn't legal, but
188966347Seric		it shouldn't fail miserably.  From Motonori Nakamura.
189066347Seric
189166346Seric8.6.3/8.6.3	93/10/24
189266346Seric	IMPORTANT FIX: Fix several problems that caused open files to
189366346Seric		be "lost" during queue runs; this overflowed the open
189466346Seric		file table on large runs.  An assumption that fdopen
189566346Seric		always succeeds sometimes resulted in core dumps when
189666346Seric		this happens; sometimes the message is delivered twice,
189766346Seric		sometimes (probably) infinite times.  This problem in
189866346Seric		various form was reported by P{r (Pell) Emanuelsson and
189966346Seric		Robert Campbell of U.C. Berkeley.
190066346Seric	Special diagnosis of EMFILE error conditions -- it now prints
190166346Seric		the known open file descriptors so you can figure out
190266346Seric		what is consuming so much resources.
190366346Seric	Fix a couple of problems caused by early address parsing
190466346Seric		errors -- one caused it to return a "this is only a
190566346Seric		warning" when it really wasn't, and the other started
190666346Seric		parsing through a random pointer.  The first was
190766346Seric		noted by Eric Wassenaar.
190866346Seric	Fix an infinite loop problem caused by null components in the
190966346Seric		host signature.  Problem noted by Jan Sorensen.
191066346Seric	Be sure to reset the "current date" when sending an error
191166346Seric		message -- PostMasterCopy messages were being sent
191266346Seric		with an old Date: header.
191366346Seric	Fix a problem that caused duplicated mail when sendmail was
191466346Seric		(1) compiled without HASFLOCK, (2) you are sending to
191566346Seric		an alias that has an owner-* alias, (3) you execute
191666346Seric		sendmail with -t flag, (4) you run in -odb mode, and
191766346Seric		(5) the sender specifies both the alias name and
191866346Seric		another alias [i.e., the envelope is split], then
191966346Seric		duplicate messages are sent.  The problem description
192066346Seric		and one-line fix are from Motonori Nakamura of Kyoto
192166346Seric		University.
192266346Seric	Avoid a problem that causes error messages to be discarded
192366346Seric		in some cases -- this was the result of a "fix" to
192466346Seric		avoid duplicate error messages, but two are better
192566346Seric		than zero.  Reported by Tim Rylance.
192666346Seric	Fix a minor botch in checkfd012() -- fix from Dave Hill of
192766346Seric		Computervision R&D Ltd.
192866346Seric	Remove "X-Authentication-Warning: <user> set sender to <address>
192966346Seric		using -f" entirely -- it is far too eager to include
193066346Seric		this, and it is confusing folks.  I'll try to make it
193166346Seric		work "right" in 8.7.  Problem noted by Yoshitaka
193266346Seric		Tokugawa of dit Co., Ltd.
193366346Seric	Fix a race condition with the errno value in tick() and
193466346Seric		reapchild() -- this caused occasional misdiagnosis
193566346Seric		of problems.  Kyle Jones of UUNET helped this along.
193666346Seric	Repair rule loop-detection code.  From Michael Corrigan of
193766346Seric		U.C. San Diego.
193866346Seric	Fix a problem that caused sender domain addition (C mailer
193966346Seric		flag to be ignored if you use -odq or use -odb with
194066346Seric		a high load average.  Problem reported by Jim Murray
194166346Seric		of Stratus.
194266346Seric	Fix ident protocol on multi-homed machines.  It was not
194366346Seric		always using the correct interface.  Fix from J.R.
194466346Seric		Oldroyd of Opal.
194566346Seric	Previously, sendmail assumed that any SMTP greeting message
194666346Seric		that wasn't 2xx was a temporary failure -- it should
194766346Seric		only take 4xx as a temporary failure, and return a
194866346Seric		solid error message on anything else -- for example,
194966346Seric		to allow you to reject connections on a workstation
195066346Seric		that is MXed to a mail server.
195166346Seric	Portability enhancements for 386BSD/FreeBSD/NetBSD from
195266346Seric		Ollivier Robert.
195366346Seric	CONFIG: FEATURE(always_add_domain) didn't always add the domain;
195466346Seric		in particular, on local mail it modified the header sender
195566346Seric		but not the header recipient address(es).  Reported by
195666346Seric		Jeffrey Honig of Cornell University.  Also, strip
195766346Seric		any host from envelope recipient address(es), since
195866346Seric		local mailers don't understand host names -- this is
195966346Seric		to help mailertable entries.  From Christopher Davis.
196066346Seric	CONFIG: masquerading didn't apply to addresses that already
196166346Seric		had a domain.  This change replaces a local hostname
196266346Seric		by the masquerade name in the SMTP mailer (previously
196366346Seric		it only added the masquerade name if it didn't already
196466346Seric		have a domain name).  Several people complained about
196566346Seric		this.
196666346Seric
196766345Seric8.6.2/8.6.2	93/10/15
196866345Seric	Put a "successful delivery" message in the transcript for
196966345Seric		addresses that get return-receipts.
197066345Seric	Put a prominent "this is only a warning" message in warning
197166345Seric		messages -- some people don't read carefully enough
197266345Seric		and end up sending the message several times.
197366345Seric	Include reason for temporary failure in the "warning" return
197466345Seric		message.  Currently, it just says "cannot send for
197566345Seric		four hours".
197666345Seric	Fix the "Original message received" time generated for
197766345Seric		returntosender messages.  It was previously listed as
197866345Seric		the current time.  Bug reported by Eric Hagberg of
197966345Seric		Cornell University Medical College.
198066345Seric	If there is an error when writing the body of a message,
198166345Seric		don't send the trailing dot and wait for a response
198266345Seric		in sender SMTP, as this could cause the connection to
198366345Seric		hang up under some bizarre circumstances.  From Eric
198466345Seric		Wassenaar.
198566345Seric	Fix some server SMTP synchronization problems caused when
198666345Seric		connections fail during message collection.  From
198766345Seric		Eric Wassenaar.
198866345Seric	Fix a problem that can cause srvrsmtp to reject mail if the
198966345Seric		name server is down -- it accepts the RCPT but rejects
199066345Seric		the DATA command.  Problem reported by Jim Murray of
199166345Seric		Stratus.
199266345Seric	Fix a problem that can cause core dumps if the config file
199366345Seric		incorrectly resolves to a null hostname.  Reported by
199466345Seric		Allan Johannesen of WPI.
199566345Seric	Non-root use of -C flag, dangerous -f flags, and use of -oQ
199666345Seric		by non-root users were not put into
199766345Seric		X-Authentication-Warning:s as intended because the
199866345Seric		config file hadn't set the PrivacyFlags yet.  Fix
199966345Seric		from Sven-Ove Westberg of the University of Lulea.
200066345Seric	Under very odd circumstances, the alias file rebuild code
200166345Seric		could get confused as to whether a database was
200266345Seric		open or not.
200366345Seric	Check "vendor code" on the end of V lines -- this is
200466345Seric		intended to provide a hook for vendor-specific
200566345Seric		configuration syntax.  (This is a "new feature",
200666345Seric		but I've made an exception to my rule in a belief
200766345Seric		that this is a highly exceptional case.)
200866345Seric	Portability fixes for DG/UX (from Douglas Anderson of NCSC),
200966345Seric		SCO Unix (from Murray Kucherawy), A/UX, and OSF/1
201066345Seric		(from Jon Forrest of UC Berkeley)
201166345Seric	CONFIG: fix ``mailer:host'' form of UUCP relay naming.
201266345Seric
201366344Seric8.6.1/8.6	93/10/08
201466344Seric	Portability fixes for A/UX and Encore UMAX V.
201566344Seric	Fix error message handling -- if you had a name server down
201666344Seric		causing an error during parsing, that message was never
201766344Seric		propogated to the queue file.
201866344Seric
201966343Seric8.6/8.6		93/10/05
202066343Seric	Configuration cleanup: make it easier to undo IDENTPROTO in
202166343Seric		conf.h (other systems have the same bug).
202266343Seric	If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume
202366343Seric		getdtablesize() instead of sysconf(); a disturbingly
202466343Seric		large number of systems defined _SC_OPEN_MAX in the
202566343Seric		header files but don't have the syscall.
202666343Seric	Another patch to really truly ignore MX records in getcanonname
202766343Seric		if trymx == FALSE.
202866343Seric	Fix problem that caused the "250 IAA25499 Message accepted for
202966343Seric		delivery" message to be omitted if there was an error
203066343Seric		in the header of the message (e.g., a bad Errors-To:
203166343Seric		line).  Pointed out by Michael Corrigan of UCSD.
203266343Seric	Announce name of host we are chatting when we get errors; this
203366343Seric		is an IDA-ism suggested by Christophe Wolfhugel.
203466343Seric	Portability fixes for Alpha OSF/1 (from Anthony Baxter of the
203566343Seric		Australian Artificial Intelligence Institute), SCO Unix
203666343Seric		(from Murray Kucherawy of Hookup Communication Corp.),
203766343Seric		NeXT (from Vince DeMarco and myself), Linux (from
203866343Seric		Karl London <karl@borg.demon.co.uk>), BSDI (from
203966343Seric		Christophe Wolfhugel, and SVR4 on Dell (from Kimmo
204066343Seric		Suominen), AUX 3.0 on Macintosh, and ANSI C compilers.
204166343Seric	Some changes to get around gcc optimizer bugs.  From Takahiro
204266343Seric		Kanbe.
204366343Seric	Fix error recovery in queueup if another tf file of the same
204466343Seric		name already exists.  Problem stumbled over by Bill
204566343Seric		Wisner of The Well.
204666343Seric	Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes.
204766343Seric		Problem noted by Keith McMillan of Ameritech Services.
204866343Seric	Deal with group permissions properly when opening .forward and
204966343Seric		:include: files.  This relaxes the 8.1C restrictions
205066343Seric		slightly more.  This includes proper setting of groups
205166343Seric		when reading :include: files, allowing you to read some
205266343Seric		files that you should be able to read but have previously
205366343Seric		been denied unless you owned them or they had "other"
205466343Seric		read permission.
205566343Seric	Make certain that $j is in $=w (after the .cf is read) so that
205666343Seric		if the user is forced to override some silly system,
205766343Seric		MX suppression will still work.
205866343Seric	Fix a couple of efficiency problems where newstr was double-
205966343Seric		calling expensive routines.  In at least one case, it
206066343Seric		wasn't guaranteed that they would always return the
206166343Seric		same result.  Problem noted by Christophe Wolfhugel.
206266343Seric	Fix null pointer dereference in putoutmsg -- only on an error
206366343Seric		condition from a non-SMTP mailer.  From Motonori
206466343Seric		Nakamura.
206566343Seric	Macro expand "C" line class definitions before scanning so that
206666343Seric		"CX $Z" works.
206766343Seric	Fix problem that caused error message to be sent while still
206866343Seric		trying to send the original message if the connection
206966343Seric		is closed during a DATA command after getting an error
207066343Seric		on an RCPT command (pretty obscure).  Problem reported
207166343Seric		by John Myers of CMU.
207266343Seric	Fix reply to NOOP to be 250 instead of 200 -- this is a long
207366343Seric		term bug.
207466343Seric	Fix a nasty bug causing core dumps when returning the "warning:
207566343Seric		cannot deliver for N hours -- will keep trying" message;
207666343Seric		it only occurred if you had PostMasterCopy set and
207766343Seric		only on some architectures.  Although sendmail would
207866343Seric		keep trying, it would send error messages on each
207966343Seric		queue interval.  This is an important fix.
208066343Seric	Allow u and g options to take user and group names respectively.
208166343Seric	Don't do a chdir into the queue directory in -bt mode to make
208266343Seric		ruleset testing a bit easier.
208366343Seric	Don't allow users to turn off logging (using -oL) on the command
208466343Seric		line -- command line can only raise, not lower, logging
208566343Seric		level.
208666343Seric	Set $u to the original recipient on the SMTP transaction or on
208766343Seric		the command line.  This is only done if there is exactly
208866343Seric		one recipient.  Technically, this does not meet the
208966343Seric		specs, because it does not guarantee a domain on the
209066343Seric		address.
209166343Seric	Fix a problem that dumped error messages on bad addresses if
209266343Seric		you used the -t flag.  Problem noted by Josh Smith of
209366343Seric		Harvey Mudd College.
209466343Seric	Given an address such as ``<foo> <bar>'', auto-quote the first
209566343Seric		``<foo>'' part, giving ``"<foo>" <bar>''.  This is to
209666343Seric		avoid the problem of people who use angle brackets in
209766343Seric		their full name information.
209866343Seric	Fix a null pointer dereference if you set option "l", have
209966343Seric		an Errors-To: header in the message, and have Errors-To:
210066343Seric		defined in the config file H lines.  From J.R. Oldroyd.
210166343Seric	Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get
210266343Seric		wrong when compiling.  Suggested by Rick McCarty of TI.
210366343Seric	Fix a problem that could pass negative SIZE parameter if the
210466343Seric		df file got lost; this would cause servers to always
210566343Seric		give a temporary failure, making the problem even worse.
210666343Seric		Problem noted by Allan Johannesen of WPI.
210766343Seric	Add "ident" timeout (one of the "r" option selectors) for IDENT
210866343Seric		protocol timeouts (30s default).  Requested by Murray
210966343Seric		Kucherawy of HookUp Communication Corp. to handle bogus
211066343Seric		PC TCP/IP implementations.
211166343Seric	Change $w default definition to be just the first component of
211266343Seric		the domain name on config level 5.  The $j macro defaults
211366343Seric		to the FQDN; $m remains as before.  This lets well-behaved
211466343Seric		config files use any of the short, long, or subdomain
211566343Seric		names.
211666343Seric	Add makesendmail script in src to try to automate multi-architecture
211766343Seric		builds.  I know, this is sub-optimal, but it is still
211866343Seric		helpful.
211966343Seric	Fix very obscure race condition that can cause a queue run to
212066343Seric		get a queue file for an already completed job.  This
212166343Seric		problem has existed for years.  Problem noted by the
212266343Seric		long suffering Allan Johannesen of WPI.
212366343Seric	Fix a problem that caused the raw sender name to be passed to
212466343Seric		udbsender instead of the canonified name -- this caused
212566343Seric		it to sometimes miss records that it should have found.
212666343Seric	Relax check of name on HELO packet so that a program using -bs
212766343Seric		that claims to be itself works properly.
212866343Seric	Restore rewriting of $: part of address through 2, R, 4 in
212966343Seric		buildaddr -- this requires passing a lot of flags to get
213066343Seric		it right.  Unlike old versions, this ONLY rewrites
213166343Seric		recipient addresses, not sender addresses.
213266343Seric	Fix a bug that caused core dumps in config files that cannot
213366343Seric		resolve /file/name style addresses.  Fix from Jonathan
213466343Seric		Kamens of OpenVision Technologies.
213566343Seric	Fix problem with fcntl locking that can cause error returns to
213666343Seric		be lost if the lock is lost; this required fully
213766343Seric		queueing everything, dropping the envelope (so errors
213866343Seric		would get returned), and then re-reading the queue from
213966343Seric		scratch.
214066343Seric	Fix a problem that caused aliases that redefine an otherwise
214166343Seric		true address to still send to the original address
214266343Seric		if and only if the alias failed in certain bizarre
214366343Seric		ways (e.g, if they pointed at a list:; syntax address).
214466343Seric		Problem pointed out by Jonathan Kamens.
214566343Seric	Remove support for frozen configuration files.  They caused
214666343Seric		more trouble than it was worth.
214766343Seric	Fix problem that can cause error messages to get ignored when
214866343Seric		using both -odb and -t flags.  Problem noted by Rob
214966343Seric		McNicholas at U.C. Berkeley.
215066343Seric	Include all "normal" variations on hostname in $=w.  For example,
215166343Seric		if the host name is vangogh.cs.berkeley.edu, $=w will
215266343Seric		contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu.
215366343Seric	Add "restrictqrun" privacy flag -- without this, anyone can run
215466343Seric		the queue.
215566343Seric	Reset SmtpPhase global on initial connection creation so that
215666343Seric		messages don't come out with stale information.
215766343Seric	Pass an "ext" argument to lockfile so that error/log messages
215866343Seric		will properly reflect the true filename being locked.
215966343Seric	Put all [...] address forms into $=w -- this eliminates the need
216066343Seric		for MAXIPADDR in conf.h.  Suggested by John Gardiner
216166343Seric		Myers of CMU.
216266343Seric	Fix a bug that can cause qf files to be left around even after
216366343Seric		an SMTP RSET command.  Problem and fix from Michael
216466343Seric		Corrigan.
216566343Seric	Don't send a PostMasterCopy to errors when the Precedence: is
216666343Seric		negative.  Error reports still go to the envelope
216766343Seric		sender address.
216866343Seric	Add LA_SHORT for load averages.
216966343Seric	Lock sendmail.st file when posting statistics.
217066343Seric	Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to
217166343Seric		set the size of the TCP send and receive buffers; if you
217266343Seric		run over a slow slip line you may need to set these down
217366343Seric		(although it would be better to fix the SLIP implementation
217466343Seric		so that it's not necessary to recompile every program
217566343Seric		that does bulk data transfer).
217666343Seric	Allow null defaults on $( ... $) lookups.  Problem reported by
217766343Seric		Amir Plivatsky.
217866343Seric	Diagnose crufty S and V config lines.  This resulted from an
217966343Seric		observation that some people were using the SITE macro
218066343Seric		without the SITECONFIG macro first, which was causing
218166343Seric		bogus config files that were not caught.
218266343Seric	Fix makemap -f flag to turn off case folding (it was turning it
218366343Seric		on instead).  THIS IS A USER VISIBLE CHANGE!!!
218466343Seric	Fix a problem that caused multiple error messages to be sent if
218566343Seric		you used "sendmail -t -oem -odb", your system uses fcntl
218666343Seric		locking, and one of the recipient addresses is unknown.
218766343Seric	Reset uid earlier in include() so that recursive .forwards or
218866343Seric		:include:s don't use the wrong uid.
218966343Seric	If file descriptor 0, 1, or 2 was closed when sendmail was
219066343Seric		called, the code to recover the descriptor was broken.
219166343Seric		This sometimes (only sometimes) caused problems with the
219266343Seric		alias file.  Fix from Motonori Nakamura.
219366343Seric	Fix a problem that caused aliaswait to go into infinite recursion
219466343Seric		if the @:@ metasymbol wasn't found in the alias file.
219566343Seric	Improve error message on newaliases if database files cannot be
219666343Seric		opened or if running with no database format defined.
219766343Seric	Do a better estimation of the size of error messages when NoReturn
219866343Seric		is set.  Problem noted by P{r (Pell) Emanuelsson.
219966343Seric	Fix a problem causing the "c" option (don't connect to expensive
220066343Seric		mailers) to be ignored in SMTP.  Problem noted and the
220166343Seric		solution suggested by Robert Elz of Munnari University.
220266343Seric	Improve connection caching algorithm by passing "[host]" to
220366343Seric		hostsignature, which strips the square brackets and
220466343Seric		returns the real name.  This allows mailertable entries
220566343Seric		to match regular entries.
220666343Seric	Re-enable Return-Receipt-To: -- people seem to want this stupid
220766343Seric		feature, even if it doesn't work right.
220866343Seric	Catch and log attempts to try the "wiz" command in server SMTP.
220966343Seric		This also ups the log level from LOG_NOTICE to LOG_CRIT.
221066343Seric	Be more generous at assigning $z to the home directory -- do this
221166343Seric		for programs that are specified through a .forward file.
221266343Seric		Fix from Andrew Chang of Sun Microsystems.
221366343Seric	Always save a fatal error message in preference to a non-fatal
221466343Seric		error message so that the "subject" line of return
221566343Seric		messages is the best possible.
221666343Seric	CONFIG: reduce the number of quotes needed to quote configuration
221766343Seric		parameters with commas: two quotes should work now, e.g.,
221866343Seric		define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local'').
221966343Seric	CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom
222066343Seric		connections (domain-ized UUCP).
222166343Seric	CONFIG: fix bug in default maps (-o must be before database file
222266343Seric		name).  Pointed out by Christophe Wolfhugel.
222366343Seric	CONFIG: add FEATURE(nodns) to state that we are not relying on
222466343Seric		DNS.  This would presumably be used in UUCP islands.
222566343Seric	CONFIG: add OSTYPE(nextstep) and OSTYPE(linux).
222666343Seric	CONFIG: log $u in Received: line.  This is in technical violation
222766343Seric		of the standards, since it doesn't guarantee a domain
222866343Seric		on the address.
222966343Seric	CONFIG: don't assume "m" in local mailer flags -- this means that
223066343Seric		if you redefine LOCAL_MAILER_FLAGS you will have to include
223166343Seric		the "m" flag should you want it.  Apparently some Solaris 2.2
223266343Seric		installations can't handle multiple local recipients.
223366343Seric		Problem noted by Josh Smith.
223466343Seric	CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults).
223566343Seric	CONFIG: change default version level from 4 to 5.
223666343Seric	CONFIG: add FEATURE(nullclient) to create a config file that
223766343Seric		forwards all mail to a hub without ever looking at the
223866343Seric		addresses in any detail.
223966343Seric	CONFIG: properly strip mailer: information off of relays when
224066343Seric		used to change .BITNET form into %-hack form.
224166343Seric	CONFIG: fix a problem that caused infinite loops if presented
224266343Seric		with an address such as "!foo".
224366343Seric	CONFIG: check for self literal (e.g., [128.32.131.12]) even if
224466343Seric		the reverse "PTR" mapping is broken.  There's a better
224566343Seric		way to do this, but the change is fairly major and I
224666343Seric		want to hold it for another release.  Problem noted by
224766343Seric		Bret Marquis.
224866343Seric
224966342Seric8.5/8.5		93/07/23
225066342Seric	Serious bug: if you used a command line recipient that was unknown
225166342Seric		sendmail would not send a return message (it was treating
225266342Seric		everything as though it had an SMTP-style client that
225366342Seric		would do the return itself).  Problem noted by Josh Smith.
225466342Seric	Change "trymx" option in getcanonname() to ignore all MX data,
225566342Seric		even during a T_ANY query.  This actually didn't break
225666342Seric		anything, because the only time you called getcanonname
225766342Seric		with !trymx was if you already knew there were no MX
225866342Seric		records, but it is somewhat cleaner.  From Motonori
225966342Seric		Nakamura.
226066342Seric	Don't call getcanonname from getmxrr if you already know there
226166342Seric		are no DNS records matching the name.
226266342Seric	Fix a problem causing error messages to always include "The
226366342Seric		original message was received ... from localhost".
226466342Seric		The correct original host information is now included.
226566342Seric	Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their
226666342Seric		version of "test" doesn't have the -x flag).  Change it
226766342Seric		to use -f instead.  From John Myers.
226866342Seric	CONFIG: 8.4 mistakenly set the default SMTP-style mailer to
226966342Seric		esmtp -- it should be smtp.
227066342Seric	CONFIG: send all relayed mail using confRELAY_MAILER (defaults
227166342Seric		to "relay" (a variant of "smtp") if MAILER(smtp) is used,
227266342Seric		else "suucp" if MAILER(uucp) is used, else "unknown");
227366342Seric		this cleans up the configs somewhat.  This fixes a serious
227466342Seric		problem that caused route-addrs to get mistaken as relays,
227566342Seric		pointed out by John Myers.  WARNING: this also causes
227666342Seric		the default on SMART_HOST to change from "suucp" to
227766342Seric		"relay" if you have MAILER(smtp) specified.
227866342Seric
227966341Seric8.4/8.4		93/07/22
228066341Seric	Add option `w'.  If you receive a message that comes to you because
228166341Seric		you are the best (lowest preference) target of an MX, and
228266341Seric		you haven't explicitly recognized the source MX host in
228366341Seric		your .cf file, this option will cause you to try the target
228466341Seric		host directly (as if there were no MX for it at all).  If
228566341Seric		`w' is not set, this case is a configuration error.
228666341Seric		Beware: if `w' is set, senders may get bogus errors like
228766341Seric		"message timed out" or "host unknown" for problems that
228866341Seric		are really configuration errors.  This option is
228966341Seric		disrecommended, provided only for compatibility with
229066341Seric		UIUC sendmail.
229166341Seric	Fix a problem that caused the incoming socket to be left open
229266341Seric		when sendmail forks after the DATA command.  This caused
229366341Seric		calling systems to wait in FIN_WAIT_2 state until the
229466341Seric		entire list was processed and the child closed -- a
229566341Seric		potentially prodigious amount of time.  Problem noted
229666341Seric		by Neil Rickert.
229766341Seric	Fix problem (created in 6.64) that caused mail sent to multiple
229866341Seric		addresses, one of which was a bad address, to completely
229966341Seric		suppress the sending of the message.  This changes
230066341Seric		handling of EF_FATALERRS somewhat, and adds an
230166341Seric		EF_GLOBALERRS flag.  This also fixes a potential problem
230266341Seric		with duplicate error messages if there is a syntax error
230366341Seric		in the header of a message that isn't noticed until late
230466341Seric		in processing.  Original problem pointed out by Josh Smith
230566341Seric		of Harvey Mudd College.  This release includes quite a bit
230666341Seric		of dickering with error handling (see below).
230766341Seric	Back out SMTP transaction if MAIL gets nested 501 error.  This
230866341Seric		will only hurt already-broken software and should help
230966341Seric		humans.
231066341Seric	Fix a problem that broke aliases when neither NDBM nor NEWDB were
231166341Seric		compiled in.  It would never read the alias file.
231266341Seric	Repair unbalanced `)' and `>' (the "open" versions are already
231366341Seric		repaired).
231466341Seric	Logging of "done" in dropenvelope() was incorrect: it would
231566341Seric		log this even when the queue file still existed.  Change
231666341Seric		this to only log "done" (at log level 11) when the
231766341Seric		queue file is actually removed.  From John Myers.
231866341Seric	Log "lost connection" in server SMTP at log level 20 if there
231966341Seric		is no pending transaction.  Some senders just close the
232066341Seric		connection rather than sending QUIT.
232166341Seric	Fix a bug causing getmxrr to add a dot to the end of unqualified
232266341Seric		domains that do not have MX records -- this would cause
232366341Seric		the subsequent host name lookup to fail.  The problem
232466341Seric		only occurred if you had FEATURE(nocanonify) set.
232566341Seric		Problem noted by Rick McCarty of Texas Instruments.
232666341Seric	Fix invocation of setvbuf when passed a -X flag -- I had
232766341Seric		unwittingly used an ANSI C extension, and this caused
232866341Seric		core dumps on some machines.
232966341Seric	Diagnose self-destructive alias loops on RCPT as well as EXPN.
233066341Seric		Previously it just gave an empty send queue, which
233166341Seric		then gave either "Need RCPT (recipient)" at the DATA
233266341Seric		(confusing, since you had given an RCPT command which
233366341Seric		returned 250) or just dropped the email, depending on
233466341Seric		whether you were running VERBose mode.  Now it usually
233566341Seric		diagnoses this case as "aliasing/forwarding loop broken".
233666341Seric		Unfortunately, it still doesn't adequately diagnose
233766341Seric		some true error conditions.
233866341Seric	Add internal concept of "warning messages" using 6xx codes.
233966341Seric		These are not reported only to Postmaster.  Unbalanced
234066341Seric		parens, brackets, and quotes are printed as 653 codes.
234166341Seric		They are always mapped to 5xx codes before use in SMTP.
234266341Seric	Clean up error messages to tell both the actual address that
234366341Seric		failed and the alias they arose from.  This makes it
234466341Seric		somewhat easier to diagnose problems.  Difficulty noted
234566341Seric		by Motonori Nakamura.
234666341Seric	Fix a problem that inappropriately added a ctladdr to addresses
234766341Seric		that shouldn't have had one during a queue run.  This
234866341Seric		caused error messages to be handled differently during
234966341Seric		a queue run than a direct run.
235066341Seric	Don't print the qf name and line number if you get errors during
235166341Seric		the direct run of the queue from srvrsmtp -- this was
235266341Seric		just extra stuff for users to crawl through.
235366341Seric	Put command line flags on second line of pid file so you can
235466341Seric		auto-restart the daemon with all appropriate arguments.
235566341Seric		Use "kill `head -1 /etc/sendmail.pid`" to stop the
235666341Seric		daemon, and "eval `tail -1 /etc/sendmail.pid`" to
235766341Seric		restart it.
235866341Seric	Remove the ``setuid(getuid())'' in main -- this caused the
235966341Seric		IDENT daemon to screw up.  This required that I change
236066341Seric		HASSETEUID to HASSETREUID and complicate the mode
236166341Seric		changing somewhat because both Ultrix and SunOS seem
236266341Seric		to have a bug causing seteuid() to set the saved uid
236366341Seric		as well as the effective.  The program test/t_setreuid.c
236466341Seric		will test to see if your implementation of setreuid(2)
236566341Seric		is appropriately functional.
236666341Seric	The FallBackMX (option V) handling failed to properly identify
236766341Seric		fallback to yourself -- most of the code was there,
236866341Seric		but it wasn't being enabled.  Problem noted by Murray
236966341Seric		Kucherawy of the University of Waterloo.
237066341Seric	Change :include: open timeout from ETIMEDOUT to an internal
237166341Seric		code EOPENTIMEOUT; this avoids adding "during SmtpPhase
237266341Seric		with CurHostName" in error messages, which can be
237366341Seric		confusing.  Reported by Jonathan Kamens of OpenVision
237466341Seric		Technologies.
237566341Seric	Back out setpgrp (setpgid on POSIX systems) call to reset the
237666341Seric		process group id.  The original fix was to get around
237766341Seric		some problems with recalcitrant MUAs, but it breaks
237866341Seric		any call from a shell that creates a process group id
237966341Seric		different from the process id.  I could try to fix
238066341Seric		this by diddling the tty owner (using tcsetpgrp or
238166341Seric		equivalent) but this is too likely to break other
238266341Seric		things.
238366341Seric	Portability changes:
238466341Seric		Support -M as equivalent to -oM on Ultrix -- apparently
238566341Seric			DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs
238666341Seric			instead of using standard flags.  Oh joy.  This
238766341Seric			behaviour reported by Jon Giltner of University
238866341Seric			of Colorado.
238966341Seric		SGI IRIX  -- this includes several changes that should
239066341Seric			help other strict ANSI compilers.
239166341Seric		SCO Unix -- from Murray Kucherawy of HookUp Communication
239266341Seric			Corporation.
239366341Seric		Solaris running the Sun C compiler (which despite the
239466341Seric			documentation apparently doesn't define
239566341Seric			__STDC__ by default).
239666341Seric		ConvexOS from Eric Schnoebelen of Convex.
239766341Seric		Sony NEWS workstations and Omron LUNA workstations from
239866341Seric			Motonori Nakamura.
239966341Seric	CONFIG: add confTRY_NULL_MX_LIST to set option `w'.
240066341Seric	CONFIG: delete `C' and `e' from default SMTP mailers flags;
240166341Seric		several people have made a good argument that this
240266341Seric		creates more problems than it solves (although this
240366341Seric		may prove painful in the short run).
240466341Seric	CONFIG: generalize all the relays to accept a "mailer:host"
240566341Seric		format.
240666341Seric	CONFIG: move local processing in ruleset 0 into a new ruleset
240766341Seric		98 (8 on old sendmail).  Domain literal [a.b.c.d]
240866341Seric		addresses are also passed through this ruleset.
240966341Seric	CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined,
241066341Seric		internet-style addresses would "fall off the end" of
241166341Seric		ruleset zero and be interpreted as local -- however,
241266341Seric		the angle brackets confused the recursive call.
241366341Seric		These are now diagnosed as "Unrecognized host name".
241466341Seric	CONFIG: USENET rules weren't included in S0 because of a mistaken
241566341Seric		ifdef(`_MAILER_USENET_') instead of
241666341Seric		ifdef(`_MAILER_usenet_').  Problem found by Rein Tollevik
241766341Seric		of SINTEF RUNIT, Oslo.
241866341Seric	CONFIG: move up LOCAL_RULE_0 processing so that it happens very
241966341Seric		early in ruleset 0; this allows .mc authors to bypass
242066341Seric		things like the "short circuit" code for local addresses.
242166341Seric		Prompted by a comment by Bill Wisner of The Well.
242266341Seric	CONFIG: add confSMTP_MAILER to define the mailer used (smtp or
242366341Seric		esmtp) to send SMTP mail.  This allows you to default
242466341Seric		to esmtp but use a mailertable or other override to
242566341Seric		deal with broken servers.  This logic was pointed out
242666341Seric		to me by Bill Wisner.  Ditto for confLOCAL_MAILER.
242766341Seric	Changes to cf/sh/makeinfo.sh to make it portable to SVR4
242866341Seric		environments.  Ugly as sin.
242966341Seric
243066340Seric8.3/8.3		93/07/13
243166340Seric	Fix setuid problems introduced in 8.2 that caused messages
243266340Seric		like "Cannot create qfXXXXXX: Invalid argument"
243366340Seric		or "Cannot reopen dfXXXXXX: Permission denied".  This
243466340Seric		involved a new compile flag "HASSETEUID" that takes
243566340Seric		the place of the old _POSIX_SAVED_IDS -- it turns out
243666340Seric		that the POSIX interface is broken enough to break
243766340Seric		some systems badly.  This includes some fixes for
243866340Seric		HP-UX.  Also fixes problems where the real uid is
243966340Seric		not reset properly on startup (from Neil Rickert).
244066340Seric	Fix a problem that caused timed out messages to not report the
244166340Seric		addresses that timed out.  Error messages are also more
244266340Seric		"user friendly".
244366340Seric	Drop required bandwidth on connections from 64 bytes/sec to
244466340Seric		16 bytes/sec.
244566340Seric	Further Solaris portability changes -- doesn't require the BSD
244666340Seric		compatibility library.  This also adds a new
244766340Seric		"HASGETDTABLESIZE" compile flag which can be used if
244866340Seric		you want to use getdtablesize(2) instead of sysconf(2).
244966340Seric		These are loosely based on changes from David Meyer at
245066340Seric		University of Oregon.  This now seems to work, at least
245166340Seric		for quick test cases.
245266340Seric	Fix a problem that can cause duplicate error messages to be
245366340Seric		sent if you are in SMTP, you send to multiple addresses,
245466340Seric		and at least one of those addresses is good and points
245566340Seric		to an account that has a .forward file (whew!).
245666340Seric	Fix a problem causing messages to be discarded if checkcompat()
245766340Seric		returned EX_TEMPFAIL (because it didn't properly mark
245866340Seric		the "to" address).  Problem noted by John Myers.
245966340Seric	Fix dfopen to return NULL if the open failed; I was depending
246066340Seric		on fdopen(-1) returning NULL, which isn't the case.  This
246166340Seric		isn't serious, but does result in wierd error diagnoses.
246266340Seric		From Michael Corrigan.
246366340Seric	CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of
246466340Seric		messages sent through UUCP-family mailers.  Suggested
246566340Seric		by Bill Wisner of The Well.
246666340Seric	CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified,
246766340Seric		include a "uucp-dom" mailer that uses domain-style
246866340Seric		addressing.  Suggested by Bill Wisner.
246966340Seric	CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match
247066340Seric		LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS.  Suggested by
247166340Seric		Christophe Wolfhugel.
247266340Seric	CONFIG: Add OSTYPE(aix3).  From Christophe Wolfhugel.
247366340Seric
247466339Seric8.2/8.2		93/07/11
247566339Seric	Don't drop out on config file parse errors in -bt mode.
247666339Seric	On older configuration files, assume option "l" (use Errors-To
247766339Seric		header) for back compatibility.  NOTE:  this DOES NOT
247866339Seric		imply an endorsement of the Errors-To: header in any way.
247966339Seric	Accept -x flag on AIX-3 as well as OSF/1.  Why, why, why???
248066339Seric	Don't log errors on EHLO -- it isn't a "real" error for an old
248166339Seric		SMTP server to give an error on this command, and
248266339Seric		logging it in the transcript can be confusing.  Fix
248366339Seric		from Bill Wisner.
248466339Seric	IRIX compatibility changes provided by Dan Rich
248566339Seric		<drich@sandman.lerc.nasa.gov>.
248666339Seric	Solaris 2 compatibility changes.  Provided by Bob Cunningham
248766339Seric		<bob@kahala.soest.hawaii.edu>, John Oleynick
248866339Seric		<juo@klinzhai.rutgers.edu>
248966339Seric	Debugging: -d17 was overloaded (hostsignature and usersmtp.c);
249066339Seric		move usersmtp (smtpinit and smtpmailfrom) to -d18 to
249166339Seric		match the other flags in that file.
249266339Seric	Flush transcript before fork in mailfile().  From Eric Wassenaar.
249366339Seric	Save h_errno in mci struct and improve error message display.
249466339Seric		Changes from Eric Wassenaar.
249566339Seric	Open /dev/null for the transcript if the create of the xf file
249666339Seric		failed; this avoids at least one possible null pointer
249766339Seric		reference in very wierd cases.  From Eric Wassenaar.
249866339Seric	Clean up statistics gathering; it was over-reporting because of
249966339Seric		forks.  From Eric Wassenaar.
250066339Seric	Fix problem that causes old Return-Path: line to override new
250166339Seric		Return-Path: line (conf.c needs H_FORCE to avoid
250266339Seric		re-using old value).  From Motonori Nakamura.
250366339Seric	Fix broken -m flag in K definition -- even if -m (match only)
250466339Seric		was specified, it would still replace the key with the
250566339Seric		value.  Noted by Rick McCarty of Texas Instruments.
250666339Seric	If the name server timed out over several days, no "timed out"
250766339Seric		message would ever be sent back.  The timeout code
250866339Seric		has been moved from markfailure() to dropenvelope()
250966339Seric		so that all such failures should be diagnosted.  Pointed
251066339Seric		out by Christophe Wolfhugel and others.
251166339Seric	Relax safefile() constraints: directories in an include or
251266339Seric		forward path must be readable by self if the controlling
251366339Seric		user owns the entry, readable by all otherwise (e.g.,
251466339Seric		when reading your .forward file, you have to own and
251566339Seric		have X permssion in it; everyone needs X permission in
251666339Seric		the root and directories leading up to your home);
251766339Seric		include files must be readable by anyone, but need not
251866339Seric		be owned by you.
251966339Seric	If _POSIX_SAVED_IDS is defined, setuid to the owner before
252066339Seric		reading a .forward file; this gets around some problems
252166339Seric		on NFS mounts if root permission is not exported and
252266339Seric		the user's home directory isn't x'able.
252366339Seric	Additional NeXT portability enhancements from Axel Zinser.
252466339Seric	Additional HP-UX portability enhancements from Brian Bullen.
252566339Seric	Add a timeout around SMTP message writes; this assumes you can
252666339Seric		get throughput of at least 64 bytes/second.  Note that
252766339Seric		this does not impact the "datafinal" default, which
252866339Seric		is separate; this is just intended to work around
252966339Seric		network clogs that will occur before the final dot
253066339Seric		is sent.  From Eric Wassenaar.
253166339Seric	Change map code to set the "include null" flag adaptively --
253266339Seric		it initially tries both, but if it finds anything
253366339Seric		matching without a null it never tries again with a
253466339Seric		null and vice versa.  If -N is specified, it never
253566339Seric		tries without the null and creates new maps with a
253666339Seric		null byte.  If -O is specified, it never tries with
253766339Seric		the null (for efficiency).  If -N and -O are specified,
253866339Seric		you get -NO (get it?) lookup at all, so this would
253966339Seric		be a bad idea.  If you don't specify either -N or -O,
254066339Seric		it adapts.
254166339Seric	Fix recognition of "same from address" so that MH submissions
254266339Seric		will insert the appropriate full name information;
254366339Seric		this used to work and got broken somewhere along the
254466339Seric		way.
254566339Seric	Some changes to eliminate some unnecessary SYSERRs in the
254666339Seric		log.  For example, if you lost a connection, don't
254766339Seric		bother reporting that fact on the connection you lost.
254866339Seric	Add some "extended debugging" flags to try to track down
254966339Seric		why we get occassional problems with file descriptor
255066339Seric		one being closed when execing a mailer; it seems to
255166339Seric		only happen when there has been another error in the
255266339Seric		same transaction.  This requires XDEBUG, defined
255366339Seric		by default in conf.h.
255466339Seric	Add "-X filename" command line flag, which logs both sides of
255566339Seric		all SMTP transactions.  This is intended ONLY for
255666339Seric		debugging bad implementations of other mailers; start
255766339Seric		it up, send a message from a mailer that is failing,
255866339Seric		and then kill it off and examine the indicated log.
255966339Seric		This output is not intended to be particularly human
256066339Seric		readable.  This also adds the HASSETVBUF compile
256166339Seric		flag, defaulted on if your compiler defines __STDC__.
256266339Seric	CONFIG: change SMART_HOST to override an SMTP mailer.  If you
256366339Seric		have a local net that should get direct connects, you
256466339Seric		will need to use LOCAL_NET_CONFIG to catch these hosts.
256566339Seric		See cf/README for an example.
256666339Seric	CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle
256766339Seric		sites that don't use the -d flag.
256866339Seric	CONFIG: hide recipient addresses as well as sender addresses
256966339Seric		behind $M if FEATURE(allmasquerade) is specified; this
257066339Seric		has been requested by several people, but can break
257166339Seric		local aliases.  For example, if you mail to "localalias"
257266339Seric		this will be rewritten as "localalias@masqueradehost";
257366339Seric		although initial delivery will work, replies will be
257466339Seric		broken.  Use it sparingly.
257566339Seric	CONFIG: add FEATURE(domaintable).  This maps unqualified domains
257666339Seric		to qualified domains in headers.  I believe this is
257766339Seric		largely equivalent to the IDA feature of the same name.
257866339Seric	CONFIG: use $U as UUCP name instead of $k.  This permits you
257966339Seric		to override the "system name" as your UUCP name --
258066339Seric		in particular, to use domain-ized UUCP names.  From
258166339Seric		Bill Wisner of The Well.
258266339Seric	CONFIG: create new mailer "esmtp" that always tries EHLO
258366339Seric		first.  This is currently unused in the config files,
258466339Seric		but could be used in a mailertable entry.
258566339Seric
258666338Seric8.1C/8.1B	93/06/27
258766338Seric	Serious security bug fix: it was possible to read any file on
258866338Seric		the system, regardless of ownership and permissions.
258966338Seric	If a subroutine returns a fully qualified address, return it
259066338Seric		immediately instead of feeding it back into rewriting.
259166338Seric		This fixes a problem with mailertable lookups.
259266338Seric	CONFIG: fix some M4 frotz (concat => CONCAT)
259366338Seric
259466338Seric8.1B/8.1A	93/06/12
259566338Seric	Serious bug fix: pattern matching backup algorithm stepped by
259666338Seric		two tokens in classes instead of one.  Found by Claus
259766338Seric		Assmann at University of Kiel, Germany.
259866338Seric
259966338Seric8.1A/8.1A	93/06/08
260066338Seric	Another mailertable fix....
260166338Seric
260266338Seric8.1/8.1		93/06/07
260366338Seric	4.4BSD freeze.  No semantic changes.
260466338Seric
260566338Seric6.65/6.34	93/06/06
260666338Seric	Fix some lintish problems.
260766338Seric	Fix some cases where server SMTP behaved poorly when handed bogus
260866338Seric		input, pointed out by Eric Wassenaar.
260966338Seric	CONFIG: fix some more (sigh) mailertable bugs -- thanks to
261066338Seric		Motonori Nakamura of Kyoto University (again).
261166338Seric
261266338Seric6.64/6.33	93/06/05
261366338Seric	Don't send 050 (-v) information after the 250 response to a QUIT
261466338Seric		command in srvrsmtp -- clients usually close the connection
261566338Seric		at this point, and it causes bogus error messages.
261666338Seric	Don't send messages that have errors on input (such as unbalanced
261766338Seric		parentheses) during SMTP transactions, since a return
261866338Seric		message has (probably) already been sent.
261966338Seric	Give better diagnostics on timeouts during network reads, including
262066338Seric		information similar to the SMTP phase.
262166338Seric	Fix bug that caused SMTP messages to deliver synchronously; this
262266338Seric		happened after the DATA 250, and hence caused reading the
262366338Seric		next command to be delayed.
262466338Seric	Ignore Errors-To: header unless 'l' (lower case el) header is
262566338Seric		specified.  The Errors-To: header violates RFC 1123.
262666338Seric		Errors-To: was only needed to take the place of the
262766338Seric		envelope sender in the days when most Unix mailers
262866338Seric		didn't understand about the two kinds of senders.
262966338Seric	Don't send warning messages in response to automatically generated
263066338Seric		messages (that is, those From:<>).
263166338Seric	CONFIG: fix some rather stupid typos in the mailertable code
263266338Seric		pointed out by Motonori Nakamura of Kyoto University.
263366338Seric	CONFIG: add confUSE_ERRORS_TO configuration option.
263466338Seric	CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M
263566338Seric		(masquerade name) instead of $j.
263666338Seric	CONFIG: don't add dots to relay names (added in 6.29); it breaks
263766338Seric		several things, and can be simulated by dot terminating
263866338Seric		the names of relays.  For example, use:
263966338Seric			DBbit.net.relay.
264066338Seric		(note the trailing dot).
264166338Seric
264266338Seric6.63/6.32	93/06/01
264366338Seric	Fix prototypes to eliminate chars in argument lists -- some
264466338Seric		compilers are pissy about this.
264566338Seric	Log protocol ($r) and body type if set so we can determine if
264666338Seric		the adaptive algorithms are working.
264766338Seric	Pessimize on locking of database files (particularly for NEWDB
264866338Seric		databases) during opens.  There were problems with
264966338Seric		processes opening the file while it was rebuilt; since
265066338Seric		NEWDB caches heavily, the reader opened an empty file,
265166338Seric		which is an error.  If your system has the ability to
265266338Seric		lock atomically on open, this works properly; otherwise,
265366338Seric		there are race conditions.
265466338Seric	Check mod time on .pag file instead of .dir in NDBM aliases
265566338Seric		because the .dir file doesn't get updated for small
265666338Seric		alias files.  From John Gardiner Myers of CMU.
265766338Seric	More Solaris portability -- it now compiles on Solaris, but
265866338Seric		hangs up in gethostbyname().
265966338Seric	Move setting of RES_DEBUG flag before first myhostname() call
266066338Seric		so we can see name server traffic on that call.
266166338Seric	Fsync() queue files.
266266338Seric	Fix a problem that causes -bi to try to rebuild maps other than
266366338Seric		the alias file(s).
266466338Seric	Fix a problem that caused udb to reject entries from any but
266566338Seric		the first database listed.
266666338Seric	Rearrange doc subdirectory for 4.4BSD release tape.
266766338Seric	CONFIG: put $r into the Received line.  This was an oversight.
266866338Seric	CONFIG: fix typo (call to ruleset 99 should have been rulset 90).
266966338Seric	CONFIG: move "auxiliary" subroutines to be in ruleset 90-99
267066338Seric		range -- in the long run, single digit rulesets may
267166338Seric		become reserved for builtin use by sendmail.
267266338Seric	CONFIG: fix major problem that causes host aliases (that is,
267366338Seric		anything in $=w != $j) to not be recognized.  This has
267466338Seric		been around since 6.30.
267566338Seric
267666338Seric6.62/6.31	93/05/28
267766338Seric	BETA RELEASE
267866338Seric	Fix recursive syserr (if there is an error printing a syserr
267966338Seric		message).  This makes the code much less eager to consider
268066338Seric		a write error as serious.  This also includes some
268166338Seric		heuristics to be clever about closed connections.
268266338Seric	Lock NEWDB files during gets.  This requires version 1.5 or later
268366338Seric		of the db library.  If you have an older version, you
268466338Seric		can use -DOLD_NEWDB.  This will go away in a few weeks.
268566338Seric	Fix problem causing aliases that use host maps to get overwritten.
268666338Seric	Do appropriate byte swapping on port numbers in ident protocol
268766338Seric		code.  Fix from Allan Johannesen of WPI.
268866338Seric	Defer opening of map files to the same time as alias files so that
268966338Seric		the daemon will tend to pick up new versions more promptly.
269066338Seric	Prototype a bunch more functions.
269166338Seric	Some Solaris 2.1 changes (still doesn't link though).
269266338Seric	Try to simplify Makefiles by including more subordinate #defines
269366338Seric		in conf.h (based on OS type).
269466338Seric	CONFIG: check for domains if FEATURE(mailertable) is defined.
269566338Seric		For example, if the host name is "knecht.cs.berkeley.edu"
269666338Seric		it will search the following mailertable keys:
269766338Seric			knecht.cs.berkeley.edu
269866338Seric			.cs.berkeley.edu
269966338Seric			.berkeley.edu
270066338Seric			.edu
270166338Seric		This could be used to replace the special relays for bitnet
270266338Seric		and similar nets.
270366338Seric
270466338Seric6.61/6.30	93/05/24
270566338Seric	Fix problem that prevented appending dots on canonified host
270666338Seric		names.  This breaks tons of config files -- very
270766338Seric		important fix.
270866338Seric	Fix improper pointer dereference in response to HELO command.
270966338Seric	Fix core dump if debugging set in map_rewrite.
271066338Seric	CONFIG: add FEATURE(always_add_domain) to always attach the
271166338Seric		local domain (only impacts local mail).
271266338Seric	CONFIG: try to avoid turning names into $j -- although
271366338Seric		technically a host can only have one "canonical name",
271466338Seric		it seems to be common practice to have several.
271566338Seric
271666338Seric6.60/6.29	93/05/22
271766338Seric	Major change: merge alias databases with maps.  This expands and
271866338Seric		changes the map class interface but fixes a bunch of bugs.
271966338Seric		The important user-visible change is that the file name
272066338Seric		in a K line now does not include the ".db" extension; this
272166338Seric		is added automatically.  Also, the -d (NIS domain) flag is
272266338Seric		missing from the K config line; use @domain instead.
272366338Seric		When compiling, the *_MAP names are gone -- just compile
272466338Seric		in NDBM, NEWDB, and/or NIS support.
272566338Seric	Announce mailer/host/user triple on -bv flag -- from Brian
272666338Seric		Bullen of Stirling University.
272766338Seric	Don't send more than one line in response to HELO -- it confuses
272866338Seric		Pony Express, which then behaves very badly.  However,
272966338Seric		this change does send two line 220 greetings, with the
273066338Seric		second line reading "ESMTP spoken here".  The usersmtp
273166338Seric		module recognizes this and goes into ESMTP mode regardless
273266338Seric		of the setting of the "a" mailer flag.  Thus, "a" means
273366338Seric		"always try EHLO".
273466338Seric	AIX portability changes (thanks to Christophe Wolfhugel of
273566338Seric		Herve Schauer Consultants (Paris) for providing me with
273666338Seric		an INSA account for this purpose).  Lightly tested.  Use
273766338Seric		-D_AIX3.  This probably breaks compatibility with some
273866338Seric		older systems (e.g., 4.2bsd) but still works on SunOS
273966338Seric		4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3.
274066338Seric	Fix a problem causing an error message loop if the output channel
274166338Seric		is hosed.
274266338Seric	Add the Makefiles that I use for various environments -- some are
274366338Seric		Berkeley make versions and some are old make versions.
274466338Seric		My makefile for the NeXT box has gotten lost, alas!
274566338Seric	PRALIASES: support for printing NEWDB databases.  From
274666338Seric		Michael J. Corrigan of U.C. San Diego.
274766338Seric	CONFIG: don't pass pseudo-domains to $[ ... $] (if you have
274866338Seric		a wildcard MX it can have wierd results).  From
274966338Seric		Christophe Wolfhugel.
275066338Seric	CONFIG: dot terminate relay hostnames in S0.  From Christophe
275166338Seric		Wolfhugel.
275266338Seric
275366338Seric6.59/6.28	93/05/13
275466338Seric	Log version with SMTP daemon startup message.
275566338Seric	Adjust setproctitle to work on NetBSD and BSD/386.
275666338Seric	Fix null pointer reference in MX fallback code.
275766338Seric	A bunch of minor fixes from Eric Wassenaar:
275866338Seric		If deliver cannot execv the mailer, return EX_OSERR
275966338Seric			instead of EX_TEMPFAIL (to give better
276066338Seric			error messages).
276166338Seric		Consistently malloc e_message.
276266338Seric		Catch degenerate case of calling returntosender()
276366338Seric			with an empty returnq.
276466338Seric		MIME reformatting.
276566338Seric
276666338Seric6.58/6.28	93/05/13
276766338Seric	Fix bug that can cause incorrect verbose display of user smtp
276866338Seric		messages.
276966338Seric	Disable SMTP VERB command if PRIV_NOEXPN is set (since this
277066338Seric		could reveal the same information.
277166338Seric	Allow failure when reading SMTP greeting message to go on to
277266338Seric		next MX host.
277366338Seric	Add "MIME-Version: 1.0" header if using MIME (this was NOT
277466338Seric		included in RFC 1344, but Bill King of Allan-Bradley
277566338Seric		Company forwarded me email from Nathaniel Borenstein
277666338Seric		claiming that it was an inadvertent omission).
277766338Seric	Don't use Content-Type: X-message-header.  According to John
277866338Seric		Myers of CMU, many MIME readers will completely ignore
277966338Seric		the data if they don't recognize it.  Instead, just
278066338Seric		add a blank line to make it a legal (empty) message.
278166338Seric	Fix problem causing dots to keep getting appended to cached
278266338Seric		hostnames.  This can cause buffer overrun conditions.
278366338Seric		The problem was found by Erik Forsberg of Retix,
278466338Seric		although I used a different bug fix than he provided.
278566338Seric	Fix parsing of split header/envelope rewriting specs -- from
278666338Seric		Eric Forsberg.
278766338Seric	Fix from Eric Wassenaar to correct To: lists in error messages.
278866338Seric
278966338Seric6.57/6.28	93/05/11
279066338Seric	Fix minor glitch causing extra ctladdrs to be output to queue
279166338Seric		file.  Just an annoyance.
279266338Seric	Cache results of name server canonification lookups to avoid
279366338Seric		backed up queue runs.
279466338Seric	Major rewrite of alias.c: considerable cleanup, plus sample
279566338Seric		(untested) support for NIS aliases.  The "A" option
279666338Seric		can now be a comma separated list (or be repeated) --
279766338Seric		that is, you can have multiple alias databases.  Each
279866338Seric		database can have the syntax ``class:file''; if no class
279966338Seric		is specified, the "implicit" class is assumed.  Implicit
280066338Seric		searches through a list of compiled in types -- hash,
280166338Seric		dbm, nis, and stab.  Alias files are searched in the
280266338Seric		order they are listed.  For example:
280366338Seric			OAhash:/etc/aliases.local,/etc/aliases
280466338Seric			OAnis:mail.aliases@my.nis.domain
280566338Seric		first searches the hash database /etc/aliases.local,
280666338Seric		then the regular /etc/aliases database, then the NIS
280766338Seric		map "mail.aliases" in the NIS domain "my.nis.domain".
280866338Seric	If in Verbose mode (probably from VERB command) run SMTP job
280966338Seric		in foreground and don't do RCPT optimizations.
281066338Seric	Add udb :mailsender as equivalent to owner- for regular aliases.
281166338Seric	Delete option 8; add option 7 that means the opposite.  That is,
281266338Seric		default to 8-bit mode; a special option is needed to
281366338Seric		force sendmail into 7 bit mode.
281466338Seric	Send error messages in encapsulated MIME format.
281566338Seric	New compile flag "NIS" that turns on NIS alias and NIS map
281666338Seric		support.
281766338Seric	Add "j" option to send error messages in MIME (RFC 1341)
281866338Seric		encapsulated message format per RFC 1344.  The
281966338Seric		syntax is pretty ugly if you don't have MIME-aware
282066338Seric		user agents.
282166338Seric	Clean up message handling (for display in mailq output).
282266338Seric	New setproctitle implementation for 4.4bsd.
282366338Seric	Create files (such as ~/dead.letter) using mode FileMode (the
282466338Seric		F option value) instead of 0666.
282566338Seric	Fix bug causing output of EXPN command to not be fully qualified.
282666338Seric		This may cause some problems with UUCP addresses that
282766338Seric		will require some config file assistance -- specifically,
282866338Seric		the $: part has to include the host name for this output
282966338Seric		to make sense.
283066338Seric	Fix a problem that sometimes diagnosed errors and still sent the
283166338Seric		message if the header syntax was bad.
283266338Seric	Fix a bug that caused an error message to be emailed when sendmail
283366338Seric		was operating in -bv mode.
283466338Seric	Add "ListenQueueSize" keyword to daemon options option (OO) to
283566338Seric		set the queue size parameter passed to listen().  You
283666338Seric		will normally have to tweak your kernel to up this.
283766338Seric	Strip spaces off of beginning of message-id before logging (in
283866338Seric		case it was folded across lines).
283966338Seric	Tweak compile flags in daemon.c -- there were some cases where
284066338Seric		it wouldn't work without NETINET.
284166338Seric	Change *file* mailer to output all the usual default headers
284266338Seric		(From, Date, Message-Id).  It gets used when sending
284366338Seric		back error messages.
284466338Seric	CONFIG: explicitly catch and diagnose list:; syntax in ruleset
284566338Seric		zero -- this is not a valid recipient syntax according
284666338Seric		to RFC 821.
284766338Seric	CONFIG: add confMIME_FORMAT_ERRORS to send error messages in
284866338Seric		MIME format.  Defaults to on.
284966338Seric	CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment
285066338Seric		the flags for those mailers.
285166338Seric
285266338Seric6.56/6.27	93/05/01
285366338Seric	Fix problem that causes the fallback mail to postmaster
285466338Seric		(case ESM_POSTMASTER in savemail()) to not look at
285566338Seric		aliases (ugh).
285666338Seric	Some more HPUX tweaking (compile flag hpux => __hpux so it
285766338Seric		still works in ANSI mode).
285866338Seric	Don't try to flock non-regular files when mailing to a file.
285966338Seric		In particular, this was a problem if you tried to
286066338Seric		send to /dev/null.
286166338Seric	Fix a wierd bug that can cause senders to be queued as
286266338Seric		recipients if the name server is down when the mail
286366338Seric		is initially sent.  This hack just ignores sender
286466338Seric		deletion (essentially, it sets the MeToo flag) if there
286566338Seric		is a TEMPFAIL during processing of the sender address.
286666338Seric		Obscure.
286766338Seric	Fix a dangling else problem -- from Brian Bullen from University
286866338Seric		of Stirling, UK.
286966338Seric	Add the "b" mailer flag to force a blank line on the end of
287066338Seric		messages.  Some brilliant versions of /bin/mail insist
287166338Seric		on this but do not add it themselves.
287266338Seric	Add the "g" mailer flag to prevent user SMTP from sending
287366338Seric		"MAIL From:<>".  This is only intended to be a
287466338Seric		transitional gesture, and should not be used if at
287566338Seric		all possible.  It appears that Berkeley and IDA
287666338Seric		config files have always handled this properly; the
287766338Seric		UK config kit apparently does not.
287866338Seric	Don't lowercase and then capitalize header field names -- leave
287966338Seric		them with original capitalization.  Fixes from Bill
288066338Seric		King of Allen-Bradley Company.
288166338Seric	Further cleanup and improved reporting of error messages,
288266338Seric		particularly conditions that cause messages to be
288366338Seric		requeued for future delivery.
288466338Seric	Tweak syslog priorities in some cases.
288566338Seric	CONFIG: clean up route-addr on UUCP addresses.
288666338Seric
288766338Seric6.55/6.25	93/04/27
288866338Seric	HPUX 8.07 compatibility changes in getla() -- I had to make
288966338Seric		these changes to get it to work at Berkeley, although
289066338Seric		others seem to have been working before (???).
289166338Seric	Various patches to XLA code.
289266338Seric	Fix problem that causes setuid bit on files to be ignored from
289366338Seric		SMTP or in queue runs.  Problem noted by Jason Ornstein
289466338Seric		of Under The Wire, Inc.
289566338Seric	Fix problem that can cause CNAMEs to be ignored.
289666338Seric	Generalize getmxrr to match local host in $=w instead of a
289766338Seric		single name passed in.
289866338Seric	Some cleanup from Eric Wassenaar:
289966338Seric		Use FileMailer instead of ProgMailer in two places.
290066338Seric		Eliminate duplicate 8th-bit stripping in commaize.
290166338Seric		Fix a problem with mis-parsing of backslash escapes
290266338Seric			under some circumstances.
290366338Seric	NIS map fix (was always including trailing null character)
290466338Seric		from Mike Glendinning of Ingres UK.
290566338Seric	Add "a" mailer flag to try using ESMTP.  It tries the EHLO
290666338Seric		command and if that fails falls back to regular SMTP.
290766338Seric		Also parses EHLO option keywords.  If host supports
290866338Seric		SIZE extension, this is added to the MAIL FROM:
290966338Seric		command.
291066338Seric	Extend "b" option to include a second value which is the
291166338Seric		maximum message size this server is willing to accept.
291266338Seric		For example, a value of "10/1000000" says that there
291366338Seric		must be ten blocks free, and sendmail will reject
291466338Seric		any message larger than one megabyte.
291566338Seric	Some portability hooks for NeXT (this could be applicable
291666338Seric		to Mach in general).  You have to create an empty
291766338Seric		file called "unistd.h" to get it to compile.
291866338Seric	Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to
291966338Seric		be more generous.
292066338Seric	Add X400-Received: to the list of headers tagged with H_TRACE
292166338Seric		in conf.c.  From Bill King, Allen-Bradley Co.
292266338Seric
292366338Seric6.54/6.25	93/04/19
292466338Seric	Fix problem that caused redefinition of SMTP and QUEUE compile
292566338Seric		flags.  Pointed out by Jon Forrest of the Sequoia 2000
292666338Seric		project at Berkeley.
292766338Seric	Properly handle \! hack -- it was treating host\!user as one
292866338Seric		token (host!user) instead of three (host, !, user).
292966338Seric		Fix from Eric Wassenaar of NIKHEF-H.
293066338Seric	Fix compilation problem in getauthinfo() if IDENTPROTO is off.
293166338Seric	Turn off DEFNAMES and DNSRCH when getting the hostsignature
293266338Seric		(i.e., MX records) in level 1 configuration files; this
293366338Seric		matches the old behaviour.  From Motonori Nakamura of
293466338Seric		Kyoto University.
293566338Seric	Improve error message printing -- if sent through an alias,
293666338Seric		error messages include the name of the alias in the
293766338Seric		message.  Unfortunately, in order to make this work
293866338Seric		properly in queue runs, this changes the format of the
293966338Seric		C line in the qf file.  The relatively uselessness of
294066338Seric		the previous information was pointed out to me by
294166338Seric		Allan E Johannesen of WPI.
294266338Seric	Add XLA compile flag to add hooks to Christophe Wolfhugel's
294366338Seric		extended load average code.  This is still in very early
294466338Seric		form.  For information regarding the guts of the xla
294566338Seric		code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr.
294666338Seric	Additional hooks for detecting tempfails in rewriting rules
294766338Seric		(that is, in map lookups).
294866338Seric
294966338Seric6.53/6.25	93/04/15
295066338Seric	Properly diagnose ruleset zero returning null (instead of a mailer
295166338Seric		triple).  From Motonori Nakamura of Kyoto University.
295266338Seric	More generalization of socket code for other protocols.
295366338Seric	Shorten timeouts on reverse name lookups -- since they are done
295466338Seric		during connection establishment, long timeouts here can
295566338Seric		cause higher level timeouts.  This mainly serves to accept
295666338Seric		mail from hosts that do not have proper reverse (PTR) DNS
295766338Seric		records set up.
295866338Seric	Reset e_statmsg before each mailer invocation to avoid bogus
295966338Seric		messages in the log.
296066338Seric	Redefine $r, $s, and $_ in error envelopes so you don't get
296166338Seric		incorrect cruft in the error message.  Problem noted by
296266338Seric		Motonori Nakamura of Kyoto University.
296366338Seric	Fix a problem that can cause failure to return errors to Postmaster
296466338Seric		in certain cases.  From Motonori Nakamura.
296566338Seric	Fix a problem that can cause some systems to give duplicate error
296666338Seric		messages when a bad syntax address such as "<a" is presented
296766338Seric		to an SMTP server.   It doesn't seem to occur on all
296866338Seric		machines.  From Motonori Nakamura.
296966338Seric	Default IDENTPROTO off for Ultrix and HPUX, which apparently have
297066338Seric		the interesting "feature" that when they receive a "Host
297166338Seric		unreachable" message they closes all open connections to
297266338Seric		that host.  However, some firewall gateways send this message
297366338Seric		if you try to connect to an unauthorized port, such as the
297466338Seric		IDENT port (113).  Thus, no email can be received from such
297566338Seric		hosts.  There is some evidence that versions of Ultrix before
297666338Seric		4.3 do not have this problem.  Thanks to Tom Ivar Helbekkmo
297766338Seric		for pointing out this behaviour to me and to Michael Corrigan
297866338Seric		of U.C. San Diego for informing me about the HPUX problem.
297966338Seric	Allow IPC mailers to return a colon-separated list of hosts in the
298066338Seric		$@ clause; these are searched in order as though they were
298166338Seric		MX records.
298266338Seric	When sending an error report, print the list of addresses tagged
298366338Seric		as bad.  Requested by Allan E Johannesen of WPI.
298466338Seric	Change map function calls to return a status code.  This gets
298566338Seric		passed back as the result of rewrite.  Parseaddr marks
298666338Seric		the address as a QUEUEUP address if the return code is
298766338Seric		EX_TEMPFAIL.  All this to queue properly if the name
298866338Seric		server is down.  This code is not well tested.  This code
298966338Seric		changes the interface to map lookup functions (a fifth
299066338Seric		parameter, int *statp, is added).  Feature requested by
299166338Seric		Dan Oscarsson.
299266338Seric	Don't delete quotes (in the dequote map) if there are spaces in
299366338Seric		the string, since this would cause them to be replaced by
299466338Seric		the SpaceSub character.
299566338Seric	Accept BODY=8BITMIME on SMTP MAIL command.  This isn't advertised
299666338Seric		because the 8BIT to 7BIT translation doesn't exist yet.
299766338Seric		This does add a "bodytype" field to both envelope and
299866338Seric		queue file and a -B command line flag to pass the type in
299966338Seric		during direct invocations.
300066338Seric	Discard return error messages only on responses to responses to
300166338Seric		responses, not on responses to responses.  That is, the
300266338Seric		algorithm is to try return to sender, then return to
300366338Seric		postmaster, then discard.  Previously it discarded
300466338Seric		immediately if the return to sender pass failed.
300566338Seric	CONFIG: back out change to hide unqualified hostnames behind %-hack.
300666338Seric		This screws up local aliases and .forward files.
300766338Seric	CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $];
300866338Seric		some sites only handle completely canonified names.
300966338Seric		Requested by John Gardiner Myers of CMU.
301066338Seric	CONFIG: some UUCP code was still included even if FEATURE(nouucp)
301166338Seric		was specified.
301266338Seric
301366338Seric6.52/6.24	93/04/10
301466338Seric	Clean up some minor glitches on error return messages pointed out
301566338Seric		by Motonori Nakamura of Kyoto University.
301666338Seric	Fix reply() to not reset SmtpReplyBuffer on fatal errors; this
301766338Seric		was supposed to reset SmtpMsg Buffer.  This makes the
301866338Seric		client side code virtually useless.  Reported by Allan
301966338Seric		E Johannesen of WPI and Phil Brandenberger of Swarthmore.
302066338Seric	Better debug messages if fuzzy is disabled, suggested by Allan
302166338Seric		E Johannesen of WPI.
302266338Seric	Offset SmtpReplyBuffer by four in usersmtp when checking for
302366338Seric		loopback.  From Eric Wassenaar.
302466338Seric	Don't set $s until after runinchild in srvrsmtp -- otherwise
302566338Seric		it gets cleared.  From Eric Wassenaar.
302666338Seric	Implement IDA-style $&x for deferred macro expansion.
302766338Seric	More POSIX compatibility.
302866338Seric	CONFIG: Hide unqualified hostnames behind %-hack using $s as the
302966338Seric		actual sender.  This is only done if $r is non-null, that
303066338Seric		is, if this is not locally submitted mail.
303166338Seric	CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host
303266338Seric		names to internet domains.  A program contributed by
303366338Seric		John Gardiner Myers of CMU to create the maps is included
303466338Seric		in the contrib directory (in the "misc" tar file).
303566338Seric	CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP
303666338Seric		hosts.  There is currently no tool to create this map.
303766338Seric
303866338Seric6.51/6.23	93/04/04
303966338Seric	Add D= mailer flag to specify a path of possible working directories
304066338Seric		in which to execute the mailer.  This is intended for the
304166338Seric		prog mailer; some shells can get upset if they don't have
304266338Seric		access to the current directory.
304366338Seric	Add RFC 1413 (IDENT) protocol support.  This is only very loosely
304466338Seric		tested.  This adds a $_ macro to be the authenticated
304566338Seric		info (in ``user@domain [address]'' form) and debug flag
304666338Seric		9 to trace the protocol.
304766338Seric	Check for loopbacks in usersmtp instead of srvrsmtp -- there is no
304866338Seric		reason for a local agent to not be talking to the localhost
304966338Seric		(although the inverse is not true).
305066338Seric	Add a few hooks for automated map rebuilding.  This is certainly
305166338Seric		not done yet.
305266338Seric	CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is,
305366338Seric		user's home directory then the root.
305466338Seric	CONFIG: Log RFC 1413 identification in Received: line.
305566338Seric
305666338Seric6.50/6.22	93/04/01
305766338Seric	Fixes to requeueing code to make it compute priority, nrcpts,
305866338Seric		and the like properly.
305966338Seric
306066338Seric6.49/6.22	93/04/01
306166338Seric	Diagnose incorrect privacy flags.  Suggested by Bryan Costales
306266338Seric		of ICSI.
306366338Seric	Some ANSI C fixes.
306466338Seric	Arrange to quote backslashes as well as other special characters
306566338Seric		in the phrase part of a route-addr.
306666338Seric	Some fixes to FallBackMX code suggested by Motonori Nakamura of
306766338Seric		Kyoto University.
306866338Seric	More vigorous zeroing of CurHostAddr to avoid logging of bogus
306966338Seric		host addresses when you are actually just printing
307066338Seric		information from the MCI structure; problem noted by
307166338Seric		Michael Corrigan of U.C. San Diego.
307266338Seric	Don't ignore rest of queue if any job is not runnable.  This can
307366338Seric		also cause an incorrect job to be lost.  Fix from
307466338Seric		Eric Wassenaar.
307566338Seric	Always respond "quickly" to RCPT command; do alias expansion and
307666338Seric		the like later.  This also means that mail for lists that
307766338Seric		have errors will be acccepted, and an error sent back
307866338Seric		later.  This is done by instantiating the queue file
307966338Seric		and then immediately running and requeueing it.
308066338Seric
308166338Seric6.48/6.22	93/03/30
308266338Seric	Fix incorrect diagnosis of infinite loop in ruleset.  Problem noted
308366338Seric		by several people.
308466338Seric	Improve information printed when infinite loops are discovered.
308566338Seric	Zero CurHostAddr to fix erroneous internet addresses in log when no
308666338Seric		addresses can be bound.  Pointed out by Motonori Nakamura
308766338Seric		of Kyoto University.
308866338Seric	"Probe" SMTP connections using RSET instead of NOOP "just in case".
308966338Seric		Suggested by John Gardiner Myers of CMU.
309066338Seric	Don't warn about -f if you are setting sender to yourself.
309166338Seric
309266338Seric6.47/6.22	93/03/29
309366338Seric	Fix incompatible call to endmailer in smtpquit which causes core
309466338Seric		dumps.  Noted by Allan E Johannesen of WPI.
309566338Seric	HPUX portability changes from Michael J. Corrigan of UC San Diego.
309666338Seric	Require MAIL before RCPT command in srvrsmtp.c.  This had been
309766338Seric		intentional from the 821 draft days when the order wasn't
309866338Seric		clear, but is silly now.
309966338Seric	Fix bug in nis_magic routine that was initializing parameters
310066338Seric		incorrectly.  Fix from Takahiro Kanbe of Fuji Xerox
310166338Seric		Information Systems Co., Ltd.
310266338Seric	Change default for PrivacyFlags in conf.c to 0 -- since it always
310366338Seric		"or"s in new values, there was no way to turn off the
310466338Seric		AuthWarning stuff.
310566338Seric	Add O option to set SMTP daemon options.
310666338Seric	Add V option to set fallback MX host.  This always sorts at lower
310766338Seric		priority than anything it gets from the name server.  It
310866338Seric		should only be used for environments with very bad network
310966338Seric		connectivity.  Requested by several people.
311066338Seric	Log sending info.  It's not clear this is a good idea.
311166338Seric	CONFIG: fix typo in mailertable code.  Noted by Phil Brandenberger
311266338Seric		of Swarthmore.
311366338Seric	CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options
311466338Seric		O and V, respectively.
311566338Seric
311666338Seric6.46/6.21	93/03/26
311766338Seric	Fix botch in server SMTP that broke transactions that did not
311866338Seric		use HELO first (like MH).  Fix from Michael Corrigan
311966338Seric		of U.C. San Diego.
312066338Seric	Fall back to other MX records if there is an error anywhere
312166338Seric		in delivery (actually on MAIL or DATA -- RCPT is harder).
312266338Seric		Suggested by John Gardiner Myers and Motonori Nakamura.
312366338Seric	Revert to non-prototypes -- it turns out that our ANSI C
312466338Seric		compiler is more forgiving than most others about
312566338Seric		mixing prototyped extern declarations with non-prototyped
312666338Seric		function definitions.
312766338Seric	Fix a problem with multi-word class matching pointed out by
312866338Seric		Neil Rickert.  Given:
312966338Seric			CX b a.b.c
313066338Seric			R$+ $=X $+	$: $1 < $2 > $3
313166338Seric		the input "user@a.b.c" failed instead of being properly
313266338Seric		rewritten as "user@a.<b>.c".
313366338Seric	Neil also convinced me that it was correct that $~ should match
313466338Seric		only one token -- the problem is that it's always possible
313566338Seric		to add another token, so $~ matches far too eagerly.
313666338Seric
313766338Seric6.45/6.21	93/03/25
313866338Seric	Implement multi-word classes (properly!).
313966338Seric
314066338Seric6.44/6.21	93/03/25
314166338Seric	Add X-Authentication-Warning: headers to clue users into possible
314266338Seric		attempts to forge mail.  This is on the authwarnings
314366338Seric		privacy flag, but is the default.  Suggested by Bryan
314466338Seric		Costales of ICSI.
314566338Seric	Pass default units for convtime in so they can be more reasonable.
314666338Seric	Allow config files to always add a new Comments: header (i.e.,
314766338Seric		they will be added even if an old one already exists).
314866338Seric		Suggested by Bryan Costales of ICSI.
314966338Seric	Allow config files to delete an existing Return-Path: header.
315066338Seric		These should only be added at final delivery.  Suggested
315166338Seric		by Bryan Costales of ICSI.
315266338Seric	Some debugging additions.  Suggested by Bryan Costales of ICSI.
315366338Seric	Clean up logging of Family 0 addresses.  Noted by David Muir
315466338Seric		Sharnoff and others.
315566338Seric	Add a "dequote" map class.  This allows config files to strip
315666338Seric		quotes off of addresses.  Note that this is not a builtin
315766338Seric		map, just a class -- so you have to define the map
315866338Seric		using the K line.
315966338Seric	Fix a bug in the queueup() loop getting a locked tf where in
316066338Seric		very odd cases it can fall off the bottom and core dump.
316166338Seric		Of course, it was P{r Emanuelsson who found it....
316266338Seric	Open a new transcript when splitting an envelope.  Problem found
316366338Seric		by Allan E Johannesen of WPI.
316466338Seric	Improved error output in endmailer if the mailer core dumps.
316566338Seric	CONFIG: Fix typo in UUCP mailer definition.
316666338Seric	CONFIG: Default several of the new options on: eight bit input,
316766338Seric		privacy flags set to "authwarnings", and message warning
316866338Seric		set to 4h.
316966338Seric	CONFIG: Use dequote map.
317066338Seric
317166338Seric6.43/6.20	93/03/23
317266338Seric	Fix problem with assumption of an sa_len field in a generic
317366338Seric		sockaddr -- it turns out that most vendors haven't
317466338Seric		picked up this (very important) fix.
317566338Seric	Change compilation flags for daemon code -- select one or both
317666338Seric		of NETINET or NETISO, but don't ever set DAEMON manually.
317766338Seric	CONFIG: add FEATURE(mailertable) to do IDA-style mailertables.
317866338Seric
317966338Seric6.42/6.19	93/03/19
318066338Seric	Use Postmaster as default fallback return address, not root.
318166338Seric	POSIX changes for file descriptor handling.
318266338Seric	Diagnose errors writing new queue file.
318366338Seric	If you change the owner using an owner- alias, also change the
318466338Seric		error mode to EM_MAIL so that errors don't get dropped
318566338Seric		into an inappropriate directory.  Problem noted by
318666338Seric		Allan E Johannesen of WPI.
318766338Seric	If you are su'ed to root, send email as who you really are, not
318866338Seric		as root.  From Brian Kantor of U.C. San Diego.
318966338Seric	Allow warning messages to be sent after a configurable interval
319066338Seric		has passed without delivery.  The message is sent only
319166338Seric		once per envelope.  This changes the format of the qf
319266338Seric		file to have an F line, and the format of the T option
319366338Seric		to accept take the format "return/warn" (both intervals).
319466338Seric	Don't force all local names to lower case -- this was left over
319566338Seric		from the wierd handling of case mapping on aliases.  It
319666338Seric		is now driven (as expected) by the "u" mailer flag.
319766338Seric		Problem noted by P{r Emanuelsson.
319866338Seric	Fix problem that caused headers on returned email to be trashed;
319966338Seric		they were getting freed, but are still accessible via
320066338Seric		BlankEnvelope.
320166338Seric	Fix problem that caused bogus ids to be created on returned
320266338Seric		mail.
320366338Seric	Add support for ISO and other non-INET networking.  This is by
320466338Seric		no means finished yet.  This does assume a lot of other
320566338Seric		system support, like a version of gethostbyname that
320666338Seric		returns non-AF_INET addresses.
320766338Seric	CONFIG: change default on prog mailer to keep upper case in
320866338Seric		user names (i.e., in the program command line).
320966338Seric	CONFIG: strip trailing dots off of hosts in uucp mailer before
321066338Seric		convert to bang format.
321166338Seric	CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H
321266338Seric		(MAIL_HUB) delivery that doesn't add local domain.  Note
321366338Seric		that this violates 821, but is probably "more correct"
321466338Seric		for what we are trying to do.  Problem pointed out by
321566338Seric		Michael Graff of Iowa State.
321666338Seric
321766338Seric6.41/6.18	93/03/18
321866338Seric	Clean up unnecessary creates of queue ids (i.e., empty qf files)
321966338Seric		when not needed, such as when starting up an SMTP
322066338Seric		connection.
322166338Seric	Fix problem where split envelopes aren't instantiated in the queue.
322266338Seric		This is quite a serious bug.
322366338Seric	Owner- aliases had problems with leading spaces causing a
322466338Seric		premature delimitation.
322566338Seric
322666338Seric6.40/6.18	93/03/18
322766338Seric	Have ending 250 (after DATA) include the id; suggested by
322866338Seric		Brian Kantor of UC San Diego.
322966338Seric	Add logging on envelope splitting.
323066338Seric	Change queue ids to have one more letter encoding the hour of
323166338Seric		the day so that during a single day there is a greater
323266338Seric		likelihood of uniqueness; requested by Brian Kantor.
323366338Seric
323466338Seric6.39/6.18	93/03/18
323566338Seric	Fix minor compile problem if LOCKF is defined.
323666338Seric	Define size of tobuf in conf.h.  Observed by Toshinari Takahashi
323766338Seric		of Toshiba.
323866338Seric	Restore e_sender -- this is equivalent to e_from.q_paddr without
323966338Seric		decorations such as angle brackets and comments.
324066338Seric	OSF/1 on Alpha changes from Allan E Johannesen of WPI.
324166338Seric	CONFIG: fix typo in S3 for list syntax (;: => :;).  Thanks to
324266338Seric		Christopher Hoover for noting the problem.
324366338Seric
324466338Seric6.38/6.17	93/03/17
324566338Seric	Pass envelope to disconnect to avoid another use of CurEnv, which
324666338Seric		can apparently end up being null at inopportune times.
324766338Seric	Log "received from" as "relay=" for consistency (suggested by
324866338Seric		John Gardiner Myers).
324966338Seric	Fix major bug in header handling:  if no From: line existed in
325066338Seric		the header (so sendmail inserts one), and the sender is
325166338Seric		an alias that has an owner, the From: line shows the
325266338Seric		owner (as well as the envelope).  Fixed by early binding
325366338Seric		the headers (which will change debugging output).
325466338Seric	HPUX portability patches from Michael J. Corrigan of UC San Diego.
325566338Seric	Some attempts to adapt better to out of open file conditions.
325666338Seric	Some changes to ctladdr handling in queue files.
325766338Seric
325866338Seric6.37/6.17	93/03/16
325966338Seric	MAJOR CHANGE:  delete e_sender and e_returnpath (why are these
326066338Seric		different from e_from?) and $< macro.
326166338Seric	Log correct IP address in relay= field even if the connection
326266338Seric		times out.
326366338Seric	Log "received from [RESPONSE]" on EF_RESPONSE messages (from
326466338Seric		John Gardiner Myers).
326566338Seric	Fixes to SysExMsg logging (sometimes just got "message: %s"
326666338Seric		instead of "message: error message"), noted by Eric
326766338Seric		Wassenaar.  Also reported by Motonori Nakamura.
326866338Seric	Improvements to MX piggybacking code, from Motonori Nakamura.
326966338Seric	Fix case where CurHostName points to an auto variable that has
327066338Seric		been deallocated (from Motonori Nakamura).
327166338Seric	Fix bug causing newlines to be included in aliases if option
327266338Seric		"n" (check alias RHS) is set; bug noted by David Muir
327366338Seric		Sharnoff.
327466338Seric	Fix problem causing user names that should be mapped to lower
327566338Seric		case to not be mapped if they are sent during a queue
327666338Seric		run.  This greatly simplifies the case mapping code.
327766338Seric		Problem noted by Allan E Johannesen of WPI.
327866338Seric	Don't do recipient address rewriting in buildaddr.  This
327966338Seric		improperly did recipient rewriting on sender addresses,
328066338Seric		and just seems bogus in general -- but the change could
328166338Seric		break some .cf files.
328266338Seric	Pass TZ envariable to child processes for System V.
328366338Seric	CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to
328466338Seric		define those rulesets.
328566338Seric	KNOWN PROBLEM:  I have seen some problems on SunOS that causes
328666338Seric		the User Data Base to give errors on some addresses.  I
328766338Seric		have tracked the problem back at least as far as 93.02.15
328866338Seric		(version 6.22).  Running with debugging on makes it
328966338Seric		go away, so I conclude that it is referencing uninitialized
329066338Seric		stack data.  I haven't been able to track this down yet.
329166338Seric
329266338Seric6.36/6.16	93/03/08
329366338Seric	Allow local mailer to specify $@host -- this lets you assign the
329466338Seric		"foo" part of jgm+foo to $h for passing in to the local
329566338Seric		mailer.
329666338Seric	Additional debug printing in getcanonname (show query type).
329766338Seric	Don't add the e_fromdomain on sender addresses -- this interacts
329866338Seric		wierdly with the owner- code.
329966338Seric	Improve delivery logging to not log obvious or meaningless stuff.
330066338Seric	Include numeric IP address in Received: lines per RFC 1123 section
330166338Seric		5.2.8.
330266338Seric	Fixed a bug in checking stat() return value if restrictmailq is
330366338Seric		set.  Also, check the entire group set instead of just the
330466338Seric		primary group.  Both from John Gardiner Myers.
330566338Seric	Don't have usrerr automatically print errno, since this is often
330666338Seric		misleading.
330766338Seric	Use transienterror() in makeconnection after connect() fails and
330866338Seric		in openmailer after execve() fails (from Eric Wassenaar).
330966338Seric		Also moved transienterror() from util.c to conf.c.
331066338Seric	Clean up from= logging on response messages.
331166338Seric	Undo patch allowing prescan to return a null vector -- it breaks
331266338Seric		too many things.
331366338Seric	Config: FEATURE(notsticky) lets you use UDB for everything coming
331466338Seric		in to the machine, even if it is specifically targetted
331566338Seric		to this machine.  Without it, UDB is bypassed if the user
331666338Seric		name is fully qualified.
331766338Seric	Config: fix another minor botch with <> (local mailer wasn't
331866338Seric		mapping them properly).
331966338Seric
332066338Seric6.35/6.15	93/03/05
332166338Seric	Fix getrealhostname to return null if sinlen <= 0 -- this can
332266338Seric		occur if stdin is a pipe.
332366338Seric	Avoid infinite loop in getcanonname if name server return
332466338Seric		NO_DATA (for example).
332566338Seric	Config: avoid having C flag qualify list syntax and error syntax.
332666338Seric
332766338Seric6.34/6.14	93/03/05
332866338Seric	Fix logging in deliver to not pass too many parameters to Ultrix
332966338Seric		versions of syslog.
333066338Seric	Don't write the pid file until after the daemon has actually
333166338Seric		opened and conditioned the connection.
333266338Seric	Consider addresses "different" if their q_uids differ (so that
333366338Seric		two users forwarding to the same program will be seen
333466338Seric		as different, rather than the same).
333566338Seric	Fix problem with bad parameters in main() -- they set ExitStat
333666338Seric		but don't exit.
333766338Seric	Fix null pointer references through RealHostName -- painfully
333866338Seric		discovered by Allan E Johannesen of WPI.
333966338Seric	Fix bug causing user@@localhost to core dump (yuch).
334066338Seric	Config: don't put two @host.dom.ain on users in $=E in SMTP
334166338Seric		mailer.  Also, catch user@ (no host) in ruleset 0.
334266338Seric
334366338Seric6.33/6.13	93/03/03
334466338Seric	Config: add confCW_FILE as the name of the cw configuration file
334566338Seric		(defaults to /etc/sendmail.cw).  From P{r Emanuelsson.
334666338Seric	Allow prescan to return a pointer to an empty list -- this is
334766338Seric		not an error.  Also, clean up error reporting to avoid
334866338Seric		double errors (prescan reports once, then the caller
334966338Seric		reports again).
335066338Seric	Changes to avoid trusting T_ANY queries -- run them, but if you
335166338Seric		don't get the info you expected, do T_A and T_MX queries
335266338Seric		anyhow.  This also fixes an oversight where _res.options
335366338Seric		bits were being ignored.
335466338Seric	If PRIV_NOVRFY is set, use 252 response code instead of 502 per
335566338Seric		RFC 1123 section 5.2.3.  It's not 100% clear that this
335666338Seric		is correct, but it probably works better with stupid
335766338Seric		mailers that do a VRFY and only check the first digit.
335866338Seric
335966338Seric6.32/6.12	93/03/02
336066338Seric	Fix uninitialized variable "protocol" in smtp code.
336166338Seric	Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI.
336266338Seric	Additional hooks for RFC 1427 (ESMTP SIZE extension).  This
336366338Seric		includes requiring that enoughspace() know the system
336466338Seric		block size, which will undoubtedly break most ports.
336566338Seric	Trace flag 19 in use for srvrsmtp.c.
336666338Seric	Additional logging -- notably the sending mailer name.  This
336766338Seric		also changes the delivery logging to strict field=value
336866338Seric		syntax.
336966338Seric	Fix some problems with messages getting sent even to addresses
337066338Seric		that had been marked bad -- from Eric Wassenaar.
337166338Seric	More WIDE changes: accept host name inside [...] as non-MXed
337266338Seric		host.  This is intended ONLY for use inside firewalled
337366338Seric		environments, where the MX points at the gateway.
337466338Seric	Change .cf file conventions so that mapping for <> addresses
337566338Seric		don't have an @ in them (to avoid confusing the C mailer
337666338Seric		flag).  Pointed out by Neil Rickert.
337766338Seric	Config extensions for Sam Leffler's FlexFAX software.
337866338Seric
337966338Seric6.31/6.10	93/02/28
338066338Seric	Fix some more bugs in alias owner code -- there were some wierd
338166338Seric		cases where an error in a non-aliased name would override
338266338Seric		the return info in an aliased name with an owner.
338366338Seric	Changes from WIDE Project, forwarded to me by Motonori Nakamura:
338466338Seric		Log actual delivery host (after MX et al); from
338566338Seric			yasuhiro@dcl.co.jp.
338666338Seric		Log daemon startup.
338766338Seric		Deliver Postmaster copies without a body.
338866338Seric		Better logging of SMTP senders.
338966338Seric		Send all program email as daemon even when local.
339066338Seric	As requested in various forms from many people, accept -qIstring
339166338Seric		to limit queue runs to jobs with queue-id matching string.
339266338Seric		Similarly for -qRstring for recipients, -qSstring for
339366338Seric		senders.
339466338Seric	Initial hooks for ESMTP support (see RFC 1425).
339566338Seric	Fixed a syntax error in the UUCP mailer specification that caused
339666338Seric		core dumps on startup.
339766338Seric	Check for missing A= or P= arguments in mailer definitions.
339866338Seric
339966338Seric6.30/6.10	93/02/27
340066338Seric	Require FROZENCONFIG compilation flag to include frozen
340166338Seric		configuration code.  Frozen configuration is really
340266338Seric		not a very good idea any more, particularly in shared
340366338Seric		library environments.
340466338Seric	Do better checking of errno after opens of :include: and .forward
340566338Seric		files to defer delivery on network and other transient
340666338Seric		errors.  Suggestion from Craig Everhart.
340766338Seric	Fix minor botch in read timeout macro processing.
340866338Seric	Add FEATURE(nouucp) to config files for sites that know absolutely
340966338Seric		nothing about UUCP.
341066338Seric	Add built cf files to distribution tape and clarify how to build
341166338Seric		them if you don't have the Berkeley make.
341266338Seric	Some sizeof(long) portability changes for the Alpha, from Allan
341366338Seric		E Johannesen.
341466338Seric	Add "restrictmailq" privacy flag -- if set, only people in the same
341566338Seric		group as your queue directory can print the queue.  If you
341666338Seric		set this, be sure you also restrict access to log files....
341766338Seric	Fix another bug in owner-list stuff that can cause data files to
341866338Seric		be "lost".
341966338Seric	Fix a bug with queue runs that cause forwards to yourself to go
342066338Seric		into alias/forwarding loops.  I'm still iffy about this
342166338Seric		fix.
342266338Seric	Fix from Eric Wassenaar for suppression of return message code.
342366338Seric
342466338Seric6.29/6.9	93/02/24
342566338Seric	Fix yet another problem in alias owner code -- put the wrong return
342666338Seric		address on the enclosed return-to-sender letter.
342766338Seric
342866338Seric6.28/6.9	93/02/24
342966338Seric	Fix botch in alias owner code that caused it to not operate if the
343066338Seric		error was detected locally.
343166338Seric
343266338Seric6.27/6.9	93/02/24
343366338Seric	M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include
343466338Seric		file <sys/mount.h>.
343566338Seric	Miscellaneous bug fixes from Eric Wassenaar:
343666338Seric		sendmail -bv -t logs the from line even though in verify
343766338Seric			mode only.
343866338Seric		sendmail -v can go into queue mode if shouldqueue returns
343966338Seric			TRUE.
344066338Seric	Add route-addr pruning per RFC 1123 section 5.3.3.  This can be
344166338Seric		disabled using the "R" option.
344266338Seric	Delete (always undocumented) -R flag (save original recipients);
344366338Seric		there are ways to syslog(3) these now.
344466338Seric	Clean up SMTP reply codes -- specify them as needed in the code,
344566338Seric		instead of in conf.c -- this was needed during the NCP to
344666338Seric		TCP transition, but seems silly now.  This also changes
344766338Seric		parameters to message and nmessage.
344866338Seric	Have mailstats read the .cf file to find the sendmail.st file and
344966338Seric		get text versions of mailer names.  An initial version of
345066338Seric		this code was provided by Tuominen Keijo (although the
345166338Seric		comments indicate the good bits were written by "E.V.").
345266338Seric	Add yet more System V compatibility hacks.
345366338Seric	Fix bug in VRFY code (assumes everything must be a local user).
345466338Seric	Allow specification of any of the hard-wired pathnames in the
345566338Seric		Makefile.
345666338Seric	Delete concept of "trusted users" -- this really didn't provide
345766338Seric		any security anyway, and caused some problems.
345866338Seric	Delete last vestige of support for the word "at" as an equivalent
345966338Seric		to the character "@".
346066338Seric	Propagate owner-foo alias information into the envelope sender.
346166338Seric		Based on code from John Gardiner Myers.  This is a major
346266338Seric		semantic change -- beware!
346366338Seric	Allow $@ on LHS to indicate "match zero" -- this is used to match
346466338Seric		the null expression.
346566338Seric
346666338Seric6.26/6.8	93/02/21
346766338Seric	Don't "lose" queue runs.  Very important fix from (who else?)
346866338Seric		Eric Wassenaar.
346966338Seric	Completely reset state on RSET command -- from Eric Wassenaar.
347066338Seric	Send error messages and return receipts using an envelope sender
347166338Seric		of <> regardless of the setting of $n.  Rewriting rules
347266338Seric		can undo this if they feel the necessity, as might be
347366338Seric		needed for networks that don't understand the syntax.
347466338Seric		This is permitted by RFC 821 section 3.6 and required by
347566338Seric		RFC 1123 section 5.3.3.  THIS REQUIRES VERSION 4 CONFIG
347666338Seric		FILES because the rulesets must be able to parse <>
347766338Seric		properly.
347866338Seric	Don't ever send error messages to "<>" -- they will get sent to
347966338Seric		the local postmaster or dumped in /usr/tmp/dead.letter
348066338Seric		instead.  Per RFC 1123 section 5.3.3.
348166338Seric	Explicitly check for email to yourself as a dotted quad.  You
348266338Seric		have to call $[ [ ... ] $] to get this.
348366338Seric	Up the message timeout to five days per RFC 1123 section 5.3.1.1.
348466338Seric	Make all read timeouts individually configurable, as strongly
348566338Seric		recommended by RFC 1123 section 5.3.2.
348666338Seric	Use f_bavail (blocks available to regular users) instead of f_bfree
348766338Seric		(blocks available to superuser) in free block checks.
348866338Seric	Change $d macro to be the current time, not the origination time,
348966338Seric		since this is consistent with how it is used now.
349066338Seric	Generalization of enoughspace from Eric Wassenaar covering
349166338Seric		SGI, Apollo, HPUX, Ultrix, and SunOS.
349266338Seric	Ignore process group signals -- some front ends can do this if
349366338Seric		you kill a window too quickly.  From Eric Wassenaar.
349466338Seric	Change umask to 022.
349566338Seric
349666338Seric6.25/6.8	93/02/20
349766338Seric	Close all cached connections before calling mailers and after
349866338Seric		forking for delivery (caused double closes which resulted
349966338Seric		in false errors).
350066338Seric	Add FEATURE(redirect) in config files -- this allows you to alias
350166338Seric		old addresses to a pointer to the new address that will
350266338Seric		give a 551 error message, but not deliver the mail.
350366338Seric	Some code changes to make the 551 errors look pretty.
350466338Seric	Names of M4 program paths in config files have changed -- they
350566338Seric		are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS.
350666338Seric	Fix a bug in the QSELFREF code having to do with empty .forward
350766338Seric		files, reported by Eric Wassenaar.
350866338Seric	Add option "p" (privacy flags); this allows you to tune how
350966338Seric		picky the SMTP server will be.  This also adds the
351066338Seric		confPRIVACY_FLAGS M4 macro in the config files.
351166338Seric	Add option "b" (minimum blocks free).  If there are fewer than
351266338Seric		this number of blocks free on the filesystem containing
351366338Seric		the queue directory, the SMTP MAIL command will return
351466338Seric		a 452 response and ask you to try again later.  This
351566338Seric		also adds the confMIN_FREE_BLOCKS M4 macro in the config
351666338Seric		files.
351766338Seric	Made VRFY just verify (doesn't expand aliases and .forward files);
351866338Seric		EXPN does full expansion.  RCPT in queue-only mode also
351966338Seric		doesn't chase aliases and .forward.
352066338Seric
352166338Seric6.24/6.7	93/02/19
352266338Seric	Increase the number of domain search entries in domain.c to allow
352366338Seric		for the extra "" entry indicating the root domain.
352466338Seric		Reported by Motonori Nakamura of Kyoto U.
352566338Seric	Add a "SMART_HOST" in the configs for UUCP-connected sites that
352666338Seric		want to forward all mail with extra "@"s to that site.
352766338Seric		Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to
352866338Seric		be specified as ``mailer:hostname'' to use an alternate
352966338Seric		mailer.
353066338Seric	Clarified and updated some wording in the Operations Guide.
353166338Seric	Add the "c" mailer flag -- this suppresses all comment parts of
353266338Seric		addresses (requested by John Curran of NEARnet).
353366338Seric	Have -v print prompts in -bt mode even if stdin is not a terminal
353466338Seric		(default behaviour is to be silent if not reading from
353566338Seric		a terminal).  Suggested by Bryan Costales, ICSI.
353666338Seric	Move the metacharacters from C0 space (\001-\037) into C1 space
353766338Seric		(\201-\237).  This also fixes a bunch of potential bugs
353866338Seric		with G1 characters (\240-\276) in headers relating to
353966338Seric		negative numbers passed to isspace() et al.
354066338Seric	Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias
354166338Seric		database if YPCOMPAT is #defined.  Enhancement from
354266338Seric		Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd.
354366338Seric	Add "list" Precedence (-30); this can be used with old sendmails
354466338Seric		which will map to precedence 0 (which will return error
354566338Seric		messages).  Suggested by Stephen R. van den Berg.
354666338Seric	Many bug fixes from Eric Wassenaar of the National Institute for
354766338Seric			Nuclear and High-Energy Physics, Amsterdam:
354866338Seric		Clear timeouts properly on open failures in include().
354966338Seric		Don't dereference through NULL if no home directory found.
355066338Seric		Re-establish SIGCHLD signal on System 5 in reapchild().
355166338Seric		Avoid NULL pointer reference on -pFOO flag.
355266338Seric		Properly handle backslash escapes in comments.
355366338Seric		Correctly check reply status on SMTP NOOP command.
355466338Seric		Properly save SMTP error message if peer gives
355566338Seric			"Service Shutting Down" message.
355666338Seric		Avoid writing to the transcript if it couldn't be opened.
355766338Seric		Signal errors in SMTP children to parent properly.
355866338Seric	Handle self references in a list more globally (include a
355966338Seric		QSELFREF bit in the address flags).  This enhancement
356066338Seric		was suggested by Eric Wassenaar.
356166338Seric	Use initgroups() in hpux, even though it's System-V based.  The
356266338Seric		HASINITGROUPS compile flag can set this on other systems.
356366338Seric		This HPUX behaviour was pointed out by Eric Wassenaar.
356466338Seric
356566338Seric6.23/6.6	93/02/16
356666338Seric	Clean up handling of LogLevel to make it easier to figure out
356766338Seric		what's on what level.
356866338Seric	Change log levels to have some consistency:
356966338Seric		1    serious system failures, security problems
357066338Seric		2    lost communications, protocol failures
357166338Seric		3    other serious failures
357266338Seric		4    minor errors
357366338Seric		5    message collection
357466338Seric		6    vrfy logging, creation of return-to-sender
357566338Seric		7    delivery failures
357666338Seric		8    delivery successes
357766338Seric		9    delivery tempfails (queue ups)
357866338Seric		10   database expansion
357966338Seric		>64  debugging
358066338Seric	Allow IDA-style separated processing on S= and R= in Mailer
358166338Seric		definition lines.  Note that rulesets 1 and 2 are
358266338Seric		still used for both addresses as before.  Bruce Lilly
358366338Seric		gave a convincing argument that RFC976 insists on
358466338Seric		this behaviour.
358566338Seric	Added some time zones to arpatounix -- they may not be in the
358666338Seric		standards, but they are in use.  However, I may delete
358766338Seric		arpatounix entirely -- there appears to be no reason
358866338Seric		for it to exist.
358966338Seric	Change to UUCP mailer (in cf directory) to try to do a saner job.
359066338Seric		I'm still not certain about this mailer in general.
359166338Seric
359266338Seric6.22/6.5	93/02/15
359366338Seric	Fix bug that prevents saving letters in ~/dead.letter.
359466338Seric	Don't add angle brackets in VRFY command if angle brackets already
359566338Seric		exist in the address.
359666338Seric	Fix bogus error message in udbexpand.
359766338Seric	Null terminate host buffers in buildaddr (broken in 6.21) --
359866338Seric		IMPORTANT FIX!!
359966338Seric
360066338Seric6.21/6.5	93/02/15
360166338Seric	Fix another incorrect error message in alias.c, found by Azuma
360266338Seric		Okamoto.
360366338Seric	Fix a couple of problems in the more-configurable config files,
360466338Seric		found by Tom Ivar Helbekkmo.
360566338Seric	Fix problem with quoted :include: entries.
360666338Seric	Don't duplicate the filename on verbose printing of .forward and
360766338Seric		:include: contents.
360866338Seric	Extend size of prescan buffer (to allow bigger addresses).  Also,
360966338Seric		detect some buffer overflows.
361066338Seric	Log user SMTP protocol errors (log level 4).
361166338Seric
361266338Seric6.20/6.4	93/02/14
361366338Seric	Fix another problem in the MCI state machine caused when there
361466338Seric		were errors generated from the other end to commands
361566338Seric		other than RCPT.
361666338Seric
361766338Seric6.19/6.4	93/02/14
361866338Seric	Include load average support for DEC Alpha running OSF/1.
361966338Seric	Fix multiple-response problem with errors in MAIL From: line.
362066338Seric	Fix SMTP reply codes for invalid address syntaxes (give 501;
362166338Seric		never give multiple error messages for a single message).
362266338Seric	Fix problem where a cached connection timeout rejects all
362366338Seric		later connects to that host.
362466338Seric	Fix incorrect error message if alias.c is compiled with DBM only.
362566338Seric	Additional changes to fix nested conditionals (from Bruce Lilly).
362666338Seric	Recover more gracefully from operating system failures, particularly
362766338Seric		NULL returns from openmailer (from Noritoshi Demizu,
362866338Seric		OMRON Corporation).
362966338Seric	Log forward, alias, and userdb expand operations on log level 10;
363066338Seric		concept suggested by P{r (Pell) Emanuelsson.
363166338Seric	Changes for HPUX 8.07 compatibility.
363266338Seric
363366338Seric6.18/6.4	93/02/12
363466338Seric	Allow any config option to be set using an M4 define.
363566338Seric	Change UNAME compile flag to HASUNAME for IDA compatibility
363666338Seric		(besides, it's a better name).
363766338Seric	Note in README that on SunOS it must be linked -Bstatic.
363866338Seric	Fairly major change in domain.c to handle wildcard MX records
363966338Seric		more rationally.  NOTE: the "w" option (no wildcard MX
364066338Seric		records match local domain) has been eliminated.
364166338Seric	Fix some unset variable references pointed out by Bruce Lilly.
364266338Seric	Fix host name in process titles when using cached connection.
364366338Seric
364466338Seric6.17/6.3	93/01/28
364566338Seric	Fix System 5 compatibility changes to be compatible with the rest
364666338Seric		of the world.
364766338Seric
364866338Seric6.16/6.3	93/01/28
364966338Seric	Experimental fix for problem handling errors in the SMTP
365066338Seric		protocol in conjunction with connection caching.
365166338Seric	System 5 compatibility changes.
365266338Seric
365366338Seric6.15/6.3	93/01/26
365466338Seric	Fix a bug that causes local mail delivered using -odq to be
365566338Seric		eliminated as a duplicate (because it matched the
365666338Seric		ctladdr, now passed in as a C line).  These changes
365766338Seric		are pretty tricky......
365866338Seric
365966338Seric6.14/6.3	93/01/25
366066338Seric	Add debugging for some MCI errors.
366166338Seric
366266338Seric6.13/6.3	93/01/22
366366338Seric	Fix -e compatibility flag to take a value.
366466338Seric	Fix a couple of minor compilation warnings on Sun cc.
366566338Seric	Improve error messages in a few cases to be more self-explanatory.
366666338Seric
366766338Seric6.12/6.3	93/01/21
366866338Seric	Fix yet-another problem with environment handling, pointed out
366966338Seric		by Yoshitaka Tokugawa and Tom Ivar Helbekkmo.
367066338Seric	Some heuristics to try to limit resource exhaustion problems
367166338Seric		if a downstream host has been down for a long time.
367266338Seric	Fix problem with incorrect host name being logged in "Connection
367366338Seric		timed out" messages (from Tom Ivar Helbekkmo).
367466338Seric	Fix some ANSI C problems (from Takahiro Kanbe).
367566338Seric	Properly log message sender on returned mail during queue run.
367666338Seric	Count number of recipients properly.
367766338Seric	Fix a problem in yp map code.
367866338Seric	Diagnose "message timed out" (from Motonori Nakamura).
367966338Seric
368066338Seric6.11/6.3	93/01/20
368166338Seric	Fix problem with address delimitor inside quotes.
368266338Seric	Define $k and $=k to be the UUCP name (from the uname call)
368366338Seric		based on code from Bruce Lilly.
368466338Seric
368566338Seric6.10/6.2	93/01/18
368666338Seric	Implement arpatounix (largely code from Bruce Lilly).
368766338Seric	Log more info (suggested by John Myers).
368866338Seric	Allow nested $?...$|...$. (inspired by code from Bruce Lilly of
368966338Seric		Sony US).
369066338Seric	POSIX compatibility (noted by Keith Bostic).
369166338Seric	Handle SMTP MAIL command errors properly (urged by several people,
369266338Seric		notably John Myers of CMU).
369366338Seric	Do early diagnosis of .cf errors (notably referencing a RHS
369466338Seric		substitution that isn't on the LHS).
369566338Seric	Adjust checkpointing to better handle batched recipients, suggested
369666338Seric		by John Myers.
369766338Seric	Fix miscellaneous bugs.
369866338Seric	(config files:)  Implement MAIL_HUB for all local mail (to handle
369966338Seric		NFS-mounted directories) as urged by Tom Ivar Helbekkmo
370066338Seric		of the Norwegian School of Economics.
370166338Seric
370266338Seric6.9/6.1 	93/01/13
370366338Seric	Environment handling simplification/bug fix -- child processes
370466338Seric		get a minimal, fixed environment.  This avoids different
370566338Seric		behaviour in queue runs.
370666338Seric	Handle commas inside comments properly.
370766338Seric	Properly limit large messages submitted in -obq mode.
370866338Seric
370966338Seric6.8/6.1		93/01/10
371066338Seric	Check mtime of thaw file against .cf and sendmail binary, based on
371166338Seric		code from John Myers.
371266338Seric
371366338Seric6.7/6.1		93/01/10
371466338Seric	MX piggybacking, based on code from John Myers@CMU.
371566338Seric	Allow checkcompat to return -1 to mean tempfail.
371666338Seric	Bug fix in m_mno computation.
371766338Seric
371866338Seric6.6/6.1		93/01/09
371966338Seric	Tuning of queueing functions as recommended by John Gardiner Myers.
372066338Seric	Return mail headers (no body) on messages with negative precedence.
372166338Seric	Minor other bug fixes.
372266338Seric
372366338Seric6.5/6.1		93/01/03
372466338Seric	Fix botch causing queued headers to have ?XX? prefixes.
372566338Seric
372666338Seric6.4/6.1		93/01/02
372766338Seric	Changes to recognize special mailer types (e.g., file) early.
372866338Seric
372966338Seric6.3/6.1		93/01/01
373066338Seric	Pass timeouts to sfgets.
373166338Seric	Check for control characters in addresses.
373266338Seric	Fixed deferred error reporting.
373366338Seric	Report duplicate aliases.
373466338Seric	Handle mixed case recursive aliases.
373566338Seric	Misc bug fixes.
373666338Seric
373766338Seric6.2/6.1		92/12/30
373866338Seric	Put return-receipt-to on a conf.c flag (but don't set it).
373966338Seric	Fix minor syslog problem.
3740