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