166352Seric SENDMAIL RELEASE NOTES 2*69632Seric @(#)RELEASE_NOTES 8.7.Beta (Berkeley) 05/23/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 8*69632Seric8.7/8.7 95/xx/xx CURRENTLY IN BETA PRERELEASE!!! 9*69632Seric Fix a problem that could cause sendmail to run out of file 10*69632Seric descriptors due to a trashed data structure after a 11*69632Seric vfork. Fix from Brian Coan of the Institute for 12*69632Seric Global Communications. 13*69632Seric Change the VRFY response if you have disabled VRFY -- some 14*69632Seric people seemed to think that it was too rude. 15*69632Seric Avoid reference to uninitialized file descriptor if HASFLOCK 16*69632Seric was not defined. This was used "safely" in the sense 17*69632Seric that it only did a stat, but it would have set the 18*69632Seric map modification time improperly. Problem pointed out 19*69632Seric by Roy Mongiovi of Georgia Tech. 20*69632Seric Clean up the Subject: line on warning messages and return 21*69632Seric receipts so that they don't say "Returned mail:"; this 22*69632Seric can be confusing. 23*69632Seric Move ruleset entry/exit debugging from 21.2 to 21.1 -- this is 24*69632Seric useful enough to make it worthwhile printing on "-d". 25*69632Seric Avoid logging alias statistics every time you read the alias 26*69632Seric file on systems with no database method compiled in. 27*69632Seric If you have a name with a trailing dot, and you try looking it 28*69632Seric up using gethostbyname without the dot (for /etc/hosts 29*69632Seric compatibility), be sure to turn off RES_DEFNAMES and 30*69632Seric RES_DNSRCH to avoid finding the wrong name accidently. 31*69632Seric Problem noted by Charles Amos of the University of 32*69632Seric Maryland. 33*69632Seric Don't do timeouts in collect if you are not running SMTP. 34*69632Seric There is nothing that says you can't have a long 35*69632Seric running program piped into sendmail (possibly via 36*69632Seric /bin/mail, which just execs sendmail). Problem reported 37*69632Seric by Don "Truck" Lewis of Silicon Systems. 38*69632Seric Try gethostbyname() even if the DNS lookup fails iff option I 39*69632Seric is not set. This allows you to have hosts listed in 40*69632Seric NIS or /etc/hosts that are not known to DNS. It's normally 41*69632Seric a bad idea, but can be useful on firewall machines. This 42*69632Seric should really be broken out on a separate flag, I suppose. 43*69632Seric Avoid compile warnings against BIND 4.9.3, which uses function 44*69632Seric prototypes. From Don Lewis of Silicon Systems. 45*69632Seric Avoid possible incorrect diagnosis of DNS-related errors caused 46*69632Seric by things like attempts to resolve uucp names using 47*69632Seric $[ ... $] -- the fix is to clear h_errno at appropriate 48*69632Seric times. From Kyle Jones of UUNET. 49*69632Seric SECURITY: avoid denial-of-service attacks possible by destroying 50*69632Seric the alias database file by setting resource limits low. 51*69632Seric This involves adding two new compile-time options: 52*69632Seric HASSETRLIMIT (indicating that setrlimit(2) support is 53*69632Seric available) and HASULIMIT (indicating that ulimit(2) support 54*69632Seric is available -- the Release 3 form is used). The former 55*69632Seric is assumed on BSD-based systems, the latter on System 56*69632Seric V-based systems. Attack noted by Phil Brandenberger of 57*69632Seric Swarthmore University. 58*69632Seric New syntaxes in test (-bt) mode: 59*69632Seric ``.Dmvalue'' will define macro "m" to "value". 60*69632Seric ``.Ccvalue'' will add "value" to class "c". 61*69632Seric ``.Sruleset'' will dump the contents of the indicated 62*69632Seric ruleset. 63*69632Seric ``-ddebug-spec'' is equivalent to the command-line 64*69632Seric -d debug flag. 65*69632Seric ``$m'' will print the value of macro "m". 66*69632Seric ``/mx host'' returns the MX records for ``host''. 67*69632Seric ``/try address'' will parse address, returning the value of 68*69632Seric crackaddr (essentially, the comment information) 69*69632Seric and the parsed address (the same as -bv). 70*69632Seric Somewhat better handling of UNIX-domain socket addresses -- it 71*69632Seric should show the pathname rather than hex bytes. 72*69632Seric Restore ``-ba'' mode -- this reads a file from stdin and parses 73*69632Seric the header for envelope sender information and uses 74*69632Seric CR-LF as message terminators. It was thought to be 75*69632Seric obsolete (used only for Arpanet NCP protocols), but it 76*69632Seric turns out that the UK ``Grey Book'' protocols require 77*69632Seric that functionality. 78*69632Seric Fix a fix in previous release -- if gethostname and gethostbyname 79*69632Seric return a name without dots, and if a DNS lookup of that 80*69632Seric name fails, wait one minute and try again even if DNS 81*69632Seric not specified in the config file -- the problem is that 82*69632Seric this code is executed before the config file is read. 83*69632Seric This can result in an extra 60 second delay on startup 84*69632Seric if (1) you have DNS compiled in, (2) you are not running 85*69632Seric DNS, (3) your system hostname (as returned by hostname(1)) 86*69632Seric has no dot, AND (4) the canonical name listed in /etc/hosts 87*69632Seric or your NIS map has no dot. 88*69632Seric Check for proper domain name on HELO and EHLO commands per 89*69632Seric RFC 1123 section 5.2.5. Problem noted by Thomas Dwyer III 90*69632Seric of Michigan Technological University. 91*69632Seric Relax chownsafe rules slightly -- old version said that if you 92*69632Seric can't tell if _POSIX_CHOWN_RESTRICTED is set (that is, 93*69632Seric if fpathconf returned EINVAL or ENOSYS), assume that 94*69632Seric chown is not safe. The new version falls back to whether 95*69632Seric you are on a BSD system or not. This is important for 96*69632Seric SunOS, which apparently always returns one of those 97*69632Seric error codes. This impacts whether you can mail to files 98*69632Seric or not. 99*69632Seric Syntax errors such as unbalanced parentheses in the configuration 100*69632Seric file could be omitted if you had "Oem" prior to the 101*69632Seric syntax error in the config file. Change to always print 102*69632Seric the error message. It was especially wierd because it 103*69632Seric would cause a "warning" message to be sent to the Postmaster 104*69632Seric for every message sent (but with no transcript). Problem 105*69632Seric noted by Gregory Paris of Motorola. 106*69632Seric Rewrite collect and putbody to handle full 8-bit data, including 107*69632Seric zero bytes. These changes are internally extensive, but 108*69632Seric should have minimal impact on external function. 109*69632Seric Allow full words for option names -- if the option letter is 110*69632Seric (apparently) a space, then take the word following -- e.g., 111*69632Seric O MatchGECOS=TRUE 112*69632Seric The full list of old and new names is as follows: 113*69632Seric 7 SevenBitInput 114*69632Seric 8 EightBitMode 115*69632Seric A AliasFile 116*69632Seric a AliasWait 117*69632Seric B BlankSub 118*69632Seric b MinFreeBlocks/MaxMessageSize 119*69632Seric C CheckpointInterval 120*69632Seric c HoldExpensive 121*69632Seric D AutoRebuildAliases 122*69632Seric d DeliveryMode 123*69632Seric E ErrorHeader 124*69632Seric e ErrorMode 125*69632Seric f SaveFromLine 126*69632Seric F TempFileMode 127*69632Seric G MatchGECOS 128*69632Seric H HelpFile 129*69632Seric h MaxHopCount 130*69632Seric i IgnoreDots 131*69632Seric I ResolverOptions 132*69632Seric J ForwardPath 133*69632Seric j SendMimeErrors 134*69632Seric k ConnectionCacheSize 135*69632Seric K ConnectionCacheTimeout 136*69632Seric L LogLevel 137*69632Seric l UseErrorsTo 138*69632Seric m MeToo 139*69632Seric n CheckAliases 140*69632Seric O DaemonPortOptions 141*69632Seric o OldStyleHeaders 142*69632Seric P PostmasterCopy 143*69632Seric p PrivacyOptions 144*69632Seric Q QueueDirectory 145*69632Seric q QueueFactor 146*69632Seric R DontPruneRoutes 147*69632Seric r, T Timeout 148*69632Seric S StatusFile 149*69632Seric s SuperSafe 150*69632Seric t TimeZoneSpec 151*69632Seric u DefaultUser 152*69632Seric U UserDatabaseSpec 153*69632Seric V FallbackMXhost 154*69632Seric v Verbose 155*69632Seric w TryNullMXList 156*69632Seric x QueueLA 157*69632Seric X RefuseLA 158*69632Seric Y ForkEachJob 159*69632Seric y RecipientFactor 160*69632Seric z ClassFactor 161*69632Seric Z RetryFactor 162*69632Seric To avoid possible problems with an older sendmail, 163*69632Seric configuration level 6 is accepted by this version of 164*69632Seric sendmail; any config file using the new names should 165*69632Seric specify "V6" in the configuration. 166*69632Seric Change address parsing to properly note that a phrase before a 167*69632Seric colon and a trailing semicolon are essentially the same 168*69632Seric as text outside of angle brackets (i.e., sendmail should 169*69632Seric treat them as comments). This is to handle the 170*69632Seric ``group name: addr1, addr2, ..., addrN;'' syntax (it will 171*69632Seric assume that ``group name:'' is a comment on the first 172*69632Seric address and the ``;'' is a comment on the last address). 173*69632Seric This requires config file support to get right. It does 174*69632Seric understand that :: is NOT this syntax, and can be turned 175*69632Seric off completely by setting the ColonOkInAddresses option. 176*69632Seric Level 6 config files added with new mailer flags: 177*69632Seric A Addresses are aliasable. 178*69632Seric i Do udb rewriting on envelope as well as header 179*69632Seric sender lines. Applies to the from address mailer 180*69632Seric flags rather than the recipient mailer flags. 181*69632Seric j Do udb rewriting on header recipient addresses. 182*69632Seric Applies to the sender mailer flags rather than the 183*69632Seric recipient mailer flags. 184*69632Seric k Disable check for loops when doing HELO command. 185*69632Seric o Always run as the mail recipient, even on local 186*69632Seric delivery. 187*69632Seric w Check for an /etc/passwd entry for this user. 188*69632Seric 5 Pass addresses through ruleset 5. 189*69632Seric : Check for :include: on this address. 190*69632Seric | Check for |program on this address. 191*69632Seric / Check for /file on this address. 192*69632Seric @ Look up sender header addresses in the user 193*69632Seric database. Applies to the mailer flags for the 194*69632Seric mailer corresponding to the envelope sender 195*69632Seric address, rather than to recipient mailer flags. 196*69632Seric Pre-level 6 configuration files set A, w, 5, :, |, /, and @ 197*69632Seric on the "local" mailer, the o flag on the "prog" and "*file*" 198*69632Seric mailers, and the ColonOkInAddresses option. 199*69632Seric Eight-to-seven bit MIME conversions. This borrows ideas from 200*69632Seric John Beck of Hewlett-Packard, who generously contributed 201*69632Seric their implementation to me, which I then didn't use (see 202*69632Seric mime.c for an explanation of why). This adds the 203*69632Seric EightBitMode option (a.k.a. `8') and an F=8 mailer flag 204*69632Seric to control handling of 8-bit data. These have to cope with 205*69632Seric two types of 8-bit data: unlabelled 8-bit data (that is, 206*69632Seric 8-bit data that is entered without declaring it as 8-bit 207*69632Seric MIME -- technically this is illegal according to the 208*69632Seric specs) and labelled 8-bit data (that is, it was declared 209*69632Seric as 8BITMIME in the ESMTP session or by using the 210*69632Seric -B8BITMIME command line flag). If the F=8 mailer flag is 211*69632Seric set then 8-bit data is sent to non-8BITMIME machines 212*69632Seric instead of converting to 7 bit (essentially using 213*69632Seric just-send-8 semantics). The values for EightBitMode are: 214*69632Seric m convert unlabelled 8-bit input to 8BITMIME, and do 215*69632Seric any necessary conversion of 8BITMIME to 7BIT 216*69632Seric (essentially, the full MIME option). 217*69632Seric p pass unlabelled 8-bit input, but convert labelled 218*69632Seric 8BITMIME input to 7BIT as required (default). 219*69632Seric s strict adherence: reject unlabelled 8-bit input, 220*69632Seric convert 8BITMIME to 7BIT as required. The F=8 221*69632Seric flag is ignored. 222*69632Seric Unlabelled 8-bit data is rejected in mode `s' regardless of 223*69632Seric the setting of F=8. 224*69632Seric Add new internal class 'n', which is the set of MIME Content-Types 225*69632Seric which can not be 8 to 7 bit encoded because of other 226*69632Seric considerations. Types "multipart/*" and "message/*" are 227*69632Seric never directly encoded (although their components can be). 228*69632Seric Add new internal class 'e'. This is the set of MIME 229*69632Seric Content-Transfer-Encodings that can be converted to 230*69632Seric a seven bit format (Quoted-Printable or Base64). It is 231*69632Seric preinitialized to contain "7bit", "8bit", and "binary". 232*69632Seric Add C=charset mailer parameter and the the DefaultCharSet option (no 233*69632Seric short name) to set the default character set to use in the 234*69632Seric Content-Type: header when doing encoding of an 8-bit message 235*69632Seric which isn't marked as MIME into MIME format. If the C= 236*69632Seric parameter is set on the Envelope From address, use that as 237*69632Seric the default encoding; else use the DefaultCharSet option. 238*69632Seric If neither is set, it defaults to "unknown-8bit" as 239*69632Seric suggested by RFC 1428 section 3. 240*69632Seric Allow ``U=user:group'' field in mailer definition to set a default 241*69632Seric user and group that a mailer will be executed as. This 242*69632Seric overrides the 'u' and 'g' options, and if the `F=S' flag is 243*69632Seric also set, it is the uid/gid that will always be used (that 244*69632Seric is, the controlling address is ignored). The values may be 245*69632Seric numeric or symbolic; if only a symbolic user is given (no 246*69632Seric group) that user's default group in the passwd file is used 247*69632Seric as the group. Based on code donated by Chip Rosenthal of 248*69632Seric Unicom. 249*69632Seric Allow `u' option to also accept user:group as a value, in the same 250*69632Seric fashion as the U= mailer option. 251*69632Seric Add the symbolic time zone name in the Arpanet format dates (as 252*69632Seric a comment). This adds a new compile-time configuration 253*69632Seric flag: TZ_TYPE can be set to TZ_TM_NAME (use the value 254*69632Seric of (struct tm *)->tm_name), TZ_TM_ZONE (use the value 255*69632Seric of (struct tm *)->tm_zone), TZ_TZNAME (use extern char 256*69632Seric *tzname[(struct tm *)->tm_isdst]), TZ_TIMEZONE (use 257*69632Seric timezone()), or TZ_NONE (don't include the comment). Code 258*69632Seric from Chip Rosenthal. 259*69632Seric The "Timeout" option (formerly "r") is extended to allow suboptions. 260*69632Seric For example, 261*69632Seric O Timeout.helo = 2m 262*69632Seric There are also two new suboptions "queuereturn" and 263*69632Seric "queuewarn"; these subsume the old T option. Thus, to 264*69632Seric set them both the preferred new syntax is 265*69632Seric O Timeout.queuereturn = 5d 266*69632Seric O Timeout.queuewarn = 4h 267*69632Seric Sort queue by host name instead of by message priority if the 268*69632Seric QueueSortOrder option (no short name) is set is set to 269*69632Seric ``host''. This makes better use of the connection cache, 270*69632Seric but may delay more ``interactive'' messages behind large 271*69632Seric backlogs under some circumstances. This is probably a 272*69632Seric good option if you have high speed links or don't do lots 273*69632Seric of ``batch'' messages, but less good if you are using 274*69632Seric something like PPP on a 14.4 modem. Based on code 275*69632Seric contributed by Roy Mongiovi of Georgia Tech (my main 276*69632Seric contribution was to make it configurable). 277*69632Seric Save i-number of df file in qf file to simplify rebuilding of queue 278*69632Seric after disasterous disk crash. Suggested by Kyle Jones of 279*69632Seric UUNET; closely based on code from KJS DECWRL code written 280*69632Seric by Paul Vixie. NOTA BENE: The qf files produced by 8.7 281*69632Seric are NOT back compatible with 8.6 -- that is, you can convert 282*69632Seric from 8.6 to 8.7, but not the other direction. 283*69632Seric Add ``F=d'' mailer flag to disable all use of angle brackets in 284*69632Seric route-addrs in envelopes; this is because in some cases 285*69632Seric they can be sent to the shell, which interprets them as 286*69632Seric I/O redirection. 287*69632Seric Don't include error file (option E) with return-receipts; this 288*69632Seric can be confusing. 289*69632Seric Don't send "Warning: cannot send" messages to owner-* or 290*69632Seric *-request addresses. Suggested by Christophe Wolfhugel 291*69632Seric of the Institut Pasteur, Paris. 292*69632Seric Allow -O command line flag to set long form options. 293*69632Seric Add "MinQueueAge" option to set the minimum time between attempts 294*69632Seric to run the queue. For example, if the queue interval 295*69632Seric (-q value) is five minutes, but the minimum queue age 296*69632Seric is fifteen minutes, jobs won't be tried more often than 297*69632Seric once every fifteen minutes. This can be used to give 298*69632Seric you more responsiveness if your delivery mode is set to 299*69632Seric queue-only. 300*69632Seric Allow "fileopen" timeout (default: 60 seconds) for opening 301*69632Seric :include: and .forward files. 302*69632Seric Add "-k", "-v", and "-z" flags to map definitions; these set the 303*69632Seric key field name, the value field name, and the field 304*69632Seric delimiter. The field delimiter can be a single character 305*69632Seric or the sequence "\t" or "\n" for tab or newline. 306*69632Seric These are for use by NIS+ and similar access methods. 307*69632Seric Add "nisplus" map class. Takes -k and -v flags to choose the 308*69632Seric key and value field names respectively. Code donated by 309*69632Seric Sun Microsystems. 310*69632Seric Add "hesiod" map class. The "file name" is used as the 311*69632Seric "HesiodNameType" parameter to hes_resolve(3). Returns the 312*69632Seric first value found for the match. Code donated by Scott 313*69632Seric Hutton of Indiana University. 314*69632Seric Add "netinfo" (NeXT NetInfo) map class. Maps can have a -k flag to 315*69632Seric specify the name of the property that is searched as the 316*69632Seric key and a -v flag to specify the name of the property that 317*69632Seric is returned as the value (defaults to "members"). The 318*69632Seric default map is "/aliases". 319*69632Seric Add "text" map class. This does slow, linear searches through 320*69632Seric text files. The -z flag specifies a column delimiter 321*69632Seric (defaults to any sequence of white space), the -k flag 322*69632Seric sets the key column number, and the -v flag sets the 323*69632Seric value column number. Lines beginning with `#' are treated 324*69632Seric as comments. 325*69632Seric Add "program" map class to execute arbitrary programs. The search 326*69632Seric key is presented as the last argument; the output is one 327*69632Seric line read from the programs standard output. Exit statuses 328*69632Seric are from sysexits.h. 329*69632Seric Add "sequence" map class -- searches maps in sequence until it 330*69632Seric finds a match. For example, the declarations: 331*69632Seric Kmap1 ... 332*69632Seric Kmap2 ... 333*69632Seric Kmapseq sequence map1 map2 334*69632Seric defines a map "mapseq" that first searches map1; if the 335*69632Seric value is found it is returned immediately, otherwise 336*69632Seric map2 is searched and the value returned. 337*69632Seric Add "switch" map class. This is much like "sequence" except that 338*69632Seric the ordering is fetched from an external file, usually 339*69632Seric the system service switch. The parameter is the name of 340*69632Seric the service to switch on, and the maps that it will use 341*69632Seric are this name followed by ".service_type". For example, 342*69632Seric if the declaration of the map is 343*69632Seric Ksample switch hosts 344*69632Seric and the system service switch specifies that hosts are 345*69632Seric looked up using dns and nis in that order, then this is 346*69632Seric equivalent to 347*69632Seric Ksample sequence hosts.dns hosts.nis 348*69632Seric The subordinate maps must already be defined. 349*69632Seric Add "user" map class -- looks up users using getpwnam. Takes a 350*69632Seric "-v field" flag on the definition that tells what passwd 351*69632Seric entry to return -- legal values are name, passwd, uid, gid, 352*69632Seric gecos, dir, and shell. Generally expected to be used with 353*69632Seric the -m (matchonly) flag. 354*69632Seric Add "bestmx" map class -- returns the best MX value for the host 355*69632Seric listed as the value. If there are several "best" MX records 356*69632Seric for this host, one will be chosen at random. 357*69632Seric Add "userdb" map class -- looks up entries in the user database. 358*69632Seric The "file name" is actually the tag that will be used, 359*69632Seric typically "mailname". If there are multiple entries 360*69632Seric matching the name, the one chosen is undefined. 361*69632Seric Add multiple queue timeouts (both return and warning). These are 362*69632Seric set by the Precedence: or Priority: header fields to one of 363*69632Seric three values. If a Priority: is set and has value "normal", 364*69632Seric "urgent", or "non-urgent" the corresponding timeouts are 365*69632Seric used. If no priority is set, the Precedence: is consulted; 366*69632Seric if negative, non-urgent timeouts are used; if greater than 367*69632Seric zero, urgent timeouts are used. Otherwise, normal timeouts 368*69632Seric are used. The timeouts are set by setting the six timeouts 369*69632Seric queue{warn,return}.{urgent,normal,non-urgent}. 370*69632Seric Fix problem when a mail address is resolved to a $#error mailer 371*69632Seric with a temporary failure indication; it works in SMTP, 372*69632Seric but when delivering locally the mail is silently discarded. 373*69632Seric This patch, from Kyle Jones of UUNET, bounces it instead 374*69632Seric of queueing it (queueing is very hard). 375*69632Seric When using /etc/hosts or NIS-style lookups, don't assume that 376*69632Seric the first name in the list is the best one -- instead, 377*69632Seric search for the first one with a dot. For example, if 378*69632Seric an /etc/hosts entry reads 379*69632Seric 128.32.149.68 mammoth mammoth.CS.Berkeley.EDU 380*69632Seric this change will use the second name as the canonical 381*69632Seric machine name instead of the initial, unqualified name. 382*69632Seric This heuristic is only used for finding your own name on 383*69632Seric startup, when the system may not be fully configured yet. 384*69632Seric Change dequote map to replace spaces in quoted text with a value 385*69632Seric indicated by the -s flag on the dequote map definition. 386*69632Seric For example, ``Mdequote dequote -s_'' will change 387*69632Seric "Foo Bar" into an unquoted Foo_Bar instead of leaving it 388*69632Seric quoted (because of the space character). Suggested by Dan 389*69632Seric Oscarsson for use in X.400 addresses. 390*69632Seric Implement long macro names as ${name}; long class names can 391*69632Seric be similarly referenced as $={name} and $~{name}. 392*69632Seric Definitions are (e.g.) ``D{name}value''. Names that have 393*69632Seric a leading lower case letter or punctuation characters are 394*69632Seric reserved for internal use by sendmail; i.e., config files 395*69632Seric should use names that begin with a capital letter. Based 396*69632Seric on code contributed by Dan Oscarsson. 397*69632Seric Fix core dump if getgrgid returns a null group list (as opposed 398*69632Seric to an empty group list, that is, a pointer to a list 399*69632Seric with no members). Fix from Andrew Chang of Sun Microsystems. 400*69632Seric Fix possible core dump if malloc fails -- if the malloc in xalloc 401*69632Seric failed, it called syserr which called newstr which called 402*69632Seric xalloc.... The newstr is now avoided for "panic" messages. 403*69632Seric Reported by Stuart Kemp of James Cook University. 404*69632Seric Improve connection cache timeouts; previously, they were not even 405*69632Seric checked if you were delivering to anything other than an 406*69632Seric IPC-connected host, so a series of (say) local mail 407*69632Seric deliveries could cause cached connections to be open 408*69632Seric much longer than the specified timeout. 409*69632Seric If an incoming message exceeds the maximum message size, stop 410*69632Seric writing the incoming bytes to the queue data file, since 411*69632Seric this can fill your mqueue partition -- this is a possible 412*69632Seric denial-of-service attack. 413*69632Seric Don't reject all numeric local user names unless HESIOD is 414*69632Seric defined. It turns out that Posix allows all-numeric 415*69632Seric user names. Fix from Tony Sanders of BSDI. 416*69632Seric Add service switch support. If the local OS has a service 417*69632Seric switch (e.g., /etc/nsswitch.conf on Solaris) that will 418*69632Seric be used; otherwise, it falls back to using a local 419*69632Seric mechanism based on the ServiceSwitchFile option 420*69632Seric (default: /etc/service.switch). For example, if the 421*69632Seric service switch lists "files" and "nis" for the aliases 422*69632Seric service, that will be the default lookup order. Note 423*69632Seric that you can still stack aliases files however, although 424*69632Seric you have to list them explicitly as "implicit:filename". 425*69632Seric Option I (NameServerOptions) no longer sets the "UseNameServer" 426*69632Seric variable which tells whether or not DNS should be considered 427*69632Seric canonical. This is now determined based on whether or not 428*69632Seric "dns" is in the service list for "hosts". 429*69632Seric Add preliminary support for the ESMTP "DSN" extension (Delivery 430*69632Seric Status Notifications). This is not yet a standard 431*69632Seric and the implementation is for experimentation only. 432*69632Seric For this reason it only announces itself as "X-DSN-0" 433*69632Seric instead of "DSN". DSN notifications override 434*69632Seric Return-Receipt-To:. 435*69632Seric Add T=mtstype keyletter to mailer definitions to define the value 436*69632Seric for the Final-MTS-Type: and Remote-MTS-Type: fields in the 437*69632Seric DSN-standard return message. 438*69632Seric Extend heuristic to force running in ESMTP mode to look for the 439*69632Seric six-character string "ESMTP " anywhere in the 220 greeting 440*69632Seric message (not just the second line). This is to provide 441*69632Seric better compatibility with other ESMTP servers. 442*69632Seric Print sequence number of job when running the queue so you can 443*69632Seric easily see how much progress you have made. Suggested 444*69632Seric by Peter Wemm of DIALix. 445*69632Seric Map newlines to spaces in logged message-ids; some versions of 446*69632Seric syslog truncate the rest of the line after newlines. 447*69632Seric Suggested by Fletcher Mattox of U. Texas. 448*69632Seric Move up forking for job runs so that if a message is split into 449*69632Seric multiple envelopes you don't get "fork storms" -- this 450*69632Seric also improves the connection cache utilization. 451*69632Seric Accept "<<>>", "<<<>>>", and so forth as equivalent to "<>" for 452*69632Seric the purposes of refusing to send error returns. Suggested 453*69632Seric by Motonori Nakamura of Ritsumeikan University. 454*69632Seric Relax rules on when a file can be written when referenced from 455*69632Seric the aliases file: use the default uid/gid instead of the 456*69632Seric real uid/gid. This allows you to create a file owned by 457*69632Seric and writable only by the default uid/gid that will work 458*69632Seric all the time (without having the setuid bit set). Change 459*69632Seric suggested by Shau-Ping Lo and Andrew Cheng of Sun 460*69632Seric Microsystems. 461*69632Seric Add "DialDelay" option (no short name) to provide an "extra" 462*69632Seric delay for dial on demand systems. If this is non-zero 463*69632Seric and a connect fails, sendmail will wait this long and 464*69632Seric then try again. If it takes longer than the kernel 465*69632Seric timeout interval to establish the connection, this 466*69632Seric option can give the network software time to establish 467*69632Seric the link. The default units are seconds. 468*69632Seric Move logging of sender information to be as early as possible; 469*69632Seric previously, it could be delayed a while for SMTP mail 470*69632Seric sent to aliases. Suggested by Brad Knowles of the 471*69632Seric Defense Information Systems Agency. 472*69632Seric Call res_init() before setting RES_DEBUG; this is required by 473*69632Seric BIND 4.9.3, or so I'm told. From Douglas Anderson of 474*69632Seric the National Computer Security Center. 475*69632Seric Add xdelay= field in logs -- this is a transaction delay, telling 476*69632Seric you how long it took to deliver to this address on the 477*69632Seric last try. It is intended to be used for sorting mailing 478*69632Seric lists to favor "quick" addresses. Provided for use by 479*69632Seric the mailprio scripts (see below). 480*69632Seric If a map cannot be opened, and that map is non-optional, and 481*69632Seric an address requires that map for resolution, queue the 482*69632Seric map instead of bouncing it. This involves creating a 483*69632Seric pseudo-class of maps called "bogus-map" -- if a required 484*69632Seric map cannot be opened, the class is changed to bogus-map; 485*69632Seric all queries against bogus-map return "tempfail". The 486*69632Seric bogus-map class is not directly accessible. A sample 487*69632Seric implementation was donated by Jem Taylor of Glasgow 488*69632Seric University Computing Service. 489*69632Seric Don't make a bad ``MAIL FROM:'' address on one message blow away 490*69632Seric other messages to the same host later in the queue. 491*69632Seric Problem noted by Eric Prestemon of American University. 492*69632Seric Fix a possible core dump when mailing to a program that talks 493*69632Seric SMTP on its standard input. Fix from Keith Moore of 494*69632Seric the University of Kentucky. 495*69632Seric Make it possible to resolve filenames to $#local $: @ /filename; 496*69632Seric previously, the "@" would cause it to not be recognized 497*69632Seric as a file. Problem noted by Brian Hill of U.C. Davis. 498*69632Seric Accept a -1 signal to re-exec the daemon. This only works if 499*69632Seric argv[0] is a full path to sendmail. 500*69632Seric Fix bug in "addr=..." field in O option on little-endian machines 501*69632Seric -- the network number wasn't being converted to network 502*69632Seric byte order. Patch from Kurt Lidl of Pix Technologies 503*69632Seric Corporation. 504*69632Seric Pre-initialize the resolver early on; this is to avoid a bug with 505*69632Seric BIND 4.9.3 that can cause the _res.retry field to get 506*69632Seric reset to zero, causing all name server lookups to time 507*69632Seric out. Fix from Matt Day of Artisoft. 508*69632Seric Restore T line (trusted users) in config file -- but instead of 509*69632Seric locking out the -f flag, they just tell whether or not 510*69632Seric an X-Authentication-Warning: will be added. This really 511*69632Seric just creates new entries in class 't', so "Ft/file/name" 512*69632Seric can be used to read trusted user names from a file. 513*69632Seric Improve NEWDB alias file rebuilding so it will create them 514*69632Seric properly if they do not already exist. This had been 515*69632Seric a MAYBENEXTRELEASE feature in 8.6.9. 516*69632Seric Check for @:@ entry in NIS maps before starting up to avoid 517*69632Seric (but not prevent, sigh) race conditions. This ought to 518*69632Seric be handled properly in ypserv, but isn't. Suggested by 519*69632Seric Michael Beirne of Motorola. 520*69632Seric Refuse connections if there isn't enough space on the filesystem 521*69632Seric holding the queue. Contributed by Robert Dana of Wolf 522*69632Seric Communications. 523*69632Seric Skip checking for directory permissions in the path to a file 524*69632Seric when checking for file permissions iff setreuid() 525*69632Seric succeeded -- it is unnecessary in that case. This avoids 526*69632Seric significant performance problems when looking for .forward 527*69632Seric files. Based on a suggestion by Win Bent of USC. 528*69632Seric Allow symbolic ruleset names. Syntax can be "Sname" to get an 529*69632Seric arbitrary ruleset number assigned or "Sname = integer" 530*69632Seric to assign a specific ruleset number. Reference is 531*69632Seric $>name_or_number. Names can be composed of alphas, digits, 532*69632Seric underscore, or hyphen (first character must be non-numeric). 533*69632Seric Allow -o flag on AliasFile lines to make the alias file optional. 534*69632Seric From Bryan Costales of ICSI. 535*69632Seric Add NoRecipientAction option to handle the case where there is 536*69632Seric no legal recipient header in the message. It can take 537*69632Seric on values: 538*69632Seric None Leave the message as is. The 539*69632Seric message will be passed on even 540*69632Seric though it is in technically 541*69632Seric illegal syntax. 542*69632Seric Add-To Add a To: header with any 543*69632Seric recipients that it can find from 544*69632Seric the envelope. This risks exposing 545*69632Seric Bcc: recipients. 546*69632Seric Add-Apparently-To Add an Apparently-To: header. This 547*69632Seric has almost no redeeming social value, 548*69632Seric and is provided only for back 549*69632Seric compatibility. 550*69632Seric Add-To-Undisclosed Add a header reading 551*69632Seric To: undisclosed-recipients:; 552*69632Seric which will have the effect of 553*69632Seric making the message legal without 554*69632Seric exposing Bcc: recipients. 555*69632Seric Add-Bcc To add an empty Bcc: header. 556*69632Seric There is a chance that mailers down 557*69632Seric the line will delete this header, 558*69632Seric which could cause exposure of Bcc: 559*69632Seric recipients. 560*69632Seric The default is NoRecipientAction=None. 561*69632Seric Truncate (rather than delete) Bcc: lines in the header. This 562*69632Seric should prevent later sendmails (at least, those that don't 563*69632Seric themselves delete Bcc:) from considering this message to 564*69632Seric be non-conforming -- although it does imply that non-blind 565*69632Seric recipients can see that a Bcc: was sent, albeit not to whom. 566*69632Seric Add SafeFileEnvironment option. If declared, files named as delivery 567*69632Seric targets must be regular files in addition to the regular 568*69632Seric checks. Also, if the option is non-null then it is used as 569*69632Seric the name of a directory that is used as a chroot(2) 570*69632Seric environment for the delivery; the file names listed in an 571*69632Seric alias or forward should include the name of this root. 572*69632Seric For example, if you run with 573*69632Seric O SafeFileEnvironment=/arch 574*69632Seric then aliases should reference "/arch/rest/of/path". If a 575*69632Seric value is given, sendmail also won't try to save to 576*69632Seric /usr/tmp/dead.letter (instead it just leaves the job in the 577*69632Seric queue as Qfxxxxxx). Inspired by *Hobbit*'s sendmail patch kit. 578*69632Seric Support -A flag for alias files; this will comma concatenate like 579*69632Seric entries. For example, given the aliases: 580*69632Seric list: member1 581*69632Seric list: member2 582*69632Seric and an alias file declared as: 583*69632Seric OAhash:-A /etc/aliases 584*69632Seric the final alias inserted will be "list: member1,member2"; 585*69632Seric without -A you will get an error on the second and subsequent 586*69632Seric alias for "list". Contributed by Bryan Costales of ICSI. 587*69632Seric Line-buffer transcript file. Suggested by Liudvikas Bukys. 588*69632Seric Fix a problem that could cause very long addresses to core dump in 589*69632Seric some special circumstances. Problem pointed out by Allan 590*69632Seric Johannesen. 591*69632Seric (Internal change.) Change interface to expand() (macro expansion) 592*69632Seric to be simpler and more consistent. 593*69632Seric Delete check for funny qf file names. This didn't really give 594*69632Seric any extra security and caused some people some problems. 595*69632Seric (If you -really- want this, define PICKY_QF_NAME_CHECK 596*69632Seric at compile time.) Suggested by Kyle Jones of UUNET. 597*69632Seric (Internal change.) Change EF_NORETURN to EF_NO_BODY_RETN and 598*69632Seric merge with DSN code; this is simpler and more consistent. 599*69632Seric This may affect some people who have written their own 600*69632Seric checkcompat() routine. 601*69632Seric (Internal change.) Eliminate `D' line in qf file. The df file 602*69632Seric is now assumed to be the same name as the qf file (with 603*69632Seric the `q' changed to a `d', of course). 604*69632Seric Avoid forking for delivery if all recipient mailers are marked as 605*69632Seric "expensive" -- this can be a major cost on some systems. 606*69632Seric Essentially, this forces sendmail into "queue only" mode 607*69632Seric if all it is going to do is queue anyway. 608*69632Seric Avoid sending a null message in some rather unusual circumstances 609*69632Seric (specifically, the RCPT command returns a temporary 610*69632Seric failure but the connection is lost before the DATA 611*69632Seric command). Fix from Scott Hammond of Secure Computing 612*69632Seric Corporation. 613*69632Seric Change makesendmail to use a somewhat more rational naming scheme: 614*69632Seric Makefiles and obj directories are named $os.$rel.$arch, 615*69632Seric where $os is the operating system (e.g., SunOS), $rel is 616*69632Seric the release number (e.g., 5.3), and $arch is the machine 617*69632Seric architecture (e.g., sun4). Any of these can be omitted, 618*69632Seric and anything after the first dot in a release number can 619*69632Seric be replaced with "x" (e.g., SunOS.4.x.sun4). The previous 620*69632Seric version used $os.$arch.$rel and was rather less general. 621*69632Seric Ignore IDENT return value if the OSTYPE field returns "OTHER", 622*69632Seric as indicated by RFC 1413. Pointed out by Kari Hurtta 623*69632Seric of the Finnish Meteorological Institute. 624*69632Seric Fix problem that could cause multiple responses to DATA command 625*69632Seric on header syntax errors (e.g., lines beginning with colons). 626*69632Seric Problem noted by Jens Thomassen of the University of Oslo. 627*69632Seric Don't let null bytes in headers cause truncation of the rest of 628*69632Seric the header. 629*69632Seric Log Authentication-Warning:s. Suggested by Motonori Nakamura. 630*69632Seric Increase timeouts on message data puts to allow time for receivers 631*69632Seric to canonify addresses in headers on the fly. This is still 632*69632Seric a rather ugly heuristic. From Motonori Nakamura. 633*69632Seric Add "HasWildcardMX" suboption to ResolverOptions; if set, MX 634*69632Seric records are not used when canonifying names. This is 635*69632Seric useful if you have a wildcard MX record, although it 636*69632Seric may cause other problems. In general, don't use wildcard 637*69632Seric MX records. Patch from Motonori Nakamura. 638*69632Seric Eliminate default two-line SMTP greeting message. Instead of 639*69632Seric adding an extra "ESMTP spoken here" line, the word "ESMTP" 640*69632Seric is added between the first and second word of the first 641*69632Seric line of the greeting message (i.e., immediately after the 642*69632Seric host name). This eliminates the need for the BROKEN_SMTP_PEERS 643*69632Seric compile flag. Old sendmails won't see the ESMTP, but that's 644*69632Seric acceptable because SIZE was the only useful extension that 645*69632Seric old sendmails understand. 646*69632Seric Avoid gethostbyname calls on UNIX domain sockets during SIGUSR1 647*69632Seric invoked state dumps. From Masaharu Onishi. 648*69632Seric Allow on-line comments in .forward and :include: files; they are 649*69632Seric introduced by the string "<LWSP>#@#<LWSP>", where <LWSP> 650*69632Seric is a space or a tab. This is intended for native 651*69632Seric representation of non-ASCII sets such as Japanese, where 652*69632Seric existing encodings would be unreadable or would lose 653*69632Seric data -- for example, 654*69632Seric <motonori@cs.ritsumei.ac.jp> NAKAMURA Motonori 655*69632Seric (romanized/less information) 656*69632Seric <motonori@cs.ritsumei.ac.jp> =?ISO-2022-JP?B?GyRCQ2ZCPBsoQg==?= 657*69632Seric =?ISO-2022-JP?B?GyRCQUdFNRsoQg==?= 658*69632Seric (with MIME encoding, not human readable) 659*69632Seric <motonori@cs.ritsumei.ac.jp> #@# ^[$BCfB<^[(B ^[$BAGE5^[(B 660*69632Seric (native encoding with ISO-2022-JP) 661*69632Seric The last form is human readable in the Japanese environment. 662*69632Seric Based on a fix from (surprise!) Motonori Nakamura. 663*69632Seric Don't make SMTP error returns on MAIL FROM: line be "sticky" for all 664*69632Seric messages to that host; these are most frequently associated 665*69632Seric with addresses rather than the host, with the exception of 666*69632Seric 421 (service shutting down). The effect was to cause queues 667*69632Seric to sometimes take an excessive time to flush. Reported by 668*69632Seric Robert Sargent of Southern Geographics Technologies. 669*69632Seric Add Nice=N mailer option to set the niceness at which a mailer will 670*69632Seric run. 671*69632Seric When looking for a default config file (that is, not specified using 672*69632Seric a -C flag), try a configuration file name extended by the 673*69632Seric binary version number -- e.g., sendmail.8.7.Alpha.9.cf, 674*69632Seric sendmail.8.7.Alpha.cf, sendmail.8.7.cf, sendmail.8.cf, and 675*69632Seric sendmail.cf in that order. This should make it easier to 676*69632Seric test new versions in a shared environment. 677*69632Seric Log queue runs that are skipped due to high loads. They are logged 678*69632Seric at LOG_INFO priority iff the log level is > 8. Contributed 679*69632Seric by Bruce Nagel of Data General. 680*69632Seric Allow the error mailer to accept a DSN-style error status code 681*69632Seric instead of an sysexits status code in the host part. 682*69632Seric Anything with a dot will be interpreted as a DSN-style code. 683*69632Seric Add new mailer flag: F=3 will tell translations to Quoted-Printable 684*69632Seric to encode characters that might be munged by an EBCDIC system 685*69632Seric in addition to the set required by RFC 1521. The additional 686*69632Seric characters are !, ", #, $, @, [, \, ], ^, `, {, |, }, and ~. 687*69632Seric (Think of "IBM 360" as the mnemonic for this flag.) 688*69632Seric Change check for mailing to files to look for a pathname of [FILE] 689*69632Seric rather than looking for the mailer named *file*. The mapping 690*69632Seric of leading slashes still goes to the *file* mailer. This 691*69632Seric allows you to implement the *file* mailer as a separate 692*69632Seric program, for example, to insert a Content-Length: header 693*69632Seric or do special security policy. However, note that the usual 694*69632Seric initial checking for the file permissions is still done, and 695*69632Seric the program in question needs to be very careful about how 696*69632Seric it does the file write to avoid security problems. 697*69632Seric Be able to read ~root/.forward even if the path isn't accessible to 698*69632Seric regular users. This is disrecommended because sendmail 699*69632Seric sometimes does not run as root (e.g., when an unsafe option 700*69632Seric is specified on the command line), but should otherwise be 701*69632Seric safe because .forward files must be owned by the user for 702*69632Seric whom mail is being forwarded, and cannot be a symbolic link. 703*69632Seric Suggested by Forrest Aldrich of Wang Laboratories. 704*69632Seric Add new "HostsFile" option that is the pathname to the /etc/hosts 705*69632Seric file. This is used for canonifying hostnames when the 706*69632Seric service type is "files". 707*69632Seric Implement programs on F (read class from file) line. The syntax is 708*69632Seric Fc|/path/to/program to read the output from the program 709*69632Seric into class "c". 710*69632Seric Probe the network interfaces to find alternate names for this 711*69632Seric host. Requires the SIOCGIFCONF ioctl call. Code 712*69632Seric contributed by SunSoft. 713*69632Seric Add "E" configuration line to set or propogate environment 714*69632Seric variables into children. "E<envar>" will propogate 715*69632Seric the named variable from the environment when sendmail 716*69632Seric was invoked into any children it calls; "E<envar>=<value>" 717*69632Seric sets the named variable to the indicated value. Any 718*69632Seric variables not explicitly named will not be in the child 719*69632Seric environment. However, sendmail still forces an 720*69632Seric "AGENT=sendmail" environment variable, in part to enforce 721*69632Seric at least one environment variable, since many programs and 722*69632Seric libraries die horribly if this is not guaranteed. 723*69632Seric PORTABILITY FIXES: 724*69632Seric Solaris 2 from Rob McMahon <cudcv@csv.warwick.ac.uk>. 725*69632Seric System V Release 4 from Motonori Nakamura of Ritsumeikan 726*69632Seric University. This expands the disk size 727*69632Seric checking to include all (?) SVR4 configurations. 728*69632Seric System V Release 4 from Kimmo Suominen -- initgroups(3) 729*69632Seric and setrlimit(2) are both available. 730*69632Seric System V Release 4 from sob@sculley.ffg.com -- some versions 731*69632Seric apparently "have EX_OK defined in other headerfiles." 732*69632Seric Linux Makefile typo. 733*69632Seric Linux getusershell(3) is broken in Slackware 2.0 -- 734*69632Seric from Andrew Pam of Xanadu Australia. 735*69632Seric More Linux tweaking from John Kennedy of California State 736*69632Seric University, Chico. 737*69632Seric Cray changes from Eric Wassenaar: ``On Cray, shorts, 738*69632Seric ints, and longs are all 64 bits, and all structs 739*69632Seric are multiples of 64 bits. This means that the 740*69632Seric sizeof operator returns only multiples of 8. 741*69632Seric This requires adaptation of code that really 742*69632Seric deals with 32 bit or 16 bit fields, such as IP 743*69632Seric addresses or nameserver fields.'' 744*69632Seric DG/UX 5.4.3 from Mark T. Robinson <mtr@ornl.gov>. To 745*69632Seric get the old behaviour, use -DDGUX_5_4_2. 746*69632Seric DG/UX hack: add _FORCE_MAIL_LOCAL_=yes environment 747*69632Seric variable to fix bogus /bin/mail behaviour. 748*69632Seric Tandem NonStop-UX from Rick McCarty <mccarty@mpd.tandem.com>. 749*69632Seric This also cleans up some System V Release 4 compile 750*69632Seric problems. 751*69632Seric Solaris 2: sendmail.cw file should be in /etc/mail to 752*69632Seric match all the other configuration files. Fix 753*69632Seric from Glenn Barry of Emory University. 754*69632Seric Solaris 2.3: compile problem in conf.c. Fix from Alain 755*69632Seric Nissen of the University of Liege, Belgium. 756*69632Seric Ultrix: freespace calculation was incorrect. Fix from 757*69632Seric Takashi Kizu of Osaka University. 758*69632Seric SVR4: running in background gets a SIGTTOU because the 759*69632Seric emulation code doesn't realize that "getpeername" 760*69632Seric doesn't require reading the file. Fix from Peter 761*69632Seric Wemm of DIALix. 762*69632Seric Solaris 2.3: due to an apparent bug in the socket emulation 763*69632Seric library, sockets can get into a "wedged" state where 764*69632Seric they just return EPROTO; closing and re-opening the 765*69632Seric socket clears the problem. Fix from Bob Manson 766*69632Seric of Ohio State University. 767*69632Seric Hitachi 3050R & 3050RX running HI-UX/WE2: portability 768*69632Seric fixes from Akihiro Hashimoto ("Hash") of Chiba 769*69632Seric University. 770*69632Seric AIX changes to allow setproctitle to work from Rainer Sch�pf 771*69632Seric of Zentrum f�r Datenverarbeitung der Universit�t 772*69632Seric Mainz. 773*69632Seric SCO Unix from Chip Rosenthal of Unicom (code was using the 774*69632Seric wrong statfs call). 775*69632Seric ANSI C fixes from Adam Glass (NetBSD project). 776*69632Seric Stardent Titan/ANSI C fixes from Kate Hedstrom of Rutgers 777*69632Seric University. 778*69632Seric DG-UX fixes from Bruce Nagel of Data General. 779*69632Seric IRIX64 updates from Mark Levinson of the University of 780*69632Seric Rochester Medical Center. 781*69632Seric Altos System V (``the first UNIX/XENIX merge the Altos 782*69632Seric did for their Series 1000 & Series 2000 line; 783*69632Seric their merged code was licenced back to AT&T and 784*69632Seric Microsoft and became System V release 3.2'') from 785*69632Seric Tim Rice <timr@crl.com>. 786*69632Seric OSF/1 running on Intel Paragon from Jeff A. Earickson 787*69632Seric <jeff@ssd.intel.com> of Intel Scalable Systems 788*69632Seric Divison. 789*69632Seric Amdahl UTS System V 2.1.5 (SVr3-based) from Janet Jackson 790*69632Seric <janet@dialix.oz.au>. 791*69632Seric System V Release 4 (statvfs semantic fix) from Alain 792*69632Seric Durand of I.M.A.G. 793*69632Seric HP-UX 10.x multiprocessor load average changes from 794*69632Seric Scott Hutton and Jeff Sumler of Indiana University. 795*69632Seric Cray CSOS from Scott Bolte of Cray Computer Corporation. 796*69632Seric Unicos 8.0 from Douglas K. Rand of the University of North 797*69632Seric Dakota, Scientific Computing Center. 798*69632Seric Solaris 2.4 fixes from Sanjay Dani of Dani Communications. 799*69632Seric ConvexOS 11.0 from Christophe Wolfhugel. 800*69632Seric IRIX 4.0.5 from David Ashton-Reader of CADcentre. 801*69632Seric ISC UNIX from J. J. Bailey. 802*69632Seric HP-UX 9.xx on the 8xx series machines from Remy Giraud 803*69632Seric of Meteo France. 804*69632Seric HP-UX configuration from Tom Lane <tgl@sss.pgh.pa.us>. 805*69632Seric IRIX 5.2 and 5.3 from Kari E. Hurtta. 806*69632Seric FreeBSD 2.0 from Mike Hickey of Federal Data Corporation. 807*69632Seric Sony NEWS-OS 4.2.1R and 6.0.3 from Motonori Nakamura. 808*69632Seric Omron LUNA unios-b, mach from Motonori Nakamura. 809*69632Seric NEC EWS-UX/V 4.2 from Motonori Nakamura. 810*69632Seric NeXT 2.1 from Bryan Costales. 811*69632Seric AUX patch thanks to Mike Erwin of Apple Computer. 812*69632Seric HP-UX 10.0 from John Beck of Hewlett-Packard. 813*69632Seric Ultrix: allow -DBROKEN_RES_SEARCH=0 if you are using a 814*69632Seric non-DEC resolver. Suggested by Allan Johannesen. 815*69632Seric MAKEMAP: allow -d flag to allow insertion of duplicate aliases 816*69632Seric in type ``btree'' maps. The semantics of this are undefined 817*69632Seric for regular maps, but it can be useful for the user database. 818*69632Seric MAKEMAP: lock database file while rebuilding to avoid sendmail 819*69632Seric lookups while the rebuild is going on. There is a race 820*69632Seric condition between the open(... O_TRUNC ...) and the lock 821*69632Seric on the file, but it should be quite small. 822*69632Seric SMRSH: sendmail restricted shell added to the release. This can 823*69632Seric be used as an alternative to /bin/sh for the "prog" mailer, 824*69632Seric giving the local administrator more control over what 825*69632Seric programs can be run from sendmail. 826*69632Seric CONTRIB: a patch to rmail.c from Bill Gianopoulos of Raytheon 827*69632Seric to allow rmail to compile on systems that don't have 828*69632Seric function prototypes and systems that don't have snprintf. 829*69632Seric CONTRIB: add the "mailprio" scripts that will help you sort mailing 830*69632Seric lists by transaction delay times so that addresses that 831*69632Seric respond quickly get sent first. This is to prevent very 832*69632Seric sluggish servers from delaying other peoples' mail. 833*69632Seric Contributed by Tony Sanders of BSDI. 834*69632Seric CONTRIB: add the "bsdi.mc" file as contributed by Tony Sanders 835*69632Seric of BSDI. This has a lot of comments to help people out. 836*69632Seric CONFIG: fix mail from <> so it will properly convert to 837*69632Seric MAILER-DAEMON on local addresses. 838*69632Seric CONFIG: fix code that was supposed to catch colons in host 839*69632Seric names. Problem noted by John Gardiner Myers of CMU. 840*69632Seric CONFIG: allow use of SMTP_MAILER_MAX in nullclient configuration. 841*69632Seric From Paul Riddle of the University of Maryland, Baltimore 842*69632Seric County. 843*69632Seric CONFIG: Catch and reject "." as a host address. 844*69632Seric CONFIG: Generalize domaintable to look up all domains, not 845*69632Seric just unqualified ones. 846*69632Seric CONFIG: Delete OLD_SENDMAIL support -- as near as I can tell, it 847*69632Seric was never used and didn't work anyway. 848*69632Seric CONFIG: Set flags A, w, 5, :, /, |, and @ on the "local" mailer 849*69632Seric and d on all mailers in the UUCP class. 850*69632Seric CONFIG: Allow "user+detail" to be aliased specially: it will first 851*69632Seric look for an alias for "user+detail", then for "user+*", and 852*69632Seric finally for "user". This is intended for forwarding mail 853*69632Seric for system aliases such as root and postmaster to a 854*69632Seric centralized hub. 855*69632Seric CONFIG: add confEIGHT_BIT_HANDLING to set option 8 (see above). 856*69632Seric CONFIG: add smtp8 mailer; this has the F=8 (just-send-8) flag set. 857*69632Seric The F=8 flag is also set on the "relay" mailer, since 858*69632Seric this is expected to be another sendmail. 859*69632Seric CONFIG: avoid qualifying all UUCP addresses sent via SMTP with 860*69632Seric the name of the UUCP_RELAY -- in some cases, this is the 861*69632Seric wrong value (e.g., when we have local UUCP connections), 862*69632Seric and this can create unreplyable addresses. From Chip 863*69632Seric Rosenthal of Unicom. 864*69632Seric CONFIG: add confRECEIVED_HEADER to change the format of the 865*69632Seric Received: header inserted into all messages. Suggested by 866*69632Seric Gary Mills of the University of Manitoba. 867*69632Seric CONFIG: Make "notsticky" the default; use FEATURE(stickyhost) 868*69632Seric to get the old behaviour. I did this upon observing 869*69632Seric that almost everyone needed this feature, and that the 870*69632Seric concept I was trying to make happen didn't work with 871*69632Seric some user agents anyway. FEATURE(notsticky) still works, 872*69632Seric but it is a no-op. 873*69632Seric CONFIG: Add LUSER_RELAY -- the host to which unrecognized user 874*69632Seric names are sent, rather than immediately diagnosing them 875*69632Seric as User Unknown. 876*69632Seric CONFIG: Add SMTP_MAILER_ARGS, ESMTP_MAILER_ARGS, SMTP8_MAILER_ARGS, 877*69632Seric and RELAY_MAILER_ARGS to set the arguments for the 878*69632Seric indicated mailers. All default to "IPC $h". Patch from 879*69632Seric Larry Parmelee of Cornell University. 880*69632Seric CONFIG: pop mailer needs F=n flag to avoid "annoying side effects 881*69632Seric on the client side" and F=P to get an appropriate 882*69632Seric return-path. From Kimmo Suominen. 883*69632Seric CONFIG: add FEATURE(local_procmail) to use the procmail program 884*69632Seric as the local mailer. For addresses of the form "user+detail" 885*69632Seric the "detail" part is passed to procmail via the -a flag. 886*69632Seric Contributed by Kimmo Suominen. 887*69632Seric CONFIG: add MAILER(procmail) to add an interface to procmail for 888*69632Seric use from mailertables. This lets you execute arbitrary 889*69632Seric procmail scripts. Contributed by Kimmo Suominen. 890*69632Seric CONFIG: add T= fields (MTS type) to local, smtp, and uucp mailers. 891*69632Seric CONFIG: add OSTYPE(ptx2) for DYNIX/ptx 2.x from Sequent. From 892*69632Seric Paul Southworth of CICNet Systems Support. 893*69632Seric CONFIG: use -a$g as default to UUCP mailers, instead of -a$f. 894*69632Seric This causes the null return path to be rewritten as 895*69632Seric MAILER-DAEMON; otherwise UUCP gets horribly confused. 896*69632Seric From Michael Hohmuth of Technische Universitat Dresden. 897*69632Seric CONFIG: Add FEATURE(bestmx_is_local) to cause any hosts that 898*69632Seric list us as the best possible MX record to be treated as 899*69632Seric though they were local (essentially, assume that they 900*69632Seric are included in $=w). This can cause additional DNS 901*69632Seric traffic, but is easier to administer if this fits your 902*69632Seric local model. It does not work reliably if there are 903*69632Seric multiple hosts that share the best MX preference. 904*69632Seric Code contributed by John Oleynick of Rutgers. 905*69632Seric CONFIG: Add FEATURE(smrsh) to use smrsh (the SendMail Restricted 906*69632Seric SHell) instead of /bin/sh as the program used for delivery 907*69632Seric to programs. If an argument is included, it is used as 908*69632Seric the path to smrsh; otherwise, /usr/local/etc/smrsh is 909*69632Seric assumed. 910*69632Seric CONFIG: Add LOCAL_MAILER_MAX and PROCMAILER_MAILER_MAX to limit the 911*69632Seric size of messages to the local and procmail mailers 912*69632Seric respectively. Contributed by Brad Knowles of the Defense 913*69632Seric Information Systems Agency. 914*69632Seric CONFIG: Handle leading ``phrase:'' and trailing ``;'' as comments 915*69632Seric (just like text outside of angle brackets) in order to 916*69632Seric properly deal with ``group: addr1, ... addrN;'' syntax. 917*69632Seric CONFIG: Require OSTYPE macro (the defaults really don't apply to 918*69632Seric any real systems any more) and tweak the DOMAIN macro 919*69632Seric so that it is less likely that users will accidently use 920*69632Seric the Berkeley defaults. Also, create some generic files 921*69632Seric that really can be used in the real world. 922*69632Seric CONFIG: Add new configuration macros to set character sets for 923*69632Seric messages _arriving from_ various mailers: LOCAL_MAILER_CHARSET, 924*69632Seric SMTP_MAILER_CHARSET, and UUCP_MAILER_CHARSET. 925*69632Seric CONFIG: Change UUCP_MAX_SIZE to UUCP_MAILER_MAX for consistency. 926*69632Seric The old name will still be accepted for a while at least. 927*69632Seric CONFIG: Implement DECNET_RELAY as spec for host to which DECNET 928*69632Seric mail (.DECNET pseudo-domain or node::user) will be sent. 929*69632Seric As with all relays, it can be ``mailer:hostname''. Suggested 930*69632Seric by Scott Hutton. 931*69632Seric CONFIG: Add MAILER(mail11) to get DECnet support. Code contributed 932*69632Seric by Barb Dijker of Labyrinth Computer Services. 933*69632Seric NEW FILES: 934*69632Seric cf/cf/cs-hpux10.mc 935*69632Seric cf/cf/cs-solaris2.mc 936*69632Seric cf/cf/generic-hpux10.mc 937*69632Seric cf/cf/generic-hpux9.mc 938*69632Seric cf/cf/generic-osf1.mc 939*69632Seric cf/cf/generic-solaris2.mc 940*69632Seric cf/cf/generic-sunos4.1.mc 941*69632Seric cf/cf/generic-ultrix4.mc 942*69632Seric cf/cf/huginn.cs.mc 943*69632Seric cf/domain/berkeley-only.m4 944*69632Seric cf/domain/generic.m4 945*69632Seric cf/feature/bestmx_is_local.m4 946*69632Seric cf/feature/local_procmail.m4 947*69632Seric cf/feature/smrsh.m4 948*69632Seric cf/feature/stickydomain.m4 949*69632Seric cf/mailer/procmail.m4 950*69632Seric cf/ostype/amdahl-uts.m4 951*69632Seric cf/ostype/hpux10.m4 952*69632Seric cf/ostype/ptx2.m4 953*69632Seric cf/ostype/unknown.m4 954*69632Seric contrib/bsdi.mc 955*69632Seric contrib/mailprio 956*69632Seric contrib/rmail.oldsys.patch 957*69632Seric smrsh/README 958*69632Seric smrsh/smrsh.8 959*69632Seric smrsh/smrsh.c 960*69632Seric src/Makefiles/Makefile.CSOS 961*69632Seric src/Makefiles/Makefile.IRIX.5.x 962*69632Seric src/Makefiles/Makefile.IRIX64 963*69632Seric src/Makefiles/Makefile.ISC 964*69632Seric src/Makefiles/Makefile.NonStop-UX 965*69632Seric src/Makefiles/Makefile.Paragon 966*69632Seric src/Makefiles/Makefile.SunOS.5.3 967*69632Seric src/Makefiles/Makefile.SunOS.5.4 968*69632Seric src/Makefiles/Makefile.UNIX_SV.4.2.i386 969*69632Seric src/Makefiles/Makefile.uts.systemV 970*69632Seric src/mime.c 971*69632Seric RENAMED FILES: 972*69632Seric cf/cf/alpha.mc => cf/cf/s2k-osf1.mc 973*69632Seric cf/cf/chez.mc => cf/cf/chez.cs.mc 974*69632Seric cf/cf/hpux-cs-exposed.mc => cf/cf/cs-hpux9.mc 975*69632Seric cf/cf/osf1-cs-exposed.mc => cf/cf/cs-osf1.mc 976*69632Seric cf/cf/s2k.mc => cf/cf/s2k-ultrix4.mc 977*69632Seric cf/cf/sunos4.1-cs-exposed.mc => cf/cf/cs-sunos4.1.mc 978*69632Seric cf/cf/ultrix4.1-cs-exposed.mc => cf/cf/cs-ultrix4.mc 979*69632Seric cf/cf/vangogh.mc => cf/cf/vangogh.cs.mc 980*69632Seric cf/domain/Berkeley.m4 => cf/domain/Berkeley.EDU.m4 981*69632Seric cf/domain/cs-exposed.m4 => cf/domain/CS.Berkeley.EDU.m4 982*69632Seric cf/domain/eecs-hidden.m4 => cf/domain/EECS.Berkeley.EDU.m4 983*69632Seric cf/domain/s2k.m4 => cf/domain/S2K.Berkeley.EDU.m4 984*69632Seric cf/ostype/hpux.m4 => cf/ostype/hpux9.m4 985*69632Seric cf/ostype/ultrix4.1.m4 => cf/ostype/ultrix4.m4 986*69632Seric src/Makefile.* => src/Makefiles/Makefile.* 987*69632Seric OBSOLETED FILES: 988*69632Seric cf/cf/cogsci.mc 989*69632Seric cf/cf/cs-exposed.mc 990*69632Seric cf/cf/cs-hidden.mc 991*69632Seric cf/cf/hpux-cs-hidden.mc 992*69632Seric cf/cf/knecht.mc 993*69632Seric cf/cf/osf1-cs-hidden.mc 994*69632Seric cf/cf/sunos3.5-cs-exposed.mc 995*69632Seric cf/cf/sunos3.5-cs-hidden.mc 996*69632Seric cf/cf/sunos4.1-cs-hidden.mc 997*69632Seric cf/cf/ultrix4.1-cs-hidden.mc 998*69632Seric cf/domain/cs-hidden.m4 999*69632Seric contrib/rcpt-streaming 1000*69632Seric src/Makefiles/Makefile.SunOS.5.x 1001*69632Seric 100268613Seric8.6.12/8.6.12 95/03/28 100368613Seric Fix to IDENT code (it was getting the size of the reply buffer 100468613Seric too small, so nothing was ever accepted). Fix from several 100568613Seric people, including Allan Johannesen, Shane Castle of the 100668613Seric Boulder County Information Services, and Jeff Smith of 100768613Seric Warwick University (all arrived within a few hours of 100868613Seric each other!). 100968613Seric Fix a problem that could cause large jobs to run out of 101068613Seric file descriptors on systems that use vfork() rather 101168613Seric than fork(). 101268613Seric 101368503Seric8.6.11/8.6.11 95/03/08 101468503Seric The ``possible attack'' message would be logged more often 101568503Seric than necessary if you are using Pine as a user agent. 101668503Seric The wrong host would be reported in the ``possible attack'' 101768503Seric message when attempted from IDENT. 101868503Seric In some cases the syslog buffer could be overflowed when 101968503Seric reporting the ``possible attack'' message. This can 102068503Seric cause denial of service attacks. Truncate the message 102168503Seric to 80 characters to prevent this problem. 102268503Seric When reading the IDENT response a loop is needed around the 102368503Seric read from the network to ensure that you don't get 102468503Seric partial lines. 102568503Seric Password entries without any shell listed (that is, a null 102668503Seric shell) wouldn't match as "ok". Problem noted by 102768503Seric Rob McMahon. 102868503Seric When running BIND 4.9.x a problem could occur because the 102968503Seric _res.options field is initialized differently than it 103068503Seric was historically -- this requires that sendmail call 103168503Seric res_init before it tweaks any bits. 103268503Seric Fix an incompatibility in openxscript() between the file open mode 103368503Seric and the stdio mode passed to fdopen. This caused UnixWare 103468503Seric 2.0 to have conniptions. Fix from Martin Sohnius of 103568503Seric Novell Labs Europe. 103668503Seric Fix problem with static linking of local getopt routine when 103768503Seric using GNU's ld command. Fix from John Kennedy of 103868503Seric Cal State Chico. 103968503Seric It was possible to turn off privacy flags. Problem noted by 104068503Seric *Hobbit*. 104168503Seric Be more paranoid about writing files. Suggestions by *Hobbit* 104268503Seric and Liudvikas Bukys. 104368503Seric MAKEMAP: fixes for 64 bit machines (DEC Alphas in particular) 104468503Seric from Spider Boardman. 104568503Seric CONFIG: No changes (version number only, to keep it in sync 104668503Seric with the binaries). 104768503Seric 104868280Seric8.6.10/8.6.10 95/02/10 104968274Seric SECURITY: Diagnose bogus values to some command line flags that 105068274Seric could allow trash to get into headers and qf files. 105168274Seric Validate the name of the user returned by the IDENT protocol. 105268274Seric Some systems that really dislike IDENT send intentionally 105368274Seric bogus information. Problem pointed out by Michael Bushnell 105468274Seric of the Free Software Foundation. Has some security 105568274Seric implications. 105668274Seric Fix a problem causing error messages about DNS problems when 105768274Seric the host name contained a percent sign to act oddly 105868274Seric because it was passed as a printf-style format string. 105968274Seric In some cases this could cause core dumps. 106068274Seric Avoid possible buffer overrun in returntosender() if error 106168274Seric message is quite ling. From Fletcher Mattox of the 106268274Seric University of Texas. 106368274Seric Fix a problem that would silently drop "too many hops" error 106468274Seric messages if and only if you were sending to an alias. 106568274Seric From Jon Giltner of the University of Colorado and 106668274Seric Dan Harton of Oak Ridge National Laboratory. 106768274Seric Fix a bug that caused core dumps on some systems if -d11.2 was 106868274Seric set and e->e_message was null. Fix from Bruce Nagel of 106968274Seric Data General. 107068274Seric Fix problem that can still cause df files to be left around 107168274Seric after "hop count exceeded" messages. Fix from Andrew 107268274Seric Chang and Shau-Ping Lo of SunSoft. 107368274Seric Fix a problem that can cause buffer overflows on very long 107468274Seric user names (as might occur if you piped to a program 107568274Seric with a lot of arguments). 107668274Seric Avoid returning an error and re-queueing if the host signature 107768274Seric is null; this can occur on addresses like ``user@.''. 107868274Seric Problem noted by Wesley Craig and the University of 107968274Seric Michigan. 108068274Seric Avoid possible calls to malloc(0) if MCI caching is turned 108168274Seric off. Bug fix from Pierre David of the Laboratoire 108268274Seric Parallelisme, Reseaux, Systemes et Modelisation (PRiSM), 108368274Seric Universite de Versailles - St Quentin, and Jacky 108468274Seric Thibault. 108568274Seric Make a local copy of the line being sent via senttolist() -- in 108668274Seric some cases, buffers could get trashed by map lookups 108768274Seric causing it to do unexpected things. This also simplifies 108868274Seric some of the map code. 108968503Seric CONFIG: No changes (version number only, to keep it in sync 109068503Seric with the binaries). 109168274Seric 109266956Seric8.6.9/8.6.9 94/04/19 109366920Seric Do all mail delivery completely disconnected from any terminal. 109466920Seric This provides consistency with daemon delivery and 109566920Seric may have some security implications. 109666920Seric Make sure that malloc doesn't get called with zero size, 109766920Seric since that fails on some systems. Reported by Ed 109866920Seric Hill of the University of Iowa. 109966920Seric Fix multi-line values for $e (SMTP greeting message). Reported 110066920Seric by Mike O'Connor of Ford Motor Company. 110166920Seric Avoid syserr if no NIS domain name is defined, but the map it 110266920Seric is trying to open is optional. From Win Bent of USC. 110366920Seric Changes for picky compilers from Ed Gould of Digital Equipment. 110466920Seric Hesiod support for UDB from Todd Miller of the University of 110566920Seric Colorado. Use "hesiod" as the service name in the U 110666920Seric option. 110766920Seric Fix a problem that failed to set the "authentic" host name (that 110866920Seric is, the one derived from the socket info) if you called 110966920Seric sendmail -bs from inetd. Based on code contributed by 111066920Seric Todd Miller (this problem was also reported by Guy Helmer 111166920Seric of Dakota State University). This also fixes a related 111266996Seric problem reported by Liudvikas Bukys of the University of 111366996Seric Rochester. 111466920Seric Parameterize "nroff -h" in all the Makefiles so people with 111566920Seric variant versions can use them easily. Suggested by 111666920Seric Peter Collinson of Hillside Systems. 111766920Seric SMTP "MAIL" commands with multiple ESMTP parameters required two 111866920Seric spaces between parameters instead of one. Reported by 111966920Seric Valdis Kletnieks of Virginia Tech. 112066920Seric Reduce the number of system calls during message collection by 112166920Seric using global timeouts around the collect() loop. This 112266920Seric code was contributed by Eric Wassenaar. 112366920Seric If the initial hostname name gathering results in a name 112466920Seric without a dot (usually caused by NIS misconfiguration) 112566920Seric and BIND is compiled in, directly access DNS to get 112666920Seric the canonical name. This should make life easier for 112766920Seric Solaris systems. If it still can't be resolved, and 112866920Seric if the name server is listed as "required", try again 112966920Seric in 30 seconds. If that also fails, exit immediately to 113066920Seric avoid bogus "config error: mail loops back to myself" 113166920Seric messages. 113266920Seric Improve the "MAIL DELETED BECAUSE OF LACK OF DISK SPACE" error 113366920Seric message to explain how much space was available and 113466920Seric sound a bit less threatening. Suggested by Stan Janet 113566920Seric of the National Institute of Standards and Technology. 113666920Seric If mail is delivered to an alias that has an owner, deliver any 113766920Seric requested return-receipt immediately, and strip the 113866920Seric Return-Receipt-To: header from the subsequent message. 113966920Seric This prevents a certain class of denial of service 114066920Seric attack, arguably gives more reasonable semantics, and 114166920Seric moves things more towards what will probably become a 114266920Seric network standard. Suggested by Christopher Davis of 114366920Seric Kapor Enterprises. 114466920Seric Add a "noreceipts" privacy flag to turn off all return receipts 114566920Seric without recompiling. 114666920Seric Avoid printing ESMTP parameters as part of the error message 114766920Seric if there are errors during parsing. This change is 114866920Seric purely cosmetic. 114966920Seric Avoid sending out error messages during the collect phase of 115066920Seric SMTP; there is an MVS mailer from UCLA that gets 115166920Seric confused by this. Of course, I think it's their bug.... 115266920Seric Check for the $j macro getting undefined, losing a dot, or getting 115366920Seric lost from $=w in the daemon before accepting a connection; 115466920Seric if it is, it dumps state, prints a LOG_ALERT message, 115566920Seric and drops core for debugging. This is an attempt to 115666920Seric track down a bug that I thought was long since gone. 115766920Seric If you see this, please forward the log fragment to 115866920Seric sendmail@CS.Berkeley.EDU. 115966920Seric Change OLD_NEWDB from a #ifdef to a #if so it can be turned off 116066920Seric with -DOLD_NEWDB=0 on the command line. From Christophe 116166920Seric Wolfhugel. 116266920Seric Instead of trying to truncate the listen queue for the server 116366920Seric SMTP port when the load average is too high, just close 116466920Seric the port completely and reopen it later as needed. 116566920Seric This ensures that the other end gets a quick "connection 116666920Seric refused" response, and that the connection can be 116766920Seric recovered later. In particular, some socket emulations 116866920Seric seem to get confused if you tweak the listen queue 116966920Seric size around and can never start listening to connections 117066920Seric again. The down side is that someone could start up 117166920Seric another daemon process in the interim, so you could 117266920Seric have multiple daemons all not listening to connections; 117366920Seric this could in turn cause the sendmail.pid file to be 117466920Seric incorrect. A better approach might be to accept the 117566920Seric connection and give a 421 code, but that could break 117666920Seric other mailers in mysterious ways and have paging behaviour 117766920Seric implications. 117866920Seric Fix a glitch in TCP-level debugging that caused flag 16.101 to 117966920Seric set debugging on the wrong socket. From Eric Wassenaar. 118066920Seric When creating a df* temporary file, be sure you truncate any 118166920Seric existing data in the file -- otherwise system crashes 118266920Seric and the like could result in extra data being sent. 118366920Seric DOC: Replace the CHANGES-R5-R8 readme file with a paper in the 118466920Seric doc directory. This includes some additional 118566920Seric information. 118666920Seric CONFIG: change UUCP rules to never add $U! or $k! on the front 118766920Seric of recipient envelope addresses. This should have been 118866920Seric handled by the $&h trick, but broke if people were 118966920Seric mixing domainized and UUCP addresses. They should 119066920Seric probably have converted all the way over to uucp-uudom 119166920Seric instead of uucp-{new,old}, but the failure mode was to 119266920Seric loop the mail, which was bad news. 119366920Seric Portability fixes: 119466920Seric Newer BSDI systems (several people). 119566920Seric Older BSDI systems from Christophe Wolfhugel. 119666920Seric Intergraph CLIX, from Paul Southworth of CICNet. 119766920Seric UnixWare, from Evan Champion. 119866920Seric NetBSD from Adam Glass. 119966920Seric Solaris from Quentin Campbell of the University of 120066920Seric Newcastle upon Tyne. 120166920Seric IRIX from Dean Cookson and Bill Driscoll of Mitre 120266920Seric Corporation. 1203*69632Seric NCR 3000 from Kevin Darcy of Chrysler Financial Corporation. 120466920Seric SunOS (it has setsid() and setvbuf() calls) from 120566920Seric Jonathan Kamens of OpenVision Technologies. 120666920Seric HP-UX from Tor Lillqvist. 120766920Seric New Files: 120866920Seric src/Makefile.CLIX 120966920Seric src/Makefile.NCR3000 121066920Seric doc/changes/Makefile 121166920Seric doc/changes/changes.me 121266920Seric doc/changes/changes.ps 121366920Seric 121466432Seric8.6.8/8.6.6 94/03/21 121566432Seric SECURITY: it was possible to read any file as root using the 121666432Seric E (error message) option. Reported by Richard Jones; 121766432Seric fixed by Michael Corrigan and Christophe Wolfhugel. 121866432Seric 121966356Seric8.6.7/8.6.6 94/03/14 122066356Seric SECURITY: it was possible to get root access by using wierd 122166356Seric values to the -d flag. Thanks to Alain Durand of 122266356Seric INRIA for forwarding me the notice from the bugtraq 122366356Seric list. 122466356Seric 122566352Seric8.6.6/8.6.6 94/03/13 122666352Seric SECURITY: the ability to give files away on System V-based 122766352Seric systems proved dangerous -- don't run as the owner 122866352Seric of a :include: file on a system that allows giveaways. 122966352Seric Unfortunately, this also applies to determining a 123066352Seric valid shell. 123166352Seric IMPORTANT: Previous versions weren't expiring old connections 123266352Seric in the connection cache for a long time under some 123366352Seric circumstances. This could result in resource exhaustion, 123466352Seric both at your end and at the other end. This checks the 123566352Seric connections for timeouts much more frequently. From 123666352Seric Doug Anderson of NCSC. 123766352Seric Fix a glitch that snuck in that caused programs to be run as 123866352Seric the sender instead of the recipient if the mail was 123966352Seric from a local user to another local user. From 124066352Seric Motonori Nakamura of Kyoto University. 124166352Seric Fix "wildcard" on /etc/shell matching -- instead of looking 124266352Seric for "*", look for "/SENDMAIL/ANY/SHELL/". From 124366352Seric Bryan Costales of ICSI. 124466352Seric Change the method used to declare the "statfs" availability; 124566352Seric instead of HASSTATFS and/or HASUSTAT with a ton of 124666352Seric tweaking in conf.c, there is a single #define called 124766352Seric SFS_TYPE which takes on one of six values (SFS_NONE 124866352Seric for no statfs availability, SFS_USTAT for the ustat(2) 124966352Seric syscall, SFS_4ARGS for a four argument statfs(2) call, 125066352Seric and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument 125166352Seric statfs(2) call with the declarations in <sys/vfs.h>, 125266352Seric <sys/mount.h>, or <sys/statfs.h> respectively). 125366352Seric Fix glitch in NetInfo support that could return garbage if 125466352Seric there was no "/locations/sendmail" property. From 125566352Seric David Meyer of the University of Virginia. 125666352Seric Change HASFLOCK from defined/not-defined to a 0/1 definition 125766352Seric to allow Linux to turn it off even though it is a 125866352Seric BSD-like system. 125966352Seric Allow setting of "ident" timeout to zero to turn off the ident 126066352Seric protocol entirely. 126166352Seric Make 7-bit stripping local to a connection (instead of to a 126266352Seric mailer); this allows you to specify that SMTP is a 126366352Seric 7-bit channel, but revert to 8-bit should it advertise 126466352Seric that it supports 8BITMIME. You still have to specify 126566352Seric mailer flag 7 to get this stripping at all. 126666352Seric Improve makesendmail script so it handles more cases automatically. 126766352Seric Tighten up restrictions on taking ownership of :include: files 126866352Seric to avoid problems on systems that allow you to give away 126966352Seric files. 127066352Seric Fix a problem that made it impossible to rebuild the alias 127166352Seric file if it was on a read-only file system. From 127266352Seric Harry Edmon of the University of Washington. 127366352Seric Improve MX randomization function. From John Gardiner Myers 127466352Seric of CMU. 127566352Seric Fix a minor glitch causing a bogus message to be printed (used 127666352Seric %s instead of %d in a printf string for the line number) 127766352Seric when a bad queue file was read. From Harry Edmon. 127866352Seric Allow $s to remain NULL on locally generated mail. I'm not 127966352Seric sure this is necessary, but a lot of people have complained 128066352Seric about it, and there is a legitimate question as to whether 128166352Seric "localhost" is legal as an 822-style domain. 128266352Seric Fix a problem with very short line lengths (mailer L= flag) in 128366352Seric headers. This causes a leading space to be added onto 128466352Seric continuation lines (including in the body!), and also 128566352Seric tries to wrap headers containing addresses (From:, To:, 128666352Seric etc) intelligently at the shorter line lengths. Problem 128766352Seric Reported by Lars-Johan Liman of SUNET Operations Center. 128866352Seric Log the real user name when logging syserrs, since these can have 128966352Seric security implications. Suggested by several people. 129066352Seric Fix address logging of cached connections -- it used to always 129166352Seric log the numeric address as zero. This is a somewhat 129266352Seric bogus implementation in that it does an extra system 129366352Seric call, but it should be an inexpensive one. Fix from 129466352Seric Motonori Nakamura. 129566352Seric Tighten up handling of short syslog buffers even more -- there 129666352Seric were cases where the outgoing relay= name was too long 129766352Seric to share a line with delay= and mailer= logging. 129866352Seric Limit the overhead on split envelopes to one open file descriptor 129966352Seric per envelope -- previously the overhead was three 130066352Seric descriptors. This was in response to a problem reported 130166352Seric by P{r (Pell) Emanuelsson. 130266352Seric Fixes to better handle the case of unexpected connection closes; 130366352Seric this redirects the output to the transcript so the info 130466352Seric is not lost. From Eric Wassenaar. 130566352Seric Fix potential string overrun if you macro evaluate a string that 130666352Seric has a naked $ at the end. Problem noted by James Matheson 130766352Seric <jmrm@eng.cam.ac.uk>. 130866352Seric Make default error number on $#error messages 553 (``Requested 130966352Seric action not taken: mailbox name not allowed'') instead of 131066352Seric 501 (``Syntax error in parameters or arguments'') to 131166352Seric avoid bogus "protocol error" messages. 131266352Seric Strip off any existing trailing dot on names during $[ ... $] 131366352Seric lookup. This prevents it from ending up with two dots 131466352Seric on the end of dot terminated names. From Wesley Craig 131566352Seric of the University of Michigan and Bryan Costales of ICSI. 131666352Seric Clean up file class reading so that the debugging information is 131766352Seric more informative. It hadn't been using setclass, so you 131866352Seric didn't see the class items being added. 131966352Seric Avoid core dump if you are running a version of sendmail where 132066352Seric NIS is compiled in, and you specify an NIS map, but 132166352Seric NIS is not running. Fix from John Oleynick of 132266352Seric Rutgers. 132366352Seric Diagnose bizarre case where res_search returns a failure value, 132466352Seric but sets h_errno to a success value. 132566352Seric Make sure that "too many hops" messages are considered important 132666352Seric enough to send an error to the Postmaster (that is, the 132766352Seric address specified in the P option). This fix should 132866352Seric help problems that cause the df file to be left around 132966352Seric sometimes -- unfortunately, I can't seem to reproduce 133066352Seric the problem myself. 133166352Seric Avoid core dump (null pointer reference) on EXPN command; this 133266352Seric only occurred if your log level was set to 10 or higher 133366352Seric and the target account was an alias or had a .forward file. 133466352Seric Problem noted by Janne Himanka. 133566352Seric Avoid "denial of service" attacks by someone who is flooding your 133666352Seric SMTP port with bad commands by shutting the connection 133766352Seric after 25 bad commands are issued. From Kyle Jones of 133866352Seric UUNET. 133966352Seric Fix core dump on error messages with very long "to" buffers; 134066352Seric fmtmsg overflows the message buffer. Fixed by trimming 134166352Seric the to address to 203 characters. Problem reported by 134266352Seric John Oleynick. 134366352Seric Fix configuration for HASFLOCK -- there were some spots where 134466352Seric a #ifndef was incorrectly #ifdef. Pointed out by 134566352Seric George Baltz of the University of Maryland. 134666352Seric Fix a typo in savemail() that could cause the error message To: 134766352Seric lists to be incorrect in some places. From Motonori 134866352Seric Nakamura. 134966352Seric Fix a glitch that can cause duplicate error messages on split 135066352Seric envelopes where an address on one of the lists has a 135166352Seric name server failure. Fix from Voradesh Yenbut of the 135266352Seric University of Washington. 135366352Seric Fix possible bogus pointer reference on ESMTP parameters that 135466352Seric don't have an ``=value'' part. 135566352Seric CNAME loops caused an error message to be generated, but also 135666352Seric re-queued the message. Changed to just re-queue the 135766352Seric message (it's really hard to just bounce it because 135866352Seric of the wierd way the name server works in the presence 135966352Seric of CNAME loops). Problem noted by James M.R.Matheson 136066352Seric of Cambridge University. 136166352Seric Avoid giving ``warning: foo owned process doing -bs'' messages 136266352Seric if they use ``MAIL FROM:<foo>'' where foo is their true 136366352Seric user name. Suggested by Andreas Stolcke of ICSI. 136466352Seric Change the NAMED_BIND compile flag to be a 0/1 flag so you can 136566352Seric override it easily in the Makefile -- that is, you can 136666352Seric turn it off using -DNAMED_BIND=0. 136766352Seric If a gethostbyname(...) of an address with a trailing dot fails, 136866352Seric try it without the trailing dot. This is because if 136966352Seric you have a version of gethostbyname() that falls back 137066352Seric to NIS or the /etc/hosts file it will fail to find 137166352Seric perfectly reasonable names that just don't happen to 137266352Seric be dot terminated in the hosts file. You don't want to 137366352Seric strip the dot first though because we're trying to ensure 137466352Seric that country names that match one of your subdomains get 137566352Seric a chance. 137666352Seric PRALIASES: fix bogus output on non-null-terminated strings. 137766352Seric From Bill Gianopoulos of Raytheon. 137866352Seric CONFIG: Avoid rewriting anything that matches $w to be $j. 137966352Seric This was in code intended to only catch the self-literal 138066352Seric address (that is, [1.2.3.4], where 1.2.3.4 is your 138166352Seric IP address), but the code was broken. However, it will 138266352Seric still do this if $M is defined; this is necessary to 138366352Seric get client configurations to work (sigh). Note that this 138466352Seric means that $M overrides :mailname entries in the user 138566352Seric database! Problem noted by Paul Southworth. 138666352Seric CONFIG: Fix definition of Solaris help file location. From 138766352Seric Steve Cliffe <steve@gorgon.cs.uow.edu.au>. 138866352Seric CONFIG: Fix bug that broke news.group.USENET mappings. 138966352Seric CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX, 139066352Seric and USENET_MAILER_MAX to tweak the maximum message 139166352Seric size for various mailers. 139266352Seric CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0] 139366352Seric instead of assuming that it is "inews" for consistency 139466352Seric with other mailers. From Michael Corrigan of UC San Diego. 139566352Seric CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB, 139666352Seric qualify the address in the SMTP envelope as user@{relay|hub} 139766352Seric instead of user@$j. From Bill Wisner of The Well. 139866352Seric CONFIG: Fix route-addr syntax in nullrelay configuration set. 139966352Seric CONFIG: Don't turn off case mapping of user names in the local 140066352Seric mailer for IRIX. This was different than most every other 140166352Seric system. 140266352Seric CONFIG: Avoid infinite loops on certainly list:; syntaxes in 140366352Seric envelope. Noted by Thierry Besancon 140466352Seric <besancon@excalibur.ens.fr>. 140566352Seric CONFIG: Don't include -z by default on uux line -- most systems 140666352Seric don't want it set by default. Pointed out by Philippe 140766352Seric Michel of Thomson CSF. 140866352Seric CONFIG: Fix some bugs with mailertables -- for example, if your 140966352Seric host name was foo.bar.ray.com and you matched against 141066352Seric ".ray.com", the old implementation bound %1 to "bar" 141166352Seric instead of "foo.bar". Also, allow "." in the mailertable 141266352Seric to match anything -- essentially, take over SMART_HOST. 141366352Seric This also moves matching of explicit local host names 141466352Seric before the mailertable so they don't have to be special 141566352Seric cased in the mailertable data. Reported by Bill 141666352Seric Gianopoulos of Raytheon; the fix for the %1 binding 141766352Seric problem was contributed by Nicholas Comanos of the 141866352Seric University of Sydney. 141966352Seric CONFIG: Don't include "root" in class $=L (users to deliver 142066352Seric locally, even if a hub or relay exists) by default. 142166352Seric This is because of the known bug where definition of 142266352Seric both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore 142366352Seric both and deliver into the local mailbox. 142466352Seric CONFIG: Move up bitdomain and uudomain handling so that they 142566352Seric are done before .UUCP class matching; uudomain was 142666352Seric reported as ineffective before. This also frees up 142766352Seric diversion 8 for future use. Problem reported by Kimmo 142866352Seric Suominen. 142966352Seric CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4]) 143066352Seric into host names. As pointed out by Jonathan Kamens, 143166352Seric these are often used because either the forward or reverse 143266352Seric mapping is broken; this translation makes it broken again. 143366352Seric DOC: Clarify $@ and $: in the Install & Op Guide. From Kimmo 143466352Seric Suominen. 143566352Seric Portability fixes: 143666352Seric Unicos from David L. Kensiski of Sterling Sofware. 143766352Seric DomainOS from Don Lewis of Silicon Systems. 143866352Seric GNU m4 1.0.3 from Karst Koymans of Utrecht University. 143966352Seric Convex from Kimmo Suominen <kim@tac.nyc.ny.us>. 144066352Seric NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>. 144166352Seric BSD/386 from Tony Sanders of BSDI. 144266352Seric Apollo from Eric Wassenaar. 144366352Seric DGUX from Doug Anderson. 144466352Seric Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent. 144566352Seric NEW FILES: 144666352Seric src/Makefile.DomainOS 144766352Seric src/Makefile.PTX 144866352Seric src/Makefile.SunOS.5.1 144966352Seric src/Makefile.SunOS.5.2 145066352Seric src/Makefile.SunOS.5.x 145166352Seric src/mailq.1 145266352Seric cf/ostype/domainos.m4 145366352Seric doc/op/Makefile 145466352Seric doc/intro/Makefile 145566352Seric doc/usenix/Makefile 145666352Seric 145766348Seric8.6.5/8.6.5 94/01/13 145866348Seric Security fix: /.forward could be owned by anyone (the test 145966348Seric to allow root to own any file was backwards). From 146066348Seric Bob Campbell at U.C. Berkeley. 146166348Seric Security fix: group ids were not completely set when programs 146266348Seric were invoked. This caused programs to have group 146366348Seric permissions they should not have had (usually group 146466348Seric daemon instead of their own group). In particular, 146566348Seric Perl scripts would refuse to run. 146666348Seric Security: check to make sure files that are written are not 146766348Seric symbolic links (at least under some circumstances). 146866348Seric Although this does not respond to a specific known 146966348Seric attack, it's just a good idea. Suggested by 147066348Seric Christian Wettergren. 147166348Seric Security fix: if a user had an NFS mounted home directory on 147266348Seric a system with a restricted shell listed in their 147366348Seric /etc/passwd entry, they could still execute any 147466348Seric program by putting that in their .forward file. 147566348Seric This fix prevents that by insisting that their shell 147666348Seric appear in /etc/shells before allowing a .forward to 147766348Seric execute a program or write a file. You can disable 147866348Seric this by putting "*" in /etc/shells. It also won't 147966348Seric permit world-writable :include: files to reference 148066348Seric programs or files (there's no way to disable this). 148166348Seric These behaviours are only one level deep -- for 148266348Seric example, it is legal for a world-writable :include: 148366348Seric file to reference an alias that writes a file, on 148466348Seric the assumption that the alias file is well controlled. 148566348Seric Security fix: root was not treated suspiciously enough when 148666348Seric looking into subdirectories. This would potentially 148766348Seric allow a cracker to examine files that were publically 148866348Seric readable but in a non-publically searchable directory. 148966348Seric Fix a problem that causes an error on QUIT on a cached 149066348Seric connection to create problems on the current job. 149166348Seric These are typically unrelated, so errors occur in 149266348Seric the wrong place. 149366348Seric Reset CurrentLA in sendall() -- this makes sendmail queue 149466348Seric runs more responsive to load average, and fixes a 149566348Seric problem that ignored the load average in locally 149666348Seric generated mail. From Eric Wassenaar. 149766348Seric Fix possible core dump on aliases with null LHS. From 149866348Seric John Orthoefer of BB&N. 149966348Seric Revert to using flock() whenever possible -- there are just 150066348Seric too many bugs in fcntl() locking, particularly over 150166348Seric NFS, that cause sendmail to fail in perverse ways. 150266348Seric Fix a bug that causes the connection cache to get confused 150366348Seric when sending error messages. This resulted in 150466348Seric "unexpected close" messages. It should fix itself 150566348Seric on the following queue run. Problem noted by 150666996Seric Liudvikas Bukys of the University of Rochester. 150766348Seric Include $k in $=k as documented in the Install & Op Guide. 150866348Seric This seems odd, but it was documented.... From 150966348Seric Michael Corrigan of UCSD. 151066348Seric Fix problem that caused :include:s from alias files to be 151166348Seric forced to be owned by root instead of daemon 151266348Seric (actually DefUid). From Tim Irvin. 151366348Seric Diagnose unrecognized I option values -- from Mortin Forssen 151466348Seric of the Chalmers University of Technology. 151566348Seric Make "error" mailer work consistently when there is no error 151666348Seric code associated with it -- previously it returned OK 151766348Seric even though there was a real problem. Now it assumes 151866348Seric EX_UNAVAILABLE. 151966348Seric Fix bug that caused the last header line of messages that had 152066348Seric no body and which were terminated with EOF instead of 152166348Seric "." to be discarded. Problem noted by Liudvikas Bukys. 152266348Seric Fix core dump on SMTP mail to programs that failed -- it tried 152366348Seric to go to a "next MX host" when none existed, causing 152466348Seric a core dump. From der Mouse at McGill University. 152566348Seric Change IDENTPROTO from a defined/not defined to a 0/1 switch; 152666348Seric this makes it easier to turn it off (using 152766348Seric -DIDENTPROTO=0 in the Makefile). From der Mouse. 152866348Seric Fix YP_MASTER_NAME store to use the unupdated result of 152966348Seric gethostname() (instead of myhostname(), which tries 153066348Seric to fully qualify the name) to be consistent with 153166348Seric SunOS. If your hostname is unqualified, this fixes 153266348Seric transfers to slave servers. Bug noted by Keith 153366348Seric McMillan of Ameritech Services, Inc. 153466348Seric Fix Ultrix problem: gethostbyname() can return a very large 153566348Seric (> 500) h_length field, which causes the sockaddr 153666348Seric to be trashed. Use the size of the sockaddr instead. 153766348Seric Fix from Bob Manson of Ohio State. 153866348Seric Don't assume "-a." on host lookups if NAMED_BIND is not 153966348Seric defined -- this confuses gethostbyname on hosts 154066348Seric file lookups, which doesn't understand the trailing 154166348Seric dot convention. 154266348Seric Log SMTP server subprocesses that die with a signal instead 154366348Seric of from a clean exit. 154466348Seric If you don't have option "I" set, don't assume that a DNS 154566348Seric "host unknown" message is authoritative -- it 154666348Seric might still be found in /etc/hosts. 154766348Seric Fix a problem that would cause Deferred: messages to be sent 154866348Seric as the subject of an error message, even though the 154966348Seric actual cause of a message was more severe than that. 155066348Seric Problem noted by Chris Seabrook of OSSI. 155166348Seric Fix race condition in DBM alias file locking. From Kyle 155266348Seric Jones of UUNET. 155366348Seric Limit delivery syslog line length to avoid bugs in some 155466348Seric versions of syslog(3). This adds a new compile time 155566348Seric variable SYSLOG_BUFSIZE. From Jay Plett of Princeton 155666348Seric University, which is in turn derived from IDA. 155766348Seric Fix quotes inside of comments in addresses -- previously 155866348Seric it insisted that they be balanced, but the 822 spec 155966348Seric says that they should be ignored. 156066348Seric Dump open file state to syslog upon receiving SIGUSR1 (for 156166348Seric debugging). This also evaluates ruleset 89, if set 156266348Seric (with the null input), and logs the result. This 156366348Seric should be used sparingly, since the rewrite process 156466348Seric is not reentrant. 156566348Seric Change -qI, -qR, and -qS flags to be case-insensitive as 156666348Seric documented in the Bat Book. 156766348Seric If the mailer returned EX_IOERR or EX_OSERR, sendmail did not 156866348Seric return an error message and did not requeue the message. 156966348Seric Fix based on code from Roland Dirlewanger of 157066348Seric Reseau Regional Aquarel, Bordeaux, France. 157166348Seric Fix a problem that caused a seg fault if you got a 421 error 157266348Seric code during some parts of connection initialization. 157366348Seric I've only seen this when talking to buggy mailers on 157466348Seric the other end, but it shouldn't give a seg fault in 157566348Seric any case. From Amir Plivatsky. 157666348Seric Fix core dump caused by a ruleset call that returns null. 157766348Seric Fix from Bryan Costales of ICSI. 157866348Seric Full-Name: field was being ignored. Fix from Motonori Nakamura 157966348Seric of Kyoto University. 158066348Seric Fix a possible problem with very long input lines in setproctitle. 158166348Seric From P{r Emanuelsson. 158266348Seric Avoid putting "This is a warning message" out on return receipts. 158366348Seric Suggested by Douglas Anderson. 158466348Seric Detect loops caused by recursive ruleset calls. Suggested by 158566348Seric Bryan Costales. 158666348Seric Initialize non-alias maps during alias rebuilds -- they may be 158766348Seric needed for parsing. Problem noted by Douglas Anderson. 158866348Seric Log sender address even if no message was collected in SMTP 158966348Seric (e.g., if all RCPTs failed). Suggested by Motonori 159066348Seric Nakamura. 159166348Seric Don't reflect the owner-list contents into the envelope sender 159266348Seric address if the value contains ", :, /, or | (to avoid 159366348Seric illegal addresses appearing there). 159466348Seric Efficiency hack for toktype macro -- from Craig Partridge of 159566348Seric BB&N. 159666348Seric Clean up DNS error printing so that a host name is always 159766348Seric included. 159866348Seric Remember to set $i during queue runs. Reported by Stephen 159966348Seric Campbell of Dartmouth University. 160066348Seric If ${HOSTALIASES} is set, use it during canonification so that 160166348Seric headers are properly mapped. Reported by Anne Bennett 160266348Seric of Concordia University. 160366348Seric Avoid printing misleading error message if SMTP mailer (not 160466348Seric using [IPC]) should die on a core dump. 160566348Seric Avoid incorrect diagnosis of "file 1 closed" when it is caused 160666348Seric by the other end closing the connection. From 160766348Seric Dave Morrison of Oracle. 160866348Seric Improve several of the error messages printed by "mailq" 160966348Seric to include a host name or other useful information. 161066348Seric Add NetInfo preliminary support for NeXT systems. From Vince 161166348Seric DeMarco. 161266348Seric Fix a glitch that sometimes caused :include:s that pointed to 161366348Seric NFS filesystems that were down to give an "aliasing/ 161466348Seric forwarding loop broken" message instead of queueing 161566348Seric the message for retry. Noted by William C Fenner of 161666348Seric the NRL Connection Machine Facility. 161766348Seric Fix a problem that could cause a core dump if the input sequence 161866348Seric had (or somehow acquired) a \231 character. 161966348Seric Make sure that route-addrs always have <angle brackets> around 162066348Seric them in non-SMTP envelopes (SMTP envelopes already do 162166348Seric this properly). 162266348Seric Avoid wierd headers on unbalanced punctuation of the form: 162366348Seric ``Joe User <user)'' -- this caused reference to the 162466348Seric null macro. Fix from Rick McCarty of IO.COM. 162566348Seric Fix a problem that caused an alias "user: user@local.host" to 162666348Seric not have the QNOTREMOTE bit set; this caused configs 162766348Seric to act as if FEATURE(notsticky) was defined even when 162866348Seric it was not. The effect of the problem was to make it 162966348Seric very hard to to set up satellite sites that had a few 163066348Seric local accounts, with everything else forwarded to a 163166348Seric corporate hub. Reported by Detlef Drewanz of the 163266348Seric University of Rostock and Mark Frost of NCD. 163366348Seric Change queuing to not call rulesets 3, {1 or 2}, 4 on header 163466348Seric addresses. This is more efficient (fewer name server 163566348Seric calls) and fixes certain unusual configurations, such 163666348Seric as those that have ruleset 4 do something that is 163766348Seric non-idempotent unless a mailer-specific ruleset did 163866348Seric something else. Problem reported by Brian J. Coan 163966348Seric of the Institute for Global Communications. 164066348Seric Fix the "obsolete argument" routine in main to better understand 164166348Seric new arguments. For example, if you used ``sendmail 164266348Seric -C config -v -q'' it would choke on the -q because 164366348Seric the -C would stop looking for old-format arguments. 164466348Seric Fix the code that was intended to allow two users to forward their 164566348Seric mail to the same program and have them appear unique. 164666348Seric Portability fixes for: 164766348Seric SCO UNIX from Murray Kucherawy. 164866348Seric SCO Open Server 3.2v4 from Philippe Brand. 164966348Seric System V Release 4 from Rick Ellis and others. 165066348Seric OSF/1 from Steve Campbell. 165166348Seric DG/UX from Ben Mesander of the USGS and Bryan Curnutt 165266348Seric of Stoner Associates. 165366348Seric Motorola SysV88 from Kevin Johnson of Motorola. 165466348Seric Solaris 2.3 from Casper H.S. Dik of the University 165566348Seric of Amsterdam and John Caruso of University 165666348Seric of Maryland. 165766348Seric FreeBSD from Ollivier Robert. 165866348Seric NetBSD from Adam Glass. 165966348Seric TitanOS from Kate Hedstrom of Rutgers University. 166066348Seric Irix from Bryan Curnutt. 166166348Seric Dynix from Jim Davis of the University of Arizona. 166266348Seric RISC/os. 166366348Seric Linux from John Kennedy of California State University 166466348Seric at Chico. 166566348Seric Solaris 2.x from Tony Boner of the U.S. Air Force. 166666348Seric NEXTSTEP 3.x from Vince DeMarco. 166766348Seric HP-UX from various people. NOTA BENE: the location 166866348Seric of the config file has moved to /usr/lib 166966348Seric to match the HP-UX version of sendmail. 167066348Seric CONFIG: Don't do any recipient rewriting on relay mailer; 167166348Seric since this is intended only for internal use, the 167266348Seric usual RFC 821/822/1123 rules can be relaxed. The 167366348Seric main point of this is to avoid munging (ugh) UUCP 167466348Seric addresses when relaying internally. 167566348Seric CONFIG: fix typo in mailer/uucp.m4 that mutilates list:; 167666348Seric syntax addresses delivered via UUCP. Solution 167766348Seric provided by Peter Wemm. 167866348Seric CONFIG: fix thumb-fumble in default UUCP relaying in ruleset 167966348Seric zero; it caused double @ signs in addresses. From 168066348Seric Irving Reid of the University of Toronto. 168166348Seric CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1 168266348Seric from Markku Toijala of ICL Personal Systems Oy. 168366348Seric CONFIG: Add trailing "." on pseudo-domains for consistency; 168466348Seric this fixes a problem (noted by Al Whaley of Sunnyside) 168566348Seric that made it hard to recognize your own pseudodomain 168666348Seric names. 168766348Seric CONFIG: catch "@host" syntax errors (i.e., null local-parts) 168866348Seric rather than letting them get "local configuration 168966348Seric error"s. Problem noted by John Gardiner Myers. 169066348Seric CONFIG: add uucp-uudom mailer variant, based on code posted 169166348Seric by Spider Boardman <spider@Orb.Nashua.NH.US>; this 169266348Seric has uucp-dom semantics but old UUCP syntax. This 169366348Seric also permits "uucp-old" as an alias for "uucp" and 169466348Seric "uucp-new" as a synonym for "suucp" for consistency. 169566348Seric CONFIG: add POP mailer support (from Kimmo Suominen 169666348Seric <kim@grendel.lut.fi>). 169766348Seric CONFIG: drop CSNET_RELAY support -- CSNET is long gone. 169866348Seric CONFIG: fix bug caused with domain literal addresses (e.g., 169966348Seric ``[128.32.131.12]'') when FEATURE(allmasquerade) 170066348Seric was set; it would get an additional @masquerade.host 170166348Seric added to the address. Problem noted by Peter Wan 170266348Seric of Georgia Tech. 170366348Seric CONFIG: make sure that the local UUCP name is in $=w. From 170466348Seric Jim Murray of Stratus. 170566348Seric CONFIG: changes to UUCP rewriting to simulate IDA-style "V" 170666348Seric mailer flag. Briefly, if you are sending to host 170766348Seric "foo", then it rewrites "foo!...!baz" to "...!baz", 170866348Seric "foo!baz" remains "foo!baz", and anything else has 170966348Seric the local name prepended. 171066348Seric CONFIG: portability fixes for HP-UX. 171166348Seric DOC: several minor problems fixed in the Install & Op Guide. 171266348Seric MAKEMAP: fix core dump problem on lines that are too long or 171366348Seric which lack newline. From Mark Delany. 171466348Seric MAILSTATS: print sums of columns (total messages & kbytes 171566348Seric in and out of the system). From Tom Ferrin of UC 171666348Seric San Francisco Computer Graphics Lab. 171766348Seric SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES: 171866348Seric On HP-UX, /etc/sendmail.cf has been moved to 171966348Seric /usr/lib/sendmail.cf to match HP sendmail. 172066348Seric Permissions have been tightened up on world-writable 172166348Seric :include: files and accounts that have shells 172266348Seric that are not listed in /etc/shells. This may 172366348Seric cause some .forward files that have worked 172466348Seric before to start failing. 172566348Seric SIGUSR1 dumps some state to the log. 172666348Seric NEW FILES: 172766348Seric src/Makefile.DGUX 172866348Seric src/Makefile.Dynix 172966348Seric src/Makefile.FreeBSD 173066348Seric src/Makefile.Mach386 173166348Seric src/Makefile.NetBSD 173266348Seric src/Makefile.RISCos 173366348Seric src/Makefile.SCO 173466348Seric src/Makefile.SVR4 173566348Seric src/Makefile.Titan 173666348Seric cf/mailer/pop.m4 173766348Seric cf/ostype/bsdi1.0.m4 173866348Seric cf/ostype/dgux.m4 173966348Seric cf/ostype/dynix3.2.m4 174066348Seric cf/ostype/sco3.2.m4 174166348Seric makemap/Makefile.dist 174266348Seric praliases/Makefile.dist 174366348Seric 174466347Seric8.6.4/8.6.4 93/10/31 174566347Seric Repair core-dump problem (write to read-only memory segment) 174666347Seric if you fall back to the return-to-Postmaster case in 174766347Seric savemail. Problem reported by Richard Liu. 174866347Seric Immediately diagnose bogus sender addresses in SMTP. This 174966347Seric makes quite certain that crackers can't use this 175066347Seric class of attack. 175166347Seric Reliability Fix: check return value from fclose() and fsync() 175266347Seric in a few critical places. 175366347Seric Minor problem in initsys() that reversed a condition for 175466347Seric redirecting the output channel on queue runs. It's 175566347Seric not clear this code even does anything. From Eric 175666347Seric Wassenaar of the Dutch National Institute for Nuclear 175766347Seric and High-Energy Physics. 175866347Seric Fix some problems that caused queue runs to do "too much work", 175966347Seric such as double-reading the Errors-To: header. From 176066347Seric Eric Wassenaar. 176166347Seric Error messages on writing the temporary file (including the 176266347Seric data file) were getting suppressed in SMTP -- this 176366347Seric fix causes them to be properly reported. From Eric 176466347Seric Wassenaar. 176566347Seric Some changes to support AF_UNIX sockets -- this will only 176666347Seric really become relevant in the next release, but some 176766347Seric people need it for local patches. From Michael 176866347Seric Corrigan of UC San Diego. 176966347Seric Use dynamically allocated memory (instead of static buffers) 177066347Seric for macros defined in initsys() and settime(); since 177166347Seric these can have different values depending on which 177266347Seric envelope they are in. From Eric Wassenaar. 177366347Seric Improve logging to show ctladdr on to= logging; this tells you 177466347Seric what uid/gid processes ran as. 177566347Seric Fix a problem that caused error messages to be discarded if 177666347Seric the sender address was unparseable for some reason; 177766347Seric this was supposed to fall back to the "return to 177866347Seric postmaster" case. 177966347Seric Improve aliaswait backoff algorithm. 178066347Seric Portability patches for Linux (8.6.3 required another header 178166347Seric file) (from Karl London) and SCO UNIX. 178266347Seric CONFIG: patch prog mailer to not strip host name off of envelope 178366347Seric addresses (so that it matches local again). From 178466347Seric Christopher Davis. 178566347Seric CONFIG: change uucp-dom mailer so that "<>" translates to $n; 178666347Seric this prevents uux from seeing lines with null names like 178766347Seric ``From Sat Oct 30 14:55:31 1993''. From Motonori 178866347Seric Nakamura of Kyoto University. 178966347Seric CONFIG: handle <list:;> syntax correctly. This isn't legal, but 179066347Seric it shouldn't fail miserably. From Motonori Nakamura. 179166347Seric 179266346Seric8.6.3/8.6.3 93/10/24 179366346Seric IMPORTANT FIX: Fix several problems that caused open files to 179466346Seric be "lost" during queue runs; this overflowed the open 179566346Seric file table on large runs. An assumption that fdopen 179666346Seric always succeeds sometimes resulted in core dumps when 179766346Seric this happens; sometimes the message is delivered twice, 179866346Seric sometimes (probably) infinite times. This problem in 179966346Seric various form was reported by P{r (Pell) Emanuelsson and 180066346Seric Robert Campbell of U.C. Berkeley. 180166346Seric Special diagnosis of EMFILE error conditions -- it now prints 180266346Seric the known open file descriptors so you can figure out 180366346Seric what is consuming so much resources. 180466346Seric Fix a couple of problems caused by early address parsing 180566346Seric errors -- one caused it to return a "this is only a 180666346Seric warning" when it really wasn't, and the other started 180766346Seric parsing through a random pointer. The first was 180866346Seric noted by Eric Wassenaar. 180966346Seric Fix an infinite loop problem caused by null components in the 181066346Seric host signature. Problem noted by Jan Sorensen. 181166346Seric Be sure to reset the "current date" when sending an error 181266346Seric message -- PostMasterCopy messages were being sent 181366346Seric with an old Date: header. 181466346Seric Fix a problem that caused duplicated mail when sendmail was 181566346Seric (1) compiled without HASFLOCK, (2) you are sending to 181666346Seric an alias that has an owner-* alias, (3) you execute 181766346Seric sendmail with -t flag, (4) you run in -odb mode, and 181866346Seric (5) the sender specifies both the alias name and 181966346Seric another alias [i.e., the envelope is split], then 182066346Seric duplicate messages are sent. The problem description 182166346Seric and one-line fix are from Motonori Nakamura of Kyoto 182266346Seric University. 182366346Seric Avoid a problem that causes error messages to be discarded 182466346Seric in some cases -- this was the result of a "fix" to 182566346Seric avoid duplicate error messages, but two are better 182666346Seric than zero. Reported by Tim Rylance. 182766346Seric Fix a minor botch in checkfd012() -- fix from Dave Hill of 182866346Seric Computervision R&D Ltd. 182966346Seric Remove "X-Authentication-Warning: <user> set sender to <address> 183066346Seric using -f" entirely -- it is far too eager to include 183166346Seric this, and it is confusing folks. I'll try to make it 183266346Seric work "right" in 8.7. Problem noted by Yoshitaka 183366346Seric Tokugawa of dit Co., Ltd. 183466346Seric Fix a race condition with the errno value in tick() and 183566346Seric reapchild() -- this caused occasional misdiagnosis 183666346Seric of problems. Kyle Jones of UUNET helped this along. 183766346Seric Repair rule loop-detection code. From Michael Corrigan of 183866346Seric U.C. San Diego. 183966346Seric Fix a problem that caused sender domain addition (C mailer 184066346Seric flag to be ignored if you use -odq or use -odb with 184166346Seric a high load average. Problem reported by Jim Murray 184266346Seric of Stratus. 184366346Seric Fix ident protocol on multi-homed machines. It was not 184466346Seric always using the correct interface. Fix from J.R. 184566346Seric Oldroyd of Opal. 184666346Seric Previously, sendmail assumed that any SMTP greeting message 184766346Seric that wasn't 2xx was a temporary failure -- it should 184866346Seric only take 4xx as a temporary failure, and return a 184966346Seric solid error message on anything else -- for example, 185066346Seric to allow you to reject connections on a workstation 185166346Seric that is MXed to a mail server. 185266346Seric Portability enhancements for 386BSD/FreeBSD/NetBSD from 185366346Seric Ollivier Robert. 185466346Seric CONFIG: FEATURE(always_add_domain) didn't always add the domain; 185566346Seric in particular, on local mail it modified the header sender 185666346Seric but not the header recipient address(es). Reported by 185766346Seric Jeffrey Honig of Cornell University. Also, strip 185866346Seric any host from envelope recipient address(es), since 185966346Seric local mailers don't understand host names -- this is 186066346Seric to help mailertable entries. From Christopher Davis. 186166346Seric CONFIG: masquerading didn't apply to addresses that already 186266346Seric had a domain. This change replaces a local hostname 186366346Seric by the masquerade name in the SMTP mailer (previously 186466346Seric it only added the masquerade name if it didn't already 186566346Seric have a domain name). Several people complained about 186666346Seric this. 186766346Seric 186866345Seric8.6.2/8.6.2 93/10/15 186966345Seric Put a "successful delivery" message in the transcript for 187066345Seric addresses that get return-receipts. 187166345Seric Put a prominent "this is only a warning" message in warning 187266345Seric messages -- some people don't read carefully enough 187366345Seric and end up sending the message several times. 187466345Seric Include reason for temporary failure in the "warning" return 187566345Seric message. Currently, it just says "cannot send for 187666345Seric four hours". 187766345Seric Fix the "Original message received" time generated for 187866345Seric returntosender messages. It was previously listed as 187966345Seric the current time. Bug reported by Eric Hagberg of 188066345Seric Cornell University Medical College. 188166345Seric If there is an error when writing the body of a message, 188266345Seric don't send the trailing dot and wait for a response 188366345Seric in sender SMTP, as this could cause the connection to 188466345Seric hang up under some bizarre circumstances. From Eric 188566345Seric Wassenaar. 188666345Seric Fix some server SMTP synchronization problems caused when 188766345Seric connections fail during message collection. From 188866345Seric Eric Wassenaar. 188966345Seric Fix a problem that can cause srvrsmtp to reject mail if the 189066345Seric name server is down -- it accepts the RCPT but rejects 189166345Seric the DATA command. Problem reported by Jim Murray of 189266345Seric Stratus. 189366345Seric Fix a problem that can cause core dumps if the config file 189466345Seric incorrectly resolves to a null hostname. Reported by 189566345Seric Allan Johannesen of WPI. 189666345Seric Non-root use of -C flag, dangerous -f flags, and use of -oQ 189766345Seric by non-root users were not put into 189866345Seric X-Authentication-Warning:s as intended because the 189966345Seric config file hadn't set the PrivacyFlags yet. Fix 190066345Seric from Sven-Ove Westberg of the University of Lulea. 190166345Seric Under very odd circumstances, the alias file rebuild code 190266345Seric could get confused as to whether a database was 190366345Seric open or not. 190466345Seric Check "vendor code" on the end of V lines -- this is 190566345Seric intended to provide a hook for vendor-specific 190666345Seric configuration syntax. (This is a "new feature", 190766345Seric but I've made an exception to my rule in a belief 190866345Seric that this is a highly exceptional case.) 190966345Seric Portability fixes for DG/UX (from Douglas Anderson of NCSC), 191066345Seric SCO Unix (from Murray Kucherawy), A/UX, and OSF/1 191166345Seric (from Jon Forrest of UC Berkeley) 191266345Seric CONFIG: fix ``mailer:host'' form of UUCP relay naming. 191366345Seric 191466344Seric8.6.1/8.6 93/10/08 191566344Seric Portability fixes for A/UX and Encore UMAX V. 191666344Seric Fix error message handling -- if you had a name server down 191766344Seric causing an error during parsing, that message was never 191866344Seric propogated to the queue file. 191966344Seric 192066343Seric8.6/8.6 93/10/05 192166343Seric Configuration cleanup: make it easier to undo IDENTPROTO in 192266343Seric conf.h (other systems have the same bug). 192366343Seric If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume 192466343Seric getdtablesize() instead of sysconf(); a disturbingly 192566343Seric large number of systems defined _SC_OPEN_MAX in the 192666343Seric header files but don't have the syscall. 192766343Seric Another patch to really truly ignore MX records in getcanonname 192866343Seric if trymx == FALSE. 192966343Seric Fix problem that caused the "250 IAA25499 Message accepted for 193066343Seric delivery" message to be omitted if there was an error 193166343Seric in the header of the message (e.g., a bad Errors-To: 193266343Seric line). Pointed out by Michael Corrigan of UCSD. 193366343Seric Announce name of host we are chatting when we get errors; this 193466343Seric is an IDA-ism suggested by Christophe Wolfhugel. 193566343Seric Portability fixes for Alpha OSF/1 (from Anthony Baxter of the 193666343Seric Australian Artificial Intelligence Institute), SCO Unix 193766343Seric (from Murray Kucherawy of Hookup Communication Corp.), 193866343Seric NeXT (from Vince DeMarco and myself), Linux (from 193966343Seric Karl London <karl@borg.demon.co.uk>), BSDI (from 194066343Seric Christophe Wolfhugel, and SVR4 on Dell (from Kimmo 194166343Seric Suominen), AUX 3.0 on Macintosh, and ANSI C compilers. 194266343Seric Some changes to get around gcc optimizer bugs. From Takahiro 194366343Seric Kanbe. 194466343Seric Fix error recovery in queueup if another tf file of the same 194566343Seric name already exists. Problem stumbled over by Bill 194666343Seric Wisner of The Well. 194766343Seric Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes. 194866343Seric Problem noted by Keith McMillan of Ameritech Services. 194966343Seric Deal with group permissions properly when opening .forward and 195066343Seric :include: files. This relaxes the 8.1C restrictions 195166343Seric slightly more. This includes proper setting of groups 195266343Seric when reading :include: files, allowing you to read some 195366343Seric files that you should be able to read but have previously 195466343Seric been denied unless you owned them or they had "other" 195566343Seric read permission. 195666343Seric Make certain that $j is in $=w (after the .cf is read) so that 195766343Seric if the user is forced to override some silly system, 195866343Seric MX suppression will still work. 195966343Seric Fix a couple of efficiency problems where newstr was double- 196066343Seric calling expensive routines. In at least one case, it 196166343Seric wasn't guaranteed that they would always return the 196266343Seric same result. Problem noted by Christophe Wolfhugel. 196366343Seric Fix null pointer dereference in putoutmsg -- only on an error 196466343Seric condition from a non-SMTP mailer. From Motonori 196566343Seric Nakamura. 196666343Seric Macro expand "C" line class definitions before scanning so that 196766343Seric "CX $Z" works. 196866343Seric Fix problem that caused error message to be sent while still 196966343Seric trying to send the original message if the connection 197066343Seric is closed during a DATA command after getting an error 197166343Seric on an RCPT command (pretty obscure). Problem reported 197266343Seric by John Myers of CMU. 197366343Seric Fix reply to NOOP to be 250 instead of 200 -- this is a long 197466343Seric term bug. 197566343Seric Fix a nasty bug causing core dumps when returning the "warning: 197666343Seric cannot deliver for N hours -- will keep trying" message; 197766343Seric it only occurred if you had PostMasterCopy set and 197866343Seric only on some architectures. Although sendmail would 197966343Seric keep trying, it would send error messages on each 198066343Seric queue interval. This is an important fix. 198166343Seric Allow u and g options to take user and group names respectively. 198266343Seric Don't do a chdir into the queue directory in -bt mode to make 198366343Seric ruleset testing a bit easier. 198466343Seric Don't allow users to turn off logging (using -oL) on the command 198566343Seric line -- command line can only raise, not lower, logging 198666343Seric level. 198766343Seric Set $u to the original recipient on the SMTP transaction or on 198866343Seric the command line. This is only done if there is exactly 198966343Seric one recipient. Technically, this does not meet the 199066343Seric specs, because it does not guarantee a domain on the 199166343Seric address. 199266343Seric Fix a problem that dumped error messages on bad addresses if 199366343Seric you used the -t flag. Problem noted by Josh Smith of 199466343Seric Harvey Mudd College. 199566343Seric Given an address such as ``<foo> <bar>'', auto-quote the first 199666343Seric ``<foo>'' part, giving ``"<foo>" <bar>''. This is to 199766343Seric avoid the problem of people who use angle brackets in 199866343Seric their full name information. 199966343Seric Fix a null pointer dereference if you set option "l", have 200066343Seric an Errors-To: header in the message, and have Errors-To: 200166343Seric defined in the config file H lines. From J.R. Oldroyd. 200266343Seric Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get 200366343Seric wrong when compiling. Suggested by Rick McCarty of TI. 200466343Seric Fix a problem that could pass negative SIZE parameter if the 200566343Seric df file got lost; this would cause servers to always 200666343Seric give a temporary failure, making the problem even worse. 200766343Seric Problem noted by Allan Johannesen of WPI. 200866343Seric Add "ident" timeout (one of the "r" option selectors) for IDENT 200966343Seric protocol timeouts (30s default). Requested by Murray 201066343Seric Kucherawy of HookUp Communication Corp. to handle bogus 201166343Seric PC TCP/IP implementations. 201266343Seric Change $w default definition to be just the first component of 201366343Seric the domain name on config level 5. The $j macro defaults 201466343Seric to the FQDN; $m remains as before. This lets well-behaved 201566343Seric config files use any of the short, long, or subdomain 201666343Seric names. 201766343Seric Add makesendmail script in src to try to automate multi-architecture 201866343Seric builds. I know, this is sub-optimal, but it is still 201966343Seric helpful. 202066343Seric Fix very obscure race condition that can cause a queue run to 202166343Seric get a queue file for an already completed job. This 202266343Seric problem has existed for years. Problem noted by the 202366343Seric long suffering Allan Johannesen of WPI. 202466343Seric Fix a problem that caused the raw sender name to be passed to 202566343Seric udbsender instead of the canonified name -- this caused 202666343Seric it to sometimes miss records that it should have found. 202766343Seric Relax check of name on HELO packet so that a program using -bs 202866343Seric that claims to be itself works properly. 202966343Seric Restore rewriting of $: part of address through 2, R, 4 in 203066343Seric buildaddr -- this requires passing a lot of flags to get 203166343Seric it right. Unlike old versions, this ONLY rewrites 203266343Seric recipient addresses, not sender addresses. 203366343Seric Fix a bug that caused core dumps in config files that cannot 203466343Seric resolve /file/name style addresses. Fix from Jonathan 203566343Seric Kamens of OpenVision Technologies. 203666343Seric Fix problem with fcntl locking that can cause error returns to 203766343Seric be lost if the lock is lost; this required fully 203866343Seric queueing everything, dropping the envelope (so errors 203966343Seric would get returned), and then re-reading the queue from 204066343Seric scratch. 204166343Seric Fix a problem that caused aliases that redefine an otherwise 204266343Seric true address to still send to the original address 204366343Seric if and only if the alias failed in certain bizarre 204466343Seric ways (e.g, if they pointed at a list:; syntax address). 204566343Seric Problem pointed out by Jonathan Kamens. 204666343Seric Remove support for frozen configuration files. They caused 204766343Seric more trouble than it was worth. 204866343Seric Fix problem that can cause error messages to get ignored when 204966343Seric using both -odb and -t flags. Problem noted by Rob 205066343Seric McNicholas at U.C. Berkeley. 205166343Seric Include all "normal" variations on hostname in $=w. For example, 205266343Seric if the host name is vangogh.cs.berkeley.edu, $=w will 205366343Seric contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu. 205466343Seric Add "restrictqrun" privacy flag -- without this, anyone can run 205566343Seric the queue. 205666343Seric Reset SmtpPhase global on initial connection creation so that 205766343Seric messages don't come out with stale information. 205866343Seric Pass an "ext" argument to lockfile so that error/log messages 205966343Seric will properly reflect the true filename being locked. 206066343Seric Put all [...] address forms into $=w -- this eliminates the need 206166343Seric for MAXIPADDR in conf.h. Suggested by John Gardiner 206266343Seric Myers of CMU. 206366343Seric Fix a bug that can cause qf files to be left around even after 206466343Seric an SMTP RSET command. Problem and fix from Michael 206566343Seric Corrigan. 206666343Seric Don't send a PostMasterCopy to errors when the Precedence: is 206766343Seric negative. Error reports still go to the envelope 206866343Seric sender address. 206966343Seric Add LA_SHORT for load averages. 207066343Seric Lock sendmail.st file when posting statistics. 207166343Seric Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to 207266343Seric set the size of the TCP send and receive buffers; if you 207366343Seric run over a slow slip line you may need to set these down 207466343Seric (although it would be better to fix the SLIP implementation 207566343Seric so that it's not necessary to recompile every program 207666343Seric that does bulk data transfer). 207766343Seric Allow null defaults on $( ... $) lookups. Problem reported by 207866343Seric Amir Plivatsky. 207966343Seric Diagnose crufty S and V config lines. This resulted from an 208066343Seric observation that some people were using the SITE macro 208166343Seric without the SITECONFIG macro first, which was causing 208266343Seric bogus config files that were not caught. 208366343Seric Fix makemap -f flag to turn off case folding (it was turning it 208466343Seric on instead). THIS IS A USER VISIBLE CHANGE!!! 208566343Seric Fix a problem that caused multiple error messages to be sent if 208666343Seric you used "sendmail -t -oem -odb", your system uses fcntl 208766343Seric locking, and one of the recipient addresses is unknown. 208866343Seric Reset uid earlier in include() so that recursive .forwards or 208966343Seric :include:s don't use the wrong uid. 209066343Seric If file descriptor 0, 1, or 2 was closed when sendmail was 209166343Seric called, the code to recover the descriptor was broken. 209266343Seric This sometimes (only sometimes) caused problems with the 209366343Seric alias file. Fix from Motonori Nakamura. 209466343Seric Fix a problem that caused aliaswait to go into infinite recursion 209566343Seric if the @:@ metasymbol wasn't found in the alias file. 209666343Seric Improve error message on newaliases if database files cannot be 209766343Seric opened or if running with no database format defined. 209866343Seric Do a better estimation of the size of error messages when NoReturn 209966343Seric is set. Problem noted by P{r (Pell) Emanuelsson. 210066343Seric Fix a problem causing the "c" option (don't connect to expensive 210166343Seric mailers) to be ignored in SMTP. Problem noted and the 210266343Seric solution suggested by Robert Elz of Munnari University. 210366343Seric Improve connection caching algorithm by passing "[host]" to 210466343Seric hostsignature, which strips the square brackets and 210566343Seric returns the real name. This allows mailertable entries 210666343Seric to match regular entries. 210766343Seric Re-enable Return-Receipt-To: -- people seem to want this stupid 210866343Seric feature, even if it doesn't work right. 210966343Seric Catch and log attempts to try the "wiz" command in server SMTP. 211066343Seric This also ups the log level from LOG_NOTICE to LOG_CRIT. 211166343Seric Be more generous at assigning $z to the home directory -- do this 211266343Seric for programs that are specified through a .forward file. 211366343Seric Fix from Andrew Chang of Sun Microsystems. 211466343Seric Always save a fatal error message in preference to a non-fatal 211566343Seric error message so that the "subject" line of return 211666343Seric messages is the best possible. 211766343Seric CONFIG: reduce the number of quotes needed to quote configuration 211866343Seric parameters with commas: two quotes should work now, e.g., 211966343Seric define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local''). 212066343Seric CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom 212166343Seric connections (domain-ized UUCP). 212266343Seric CONFIG: fix bug in default maps (-o must be before database file 212366343Seric name). Pointed out by Christophe Wolfhugel. 212466343Seric CONFIG: add FEATURE(nodns) to state that we are not relying on 212566343Seric DNS. This would presumably be used in UUCP islands. 212666343Seric CONFIG: add OSTYPE(nextstep) and OSTYPE(linux). 212766343Seric CONFIG: log $u in Received: line. This is in technical violation 212866343Seric of the standards, since it doesn't guarantee a domain 212966343Seric on the address. 213066343Seric CONFIG: don't assume "m" in local mailer flags -- this means that 213166343Seric if you redefine LOCAL_MAILER_FLAGS you will have to include 213266343Seric the "m" flag should you want it. Apparently some Solaris 2.2 213366343Seric installations can't handle multiple local recipients. 213466343Seric Problem noted by Josh Smith. 213566343Seric CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults). 213666343Seric CONFIG: change default version level from 4 to 5. 213766343Seric CONFIG: add FEATURE(nullclient) to create a config file that 213866343Seric forwards all mail to a hub without ever looking at the 213966343Seric addresses in any detail. 214066343Seric CONFIG: properly strip mailer: information off of relays when 214166343Seric used to change .BITNET form into %-hack form. 214266343Seric CONFIG: fix a problem that caused infinite loops if presented 214366343Seric with an address such as "!foo". 214466343Seric CONFIG: check for self literal (e.g., [128.32.131.12]) even if 214566343Seric the reverse "PTR" mapping is broken. There's a better 214666343Seric way to do this, but the change is fairly major and I 214766343Seric want to hold it for another release. Problem noted by 214866343Seric Bret Marquis. 214966343Seric 215066342Seric8.5/8.5 93/07/23 215166342Seric Serious bug: if you used a command line recipient that was unknown 215266342Seric sendmail would not send a return message (it was treating 215366342Seric everything as though it had an SMTP-style client that 215466342Seric would do the return itself). Problem noted by Josh Smith. 215566342Seric Change "trymx" option in getcanonname() to ignore all MX data, 215666342Seric even during a T_ANY query. This actually didn't break 215766342Seric anything, because the only time you called getcanonname 215866342Seric with !trymx was if you already knew there were no MX 215966342Seric records, but it is somewhat cleaner. From Motonori 216066342Seric Nakamura. 216166342Seric Don't call getcanonname from getmxrr if you already know there 216266342Seric are no DNS records matching the name. 216366342Seric Fix a problem causing error messages to always include "The 216466342Seric original message was received ... from localhost". 216566342Seric The correct original host information is now included. 216666342Seric Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their 216766342Seric version of "test" doesn't have the -x flag). Change it 216866342Seric to use -f instead. From John Myers. 216966342Seric CONFIG: 8.4 mistakenly set the default SMTP-style mailer to 217066342Seric esmtp -- it should be smtp. 217166342Seric CONFIG: send all relayed mail using confRELAY_MAILER (defaults 217266342Seric to "relay" (a variant of "smtp") if MAILER(smtp) is used, 217366342Seric else "suucp" if MAILER(uucp) is used, else "unknown"); 217466342Seric this cleans up the configs somewhat. This fixes a serious 217566342Seric problem that caused route-addrs to get mistaken as relays, 217666342Seric pointed out by John Myers. WARNING: this also causes 217766342Seric the default on SMART_HOST to change from "suucp" to 217866342Seric "relay" if you have MAILER(smtp) specified. 217966342Seric 218066341Seric8.4/8.4 93/07/22 218166341Seric Add option `w'. If you receive a message that comes to you because 218266341Seric you are the best (lowest preference) target of an MX, and 218366341Seric you haven't explicitly recognized the source MX host in 218466341Seric your .cf file, this option will cause you to try the target 218566341Seric host directly (as if there were no MX for it at all). If 218666341Seric `w' is not set, this case is a configuration error. 218766341Seric Beware: if `w' is set, senders may get bogus errors like 218866341Seric "message timed out" or "host unknown" for problems that 218966341Seric are really configuration errors. This option is 219066341Seric disrecommended, provided only for compatibility with 219166341Seric UIUC sendmail. 219266341Seric Fix a problem that caused the incoming socket to be left open 219366341Seric when sendmail forks after the DATA command. This caused 219466341Seric calling systems to wait in FIN_WAIT_2 state until the 219566341Seric entire list was processed and the child closed -- a 219666341Seric potentially prodigious amount of time. Problem noted 219766341Seric by Neil Rickert. 219866341Seric Fix problem (created in 6.64) that caused mail sent to multiple 219966341Seric addresses, one of which was a bad address, to completely 220066341Seric suppress the sending of the message. This changes 220166341Seric handling of EF_FATALERRS somewhat, and adds an 220266341Seric EF_GLOBALERRS flag. This also fixes a potential problem 220366341Seric with duplicate error messages if there is a syntax error 220466341Seric in the header of a message that isn't noticed until late 220566341Seric in processing. Original problem pointed out by Josh Smith 220666341Seric of Harvey Mudd College. This release includes quite a bit 220766341Seric of dickering with error handling (see below). 220866341Seric Back out SMTP transaction if MAIL gets nested 501 error. This 220966341Seric will only hurt already-broken software and should help 221066341Seric humans. 221166341Seric Fix a problem that broke aliases when neither NDBM nor NEWDB were 221266341Seric compiled in. It would never read the alias file. 221366341Seric Repair unbalanced `)' and `>' (the "open" versions are already 221466341Seric repaired). 221566341Seric Logging of "done" in dropenvelope() was incorrect: it would 221666341Seric log this even when the queue file still existed. Change 221766341Seric this to only log "done" (at log level 11) when the 221866341Seric queue file is actually removed. From John Myers. 221966341Seric Log "lost connection" in server SMTP at log level 20 if there 222066341Seric is no pending transaction. Some senders just close the 222166341Seric connection rather than sending QUIT. 222266341Seric Fix a bug causing getmxrr to add a dot to the end of unqualified 222366341Seric domains that do not have MX records -- this would cause 222466341Seric the subsequent host name lookup to fail. The problem 222566341Seric only occurred if you had FEATURE(nocanonify) set. 222666341Seric Problem noted by Rick McCarty of Texas Instruments. 222766341Seric Fix invocation of setvbuf when passed a -X flag -- I had 222866341Seric unwittingly used an ANSI C extension, and this caused 222966341Seric core dumps on some machines. 223066341Seric Diagnose self-destructive alias loops on RCPT as well as EXPN. 223166341Seric Previously it just gave an empty send queue, which 223266341Seric then gave either "Need RCPT (recipient)" at the DATA 223366341Seric (confusing, since you had given an RCPT command which 223466341Seric returned 250) or just dropped the email, depending on 223566341Seric whether you were running VERBose mode. Now it usually 223666341Seric diagnoses this case as "aliasing/forwarding loop broken". 223766341Seric Unfortunately, it still doesn't adequately diagnose 223866341Seric some true error conditions. 223966341Seric Add internal concept of "warning messages" using 6xx codes. 224066341Seric These are not reported only to Postmaster. Unbalanced 224166341Seric parens, brackets, and quotes are printed as 653 codes. 224266341Seric They are always mapped to 5xx codes before use in SMTP. 224366341Seric Clean up error messages to tell both the actual address that 224466341Seric failed and the alias they arose from. This makes it 224566341Seric somewhat easier to diagnose problems. Difficulty noted 224666341Seric by Motonori Nakamura. 224766341Seric Fix a problem that inappropriately added a ctladdr to addresses 224866341Seric that shouldn't have had one during a queue run. This 224966341Seric caused error messages to be handled differently during 225066341Seric a queue run than a direct run. 225166341Seric Don't print the qf name and line number if you get errors during 225266341Seric the direct run of the queue from srvrsmtp -- this was 225366341Seric just extra stuff for users to crawl through. 225466341Seric Put command line flags on second line of pid file so you can 225566341Seric auto-restart the daemon with all appropriate arguments. 225666341Seric Use "kill `head -1 /etc/sendmail.pid`" to stop the 225766341Seric daemon, and "eval `tail -1 /etc/sendmail.pid`" to 225866341Seric restart it. 225966341Seric Remove the ``setuid(getuid())'' in main -- this caused the 226066341Seric IDENT daemon to screw up. This required that I change 226166341Seric HASSETEUID to HASSETREUID and complicate the mode 226266341Seric changing somewhat because both Ultrix and SunOS seem 226366341Seric to have a bug causing seteuid() to set the saved uid 226466341Seric as well as the effective. The program test/t_setreuid.c 226566341Seric will test to see if your implementation of setreuid(2) 226666341Seric is appropriately functional. 226766341Seric The FallBackMX (option V) handling failed to properly identify 226866341Seric fallback to yourself -- most of the code was there, 226966341Seric but it wasn't being enabled. Problem noted by Murray 227066341Seric Kucherawy of the University of Waterloo. 227166341Seric Change :include: open timeout from ETIMEDOUT to an internal 227266341Seric code EOPENTIMEOUT; this avoids adding "during SmtpPhase 227366341Seric with CurHostName" in error messages, which can be 227466341Seric confusing. Reported by Jonathan Kamens of OpenVision 227566341Seric Technologies. 227666341Seric Back out setpgrp (setpgid on POSIX systems) call to reset the 227766341Seric process group id. The original fix was to get around 227866341Seric some problems with recalcitrant MUAs, but it breaks 227966341Seric any call from a shell that creates a process group id 228066341Seric different from the process id. I could try to fix 228166341Seric this by diddling the tty owner (using tcsetpgrp or 228266341Seric equivalent) but this is too likely to break other 228366341Seric things. 228466341Seric Portability changes: 228566341Seric Support -M as equivalent to -oM on Ultrix -- apparently 228666341Seric DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs 228766341Seric instead of using standard flags. Oh joy. This 228866341Seric behaviour reported by Jon Giltner of University 228966341Seric of Colorado. 229066341Seric SGI IRIX -- this includes several changes that should 229166341Seric help other strict ANSI compilers. 229266341Seric SCO Unix -- from Murray Kucherawy of HookUp Communication 229366341Seric Corporation. 229466341Seric Solaris running the Sun C compiler (which despite the 229566341Seric documentation apparently doesn't define 229666341Seric __STDC__ by default). 229766341Seric ConvexOS from Eric Schnoebelen of Convex. 229866341Seric Sony NEWS workstations and Omron LUNA workstations from 229966341Seric Motonori Nakamura. 230066341Seric CONFIG: add confTRY_NULL_MX_LIST to set option `w'. 230166341Seric CONFIG: delete `C' and `e' from default SMTP mailers flags; 230266341Seric several people have made a good argument that this 230366341Seric creates more problems than it solves (although this 230466341Seric may prove painful in the short run). 230566341Seric CONFIG: generalize all the relays to accept a "mailer:host" 230666341Seric format. 230766341Seric CONFIG: move local processing in ruleset 0 into a new ruleset 230866341Seric 98 (8 on old sendmail). Domain literal [a.b.c.d] 230966341Seric addresses are also passed through this ruleset. 231066341Seric CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined, 231166341Seric internet-style addresses would "fall off the end" of 231266341Seric ruleset zero and be interpreted as local -- however, 231366341Seric the angle brackets confused the recursive call. 231466341Seric These are now diagnosed as "Unrecognized host name". 231566341Seric CONFIG: USENET rules weren't included in S0 because of a mistaken 231666341Seric ifdef(`_MAILER_USENET_') instead of 231766341Seric ifdef(`_MAILER_usenet_'). Problem found by Rein Tollevik 231866341Seric of SINTEF RUNIT, Oslo. 231966341Seric CONFIG: move up LOCAL_RULE_0 processing so that it happens very 232066341Seric early in ruleset 0; this allows .mc authors to bypass 232166341Seric things like the "short circuit" code for local addresses. 232266341Seric Prompted by a comment by Bill Wisner of The Well. 232366341Seric CONFIG: add confSMTP_MAILER to define the mailer used (smtp or 232466341Seric esmtp) to send SMTP mail. This allows you to default 232566341Seric to esmtp but use a mailertable or other override to 232666341Seric deal with broken servers. This logic was pointed out 232766341Seric to me by Bill Wisner. Ditto for confLOCAL_MAILER. 232866341Seric Changes to cf/sh/makeinfo.sh to make it portable to SVR4 232966341Seric environments. Ugly as sin. 233066341Seric 233166340Seric8.3/8.3 93/07/13 233266340Seric Fix setuid problems introduced in 8.2 that caused messages 233366340Seric like "Cannot create qfXXXXXX: Invalid argument" 233466340Seric or "Cannot reopen dfXXXXXX: Permission denied". This 233566340Seric involved a new compile flag "HASSETEUID" that takes 233666340Seric the place of the old _POSIX_SAVED_IDS -- it turns out 233766340Seric that the POSIX interface is broken enough to break 233866340Seric some systems badly. This includes some fixes for 233966340Seric HP-UX. Also fixes problems where the real uid is 234066340Seric not reset properly on startup (from Neil Rickert). 234166340Seric Fix a problem that caused timed out messages to not report the 234266340Seric addresses that timed out. Error messages are also more 234366340Seric "user friendly". 234466340Seric Drop required bandwidth on connections from 64 bytes/sec to 234566340Seric 16 bytes/sec. 234666340Seric Further Solaris portability changes -- doesn't require the BSD 234766340Seric compatibility library. This also adds a new 234866340Seric "HASGETDTABLESIZE" compile flag which can be used if 234966340Seric you want to use getdtablesize(2) instead of sysconf(2). 235066340Seric These are loosely based on changes from David Meyer at 235166340Seric University of Oregon. This now seems to work, at least 235266340Seric for quick test cases. 235366340Seric Fix a problem that can cause duplicate error messages to be 235466340Seric sent if you are in SMTP, you send to multiple addresses, 235566340Seric and at least one of those addresses is good and points 235666340Seric to an account that has a .forward file (whew!). 235766340Seric Fix a problem causing messages to be discarded if checkcompat() 235866340Seric returned EX_TEMPFAIL (because it didn't properly mark 235966340Seric the "to" address). Problem noted by John Myers. 236066340Seric Fix dfopen to return NULL if the open failed; I was depending 236166340Seric on fdopen(-1) returning NULL, which isn't the case. This 236266340Seric isn't serious, but does result in wierd error diagnoses. 236366340Seric From Michael Corrigan. 236466340Seric CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of 236566340Seric messages sent through UUCP-family mailers. Suggested 236666340Seric by Bill Wisner of The Well. 236766340Seric CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified, 236866340Seric include a "uucp-dom" mailer that uses domain-style 236966340Seric addressing. Suggested by Bill Wisner. 237066340Seric CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match 237166340Seric LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS. Suggested by 237266340Seric Christophe Wolfhugel. 237366340Seric CONFIG: Add OSTYPE(aix3). From Christophe Wolfhugel. 237466340Seric 237566339Seric8.2/8.2 93/07/11 237666339Seric Don't drop out on config file parse errors in -bt mode. 237766339Seric On older configuration files, assume option "l" (use Errors-To 237866339Seric header) for back compatibility. NOTE: this DOES NOT 237966339Seric imply an endorsement of the Errors-To: header in any way. 238066339Seric Accept -x flag on AIX-3 as well as OSF/1. Why, why, why??? 238166339Seric Don't log errors on EHLO -- it isn't a "real" error for an old 238266339Seric SMTP server to give an error on this command, and 238366339Seric logging it in the transcript can be confusing. Fix 238466339Seric from Bill Wisner. 238566339Seric IRIX compatibility changes provided by Dan Rich 238666339Seric <drich@sandman.lerc.nasa.gov>. 238766339Seric Solaris 2 compatibility changes. Provided by Bob Cunningham 238866339Seric <bob@kahala.soest.hawaii.edu>, John Oleynick 238966339Seric <juo@klinzhai.rutgers.edu> 239066339Seric Debugging: -d17 was overloaded (hostsignature and usersmtp.c); 239166339Seric move usersmtp (smtpinit and smtpmailfrom) to -d18 to 239266339Seric match the other flags in that file. 239366339Seric Flush transcript before fork in mailfile(). From Eric Wassenaar. 239466339Seric Save h_errno in mci struct and improve error message display. 239566339Seric Changes from Eric Wassenaar. 239666339Seric Open /dev/null for the transcript if the create of the xf file 239766339Seric failed; this avoids at least one possible null pointer 239866339Seric reference in very wierd cases. From Eric Wassenaar. 239966339Seric Clean up statistics gathering; it was over-reporting because of 240066339Seric forks. From Eric Wassenaar. 240166339Seric Fix problem that causes old Return-Path: line to override new 240266339Seric Return-Path: line (conf.c needs H_FORCE to avoid 240366339Seric re-using old value). From Motonori Nakamura. 240466339Seric Fix broken -m flag in K definition -- even if -m (match only) 240566339Seric was specified, it would still replace the key with the 240666339Seric value. Noted by Rick McCarty of Texas Instruments. 240766339Seric If the name server timed out over several days, no "timed out" 240866339Seric message would ever be sent back. The timeout code 240966339Seric has been moved from markfailure() to dropenvelope() 241066339Seric so that all such failures should be diagnosted. Pointed 241166339Seric out by Christophe Wolfhugel and others. 241266339Seric Relax safefile() constraints: directories in an include or 241366339Seric forward path must be readable by self if the controlling 241466339Seric user owns the entry, readable by all otherwise (e.g., 241566339Seric when reading your .forward file, you have to own and 241666339Seric have X permssion in it; everyone needs X permission in 241766339Seric the root and directories leading up to your home); 241866339Seric include files must be readable by anyone, but need not 241966339Seric be owned by you. 242066339Seric If _POSIX_SAVED_IDS is defined, setuid to the owner before 242166339Seric reading a .forward file; this gets around some problems 242266339Seric on NFS mounts if root permission is not exported and 242366339Seric the user's home directory isn't x'able. 242466339Seric Additional NeXT portability enhancements from Axel Zinser. 242566339Seric Additional HP-UX portability enhancements from Brian Bullen. 242666339Seric Add a timeout around SMTP message writes; this assumes you can 242766339Seric get throughput of at least 64 bytes/second. Note that 242866339Seric this does not impact the "datafinal" default, which 242966339Seric is separate; this is just intended to work around 243066339Seric network clogs that will occur before the final dot 243166339Seric is sent. From Eric Wassenaar. 243266339Seric Change map code to set the "include null" flag adaptively -- 243366339Seric it initially tries both, but if it finds anything 243466339Seric matching without a null it never tries again with a 243566339Seric null and vice versa. If -N is specified, it never 243666339Seric tries without the null and creates new maps with a 243766339Seric null byte. If -O is specified, it never tries with 243866339Seric the null (for efficiency). If -N and -O are specified, 243966339Seric you get -NO (get it?) lookup at all, so this would 244066339Seric be a bad idea. If you don't specify either -N or -O, 244166339Seric it adapts. 244266339Seric Fix recognition of "same from address" so that MH submissions 244366339Seric will insert the appropriate full name information; 244466339Seric this used to work and got broken somewhere along the 244566339Seric way. 244666339Seric Some changes to eliminate some unnecessary SYSERRs in the 244766339Seric log. For example, if you lost a connection, don't 244866339Seric bother reporting that fact on the connection you lost. 244966339Seric Add some "extended debugging" flags to try to track down 245066339Seric why we get occassional problems with file descriptor 245166339Seric one being closed when execing a mailer; it seems to 245266339Seric only happen when there has been another error in the 245366339Seric same transaction. This requires XDEBUG, defined 245466339Seric by default in conf.h. 245566339Seric Add "-X filename" command line flag, which logs both sides of 245666339Seric all SMTP transactions. This is intended ONLY for 245766339Seric debugging bad implementations of other mailers; start 245866339Seric it up, send a message from a mailer that is failing, 245966339Seric and then kill it off and examine the indicated log. 246066339Seric This output is not intended to be particularly human 246166339Seric readable. This also adds the HASSETVBUF compile 246266339Seric flag, defaulted on if your compiler defines __STDC__. 246366339Seric CONFIG: change SMART_HOST to override an SMTP mailer. If you 246466339Seric have a local net that should get direct connects, you 246566339Seric will need to use LOCAL_NET_CONFIG to catch these hosts. 246666339Seric See cf/README for an example. 246766339Seric CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle 246866339Seric sites that don't use the -d flag. 246966339Seric CONFIG: hide recipient addresses as well as sender addresses 247066339Seric behind $M if FEATURE(allmasquerade) is specified; this 247166339Seric has been requested by several people, but can break 247266339Seric local aliases. For example, if you mail to "localalias" 247366339Seric this will be rewritten as "localalias@masqueradehost"; 247466339Seric although initial delivery will work, replies will be 247566339Seric broken. Use it sparingly. 247666339Seric CONFIG: add FEATURE(domaintable). This maps unqualified domains 247766339Seric to qualified domains in headers. I believe this is 247866339Seric largely equivalent to the IDA feature of the same name. 247966339Seric CONFIG: use $U as UUCP name instead of $k. This permits you 248066339Seric to override the "system name" as your UUCP name -- 248166339Seric in particular, to use domain-ized UUCP names. From 248266339Seric Bill Wisner of The Well. 248366339Seric CONFIG: create new mailer "esmtp" that always tries EHLO 248466339Seric first. This is currently unused in the config files, 248566339Seric but could be used in a mailertable entry. 248666339Seric 248766338Seric8.1C/8.1B 93/06/27 248866338Seric Serious security bug fix: it was possible to read any file on 248966338Seric the system, regardless of ownership and permissions. 249066338Seric If a subroutine returns a fully qualified address, return it 249166338Seric immediately instead of feeding it back into rewriting. 249266338Seric This fixes a problem with mailertable lookups. 249366338Seric CONFIG: fix some M4 frotz (concat => CONCAT) 249466338Seric 249566338Seric8.1B/8.1A 93/06/12 249666338Seric Serious bug fix: pattern matching backup algorithm stepped by 249766338Seric two tokens in classes instead of one. Found by Claus 249866338Seric Assmann at University of Kiel, Germany. 249966338Seric 250066338Seric8.1A/8.1A 93/06/08 250166338Seric Another mailertable fix.... 250266338Seric 250366338Seric8.1/8.1 93/06/07 250466338Seric 4.4BSD freeze. No semantic changes. 250566338Seric 250666338Seric6.65/6.34 93/06/06 250766338Seric Fix some lintish problems. 250866338Seric Fix some cases where server SMTP behaved poorly when handed bogus 250966338Seric input, pointed out by Eric Wassenaar. 251066338Seric CONFIG: fix some more (sigh) mailertable bugs -- thanks to 251166338Seric Motonori Nakamura of Kyoto University (again). 251266338Seric 251366338Seric6.64/6.33 93/06/05 251466338Seric Don't send 050 (-v) information after the 250 response to a QUIT 251566338Seric command in srvrsmtp -- clients usually close the connection 251666338Seric at this point, and it causes bogus error messages. 251766338Seric Don't send messages that have errors on input (such as unbalanced 251866338Seric parentheses) during SMTP transactions, since a return 251966338Seric message has (probably) already been sent. 252066338Seric Give better diagnostics on timeouts during network reads, including 252166338Seric information similar to the SMTP phase. 252266338Seric Fix bug that caused SMTP messages to deliver synchronously; this 252366338Seric happened after the DATA 250, and hence caused reading the 252466338Seric next command to be delayed. 252566338Seric Ignore Errors-To: header unless 'l' (lower case el) header is 252666338Seric specified. The Errors-To: header violates RFC 1123. 252766338Seric Errors-To: was only needed to take the place of the 252866338Seric envelope sender in the days when most Unix mailers 252966338Seric didn't understand about the two kinds of senders. 253066338Seric Don't send warning messages in response to automatically generated 253166338Seric messages (that is, those From:<>). 253266338Seric CONFIG: fix some rather stupid typos in the mailertable code 253366338Seric pointed out by Motonori Nakamura of Kyoto University. 253466338Seric CONFIG: add confUSE_ERRORS_TO configuration option. 253566338Seric CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M 253666338Seric (masquerade name) instead of $j. 253766338Seric CONFIG: don't add dots to relay names (added in 6.29); it breaks 253866338Seric several things, and can be simulated by dot terminating 253966338Seric the names of relays. For example, use: 254066338Seric DBbit.net.relay. 254166338Seric (note the trailing dot). 254266338Seric 254366338Seric6.63/6.32 93/06/01 254466338Seric Fix prototypes to eliminate chars in argument lists -- some 254566338Seric compilers are pissy about this. 254666338Seric Log protocol ($r) and body type if set so we can determine if 254766338Seric the adaptive algorithms are working. 254866338Seric Pessimize on locking of database files (particularly for NEWDB 254966338Seric databases) during opens. There were problems with 255066338Seric processes opening the file while it was rebuilt; since 255166338Seric NEWDB caches heavily, the reader opened an empty file, 255266338Seric which is an error. If your system has the ability to 255366338Seric lock atomically on open, this works properly; otherwise, 255466338Seric there are race conditions. 255566338Seric Check mod time on .pag file instead of .dir in NDBM aliases 255666338Seric because the .dir file doesn't get updated for small 255766338Seric alias files. From John Gardiner Myers of CMU. 255866338Seric More Solaris portability -- it now compiles on Solaris, but 255966338Seric hangs up in gethostbyname(). 256066338Seric Move setting of RES_DEBUG flag before first myhostname() call 256166338Seric so we can see name server traffic on that call. 256266338Seric Fsync() queue files. 256366338Seric Fix a problem that causes -bi to try to rebuild maps other than 256466338Seric the alias file(s). 256566338Seric Fix a problem that caused udb to reject entries from any but 256666338Seric the first database listed. 256766338Seric Rearrange doc subdirectory for 4.4BSD release tape. 256866338Seric CONFIG: put $r into the Received line. This was an oversight. 256966338Seric CONFIG: fix typo (call to ruleset 99 should have been rulset 90). 257066338Seric CONFIG: move "auxiliary" subroutines to be in ruleset 90-99 257166338Seric range -- in the long run, single digit rulesets may 257266338Seric become reserved for builtin use by sendmail. 257366338Seric CONFIG: fix major problem that causes host aliases (that is, 257466338Seric anything in $=w != $j) to not be recognized. This has 257566338Seric been around since 6.30. 257666338Seric 257766338Seric6.62/6.31 93/05/28 257866338Seric BETA RELEASE 257966338Seric Fix recursive syserr (if there is an error printing a syserr 258066338Seric message). This makes the code much less eager to consider 258166338Seric a write error as serious. This also includes some 258266338Seric heuristics to be clever about closed connections. 258366338Seric Lock NEWDB files during gets. This requires version 1.5 or later 258466338Seric of the db library. If you have an older version, you 258566338Seric can use -DOLD_NEWDB. This will go away in a few weeks. 258666338Seric Fix problem causing aliases that use host maps to get overwritten. 258766338Seric Do appropriate byte swapping on port numbers in ident protocol 258866338Seric code. Fix from Allan Johannesen of WPI. 258966338Seric Defer opening of map files to the same time as alias files so that 259066338Seric the daemon will tend to pick up new versions more promptly. 259166338Seric Prototype a bunch more functions. 259266338Seric Some Solaris 2.1 changes (still doesn't link though). 259366338Seric Try to simplify Makefiles by including more subordinate #defines 259466338Seric in conf.h (based on OS type). 259566338Seric CONFIG: check for domains if FEATURE(mailertable) is defined. 259666338Seric For example, if the host name is "knecht.cs.berkeley.edu" 259766338Seric it will search the following mailertable keys: 259866338Seric knecht.cs.berkeley.edu 259966338Seric .cs.berkeley.edu 260066338Seric .berkeley.edu 260166338Seric .edu 260266338Seric This could be used to replace the special relays for bitnet 260366338Seric and similar nets. 260466338Seric 260566338Seric6.61/6.30 93/05/24 260666338Seric Fix problem that prevented appending dots on canonified host 260766338Seric names. This breaks tons of config files -- very 260866338Seric important fix. 260966338Seric Fix improper pointer dereference in response to HELO command. 261066338Seric Fix core dump if debugging set in map_rewrite. 261166338Seric CONFIG: add FEATURE(always_add_domain) to always attach the 261266338Seric local domain (only impacts local mail). 261366338Seric CONFIG: try to avoid turning names into $j -- although 261466338Seric technically a host can only have one "canonical name", 261566338Seric it seems to be common practice to have several. 261666338Seric 261766338Seric6.60/6.29 93/05/22 261866338Seric Major change: merge alias databases with maps. This expands and 261966338Seric changes the map class interface but fixes a bunch of bugs. 262066338Seric The important user-visible change is that the file name 262166338Seric in a K line now does not include the ".db" extension; this 262266338Seric is added automatically. Also, the -d (NIS domain) flag is 262366338Seric missing from the K config line; use @domain instead. 262466338Seric When compiling, the *_MAP names are gone -- just compile 262566338Seric in NDBM, NEWDB, and/or NIS support. 262666338Seric Announce mailer/host/user triple on -bv flag -- from Brian 262766338Seric Bullen of Stirling University. 262866338Seric Don't send more than one line in response to HELO -- it confuses 262966338Seric Pony Express, which then behaves very badly. However, 263066338Seric this change does send two line 220 greetings, with the 263166338Seric second line reading "ESMTP spoken here". The usersmtp 263266338Seric module recognizes this and goes into ESMTP mode regardless 263366338Seric of the setting of the "a" mailer flag. Thus, "a" means 263466338Seric "always try EHLO". 263566338Seric AIX portability changes (thanks to Christophe Wolfhugel of 263666338Seric Herve Schauer Consultants (Paris) for providing me with 263766338Seric an INSA account for this purpose). Lightly tested. Use 263866338Seric -D_AIX3. This probably breaks compatibility with some 263966338Seric older systems (e.g., 4.2bsd) but still works on SunOS 264066338Seric 4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3. 264166338Seric Fix a problem causing an error message loop if the output channel 264266338Seric is hosed. 264366338Seric Add the Makefiles that I use for various environments -- some are 264466338Seric Berkeley make versions and some are old make versions. 264566338Seric My makefile for the NeXT box has gotten lost, alas! 264666338Seric PRALIASES: support for printing NEWDB databases. From 264766338Seric Michael J. Corrigan of U.C. San Diego. 264866338Seric CONFIG: don't pass pseudo-domains to $[ ... $] (if you have 264966338Seric a wildcard MX it can have wierd results). From 265066338Seric Christophe Wolfhugel. 265166338Seric CONFIG: dot terminate relay hostnames in S0. From Christophe 265266338Seric Wolfhugel. 265366338Seric 265466338Seric6.59/6.28 93/05/13 265566338Seric Log version with SMTP daemon startup message. 265666338Seric Adjust setproctitle to work on NetBSD and BSD/386. 265766338Seric Fix null pointer reference in MX fallback code. 265866338Seric A bunch of minor fixes from Eric Wassenaar: 265966338Seric If deliver cannot execv the mailer, return EX_OSERR 266066338Seric instead of EX_TEMPFAIL (to give better 266166338Seric error messages). 266266338Seric Consistently malloc e_message. 266366338Seric Catch degenerate case of calling returntosender() 266466338Seric with an empty returnq. 266566338Seric MIME reformatting. 266666338Seric 266766338Seric6.58/6.28 93/05/13 266866338Seric Fix bug that can cause incorrect verbose display of user smtp 266966338Seric messages. 267066338Seric Disable SMTP VERB command if PRIV_NOEXPN is set (since this 267166338Seric could reveal the same information. 267266338Seric Allow failure when reading SMTP greeting message to go on to 267366338Seric next MX host. 267466338Seric Add "MIME-Version: 1.0" header if using MIME (this was NOT 267566338Seric included in RFC 1344, but Bill King of Allan-Bradley 267666338Seric Company forwarded me email from Nathaniel Borenstein 267766338Seric claiming that it was an inadvertent omission). 267866338Seric Don't use Content-Type: X-message-header. According to John 267966338Seric Myers of CMU, many MIME readers will completely ignore 268066338Seric the data if they don't recognize it. Instead, just 268166338Seric add a blank line to make it a legal (empty) message. 268266338Seric Fix problem causing dots to keep getting appended to cached 268366338Seric hostnames. This can cause buffer overrun conditions. 268466338Seric The problem was found by Erik Forsberg of Retix, 268566338Seric although I used a different bug fix than he provided. 268666338Seric Fix parsing of split header/envelope rewriting specs -- from 268766338Seric Eric Forsberg. 268866338Seric Fix from Eric Wassenaar to correct To: lists in error messages. 268966338Seric 269066338Seric6.57/6.28 93/05/11 269166338Seric Fix minor glitch causing extra ctladdrs to be output to queue 269266338Seric file. Just an annoyance. 269366338Seric Cache results of name server canonification lookups to avoid 269466338Seric backed up queue runs. 269566338Seric Major rewrite of alias.c: considerable cleanup, plus sample 269666338Seric (untested) support for NIS aliases. The "A" option 269766338Seric can now be a comma separated list (or be repeated) -- 269866338Seric that is, you can have multiple alias databases. Each 269966338Seric database can have the syntax ``class:file''; if no class 270066338Seric is specified, the "implicit" class is assumed. Implicit 270166338Seric searches through a list of compiled in types -- hash, 270266338Seric dbm, nis, and stab. Alias files are searched in the 270366338Seric order they are listed. For example: 270466338Seric OAhash:/etc/aliases.local,/etc/aliases 270566338Seric OAnis:mail.aliases@my.nis.domain 270666338Seric first searches the hash database /etc/aliases.local, 270766338Seric then the regular /etc/aliases database, then the NIS 270866338Seric map "mail.aliases" in the NIS domain "my.nis.domain". 270966338Seric If in Verbose mode (probably from VERB command) run SMTP job 271066338Seric in foreground and don't do RCPT optimizations. 271166338Seric Add udb :mailsender as equivalent to owner- for regular aliases. 271266338Seric Delete option 8; add option 7 that means the opposite. That is, 271366338Seric default to 8-bit mode; a special option is needed to 271466338Seric force sendmail into 7 bit mode. 271566338Seric Send error messages in encapsulated MIME format. 271666338Seric New compile flag "NIS" that turns on NIS alias and NIS map 271766338Seric support. 271866338Seric Add "j" option to send error messages in MIME (RFC 1341) 271966338Seric encapsulated message format per RFC 1344. The 272066338Seric syntax is pretty ugly if you don't have MIME-aware 272166338Seric user agents. 272266338Seric Clean up message handling (for display in mailq output). 272366338Seric New setproctitle implementation for 4.4bsd. 272466338Seric Create files (such as ~/dead.letter) using mode FileMode (the 272566338Seric F option value) instead of 0666. 272666338Seric Fix bug causing output of EXPN command to not be fully qualified. 272766338Seric This may cause some problems with UUCP addresses that 272866338Seric will require some config file assistance -- specifically, 272966338Seric the $: part has to include the host name for this output 273066338Seric to make sense. 273166338Seric Fix a problem that sometimes diagnosed errors and still sent the 273266338Seric message if the header syntax was bad. 273366338Seric Fix a bug that caused an error message to be emailed when sendmail 273466338Seric was operating in -bv mode. 273566338Seric Add "ListenQueueSize" keyword to daemon options option (OO) to 273666338Seric set the queue size parameter passed to listen(). You 273766338Seric will normally have to tweak your kernel to up this. 273866338Seric Strip spaces off of beginning of message-id before logging (in 273966338Seric case it was folded across lines). 274066338Seric Tweak compile flags in daemon.c -- there were some cases where 274166338Seric it wouldn't work without NETINET. 274266338Seric Change *file* mailer to output all the usual default headers 274366338Seric (From, Date, Message-Id). It gets used when sending 274466338Seric back error messages. 274566338Seric CONFIG: explicitly catch and diagnose list:; syntax in ruleset 274666338Seric zero -- this is not a valid recipient syntax according 274766338Seric to RFC 821. 274866338Seric CONFIG: add confMIME_FORMAT_ERRORS to send error messages in 274966338Seric MIME format. Defaults to on. 275066338Seric CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment 275166338Seric the flags for those mailers. 275266338Seric 275366338Seric6.56/6.27 93/05/01 275466338Seric Fix problem that causes the fallback mail to postmaster 275566338Seric (case ESM_POSTMASTER in savemail()) to not look at 275666338Seric aliases (ugh). 275766338Seric Some more HPUX tweaking (compile flag hpux => __hpux so it 275866338Seric still works in ANSI mode). 275966338Seric Don't try to flock non-regular files when mailing to a file. 276066338Seric In particular, this was a problem if you tried to 276166338Seric send to /dev/null. 276266338Seric Fix a wierd bug that can cause senders to be queued as 276366338Seric recipients if the name server is down when the mail 276466338Seric is initially sent. This hack just ignores sender 276566338Seric deletion (essentially, it sets the MeToo flag) if there 276666338Seric is a TEMPFAIL during processing of the sender address. 276766338Seric Obscure. 276866338Seric Fix a dangling else problem -- from Brian Bullen from University 276966338Seric of Stirling, UK. 277066338Seric Add the "b" mailer flag to force a blank line on the end of 277166338Seric messages. Some brilliant versions of /bin/mail insist 277266338Seric on this but do not add it themselves. 277366338Seric Add the "g" mailer flag to prevent user SMTP from sending 277466338Seric "MAIL From:<>". This is only intended to be a 277566338Seric transitional gesture, and should not be used if at 277666338Seric all possible. It appears that Berkeley and IDA 277766338Seric config files have always handled this properly; the 277866338Seric UK config kit apparently does not. 277966338Seric Don't lowercase and then capitalize header field names -- leave 278066338Seric them with original capitalization. Fixes from Bill 278166338Seric King of Allen-Bradley Company. 278266338Seric Further cleanup and improved reporting of error messages, 278366338Seric particularly conditions that cause messages to be 278466338Seric requeued for future delivery. 278566338Seric Tweak syslog priorities in some cases. 278666338Seric CONFIG: clean up route-addr on UUCP addresses. 278766338Seric 278866338Seric6.55/6.25 93/04/27 278966338Seric HPUX 8.07 compatibility changes in getla() -- I had to make 279066338Seric these changes to get it to work at Berkeley, although 279166338Seric others seem to have been working before (???). 279266338Seric Various patches to XLA code. 279366338Seric Fix problem that causes setuid bit on files to be ignored from 279466338Seric SMTP or in queue runs. Problem noted by Jason Ornstein 279566338Seric of Under The Wire, Inc. 279666338Seric Fix problem that can cause CNAMEs to be ignored. 279766338Seric Generalize getmxrr to match local host in $=w instead of a 279866338Seric single name passed in. 279966338Seric Some cleanup from Eric Wassenaar: 280066338Seric Use FileMailer instead of ProgMailer in two places. 280166338Seric Eliminate duplicate 8th-bit stripping in commaize. 280266338Seric Fix a problem with mis-parsing of backslash escapes 280366338Seric under some circumstances. 280466338Seric NIS map fix (was always including trailing null character) 280566338Seric from Mike Glendinning of Ingres UK. 280666338Seric Add "a" mailer flag to try using ESMTP. It tries the EHLO 280766338Seric command and if that fails falls back to regular SMTP. 280866338Seric Also parses EHLO option keywords. If host supports 280966338Seric SIZE extension, this is added to the MAIL FROM: 281066338Seric command. 281166338Seric Extend "b" option to include a second value which is the 281266338Seric maximum message size this server is willing to accept. 281366338Seric For example, a value of "10/1000000" says that there 281466338Seric must be ten blocks free, and sendmail will reject 281566338Seric any message larger than one megabyte. 281666338Seric Some portability hooks for NeXT (this could be applicable 281766338Seric to Mach in general). You have to create an empty 281866338Seric file called "unistd.h" to get it to compile. 281966338Seric Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to 282066338Seric be more generous. 282166338Seric Add X400-Received: to the list of headers tagged with H_TRACE 282266338Seric in conf.c. From Bill King, Allen-Bradley Co. 282366338Seric 282466338Seric6.54/6.25 93/04/19 282566338Seric Fix problem that caused redefinition of SMTP and QUEUE compile 282666338Seric flags. Pointed out by Jon Forrest of the Sequoia 2000 282766338Seric project at Berkeley. 282866338Seric Properly handle \! hack -- it was treating host\!user as one 282966338Seric token (host!user) instead of three (host, !, user). 283066338Seric Fix from Eric Wassenaar of NIKHEF-H. 283166338Seric Fix compilation problem in getauthinfo() if IDENTPROTO is off. 283266338Seric Turn off DEFNAMES and DNSRCH when getting the hostsignature 283366338Seric (i.e., MX records) in level 1 configuration files; this 283466338Seric matches the old behaviour. From Motonori Nakamura of 283566338Seric Kyoto University. 283666338Seric Improve error message printing -- if sent through an alias, 283766338Seric error messages include the name of the alias in the 283866338Seric message. Unfortunately, in order to make this work 283966338Seric properly in queue runs, this changes the format of the 284066338Seric C line in the qf file. The relatively uselessness of 284166338Seric the previous information was pointed out to me by 284266338Seric Allan E Johannesen of WPI. 284366338Seric Add XLA compile flag to add hooks to Christophe Wolfhugel's 284466338Seric extended load average code. This is still in very early 284566338Seric form. For information regarding the guts of the xla 284666338Seric code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr. 284766338Seric Additional hooks for detecting tempfails in rewriting rules 284866338Seric (that is, in map lookups). 284966338Seric 285066338Seric6.53/6.25 93/04/15 285166338Seric Properly diagnose ruleset zero returning null (instead of a mailer 285266338Seric triple). From Motonori Nakamura of Kyoto University. 285366338Seric More generalization of socket code for other protocols. 285466338Seric Shorten timeouts on reverse name lookups -- since they are done 285566338Seric during connection establishment, long timeouts here can 285666338Seric cause higher level timeouts. This mainly serves to accept 285766338Seric mail from hosts that do not have proper reverse (PTR) DNS 285866338Seric records set up. 285966338Seric Reset e_statmsg before each mailer invocation to avoid bogus 286066338Seric messages in the log. 286166338Seric Redefine $r, $s, and $_ in error envelopes so you don't get 286266338Seric incorrect cruft in the error message. Problem noted by 286366338Seric Motonori Nakamura of Kyoto University. 286466338Seric Fix a problem that can cause failure to return errors to Postmaster 286566338Seric in certain cases. From Motonori Nakamura. 286666338Seric Fix a problem that can cause some systems to give duplicate error 286766338Seric messages when a bad syntax address such as "<a" is presented 286866338Seric to an SMTP server. It doesn't seem to occur on all 286966338Seric machines. From Motonori Nakamura. 287066338Seric Default IDENTPROTO off for Ultrix and HPUX, which apparently have 287166338Seric the interesting "feature" that when they receive a "Host 287266338Seric unreachable" message they closes all open connections to 287366338Seric that host. However, some firewall gateways send this message 287466338Seric if you try to connect to an unauthorized port, such as the 287566338Seric IDENT port (113). Thus, no email can be received from such 287666338Seric hosts. There is some evidence that versions of Ultrix before 287766338Seric 4.3 do not have this problem. Thanks to Tom Ivar Helbekkmo 287866338Seric for pointing out this behaviour to me and to Michael Corrigan 287966338Seric of U.C. San Diego for informing me about the HPUX problem. 288066338Seric Allow IPC mailers to return a colon-separated list of hosts in the 288166338Seric $@ clause; these are searched in order as though they were 288266338Seric MX records. 288366338Seric When sending an error report, print the list of addresses tagged 288466338Seric as bad. Requested by Allan E Johannesen of WPI. 288566338Seric Change map function calls to return a status code. This gets 288666338Seric passed back as the result of rewrite. Parseaddr marks 288766338Seric the address as a QUEUEUP address if the return code is 288866338Seric EX_TEMPFAIL. All this to queue properly if the name 288966338Seric server is down. This code is not well tested. This code 289066338Seric changes the interface to map lookup functions (a fifth 289166338Seric parameter, int *statp, is added). Feature requested by 289266338Seric Dan Oscarsson. 289366338Seric Don't delete quotes (in the dequote map) if there are spaces in 289466338Seric the string, since this would cause them to be replaced by 289566338Seric the SpaceSub character. 289666338Seric Accept BODY=8BITMIME on SMTP MAIL command. This isn't advertised 289766338Seric because the 8BIT to 7BIT translation doesn't exist yet. 289866338Seric This does add a "bodytype" field to both envelope and 289966338Seric queue file and a -B command line flag to pass the type in 290066338Seric during direct invocations. 290166338Seric Discard return error messages only on responses to responses to 290266338Seric responses, not on responses to responses. That is, the 290366338Seric algorithm is to try return to sender, then return to 290466338Seric postmaster, then discard. Previously it discarded 290566338Seric immediately if the return to sender pass failed. 290666338Seric CONFIG: back out change to hide unqualified hostnames behind %-hack. 290766338Seric This screws up local aliases and .forward files. 290866338Seric CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $]; 290966338Seric some sites only handle completely canonified names. 291066338Seric Requested by John Gardiner Myers of CMU. 291166338Seric CONFIG: some UUCP code was still included even if FEATURE(nouucp) 291266338Seric was specified. 291366338Seric 291466338Seric6.52/6.24 93/04/10 291566338Seric Clean up some minor glitches on error return messages pointed out 291666338Seric by Motonori Nakamura of Kyoto University. 291766338Seric Fix reply() to not reset SmtpReplyBuffer on fatal errors; this 291866338Seric was supposed to reset SmtpMsg Buffer. This makes the 291966338Seric client side code virtually useless. Reported by Allan 292066338Seric E Johannesen of WPI and Phil Brandenberger of Swarthmore. 292166338Seric Better debug messages if fuzzy is disabled, suggested by Allan 292266338Seric E Johannesen of WPI. 292366338Seric Offset SmtpReplyBuffer by four in usersmtp when checking for 292466338Seric loopback. From Eric Wassenaar. 292566338Seric Don't set $s until after runinchild in srvrsmtp -- otherwise 292666338Seric it gets cleared. From Eric Wassenaar. 292766338Seric Implement IDA-style $&x for deferred macro expansion. 292866338Seric More POSIX compatibility. 292966338Seric CONFIG: Hide unqualified hostnames behind %-hack using $s as the 293066338Seric actual sender. This is only done if $r is non-null, that 293166338Seric is, if this is not locally submitted mail. 293266338Seric CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host 293366338Seric names to internet domains. A program contributed by 293466338Seric John Gardiner Myers of CMU to create the maps is included 293566338Seric in the contrib directory (in the "misc" tar file). 293666338Seric CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP 293766338Seric hosts. There is currently no tool to create this map. 293866338Seric 293966338Seric6.51/6.23 93/04/04 294066338Seric Add D= mailer flag to specify a path of possible working directories 294166338Seric in which to execute the mailer. This is intended for the 294266338Seric prog mailer; some shells can get upset if they don't have 294366338Seric access to the current directory. 294466338Seric Add RFC 1413 (IDENT) protocol support. This is only very loosely 294566338Seric tested. This adds a $_ macro to be the authenticated 294666338Seric info (in ``user@domain [address]'' form) and debug flag 294766338Seric 9 to trace the protocol. 294866338Seric Check for loopbacks in usersmtp instead of srvrsmtp -- there is no 294966338Seric reason for a local agent to not be talking to the localhost 295066338Seric (although the inverse is not true). 295166338Seric Add a few hooks for automated map rebuilding. This is certainly 295266338Seric not done yet. 295366338Seric CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is, 295466338Seric user's home directory then the root. 295566338Seric CONFIG: Log RFC 1413 identification in Received: line. 295666338Seric 295766338Seric6.50/6.22 93/04/01 295866338Seric Fixes to requeueing code to make it compute priority, nrcpts, 295966338Seric and the like properly. 296066338Seric 296166338Seric6.49/6.22 93/04/01 296266338Seric Diagnose incorrect privacy flags. Suggested by Bryan Costales 296366338Seric of ICSI. 296466338Seric Some ANSI C fixes. 296566338Seric Arrange to quote backslashes as well as other special characters 296666338Seric in the phrase part of a route-addr. 296766338Seric Some fixes to FallBackMX code suggested by Motonori Nakamura of 296866338Seric Kyoto University. 296966338Seric More vigorous zeroing of CurHostAddr to avoid logging of bogus 297066338Seric host addresses when you are actually just printing 297166338Seric information from the MCI structure; problem noted by 297266338Seric Michael Corrigan of U.C. San Diego. 297366338Seric Don't ignore rest of queue if any job is not runnable. This can 297466338Seric also cause an incorrect job to be lost. Fix from 297566338Seric Eric Wassenaar. 297666338Seric Always respond "quickly" to RCPT command; do alias expansion and 297766338Seric the like later. This also means that mail for lists that 297866338Seric have errors will be acccepted, and an error sent back 297966338Seric later. This is done by instantiating the queue file 298066338Seric and then immediately running and requeueing it. 298166338Seric 298266338Seric6.48/6.22 93/03/30 298366338Seric Fix incorrect diagnosis of infinite loop in ruleset. Problem noted 298466338Seric by several people. 298566338Seric Improve information printed when infinite loops are discovered. 298666338Seric Zero CurHostAddr to fix erroneous internet addresses in log when no 298766338Seric addresses can be bound. Pointed out by Motonori Nakamura 298866338Seric of Kyoto University. 298966338Seric "Probe" SMTP connections using RSET instead of NOOP "just in case". 299066338Seric Suggested by John Gardiner Myers of CMU. 299166338Seric Don't warn about -f if you are setting sender to yourself. 299266338Seric 299366338Seric6.47/6.22 93/03/29 299466338Seric Fix incompatible call to endmailer in smtpquit which causes core 299566338Seric dumps. Noted by Allan E Johannesen of WPI. 299666338Seric HPUX portability changes from Michael J. Corrigan of UC San Diego. 299766338Seric Require MAIL before RCPT command in srvrsmtp.c. This had been 299866338Seric intentional from the 821 draft days when the order wasn't 299966338Seric clear, but is silly now. 300066338Seric Fix bug in nis_magic routine that was initializing parameters 300166338Seric incorrectly. Fix from Takahiro Kanbe of Fuji Xerox 300266338Seric Information Systems Co., Ltd. 300366338Seric Change default for PrivacyFlags in conf.c to 0 -- since it always 300466338Seric "or"s in new values, there was no way to turn off the 300566338Seric AuthWarning stuff. 300666338Seric Add O option to set SMTP daemon options. 300766338Seric Add V option to set fallback MX host. This always sorts at lower 300866338Seric priority than anything it gets from the name server. It 300966338Seric should only be used for environments with very bad network 301066338Seric connectivity. Requested by several people. 301166338Seric Log sending info. It's not clear this is a good idea. 301266338Seric CONFIG: fix typo in mailertable code. Noted by Phil Brandenberger 301366338Seric of Swarthmore. 301466338Seric CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options 301566338Seric O and V, respectively. 301666338Seric 301766338Seric6.46/6.21 93/03/26 301866338Seric Fix botch in server SMTP that broke transactions that did not 301966338Seric use HELO first (like MH). Fix from Michael Corrigan 302066338Seric of U.C. San Diego. 302166338Seric Fall back to other MX records if there is an error anywhere 302266338Seric in delivery (actually on MAIL or DATA -- RCPT is harder). 302366338Seric Suggested by John Gardiner Myers and Motonori Nakamura. 302466338Seric Revert to non-prototypes -- it turns out that our ANSI C 302566338Seric compiler is more forgiving than most others about 302666338Seric mixing prototyped extern declarations with non-prototyped 302766338Seric function definitions. 302866338Seric Fix a problem with multi-word class matching pointed out by 302966338Seric Neil Rickert. Given: 303066338Seric CX b a.b.c 303166338Seric R$+ $=X $+ $: $1 < $2 > $3 303266338Seric the input "user@a.b.c" failed instead of being properly 303366338Seric rewritten as "user@a.<b>.c". 303466338Seric Neil also convinced me that it was correct that $~ should match 303566338Seric only one token -- the problem is that it's always possible 303666338Seric to add another token, so $~ matches far too eagerly. 303766338Seric 303866338Seric6.45/6.21 93/03/25 303966338Seric Implement multi-word classes (properly!). 304066338Seric 304166338Seric6.44/6.21 93/03/25 304266338Seric Add X-Authentication-Warning: headers to clue users into possible 304366338Seric attempts to forge mail. This is on the authwarnings 304466338Seric privacy flag, but is the default. Suggested by Bryan 304566338Seric Costales of ICSI. 304666338Seric Pass default units for convtime in so they can be more reasonable. 304766338Seric Allow config files to always add a new Comments: header (i.e., 304866338Seric they will be added even if an old one already exists). 304966338Seric Suggested by Bryan Costales of ICSI. 305066338Seric Allow config files to delete an existing Return-Path: header. 305166338Seric These should only be added at final delivery. Suggested 305266338Seric by Bryan Costales of ICSI. 305366338Seric Some debugging additions. Suggested by Bryan Costales of ICSI. 305466338Seric Clean up logging of Family 0 addresses. Noted by David Muir 305566338Seric Sharnoff and others. 305666338Seric Add a "dequote" map class. This allows config files to strip 305766338Seric quotes off of addresses. Note that this is not a builtin 305866338Seric map, just a class -- so you have to define the map 305966338Seric using the K line. 306066338Seric Fix a bug in the queueup() loop getting a locked tf where in 306166338Seric very odd cases it can fall off the bottom and core dump. 306266338Seric Of course, it was P{r Emanuelsson who found it.... 306366338Seric Open a new transcript when splitting an envelope. Problem found 306466338Seric by Allan E Johannesen of WPI. 306566338Seric Improved error output in endmailer if the mailer core dumps. 306666338Seric CONFIG: Fix typo in UUCP mailer definition. 306766338Seric CONFIG: Default several of the new options on: eight bit input, 306866338Seric privacy flags set to "authwarnings", and message warning 306966338Seric set to 4h. 307066338Seric CONFIG: Use dequote map. 307166338Seric 307266338Seric6.43/6.20 93/03/23 307366338Seric Fix problem with assumption of an sa_len field in a generic 307466338Seric sockaddr -- it turns out that most vendors haven't 307566338Seric picked up this (very important) fix. 307666338Seric Change compilation flags for daemon code -- select one or both 307766338Seric of NETINET or NETISO, but don't ever set DAEMON manually. 307866338Seric CONFIG: add FEATURE(mailertable) to do IDA-style mailertables. 307966338Seric 308066338Seric6.42/6.19 93/03/19 308166338Seric Use Postmaster as default fallback return address, not root. 308266338Seric POSIX changes for file descriptor handling. 308366338Seric Diagnose errors writing new queue file. 308466338Seric If you change the owner using an owner- alias, also change the 308566338Seric error mode to EM_MAIL so that errors don't get dropped 308666338Seric into an inappropriate directory. Problem noted by 308766338Seric Allan E Johannesen of WPI. 308866338Seric If you are su'ed to root, send email as who you really are, not 308966338Seric as root. From Brian Kantor of U.C. San Diego. 309066338Seric Allow warning messages to be sent after a configurable interval 309166338Seric has passed without delivery. The message is sent only 309266338Seric once per envelope. This changes the format of the qf 309366338Seric file to have an F line, and the format of the T option 309466338Seric to accept take the format "return/warn" (both intervals). 309566338Seric Don't force all local names to lower case -- this was left over 309666338Seric from the wierd handling of case mapping on aliases. It 309766338Seric is now driven (as expected) by the "u" mailer flag. 309866338Seric Problem noted by P{r Emanuelsson. 309966338Seric Fix problem that caused headers on returned email to be trashed; 310066338Seric they were getting freed, but are still accessible via 310166338Seric BlankEnvelope. 310266338Seric Fix problem that caused bogus ids to be created on returned 310366338Seric mail. 310466338Seric Add support for ISO and other non-INET networking. This is by 310566338Seric no means finished yet. This does assume a lot of other 310666338Seric system support, like a version of gethostbyname that 310766338Seric returns non-AF_INET addresses. 310866338Seric CONFIG: change default on prog mailer to keep upper case in 310966338Seric user names (i.e., in the program command line). 311066338Seric CONFIG: strip trailing dots off of hosts in uucp mailer before 311166338Seric convert to bang format. 311266338Seric CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H 311366338Seric (MAIL_HUB) delivery that doesn't add local domain. Note 311466338Seric that this violates 821, but is probably "more correct" 311566338Seric for what we are trying to do. Problem pointed out by 311666338Seric Michael Graff of Iowa State. 311766338Seric 311866338Seric6.41/6.18 93/03/18 311966338Seric Clean up unnecessary creates of queue ids (i.e., empty qf files) 312066338Seric when not needed, such as when starting up an SMTP 312166338Seric connection. 312266338Seric Fix problem where split envelopes aren't instantiated in the queue. 312366338Seric This is quite a serious bug. 312466338Seric Owner- aliases had problems with leading spaces causing a 312566338Seric premature delimitation. 312666338Seric 312766338Seric6.40/6.18 93/03/18 312866338Seric Have ending 250 (after DATA) include the id; suggested by 312966338Seric Brian Kantor of UC San Diego. 313066338Seric Add logging on envelope splitting. 313166338Seric Change queue ids to have one more letter encoding the hour of 313266338Seric the day so that during a single day there is a greater 313366338Seric likelihood of uniqueness; requested by Brian Kantor. 313466338Seric 313566338Seric6.39/6.18 93/03/18 313666338Seric Fix minor compile problem if LOCKF is defined. 313766338Seric Define size of tobuf in conf.h. Observed by Toshinari Takahashi 313866338Seric of Toshiba. 313966338Seric Restore e_sender -- this is equivalent to e_from.q_paddr without 314066338Seric decorations such as angle brackets and comments. 314166338Seric OSF/1 on Alpha changes from Allan E Johannesen of WPI. 314266338Seric CONFIG: fix typo in S3 for list syntax (;: => :;). Thanks to 314366338Seric Christopher Hoover for noting the problem. 314466338Seric 314566338Seric6.38/6.17 93/03/17 314666338Seric Pass envelope to disconnect to avoid another use of CurEnv, which 314766338Seric can apparently end up being null at inopportune times. 314866338Seric Log "received from" as "relay=" for consistency (suggested by 314966338Seric John Gardiner Myers). 315066338Seric Fix major bug in header handling: if no From: line existed in 315166338Seric the header (so sendmail inserts one), and the sender is 315266338Seric an alias that has an owner, the From: line shows the 315366338Seric owner (as well as the envelope). Fixed by early binding 315466338Seric the headers (which will change debugging output). 315566338Seric HPUX portability patches from Michael J. Corrigan of UC San Diego. 315666338Seric Some attempts to adapt better to out of open file conditions. 315766338Seric Some changes to ctladdr handling in queue files. 315866338Seric 315966338Seric6.37/6.17 93/03/16 316066338Seric MAJOR CHANGE: delete e_sender and e_returnpath (why are these 316166338Seric different from e_from?) and $< macro. 316266338Seric Log correct IP address in relay= field even if the connection 316366338Seric times out. 316466338Seric Log "received from [RESPONSE]" on EF_RESPONSE messages (from 316566338Seric John Gardiner Myers). 316666338Seric Fixes to SysExMsg logging (sometimes just got "message: %s" 316766338Seric instead of "message: error message"), noted by Eric 316866338Seric Wassenaar. Also reported by Motonori Nakamura. 316966338Seric Improvements to MX piggybacking code, from Motonori Nakamura. 317066338Seric Fix case where CurHostName points to an auto variable that has 317166338Seric been deallocated (from Motonori Nakamura). 317266338Seric Fix bug causing newlines to be included in aliases if option 317366338Seric "n" (check alias RHS) is set; bug noted by David Muir 317466338Seric Sharnoff. 317566338Seric Fix problem causing user names that should be mapped to lower 317666338Seric case to not be mapped if they are sent during a queue 317766338Seric run. This greatly simplifies the case mapping code. 317866338Seric Problem noted by Allan E Johannesen of WPI. 317966338Seric Don't do recipient address rewriting in buildaddr. This 318066338Seric improperly did recipient rewriting on sender addresses, 318166338Seric and just seems bogus in general -- but the change could 318266338Seric break some .cf files. 318366338Seric Pass TZ envariable to child processes for System V. 318466338Seric CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to 318566338Seric define those rulesets. 318666338Seric KNOWN PROBLEM: I have seen some problems on SunOS that causes 318766338Seric the User Data Base to give errors on some addresses. I 318866338Seric have tracked the problem back at least as far as 93.02.15 318966338Seric (version 6.22). Running with debugging on makes it 319066338Seric go away, so I conclude that it is referencing uninitialized 319166338Seric stack data. I haven't been able to track this down yet. 319266338Seric 319366338Seric6.36/6.16 93/03/08 319466338Seric Allow local mailer to specify $@host -- this lets you assign the 319566338Seric "foo" part of jgm+foo to $h for passing in to the local 319666338Seric mailer. 319766338Seric Additional debug printing in getcanonname (show query type). 319866338Seric Don't add the e_fromdomain on sender addresses -- this interacts 319966338Seric wierdly with the owner- code. 320066338Seric Improve delivery logging to not log obvious or meaningless stuff. 320166338Seric Include numeric IP address in Received: lines per RFC 1123 section 320266338Seric 5.2.8. 320366338Seric Fixed a bug in checking stat() return value if restrictmailq is 320466338Seric set. Also, check the entire group set instead of just the 320566338Seric primary group. Both from John Gardiner Myers. 320666338Seric Don't have usrerr automatically print errno, since this is often 320766338Seric misleading. 320866338Seric Use transienterror() in makeconnection after connect() fails and 320966338Seric in openmailer after execve() fails (from Eric Wassenaar). 321066338Seric Also moved transienterror() from util.c to conf.c. 321166338Seric Clean up from= logging on response messages. 321266338Seric Undo patch allowing prescan to return a null vector -- it breaks 321366338Seric too many things. 321466338Seric Config: FEATURE(notsticky) lets you use UDB for everything coming 321566338Seric in to the machine, even if it is specifically targetted 321666338Seric to this machine. Without it, UDB is bypassed if the user 321766338Seric name is fully qualified. 321866338Seric Config: fix another minor botch with <> (local mailer wasn't 321966338Seric mapping them properly). 322066338Seric 322166338Seric6.35/6.15 93/03/05 322266338Seric Fix getrealhostname to return null if sinlen <= 0 -- this can 322366338Seric occur if stdin is a pipe. 322466338Seric Avoid infinite loop in getcanonname if name server return 322566338Seric NO_DATA (for example). 322666338Seric Config: avoid having C flag qualify list syntax and error syntax. 322766338Seric 322866338Seric6.34/6.14 93/03/05 322966338Seric Fix logging in deliver to not pass too many parameters to Ultrix 323066338Seric versions of syslog. 323166338Seric Don't write the pid file until after the daemon has actually 323266338Seric opened and conditioned the connection. 323366338Seric Consider addresses "different" if their q_uids differ (so that 323466338Seric two users forwarding to the same program will be seen 323566338Seric as different, rather than the same). 323666338Seric Fix problem with bad parameters in main() -- they set ExitStat 323766338Seric but don't exit. 323866338Seric Fix null pointer references through RealHostName -- painfully 323966338Seric discovered by Allan E Johannesen of WPI. 324066338Seric Fix bug causing user@@localhost to core dump (yuch). 324166338Seric Config: don't put two @host.dom.ain on users in $=E in SMTP 324266338Seric mailer. Also, catch user@ (no host) in ruleset 0. 324366338Seric 324466338Seric6.33/6.13 93/03/03 324566338Seric Config: add confCW_FILE as the name of the cw configuration file 324666338Seric (defaults to /etc/sendmail.cw). From P{r Emanuelsson. 324766338Seric Allow prescan to return a pointer to an empty list -- this is 324866338Seric not an error. Also, clean up error reporting to avoid 324966338Seric double errors (prescan reports once, then the caller 325066338Seric reports again). 325166338Seric Changes to avoid trusting T_ANY queries -- run them, but if you 325266338Seric don't get the info you expected, do T_A and T_MX queries 325366338Seric anyhow. This also fixes an oversight where _res.options 325466338Seric bits were being ignored. 325566338Seric If PRIV_NOVRFY is set, use 252 response code instead of 502 per 325666338Seric RFC 1123 section 5.2.3. It's not 100% clear that this 325766338Seric is correct, but it probably works better with stupid 325866338Seric mailers that do a VRFY and only check the first digit. 325966338Seric 326066338Seric6.32/6.12 93/03/02 326166338Seric Fix uninitialized variable "protocol" in smtp code. 326266338Seric Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI. 326366338Seric Additional hooks for RFC 1427 (ESMTP SIZE extension). This 326466338Seric includes requiring that enoughspace() know the system 326566338Seric block size, which will undoubtedly break most ports. 326666338Seric Trace flag 19 in use for srvrsmtp.c. 326766338Seric Additional logging -- notably the sending mailer name. This 326866338Seric also changes the delivery logging to strict field=value 326966338Seric syntax. 327066338Seric Fix some problems with messages getting sent even to addresses 327166338Seric that had been marked bad -- from Eric Wassenaar. 327266338Seric More WIDE changes: accept host name inside [...] as non-MXed 327366338Seric host. This is intended ONLY for use inside firewalled 327466338Seric environments, where the MX points at the gateway. 327566338Seric Change .cf file conventions so that mapping for <> addresses 327666338Seric don't have an @ in them (to avoid confusing the C mailer 327766338Seric flag). Pointed out by Neil Rickert. 327866338Seric Config extensions for Sam Leffler's FlexFAX software. 327966338Seric 328066338Seric6.31/6.10 93/02/28 328166338Seric Fix some more bugs in alias owner code -- there were some wierd 328266338Seric cases where an error in a non-aliased name would override 328366338Seric the return info in an aliased name with an owner. 328466338Seric Changes from WIDE Project, forwarded to me by Motonori Nakamura: 328566338Seric Log actual delivery host (after MX et al); from 328666338Seric yasuhiro@dcl.co.jp. 328766338Seric Log daemon startup. 328866338Seric Deliver Postmaster copies without a body. 328966338Seric Better logging of SMTP senders. 329066338Seric Send all program email as daemon even when local. 329166338Seric As requested in various forms from many people, accept -qIstring 329266338Seric to limit queue runs to jobs with queue-id matching string. 329366338Seric Similarly for -qRstring for recipients, -qSstring for 329466338Seric senders. 329566338Seric Initial hooks for ESMTP support (see RFC 1425). 329666338Seric Fixed a syntax error in the UUCP mailer specification that caused 329766338Seric core dumps on startup. 329866338Seric Check for missing A= or P= arguments in mailer definitions. 329966338Seric 330066338Seric6.30/6.10 93/02/27 330166338Seric Require FROZENCONFIG compilation flag to include frozen 330266338Seric configuration code. Frozen configuration is really 330366338Seric not a very good idea any more, particularly in shared 330466338Seric library environments. 330566338Seric Do better checking of errno after opens of :include: and .forward 330666338Seric files to defer delivery on network and other transient 330766338Seric errors. Suggestion from Craig Everhart. 330866338Seric Fix minor botch in read timeout macro processing. 330966338Seric Add FEATURE(nouucp) to config files for sites that know absolutely 331066338Seric nothing about UUCP. 331166338Seric Add built cf files to distribution tape and clarify how to build 331266338Seric them if you don't have the Berkeley make. 331366338Seric Some sizeof(long) portability changes for the Alpha, from Allan 331466338Seric E Johannesen. 331566338Seric Add "restrictmailq" privacy flag -- if set, only people in the same 331666338Seric group as your queue directory can print the queue. If you 331766338Seric set this, be sure you also restrict access to log files.... 331866338Seric Fix another bug in owner-list stuff that can cause data files to 331966338Seric be "lost". 332066338Seric Fix a bug with queue runs that cause forwards to yourself to go 332166338Seric into alias/forwarding loops. I'm still iffy about this 332266338Seric fix. 332366338Seric Fix from Eric Wassenaar for suppression of return message code. 332466338Seric 332566338Seric6.29/6.9 93/02/24 332666338Seric Fix yet another problem in alias owner code -- put the wrong return 332766338Seric address on the enclosed return-to-sender letter. 332866338Seric 332966338Seric6.28/6.9 93/02/24 333066338Seric Fix botch in alias owner code that caused it to not operate if the 333166338Seric error was detected locally. 333266338Seric 333366338Seric6.27/6.9 93/02/24 333466338Seric M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include 333566338Seric file <sys/mount.h>. 333666338Seric Miscellaneous bug fixes from Eric Wassenaar: 333766338Seric sendmail -bv -t logs the from line even though in verify 333866338Seric mode only. 333966338Seric sendmail -v can go into queue mode if shouldqueue returns 334066338Seric TRUE. 334166338Seric Add route-addr pruning per RFC 1123 section 5.3.3. This can be 334266338Seric disabled using the "R" option. 334366338Seric Delete (always undocumented) -R flag (save original recipients); 334466338Seric there are ways to syslog(3) these now. 334566338Seric Clean up SMTP reply codes -- specify them as needed in the code, 334666338Seric instead of in conf.c -- this was needed during the NCP to 334766338Seric TCP transition, but seems silly now. This also changes 334866338Seric parameters to message and nmessage. 334966338Seric Have mailstats read the .cf file to find the sendmail.st file and 335066338Seric get text versions of mailer names. An initial version of 335166338Seric this code was provided by Tuominen Keijo (although the 335266338Seric comments indicate the good bits were written by "E.V."). 335366338Seric Add yet more System V compatibility hacks. 335466338Seric Fix bug in VRFY code (assumes everything must be a local user). 335566338Seric Allow specification of any of the hard-wired pathnames in the 335666338Seric Makefile. 335766338Seric Delete concept of "trusted users" -- this really didn't provide 335866338Seric any security anyway, and caused some problems. 335966338Seric Delete last vestige of support for the word "at" as an equivalent 336066338Seric to the character "@". 336166338Seric Propagate owner-foo alias information into the envelope sender. 336266338Seric Based on code from John Gardiner Myers. This is a major 336366338Seric semantic change -- beware! 336466338Seric Allow $@ on LHS to indicate "match zero" -- this is used to match 336566338Seric the null expression. 336666338Seric 336766338Seric6.26/6.8 93/02/21 336866338Seric Don't "lose" queue runs. Very important fix from (who else?) 336966338Seric Eric Wassenaar. 337066338Seric Completely reset state on RSET command -- from Eric Wassenaar. 337166338Seric Send error messages and return receipts using an envelope sender 337266338Seric of <> regardless of the setting of $n. Rewriting rules 337366338Seric can undo this if they feel the necessity, as might be 337466338Seric needed for networks that don't understand the syntax. 337566338Seric This is permitted by RFC 821 section 3.6 and required by 337666338Seric RFC 1123 section 5.3.3. THIS REQUIRES VERSION 4 CONFIG 337766338Seric FILES because the rulesets must be able to parse <> 337866338Seric properly. 337966338Seric Don't ever send error messages to "<>" -- they will get sent to 338066338Seric the local postmaster or dumped in /usr/tmp/dead.letter 338166338Seric instead. Per RFC 1123 section 5.3.3. 338266338Seric Explicitly check for email to yourself as a dotted quad. You 338366338Seric have to call $[ [ ... ] $] to get this. 338466338Seric Up the message timeout to five days per RFC 1123 section 5.3.1.1. 338566338Seric Make all read timeouts individually configurable, as strongly 338666338Seric recommended by RFC 1123 section 5.3.2. 338766338Seric Use f_bavail (blocks available to regular users) instead of f_bfree 338866338Seric (blocks available to superuser) in free block checks. 338966338Seric Change $d macro to be the current time, not the origination time, 339066338Seric since this is consistent with how it is used now. 339166338Seric Generalization of enoughspace from Eric Wassenaar covering 339266338Seric SGI, Apollo, HPUX, Ultrix, and SunOS. 339366338Seric Ignore process group signals -- some front ends can do this if 339466338Seric you kill a window too quickly. From Eric Wassenaar. 339566338Seric Change umask to 022. 339666338Seric 339766338Seric6.25/6.8 93/02/20 339866338Seric Close all cached connections before calling mailers and after 339966338Seric forking for delivery (caused double closes which resulted 340066338Seric in false errors). 340166338Seric Add FEATURE(redirect) in config files -- this allows you to alias 340266338Seric old addresses to a pointer to the new address that will 340366338Seric give a 551 error message, but not deliver the mail. 340466338Seric Some code changes to make the 551 errors look pretty. 340566338Seric Names of M4 program paths in config files have changed -- they 340666338Seric are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS. 340766338Seric Fix a bug in the QSELFREF code having to do with empty .forward 340866338Seric files, reported by Eric Wassenaar. 340966338Seric Add option "p" (privacy flags); this allows you to tune how 341066338Seric picky the SMTP server will be. This also adds the 341166338Seric confPRIVACY_FLAGS M4 macro in the config files. 341266338Seric Add option "b" (minimum blocks free). If there are fewer than 341366338Seric this number of blocks free on the filesystem containing 341466338Seric the queue directory, the SMTP MAIL command will return 341566338Seric a 452 response and ask you to try again later. This 341666338Seric also adds the confMIN_FREE_BLOCKS M4 macro in the config 341766338Seric files. 341866338Seric Made VRFY just verify (doesn't expand aliases and .forward files); 341966338Seric EXPN does full expansion. RCPT in queue-only mode also 342066338Seric doesn't chase aliases and .forward. 342166338Seric 342266338Seric6.24/6.7 93/02/19 342366338Seric Increase the number of domain search entries in domain.c to allow 342466338Seric for the extra "" entry indicating the root domain. 342566338Seric Reported by Motonori Nakamura of Kyoto U. 342666338Seric Add a "SMART_HOST" in the configs for UUCP-connected sites that 342766338Seric want to forward all mail with extra "@"s to that site. 342866338Seric Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to 342966338Seric be specified as ``mailer:hostname'' to use an alternate 343066338Seric mailer. 343166338Seric Clarified and updated some wording in the Operations Guide. 343266338Seric Add the "c" mailer flag -- this suppresses all comment parts of 343366338Seric addresses (requested by John Curran of NEARnet). 343466338Seric Have -v print prompts in -bt mode even if stdin is not a terminal 343566338Seric (default behaviour is to be silent if not reading from 343666338Seric a terminal). Suggested by Bryan Costales, ICSI. 343766338Seric Move the metacharacters from C0 space (\001-\037) into C1 space 343866338Seric (\201-\237). This also fixes a bunch of potential bugs 343966338Seric with G1 characters (\240-\276) in headers relating to 344066338Seric negative numbers passed to isspace() et al. 344166338Seric Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias 344266338Seric database if YPCOMPAT is #defined. Enhancement from 344366338Seric Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd. 344466338Seric Add "list" Precedence (-30); this can be used with old sendmails 344566338Seric which will map to precedence 0 (which will return error 344666338Seric messages). Suggested by Stephen R. van den Berg. 344766338Seric Many bug fixes from Eric Wassenaar of the National Institute for 344866338Seric Nuclear and High-Energy Physics, Amsterdam: 344966338Seric Clear timeouts properly on open failures in include(). 345066338Seric Don't dereference through NULL if no home directory found. 345166338Seric Re-establish SIGCHLD signal on System 5 in reapchild(). 345266338Seric Avoid NULL pointer reference on -pFOO flag. 345366338Seric Properly handle backslash escapes in comments. 345466338Seric Correctly check reply status on SMTP NOOP command. 345566338Seric Properly save SMTP error message if peer gives 345666338Seric "Service Shutting Down" message. 345766338Seric Avoid writing to the transcript if it couldn't be opened. 345866338Seric Signal errors in SMTP children to parent properly. 345966338Seric Handle self references in a list more globally (include a 346066338Seric QSELFREF bit in the address flags). This enhancement 346166338Seric was suggested by Eric Wassenaar. 346266338Seric Use initgroups() in hpux, even though it's System-V based. The 346366338Seric HASINITGROUPS compile flag can set this on other systems. 346466338Seric This HPUX behaviour was pointed out by Eric Wassenaar. 346566338Seric 346666338Seric6.23/6.6 93/02/16 346766338Seric Clean up handling of LogLevel to make it easier to figure out 346866338Seric what's on what level. 346966338Seric Change log levels to have some consistency: 347066338Seric 1 serious system failures, security problems 347166338Seric 2 lost communications, protocol failures 347266338Seric 3 other serious failures 347366338Seric 4 minor errors 347466338Seric 5 message collection 347566338Seric 6 vrfy logging, creation of return-to-sender 347666338Seric 7 delivery failures 347766338Seric 8 delivery successes 347866338Seric 9 delivery tempfails (queue ups) 347966338Seric 10 database expansion 348066338Seric >64 debugging 348166338Seric Allow IDA-style separated processing on S= and R= in Mailer 348266338Seric definition lines. Note that rulesets 1 and 2 are 348366338Seric still used for both addresses as before. Bruce Lilly 348466338Seric gave a convincing argument that RFC976 insists on 348566338Seric this behaviour. 348666338Seric Added some time zones to arpatounix -- they may not be in the 348766338Seric standards, but they are in use. However, I may delete 348866338Seric arpatounix entirely -- there appears to be no reason 348966338Seric for it to exist. 349066338Seric Change to UUCP mailer (in cf directory) to try to do a saner job. 349166338Seric I'm still not certain about this mailer in general. 349266338Seric 349366338Seric6.22/6.5 93/02/15 349466338Seric Fix bug that prevents saving letters in ~/dead.letter. 349566338Seric Don't add angle brackets in VRFY command if angle brackets already 349666338Seric exist in the address. 349766338Seric Fix bogus error message in udbexpand. 349866338Seric Null terminate host buffers in buildaddr (broken in 6.21) -- 349966338Seric IMPORTANT FIX!! 350066338Seric 350166338Seric6.21/6.5 93/02/15 350266338Seric Fix another incorrect error message in alias.c, found by Azuma 350366338Seric Okamoto. 350466338Seric Fix a couple of problems in the more-configurable config files, 350566338Seric found by Tom Ivar Helbekkmo. 350666338Seric Fix problem with quoted :include: entries. 350766338Seric Don't duplicate the filename on verbose printing of .forward and 350866338Seric :include: contents. 350966338Seric Extend size of prescan buffer (to allow bigger addresses). Also, 351066338Seric detect some buffer overflows. 351166338Seric Log user SMTP protocol errors (log level 4). 351266338Seric 351366338Seric6.20/6.4 93/02/14 351466338Seric Fix another problem in the MCI state machine caused when there 351566338Seric were errors generated from the other end to commands 351666338Seric other than RCPT. 351766338Seric 351866338Seric6.19/6.4 93/02/14 351966338Seric Include load average support for DEC Alpha running OSF/1. 352066338Seric Fix multiple-response problem with errors in MAIL From: line. 352166338Seric Fix SMTP reply codes for invalid address syntaxes (give 501; 352266338Seric never give multiple error messages for a single message). 352366338Seric Fix problem where a cached connection timeout rejects all 352466338Seric later connects to that host. 352566338Seric Fix incorrect error message if alias.c is compiled with DBM only. 352666338Seric Additional changes to fix nested conditionals (from Bruce Lilly). 352766338Seric Recover more gracefully from operating system failures, particularly 352866338Seric NULL returns from openmailer (from Noritoshi Demizu, 352966338Seric OMRON Corporation). 353066338Seric Log forward, alias, and userdb expand operations on log level 10; 353166338Seric concept suggested by P{r (Pell) Emanuelsson. 353266338Seric Changes for HPUX 8.07 compatibility. 353366338Seric 353466338Seric6.18/6.4 93/02/12 353566338Seric Allow any config option to be set using an M4 define. 353666338Seric Change UNAME compile flag to HASUNAME for IDA compatibility 353766338Seric (besides, it's a better name). 353866338Seric Note in README that on SunOS it must be linked -Bstatic. 353966338Seric Fairly major change in domain.c to handle wildcard MX records 354066338Seric more rationally. NOTE: the "w" option (no wildcard MX 354166338Seric records match local domain) has been eliminated. 354266338Seric Fix some unset variable references pointed out by Bruce Lilly. 354366338Seric Fix host name in process titles when using cached connection. 354466338Seric 354566338Seric6.17/6.3 93/01/28 354666338Seric Fix System 5 compatibility changes to be compatible with the rest 354766338Seric of the world. 354866338Seric 354966338Seric6.16/6.3 93/01/28 355066338Seric Experimental fix for problem handling errors in the SMTP 355166338Seric protocol in conjunction with connection caching. 355266338Seric System 5 compatibility changes. 355366338Seric 355466338Seric6.15/6.3 93/01/26 355566338Seric Fix a bug that causes local mail delivered using -odq to be 355666338Seric eliminated as a duplicate (because it matched the 355766338Seric ctladdr, now passed in as a C line). These changes 355866338Seric are pretty tricky...... 355966338Seric 356066338Seric6.14/6.3 93/01/25 356166338Seric Add debugging for some MCI errors. 356266338Seric 356366338Seric6.13/6.3 93/01/22 356466338Seric Fix -e compatibility flag to take a value. 356566338Seric Fix a couple of minor compilation warnings on Sun cc. 356666338Seric Improve error messages in a few cases to be more self-explanatory. 356766338Seric 356866338Seric6.12/6.3 93/01/21 356966338Seric Fix yet-another problem with environment handling, pointed out 357066338Seric by Yoshitaka Tokugawa and Tom Ivar Helbekkmo. 357166338Seric Some heuristics to try to limit resource exhaustion problems 357266338Seric if a downstream host has been down for a long time. 357366338Seric Fix problem with incorrect host name being logged in "Connection 357466338Seric timed out" messages (from Tom Ivar Helbekkmo). 357566338Seric Fix some ANSI C problems (from Takahiro Kanbe). 357666338Seric Properly log message sender on returned mail during queue run. 357766338Seric Count number of recipients properly. 357866338Seric Fix a problem in yp map code. 357966338Seric Diagnose "message timed out" (from Motonori Nakamura). 358066338Seric 358166338Seric6.11/6.3 93/01/20 358266338Seric Fix problem with address delimitor inside quotes. 358366338Seric Define $k and $=k to be the UUCP name (from the uname call) 358466338Seric based on code from Bruce Lilly. 358566338Seric 358666338Seric6.10/6.2 93/01/18 358766338Seric Implement arpatounix (largely code from Bruce Lilly). 358866338Seric Log more info (suggested by John Myers). 358966338Seric Allow nested $?...$|...$. (inspired by code from Bruce Lilly of 359066338Seric Sony US). 359166338Seric POSIX compatibility (noted by Keith Bostic). 359266338Seric Handle SMTP MAIL command errors properly (urged by several people, 359366338Seric notably John Myers of CMU). 359466338Seric Do early diagnosis of .cf errors (notably referencing a RHS 359566338Seric substitution that isn't on the LHS). 359666338Seric Adjust checkpointing to better handle batched recipients, suggested 359766338Seric by John Myers. 359866338Seric Fix miscellaneous bugs. 359966338Seric (config files:) Implement MAIL_HUB for all local mail (to handle 360066338Seric NFS-mounted directories) as urged by Tom Ivar Helbekkmo 360166338Seric of the Norwegian School of Economics. 360266338Seric 360366338Seric6.9/6.1 93/01/13 360466338Seric Environment handling simplification/bug fix -- child processes 360566338Seric get a minimal, fixed environment. This avoids different 360666338Seric behaviour in queue runs. 360766338Seric Handle commas inside comments properly. 360866338Seric Properly limit large messages submitted in -obq mode. 360966338Seric 361066338Seric6.8/6.1 93/01/10 361166338Seric Check mtime of thaw file against .cf and sendmail binary, based on 361266338Seric code from John Myers. 361366338Seric 361466338Seric6.7/6.1 93/01/10 361566338Seric MX piggybacking, based on code from John Myers@CMU. 361666338Seric Allow checkcompat to return -1 to mean tempfail. 361766338Seric Bug fix in m_mno computation. 361866338Seric 361966338Seric6.6/6.1 93/01/09 362066338Seric Tuning of queueing functions as recommended by John Gardiner Myers. 362166338Seric Return mail headers (no body) on messages with negative precedence. 362266338Seric Minor other bug fixes. 362366338Seric 362466338Seric6.5/6.1 93/01/03 362566338Seric Fix botch causing queued headers to have ?XX? prefixes. 362666338Seric 362766338Seric6.4/6.1 93/01/02 362866338Seric Changes to recognize special mailer types (e.g., file) early. 362966338Seric 363066338Seric6.3/6.1 93/01/01 363166338Seric Pass timeouts to sfgets. 363266338Seric Check for control characters in addresses. 363366338Seric Fixed deferred error reporting. 363466338Seric Report duplicate aliases. 363566338Seric Handle mixed case recursive aliases. 363666338Seric Misc bug fixes. 363766338Seric 363866338Seric6.2/6.1 92/12/30 363966338Seric Put return-receipt-to on a conf.c flag (but don't set it). 364066338Seric Fix minor syslog problem. 3641