1 SENDMAIL RELEASE NOTES 2 @(#)RELEASE_NOTES 8.6.9.3 (Berkeley) 04/19/94 3 4This listing shows the version of the sendmail binary, the version 5of the sendmail configuration files, the date of release, and a 6summary of the changes in that release. 7 88.6.9/8.6.9 94/04/19 9 Do all mail delivery completely disconnected from any terminal. 10 This provides consistency with daemon delivery and 11 may have some security implications. 12 Make sure that malloc doesn't get called with zero size, 13 since that fails on some systems. Reported by Ed 14 Hill of the University of Iowa. 15 Fix multi-line values for $e (SMTP greeting message). Reported 16 by Mike O'Connor of Ford Motor Company. 17 Avoid syserr if no NIS domain name is defined, but the map it 18 is trying to open is optional. From Win Bent of USC. 19 Changes for picky compilers from Ed Gould of Digital Equipment. 20 Hesiod support for UDB from Todd Miller of the University of 21 Colorado. Use "hesiod" as the service name in the U 22 option. 23 Fix a problem that failed to set the "authentic" host name (that 24 is, the one derived from the socket info) if you called 25 sendmail -bs from inetd. Based on code contributed by 26 Todd Miller (this problem was also reported by Guy Helmer 27 of Dakota State University). This also fixes a related 28 problem reported by Liudvikas Bukys of the University of 29 Rochester. 30 Parameterize "nroff -h" in all the Makefiles so people with 31 variant versions can use them easily. Suggested by 32 Peter Collinson of Hillside Systems. 33 SMTP "MAIL" commands with multiple ESMTP parameters required two 34 spaces between parameters instead of one. Reported by 35 Valdis Kletnieks of Virginia Tech. 36 Reduce the number of system calls during message collection by 37 using global timeouts around the collect() loop. This 38 code was contributed by Eric Wassenaar. 39 If the initial hostname name gathering results in a name 40 without a dot (usually caused by NIS misconfiguration) 41 and BIND is compiled in, directly access DNS to get 42 the canonical name. This should make life easier for 43 Solaris systems. If it still can't be resolved, and 44 if the name server is listed as "required", try again 45 in 30 seconds. If that also fails, exit immediately to 46 avoid bogus "config error: mail loops back to myself" 47 messages. 48 Improve the "MAIL DELETED BECAUSE OF LACK OF DISK SPACE" error 49 message to explain how much space was available and 50 sound a bit less threatening. Suggested by Stan Janet 51 of the National Institute of Standards and Technology. 52 If mail is delivered to an alias that has an owner, deliver any 53 requested return-receipt immediately, and strip the 54 Return-Receipt-To: header from the subsequent message. 55 This prevents a certain class of denial of service 56 attack, arguably gives more reasonable semantics, and 57 moves things more towards what will probably become a 58 network standard. Suggested by Christopher Davis of 59 Kapor Enterprises. 60 Add a "noreceipts" privacy flag to turn off all return receipts 61 without recompiling. 62 Avoid printing ESMTP parameters as part of the error message 63 if there are errors during parsing. This change is 64 purely cosmetic. 65 Avoid sending out error messages during the collect phase of 66 SMTP; there is an MVS mailer from UCLA that gets 67 confused by this. Of course, I think it's their bug.... 68 Check for the $j macro getting undefined, losing a dot, or getting 69 lost from $=w in the daemon before accepting a connection; 70 if it is, it dumps state, prints a LOG_ALERT message, 71 and drops core for debugging. This is an attempt to 72 track down a bug that I thought was long since gone. 73 If you see this, please forward the log fragment to 74 sendmail@CS.Berkeley.EDU. 75 Change OLD_NEWDB from a #ifdef to a #if so it can be turned off 76 with -DOLD_NEWDB=0 on the command line. From Christophe 77 Wolfhugel. 78 Instead of trying to truncate the listen queue for the server 79 SMTP port when the load average is too high, just close 80 the port completely and reopen it later as needed. 81 This ensures that the other end gets a quick "connection 82 refused" response, and that the connection can be 83 recovered later. In particular, some socket emulations 84 seem to get confused if you tweak the listen queue 85 size around and can never start listening to connections 86 again. The down side is that someone could start up 87 another daemon process in the interim, so you could 88 have multiple daemons all not listening to connections; 89 this could in turn cause the sendmail.pid file to be 90 incorrect. A better approach might be to accept the 91 connection and give a 421 code, but that could break 92 other mailers in mysterious ways and have paging behaviour 93 implications. 94 Fix a glitch in TCP-level debugging that caused flag 16.101 to 95 set debugging on the wrong socket. From Eric Wassenaar. 96 When creating a df* temporary file, be sure you truncate any 97 existing data in the file -- otherwise system crashes 98 and the like could result in extra data being sent. 99 DOC: Replace the CHANGES-R5-R8 readme file with a paper in the 100 doc directory. This includes some additional 101 information. 102 CONFIG: change UUCP rules to never add $U! or $k! on the front 103 of recipient envelope addresses. This should have been 104 handled by the $&h trick, but broke if people were 105 mixing domainized and UUCP addresses. They should 106 probably have converted all the way over to uucp-uudom 107 instead of uucp-{new,old}, but the failure mode was to 108 loop the mail, which was bad news. 109 Portability fixes: 110 Newer BSDI systems (several people). 111 Older BSDI systems from Christophe Wolfhugel. 112 Intergraph CLIX, from Paul Southworth of CICNet. 113 UnixWare, from Evan Champion. 114 NetBSD from Adam Glass. 115 Solaris from Quentin Campbell of the University of 116 Newcastle upon Tyne. 117 IRIX from Dean Cookson and Bill Driscoll of Mitre 118 Corporation. 119 NCR 3000 from Kevin Darcy of Chrysler Corporation. 120 SunOS (it has setsid() and setvbuf() calls) from 121 Jonathan Kamens of OpenVision Technologies. 122 HP-UX from Tor Lillqvist. 123 New Files: 124 src/Makefile.CLIX 125 src/Makefile.NCR3000 126 doc/changes/Makefile 127 doc/changes/changes.me 128 doc/changes/changes.ps 129 1308.6.8/8.6.6 94/03/21 131 SECURITY: it was possible to read any file as root using the 132 E (error message) option. Reported by Richard Jones; 133 fixed by Michael Corrigan and Christophe Wolfhugel. 134 1358.6.7/8.6.6 94/03/14 136 SECURITY: it was possible to get root access by using wierd 137 values to the -d flag. Thanks to Alain Durand of 138 INRIA for forwarding me the notice from the bugtraq 139 list. 140 1418.6.6/8.6.6 94/03/13 142 SECURITY: the ability to give files away on System V-based 143 systems proved dangerous -- don't run as the owner 144 of a :include: file on a system that allows giveaways. 145 Unfortunately, this also applies to determining a 146 valid shell. 147 IMPORTANT: Previous versions weren't expiring old connections 148 in the connection cache for a long time under some 149 circumstances. This could result in resource exhaustion, 150 both at your end and at the other end. This checks the 151 connections for timeouts much more frequently. From 152 Doug Anderson of NCSC. 153 Fix a glitch that snuck in that caused programs to be run as 154 the sender instead of the recipient if the mail was 155 from a local user to another local user. From 156 Motonori Nakamura of Kyoto University. 157 Fix "wildcard" on /etc/shell matching -- instead of looking 158 for "*", look for "/SENDMAIL/ANY/SHELL/". From 159 Bryan Costales of ICSI. 160 Change the method used to declare the "statfs" availability; 161 instead of HASSTATFS and/or HASUSTAT with a ton of 162 tweaking in conf.c, there is a single #define called 163 SFS_TYPE which takes on one of six values (SFS_NONE 164 for no statfs availability, SFS_USTAT for the ustat(2) 165 syscall, SFS_4ARGS for a four argument statfs(2) call, 166 and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument 167 statfs(2) call with the declarations in <sys/vfs.h>, 168 <sys/mount.h>, or <sys/statfs.h> respectively). 169 Fix glitch in NetInfo support that could return garbage if 170 there was no "/locations/sendmail" property. From 171 David Meyer of the University of Virginia. 172 Change HASFLOCK from defined/not-defined to a 0/1 definition 173 to allow Linux to turn it off even though it is a 174 BSD-like system. 175 Allow setting of "ident" timeout to zero to turn off the ident 176 protocol entirely. 177 Make 7-bit stripping local to a connection (instead of to a 178 mailer); this allows you to specify that SMTP is a 179 7-bit channel, but revert to 8-bit should it advertise 180 that it supports 8BITMIME. You still have to specify 181 mailer flag 7 to get this stripping at all. 182 Improve makesendmail script so it handles more cases automatically. 183 Tighten up restrictions on taking ownership of :include: files 184 to avoid problems on systems that allow you to give away 185 files. 186 Fix a problem that made it impossible to rebuild the alias 187 file if it was on a read-only file system. From 188 Harry Edmon of the University of Washington. 189 Improve MX randomization function. From John Gardiner Myers 190 of CMU. 191 Fix a minor glitch causing a bogus message to be printed (used 192 %s instead of %d in a printf string for the line number) 193 when a bad queue file was read. From Harry Edmon. 194 Allow $s to remain NULL on locally generated mail. I'm not 195 sure this is necessary, but a lot of people have complained 196 about it, and there is a legitimate question as to whether 197 "localhost" is legal as an 822-style domain. 198 Fix a problem with very short line lengths (mailer L= flag) in 199 headers. This causes a leading space to be added onto 200 continuation lines (including in the body!), and also 201 tries to wrap headers containing addresses (From:, To:, 202 etc) intelligently at the shorter line lengths. Problem 203 Reported by Lars-Johan Liman of SUNET Operations Center. 204 Log the real user name when logging syserrs, since these can have 205 security implications. Suggested by several people. 206 Fix address logging of cached connections -- it used to always 207 log the numeric address as zero. This is a somewhat 208 bogus implementation in that it does an extra system 209 call, but it should be an inexpensive one. Fix from 210 Motonori Nakamura. 211 Tighten up handling of short syslog buffers even more -- there 212 were cases where the outgoing relay= name was too long 213 to share a line with delay= and mailer= logging. 214 Limit the overhead on split envelopes to one open file descriptor 215 per envelope -- previously the overhead was three 216 descriptors. This was in response to a problem reported 217 by P{r (Pell) Emanuelsson. 218 Fixes to better handle the case of unexpected connection closes; 219 this redirects the output to the transcript so the info 220 is not lost. From Eric Wassenaar. 221 Fix potential string overrun if you macro evaluate a string that 222 has a naked $ at the end. Problem noted by James Matheson 223 <jmrm@eng.cam.ac.uk>. 224 Make default error number on $#error messages 553 (``Requested 225 action not taken: mailbox name not allowed'') instead of 226 501 (``Syntax error in parameters or arguments'') to 227 avoid bogus "protocol error" messages. 228 Strip off any existing trailing dot on names during $[ ... $] 229 lookup. This prevents it from ending up with two dots 230 on the end of dot terminated names. From Wesley Craig 231 of the University of Michigan and Bryan Costales of ICSI. 232 Clean up file class reading so that the debugging information is 233 more informative. It hadn't been using setclass, so you 234 didn't see the class items being added. 235 Avoid core dump if you are running a version of sendmail where 236 NIS is compiled in, and you specify an NIS map, but 237 NIS is not running. Fix from John Oleynick of 238 Rutgers. 239 Diagnose bizarre case where res_search returns a failure value, 240 but sets h_errno to a success value. 241 Make sure that "too many hops" messages are considered important 242 enough to send an error to the Postmaster (that is, the 243 address specified in the P option). This fix should 244 help problems that cause the df file to be left around 245 sometimes -- unfortunately, I can't seem to reproduce 246 the problem myself. 247 Avoid core dump (null pointer reference) on EXPN command; this 248 only occurred if your log level was set to 10 or higher 249 and the target account was an alias or had a .forward file. 250 Problem noted by Janne Himanka. 251 Avoid "denial of service" attacks by someone who is flooding your 252 SMTP port with bad commands by shutting the connection 253 after 25 bad commands are issued. From Kyle Jones of 254 UUNET. 255 Fix core dump on error messages with very long "to" buffers; 256 fmtmsg overflows the message buffer. Fixed by trimming 257 the to address to 203 characters. Problem reported by 258 John Oleynick. 259 Fix configuration for HASFLOCK -- there were some spots where 260 a #ifndef was incorrectly #ifdef. Pointed out by 261 George Baltz of the University of Maryland. 262 Fix a typo in savemail() that could cause the error message To: 263 lists to be incorrect in some places. From Motonori 264 Nakamura. 265 Fix a glitch that can cause duplicate error messages on split 266 envelopes where an address on one of the lists has a 267 name server failure. Fix from Voradesh Yenbut of the 268 University of Washington. 269 Fix possible bogus pointer reference on ESMTP parameters that 270 don't have an ``=value'' part. 271 CNAME loops caused an error message to be generated, but also 272 re-queued the message. Changed to just re-queue the 273 message (it's really hard to just bounce it because 274 of the wierd way the name server works in the presence 275 of CNAME loops). Problem noted by James M.R.Matheson 276 of Cambridge University. 277 Avoid giving ``warning: foo owned process doing -bs'' messages 278 if they use ``MAIL FROM:<foo>'' where foo is their true 279 user name. Suggested by Andreas Stolcke of ICSI. 280 Change the NAMED_BIND compile flag to be a 0/1 flag so you can 281 override it easily in the Makefile -- that is, you can 282 turn it off using -DNAMED_BIND=0. 283 If a gethostbyname(...) of an address with a trailing dot fails, 284 try it without the trailing dot. This is because if 285 you have a version of gethostbyname() that falls back 286 to NIS or the /etc/hosts file it will fail to find 287 perfectly reasonable names that just don't happen to 288 be dot terminated in the hosts file. You don't want to 289 strip the dot first though because we're trying to ensure 290 that country names that match one of your subdomains get 291 a chance. 292 PRALIASES: fix bogus output on non-null-terminated strings. 293 From Bill Gianopoulos of Raytheon. 294 CONFIG: Avoid rewriting anything that matches $w to be $j. 295 This was in code intended to only catch the self-literal 296 address (that is, [1.2.3.4], where 1.2.3.4 is your 297 IP address), but the code was broken. However, it will 298 still do this if $M is defined; this is necessary to 299 get client configurations to work (sigh). Note that this 300 means that $M overrides :mailname entries in the user 301 database! Problem noted by Paul Southworth. 302 CONFIG: Fix definition of Solaris help file location. From 303 Steve Cliffe <steve@gorgon.cs.uow.edu.au>. 304 CONFIG: Fix bug that broke news.group.USENET mappings. 305 CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX, 306 and USENET_MAILER_MAX to tweak the maximum message 307 size for various mailers. 308 CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0] 309 instead of assuming that it is "inews" for consistency 310 with other mailers. From Michael Corrigan of UC San Diego. 311 CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB, 312 qualify the address in the SMTP envelope as user@{relay|hub} 313 instead of user@$j. From Bill Wisner of The Well. 314 CONFIG: Fix route-addr syntax in nullrelay configuration set. 315 CONFIG: Don't turn off case mapping of user names in the local 316 mailer for IRIX. This was different than most every other 317 system. 318 CONFIG: Avoid infinite loops on certainly list:; syntaxes in 319 envelope. Noted by Thierry Besancon 320 <besancon@excalibur.ens.fr>. 321 CONFIG: Don't include -z by default on uux line -- most systems 322 don't want it set by default. Pointed out by Philippe 323 Michel of Thomson CSF. 324 CONFIG: Fix some bugs with mailertables -- for example, if your 325 host name was foo.bar.ray.com and you matched against 326 ".ray.com", the old implementation bound %1 to "bar" 327 instead of "foo.bar". Also, allow "." in the mailertable 328 to match anything -- essentially, take over SMART_HOST. 329 This also moves matching of explicit local host names 330 before the mailertable so they don't have to be special 331 cased in the mailertable data. Reported by Bill 332 Gianopoulos of Raytheon; the fix for the %1 binding 333 problem was contributed by Nicholas Comanos of the 334 University of Sydney. 335 CONFIG: Don't include "root" in class $=L (users to deliver 336 locally, even if a hub or relay exists) by default. 337 This is because of the known bug where definition of 338 both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore 339 both and deliver into the local mailbox. 340 CONFIG: Move up bitdomain and uudomain handling so that they 341 are done before .UUCP class matching; uudomain was 342 reported as ineffective before. This also frees up 343 diversion 8 for future use. Problem reported by Kimmo 344 Suominen. 345 CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4]) 346 into host names. As pointed out by Jonathan Kamens, 347 these are often used because either the forward or reverse 348 mapping is broken; this translation makes it broken again. 349 DOC: Clarify $@ and $: in the Install & Op Guide. From Kimmo 350 Suominen. 351 Portability fixes: 352 Unicos from David L. Kensiski of Sterling Sofware. 353 DomainOS from Don Lewis of Silicon Systems. 354 GNU m4 1.0.3 from Karst Koymans of Utrecht University. 355 Convex from Kimmo Suominen <kim@tac.nyc.ny.us>. 356 NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>. 357 BSD/386 from Tony Sanders of BSDI. 358 Apollo from Eric Wassenaar. 359 DGUX from Doug Anderson. 360 Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent. 361 NEW FILES: 362 src/Makefile.DomainOS 363 src/Makefile.PTX 364 src/Makefile.SunOS.5.1 365 src/Makefile.SunOS.5.2 366 src/Makefile.SunOS.5.x 367 src/mailq.1 368 cf/ostype/domainos.m4 369 doc/op/Makefile 370 doc/intro/Makefile 371 doc/usenix/Makefile 372 3738.6.5/8.6.5 94/01/13 374 Security fix: /.forward could be owned by anyone (the test 375 to allow root to own any file was backwards). From 376 Bob Campbell at U.C. Berkeley. 377 Security fix: group ids were not completely set when programs 378 were invoked. This caused programs to have group 379 permissions they should not have had (usually group 380 daemon instead of their own group). In particular, 381 Perl scripts would refuse to run. 382 Security: check to make sure files that are written are not 383 symbolic links (at least under some circumstances). 384 Although this does not respond to a specific known 385 attack, it's just a good idea. Suggested by 386 Christian Wettergren. 387 Security fix: if a user had an NFS mounted home directory on 388 a system with a restricted shell listed in their 389 /etc/passwd entry, they could still execute any 390 program by putting that in their .forward file. 391 This fix prevents that by insisting that their shell 392 appear in /etc/shells before allowing a .forward to 393 execute a program or write a file. You can disable 394 this by putting "*" in /etc/shells. It also won't 395 permit world-writable :include: files to reference 396 programs or files (there's no way to disable this). 397 These behaviours are only one level deep -- for 398 example, it is legal for a world-writable :include: 399 file to reference an alias that writes a file, on 400 the assumption that the alias file is well controlled. 401 Security fix: root was not treated suspiciously enough when 402 looking into subdirectories. This would potentially 403 allow a cracker to examine files that were publically 404 readable but in a non-publically searchable directory. 405 Fix a problem that causes an error on QUIT on a cached 406 connection to create problems on the current job. 407 These are typically unrelated, so errors occur in 408 the wrong place. 409 Reset CurrentLA in sendall() -- this makes sendmail queue 410 runs more responsive to load average, and fixes a 411 problem that ignored the load average in locally 412 generated mail. From Eric Wassenaar. 413 Fix possible core dump on aliases with null LHS. From 414 John Orthoefer of BB&N. 415 Revert to using flock() whenever possible -- there are just 416 too many bugs in fcntl() locking, particularly over 417 NFS, that cause sendmail to fail in perverse ways. 418 Fix a bug that causes the connection cache to get confused 419 when sending error messages. This resulted in 420 "unexpected close" messages. It should fix itself 421 on the following queue run. Problem noted by 422 Liudvikas Bukys of the University of Rochester. 423 Include $k in $=k as documented in the Install & Op Guide. 424 This seems odd, but it was documented.... From 425 Michael Corrigan of UCSD. 426 Fix problem that caused :include:s from alias files to be 427 forced to be owned by root instead of daemon 428 (actually DefUid). From Tim Irvin. 429 Diagnose unrecognized I option values -- from Mortin Forssen 430 of the Chalmers University of Technology. 431 Make "error" mailer work consistently when there is no error 432 code associated with it -- previously it returned OK 433 even though there was a real problem. Now it assumes 434 EX_UNAVAILABLE. 435 Fix bug that caused the last header line of messages that had 436 no body and which were terminated with EOF instead of 437 "." to be discarded. Problem noted by Liudvikas Bukys. 438 Fix core dump on SMTP mail to programs that failed -- it tried 439 to go to a "next MX host" when none existed, causing 440 a core dump. From der Mouse at McGill University. 441 Change IDENTPROTO from a defined/not defined to a 0/1 switch; 442 this makes it easier to turn it off (using 443 -DIDENTPROTO=0 in the Makefile). From der Mouse. 444 Fix YP_MASTER_NAME store to use the unupdated result of 445 gethostname() (instead of myhostname(), which tries 446 to fully qualify the name) to be consistent with 447 SunOS. If your hostname is unqualified, this fixes 448 transfers to slave servers. Bug noted by Keith 449 McMillan of Ameritech Services, Inc. 450 Fix Ultrix problem: gethostbyname() can return a very large 451 (> 500) h_length field, which causes the sockaddr 452 to be trashed. Use the size of the sockaddr instead. 453 Fix from Bob Manson of Ohio State. 454 Don't assume "-a." on host lookups if NAMED_BIND is not 455 defined -- this confuses gethostbyname on hosts 456 file lookups, which doesn't understand the trailing 457 dot convention. 458 Log SMTP server subprocesses that die with a signal instead 459 of from a clean exit. 460 If you don't have option "I" set, don't assume that a DNS 461 "host unknown" message is authoritative -- it 462 might still be found in /etc/hosts. 463 Fix a problem that would cause Deferred: messages to be sent 464 as the subject of an error message, even though the 465 actual cause of a message was more severe than that. 466 Problem noted by Chris Seabrook of OSSI. 467 Fix race condition in DBM alias file locking. From Kyle 468 Jones of UUNET. 469 Limit delivery syslog line length to avoid bugs in some 470 versions of syslog(3). This adds a new compile time 471 variable SYSLOG_BUFSIZE. From Jay Plett of Princeton 472 University, which is in turn derived from IDA. 473 Fix quotes inside of comments in addresses -- previously 474 it insisted that they be balanced, but the 822 spec 475 says that they should be ignored. 476 Dump open file state to syslog upon receiving SIGUSR1 (for 477 debugging). This also evaluates ruleset 89, if set 478 (with the null input), and logs the result. This 479 should be used sparingly, since the rewrite process 480 is not reentrant. 481 Change -qI, -qR, and -qS flags to be case-insensitive as 482 documented in the Bat Book. 483 If the mailer returned EX_IOERR or EX_OSERR, sendmail did not 484 return an error message and did not requeue the message. 485 Fix based on code from Roland Dirlewanger of 486 Reseau Regional Aquarel, Bordeaux, France. 487 Fix a problem that caused a seg fault if you got a 421 error 488 code during some parts of connection initialization. 489 I've only seen this when talking to buggy mailers on 490 the other end, but it shouldn't give a seg fault in 491 any case. From Amir Plivatsky. 492 Fix core dump caused by a ruleset call that returns null. 493 Fix from Bryan Costales of ICSI. 494 Full-Name: field was being ignored. Fix from Motonori Nakamura 495 of Kyoto University. 496 Fix a possible problem with very long input lines in setproctitle. 497 From P{r Emanuelsson. 498 Avoid putting "This is a warning message" out on return receipts. 499 Suggested by Douglas Anderson. 500 Detect loops caused by recursive ruleset calls. Suggested by 501 Bryan Costales. 502 Initialize non-alias maps during alias rebuilds -- they may be 503 needed for parsing. Problem noted by Douglas Anderson. 504 Log sender address even if no message was collected in SMTP 505 (e.g., if all RCPTs failed). Suggested by Motonori 506 Nakamura. 507 Don't reflect the owner-list contents into the envelope sender 508 address if the value contains ", :, /, or | (to avoid 509 illegal addresses appearing there). 510 Efficiency hack for toktype macro -- from Craig Partridge of 511 BB&N. 512 Clean up DNS error printing so that a host name is always 513 included. 514 Remember to set $i during queue runs. Reported by Stephen 515 Campbell of Dartmouth University. 516 If ${HOSTALIASES} is set, use it during canonification so that 517 headers are properly mapped. Reported by Anne Bennett 518 of Concordia University. 519 Avoid printing misleading error message if SMTP mailer (not 520 using [IPC]) should die on a core dump. 521 Avoid incorrect diagnosis of "file 1 closed" when it is caused 522 by the other end closing the connection. From 523 Dave Morrison of Oracle. 524 Improve several of the error messages printed by "mailq" 525 to include a host name or other useful information. 526 Add NetInfo preliminary support for NeXT systems. From Vince 527 DeMarco. 528 Fix a glitch that sometimes caused :include:s that pointed to 529 NFS filesystems that were down to give an "aliasing/ 530 forwarding loop broken" message instead of queueing 531 the message for retry. Noted by William C Fenner of 532 the NRL Connection Machine Facility. 533 Fix a problem that could cause a core dump if the input sequence 534 had (or somehow acquired) a \231 character. 535 Make sure that route-addrs always have <angle brackets> around 536 them in non-SMTP envelopes (SMTP envelopes already do 537 this properly). 538 Avoid wierd headers on unbalanced punctuation of the form: 539 ``Joe User <user)'' -- this caused reference to the 540 null macro. Fix from Rick McCarty of IO.COM. 541 Fix a problem that caused an alias "user: user@local.host" to 542 not have the QNOTREMOTE bit set; this caused configs 543 to act as if FEATURE(notsticky) was defined even when 544 it was not. The effect of the problem was to make it 545 very hard to to set up satellite sites that had a few 546 local accounts, with everything else forwarded to a 547 corporate hub. Reported by Detlef Drewanz of the 548 University of Rostock and Mark Frost of NCD. 549 Change queuing to not call rulesets 3, {1 or 2}, 4 on header 550 addresses. This is more efficient (fewer name server 551 calls) and fixes certain unusual configurations, such 552 as those that have ruleset 4 do something that is 553 non-idempotent unless a mailer-specific ruleset did 554 something else. Problem reported by Brian J. Coan 555 of the Institute for Global Communications. 556 Fix the "obsolete argument" routine in main to better understand 557 new arguments. For example, if you used ``sendmail 558 -C config -v -q'' it would choke on the -q because 559 the -C would stop looking for old-format arguments. 560 Fix the code that was intended to allow two users to forward their 561 mail to the same program and have them appear unique. 562 Portability fixes for: 563 SCO UNIX from Murray Kucherawy. 564 SCO Open Server 3.2v4 from Philippe Brand. 565 System V Release 4 from Rick Ellis and others. 566 OSF/1 from Steve Campbell. 567 DG/UX from Ben Mesander of the USGS and Bryan Curnutt 568 of Stoner Associates. 569 Motorola SysV88 from Kevin Johnson of Motorola. 570 Solaris 2.3 from Casper H.S. Dik of the University 571 of Amsterdam and John Caruso of University 572 of Maryland. 573 FreeBSD from Ollivier Robert. 574 NetBSD from Adam Glass. 575 TitanOS from Kate Hedstrom of Rutgers University. 576 Irix from Bryan Curnutt. 577 Dynix from Jim Davis of the University of Arizona. 578 RISC/os. 579 Linux from John Kennedy of California State University 580 at Chico. 581 Solaris 2.x from Tony Boner of the U.S. Air Force. 582 NEXTSTEP 3.x from Vince DeMarco. 583 HP-UX from various people. NOTA BENE: the location 584 of the config file has moved to /usr/lib 585 to match the HP-UX version of sendmail. 586 CONFIG: Don't do any recipient rewriting on relay mailer; 587 since this is intended only for internal use, the 588 usual RFC 821/822/1123 rules can be relaxed. The 589 main point of this is to avoid munging (ugh) UUCP 590 addresses when relaying internally. 591 CONFIG: fix typo in mailer/uucp.m4 that mutilates list:; 592 syntax addresses delivered via UUCP. Solution 593 provided by Peter Wemm. 594 CONFIG: fix thumb-fumble in default UUCP relaying in ruleset 595 zero; it caused double @ signs in addresses. From 596 Irving Reid of the University of Toronto. 597 CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1 598 from Markku Toijala of ICL Personal Systems Oy. 599 CONFIG: Add trailing "." on pseudo-domains for consistency; 600 this fixes a problem (noted by Al Whaley of Sunnyside) 601 that made it hard to recognize your own pseudodomain 602 names. 603 CONFIG: catch "@host" syntax errors (i.e., null local-parts) 604 rather than letting them get "local configuration 605 error"s. Problem noted by John Gardiner Myers. 606 CONFIG: add uucp-uudom mailer variant, based on code posted 607 by Spider Boardman <spider@Orb.Nashua.NH.US>; this 608 has uucp-dom semantics but old UUCP syntax. This 609 also permits "uucp-old" as an alias for "uucp" and 610 "uucp-new" as a synonym for "suucp" for consistency. 611 CONFIG: add POP mailer support (from Kimmo Suominen 612 <kim@grendel.lut.fi>). 613 CONFIG: drop CSNET_RELAY support -- CSNET is long gone. 614 CONFIG: fix bug caused with domain literal addresses (e.g., 615 ``[128.32.131.12]'') when FEATURE(allmasquerade) 616 was set; it would get an additional @masquerade.host 617 added to the address. Problem noted by Peter Wan 618 of Georgia Tech. 619 CONFIG: make sure that the local UUCP name is in $=w. From 620 Jim Murray of Stratus. 621 CONFIG: changes to UUCP rewriting to simulate IDA-style "V" 622 mailer flag. Briefly, if you are sending to host 623 "foo", then it rewrites "foo!...!baz" to "...!baz", 624 "foo!baz" remains "foo!baz", and anything else has 625 the local name prepended. 626 CONFIG: portability fixes for HP-UX. 627 DOC: several minor problems fixed in the Install & Op Guide. 628 MAKEMAP: fix core dump problem on lines that are too long or 629 which lack newline. From Mark Delany. 630 MAILSTATS: print sums of columns (total messages & kbytes 631 in and out of the system). From Tom Ferrin of UC 632 San Francisco Computer Graphics Lab. 633 SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES: 634 On HP-UX, /etc/sendmail.cf has been moved to 635 /usr/lib/sendmail.cf to match HP sendmail. 636 Permissions have been tightened up on world-writable 637 :include: files and accounts that have shells 638 that are not listed in /etc/shells. This may 639 cause some .forward files that have worked 640 before to start failing. 641 SIGUSR1 dumps some state to the log. 642 NEW FILES: 643 src/Makefile.DGUX 644 src/Makefile.Dynix 645 src/Makefile.FreeBSD 646 src/Makefile.Mach386 647 src/Makefile.NetBSD 648 src/Makefile.RISCos 649 src/Makefile.SCO 650 src/Makefile.SVR4 651 src/Makefile.Titan 652 cf/mailer/pop.m4 653 cf/ostype/bsdi1.0.m4 654 cf/ostype/dgux.m4 655 cf/ostype/dynix3.2.m4 656 cf/ostype/sco3.2.m4 657 makemap/Makefile.dist 658 praliases/Makefile.dist 659 6608.6.4/8.6.4 93/10/31 661 Repair core-dump problem (write to read-only memory segment) 662 if you fall back to the return-to-Postmaster case in 663 savemail. Problem reported by Richard Liu. 664 Immediately diagnose bogus sender addresses in SMTP. This 665 makes quite certain that crackers can't use this 666 class of attack. 667 Reliability Fix: check return value from fclose() and fsync() 668 in a few critical places. 669 Minor problem in initsys() that reversed a condition for 670 redirecting the output channel on queue runs. It's 671 not clear this code even does anything. From Eric 672 Wassenaar of the Dutch National Institute for Nuclear 673 and High-Energy Physics. 674 Fix some problems that caused queue runs to do "too much work", 675 such as double-reading the Errors-To: header. From 676 Eric Wassenaar. 677 Error messages on writing the temporary file (including the 678 data file) were getting suppressed in SMTP -- this 679 fix causes them to be properly reported. From Eric 680 Wassenaar. 681 Some changes to support AF_UNIX sockets -- this will only 682 really become relevant in the next release, but some 683 people need it for local patches. From Michael 684 Corrigan of UC San Diego. 685 Use dynamically allocated memory (instead of static buffers) 686 for macros defined in initsys() and settime(); since 687 these can have different values depending on which 688 envelope they are in. From Eric Wassenaar. 689 Improve logging to show ctladdr on to= logging; this tells you 690 what uid/gid processes ran as. 691 Fix a problem that caused error messages to be discarded if 692 the sender address was unparseable for some reason; 693 this was supposed to fall back to the "return to 694 postmaster" case. 695 Improve aliaswait backoff algorithm. 696 Portability patches for Linux (8.6.3 required another header 697 file) (from Karl London) and SCO UNIX. 698 CONFIG: patch prog mailer to not strip host name off of envelope 699 addresses (so that it matches local again). From 700 Christopher Davis. 701 CONFIG: change uucp-dom mailer so that "<>" translates to $n; 702 this prevents uux from seeing lines with null names like 703 ``From Sat Oct 30 14:55:31 1993''. From Motonori 704 Nakamura of Kyoto University. 705 CONFIG: handle <list:;> syntax correctly. This isn't legal, but 706 it shouldn't fail miserably. From Motonori Nakamura. 707 7088.6.3/8.6.3 93/10/24 709 IMPORTANT FIX: Fix several problems that caused open files to 710 be "lost" during queue runs; this overflowed the open 711 file table on large runs. An assumption that fdopen 712 always succeeds sometimes resulted in core dumps when 713 this happens; sometimes the message is delivered twice, 714 sometimes (probably) infinite times. This problem in 715 various form was reported by P{r (Pell) Emanuelsson and 716 Robert Campbell of U.C. Berkeley. 717 Special diagnosis of EMFILE error conditions -- it now prints 718 the known open file descriptors so you can figure out 719 what is consuming so much resources. 720 Fix a couple of problems caused by early address parsing 721 errors -- one caused it to return a "this is only a 722 warning" when it really wasn't, and the other started 723 parsing through a random pointer. The first was 724 noted by Eric Wassenaar. 725 Fix an infinite loop problem caused by null components in the 726 host signature. Problem noted by Jan Sorensen. 727 Be sure to reset the "current date" when sending an error 728 message -- PostMasterCopy messages were being sent 729 with an old Date: header. 730 Fix a problem that caused duplicated mail when sendmail was 731 (1) compiled without HASFLOCK, (2) you are sending to 732 an alias that has an owner-* alias, (3) you execute 733 sendmail with -t flag, (4) you run in -odb mode, and 734 (5) the sender specifies both the alias name and 735 another alias [i.e., the envelope is split], then 736 duplicate messages are sent. The problem description 737 and one-line fix are from Motonori Nakamura of Kyoto 738 University. 739 Avoid a problem that causes error messages to be discarded 740 in some cases -- this was the result of a "fix" to 741 avoid duplicate error messages, but two are better 742 than zero. Reported by Tim Rylance. 743 Fix a minor botch in checkfd012() -- fix from Dave Hill of 744 Computervision R&D Ltd. 745 Remove "X-Authentication-Warning: <user> set sender to <address> 746 using -f" entirely -- it is far too eager to include 747 this, and it is confusing folks. I'll try to make it 748 work "right" in 8.7. Problem noted by Yoshitaka 749 Tokugawa of dit Co., Ltd. 750 Fix a race condition with the errno value in tick() and 751 reapchild() -- this caused occasional misdiagnosis 752 of problems. Kyle Jones of UUNET helped this along. 753 Repair rule loop-detection code. From Michael Corrigan of 754 U.C. San Diego. 755 Fix a problem that caused sender domain addition (C mailer 756 flag to be ignored if you use -odq or use -odb with 757 a high load average. Problem reported by Jim Murray 758 of Stratus. 759 Fix ident protocol on multi-homed machines. It was not 760 always using the correct interface. Fix from J.R. 761 Oldroyd of Opal. 762 Previously, sendmail assumed that any SMTP greeting message 763 that wasn't 2xx was a temporary failure -- it should 764 only take 4xx as a temporary failure, and return a 765 solid error message on anything else -- for example, 766 to allow you to reject connections on a workstation 767 that is MXed to a mail server. 768 Portability enhancements for 386BSD/FreeBSD/NetBSD from 769 Ollivier Robert. 770 CONFIG: FEATURE(always_add_domain) didn't always add the domain; 771 in particular, on local mail it modified the header sender 772 but not the header recipient address(es). Reported by 773 Jeffrey Honig of Cornell University. Also, strip 774 any host from envelope recipient address(es), since 775 local mailers don't understand host names -- this is 776 to help mailertable entries. From Christopher Davis. 777 CONFIG: masquerading didn't apply to addresses that already 778 had a domain. This change replaces a local hostname 779 by the masquerade name in the SMTP mailer (previously 780 it only added the masquerade name if it didn't already 781 have a domain name). Several people complained about 782 this. 783 7848.6.2/8.6.2 93/10/15 785 Put a "successful delivery" message in the transcript for 786 addresses that get return-receipts. 787 Put a prominent "this is only a warning" message in warning 788 messages -- some people don't read carefully enough 789 and end up sending the message several times. 790 Include reason for temporary failure in the "warning" return 791 message. Currently, it just says "cannot send for 792 four hours". 793 Fix the "Original message received" time generated for 794 returntosender messages. It was previously listed as 795 the current time. Bug reported by Eric Hagberg of 796 Cornell University Medical College. 797 If there is an error when writing the body of a message, 798 don't send the trailing dot and wait for a response 799 in sender SMTP, as this could cause the connection to 800 hang up under some bizarre circumstances. From Eric 801 Wassenaar. 802 Fix some server SMTP synchronization problems caused when 803 connections fail during message collection. From 804 Eric Wassenaar. 805 Fix a problem that can cause srvrsmtp to reject mail if the 806 name server is down -- it accepts the RCPT but rejects 807 the DATA command. Problem reported by Jim Murray of 808 Stratus. 809 Fix a problem that can cause core dumps if the config file 810 incorrectly resolves to a null hostname. Reported by 811 Allan Johannesen of WPI. 812 Non-root use of -C flag, dangerous -f flags, and use of -oQ 813 by non-root users were not put into 814 X-Authentication-Warning:s as intended because the 815 config file hadn't set the PrivacyFlags yet. Fix 816 from Sven-Ove Westberg of the University of Lulea. 817 Under very odd circumstances, the alias file rebuild code 818 could get confused as to whether a database was 819 open or not. 820 Check "vendor code" on the end of V lines -- this is 821 intended to provide a hook for vendor-specific 822 configuration syntax. (This is a "new feature", 823 but I've made an exception to my rule in a belief 824 that this is a highly exceptional case.) 825 Portability fixes for DG/UX (from Douglas Anderson of NCSC), 826 SCO Unix (from Murray Kucherawy), A/UX, and OSF/1 827 (from Jon Forrest of UC Berkeley) 828 CONFIG: fix ``mailer:host'' form of UUCP relay naming. 829 8308.6.1/8.6 93/10/08 831 Portability fixes for A/UX and Encore UMAX V. 832 Fix error message handling -- if you had a name server down 833 causing an error during parsing, that message was never 834 propogated to the queue file. 835 8368.6/8.6 93/10/05 837 Configuration cleanup: make it easier to undo IDENTPROTO in 838 conf.h (other systems have the same bug). 839 If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume 840 getdtablesize() instead of sysconf(); a disturbingly 841 large number of systems defined _SC_OPEN_MAX in the 842 header files but don't have the syscall. 843 Another patch to really truly ignore MX records in getcanonname 844 if trymx == FALSE. 845 Fix problem that caused the "250 IAA25499 Message accepted for 846 delivery" message to be omitted if there was an error 847 in the header of the message (e.g., a bad Errors-To: 848 line). Pointed out by Michael Corrigan of UCSD. 849 Announce name of host we are chatting when we get errors; this 850 is an IDA-ism suggested by Christophe Wolfhugel. 851 Portability fixes for Alpha OSF/1 (from Anthony Baxter of the 852 Australian Artificial Intelligence Institute), SCO Unix 853 (from Murray Kucherawy of Hookup Communication Corp.), 854 NeXT (from Vince DeMarco and myself), Linux (from 855 Karl London <karl@borg.demon.co.uk>), BSDI (from 856 Christophe Wolfhugel, and SVR4 on Dell (from Kimmo 857 Suominen), AUX 3.0 on Macintosh, and ANSI C compilers. 858 Some changes to get around gcc optimizer bugs. From Takahiro 859 Kanbe. 860 Fix error recovery in queueup if another tf file of the same 861 name already exists. Problem stumbled over by Bill 862 Wisner of The Well. 863 Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes. 864 Problem noted by Keith McMillan of Ameritech Services. 865 Deal with group permissions properly when opening .forward and 866 :include: files. This relaxes the 8.1C restrictions 867 slightly more. This includes proper setting of groups 868 when reading :include: files, allowing you to read some 869 files that you should be able to read but have previously 870 been denied unless you owned them or they had "other" 871 read permission. 872 Make certain that $j is in $=w (after the .cf is read) so that 873 if the user is forced to override some silly system, 874 MX suppression will still work. 875 Fix a couple of efficiency problems where newstr was double- 876 calling expensive routines. In at least one case, it 877 wasn't guaranteed that they would always return the 878 same result. Problem noted by Christophe Wolfhugel. 879 Fix null pointer dereference in putoutmsg -- only on an error 880 condition from a non-SMTP mailer. From Motonori 881 Nakamura. 882 Macro expand "C" line class definitions before scanning so that 883 "CX $Z" works. 884 Fix problem that caused error message to be sent while still 885 trying to send the original message if the connection 886 is closed during a DATA command after getting an error 887 on an RCPT command (pretty obscure). Problem reported 888 by John Myers of CMU. 889 Fix reply to NOOP to be 250 instead of 200 -- this is a long 890 term bug. 891 Fix a nasty bug causing core dumps when returning the "warning: 892 cannot deliver for N hours -- will keep trying" message; 893 it only occurred if you had PostMasterCopy set and 894 only on some architectures. Although sendmail would 895 keep trying, it would send error messages on each 896 queue interval. This is an important fix. 897 Allow u and g options to take user and group names respectively. 898 Don't do a chdir into the queue directory in -bt mode to make 899 ruleset testing a bit easier. 900 Don't allow users to turn off logging (using -oL) on the command 901 line -- command line can only raise, not lower, logging 902 level. 903 Set $u to the original recipient on the SMTP transaction or on 904 the command line. This is only done if there is exactly 905 one recipient. Technically, this does not meet the 906 specs, because it does not guarantee a domain on the 907 address. 908 Fix a problem that dumped error messages on bad addresses if 909 you used the -t flag. Problem noted by Josh Smith of 910 Harvey Mudd College. 911 Given an address such as ``<foo> <bar>'', auto-quote the first 912 ``<foo>'' part, giving ``"<foo>" <bar>''. This is to 913 avoid the problem of people who use angle brackets in 914 their full name information. 915 Fix a null pointer dereference if you set option "l", have 916 an Errors-To: header in the message, and have Errors-To: 917 defined in the config file H lines. From J.R. Oldroyd. 918 Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get 919 wrong when compiling. Suggested by Rick McCarty of TI. 920 Fix a problem that could pass negative SIZE parameter if the 921 df file got lost; this would cause servers to always 922 give a temporary failure, making the problem even worse. 923 Problem noted by Allan Johannesen of WPI. 924 Add "ident" timeout (one of the "r" option selectors) for IDENT 925 protocol timeouts (30s default). Requested by Murray 926 Kucherawy of HookUp Communication Corp. to handle bogus 927 PC TCP/IP implementations. 928 Change $w default definition to be just the first component of 929 the domain name on config level 5. The $j macro defaults 930 to the FQDN; $m remains as before. This lets well-behaved 931 config files use any of the short, long, or subdomain 932 names. 933 Add makesendmail script in src to try to automate multi-architecture 934 builds. I know, this is sub-optimal, but it is still 935 helpful. 936 Fix very obscure race condition that can cause a queue run to 937 get a queue file for an already completed job. This 938 problem has existed for years. Problem noted by the 939 long suffering Allan Johannesen of WPI. 940 Fix a problem that caused the raw sender name to be passed to 941 udbsender instead of the canonified name -- this caused 942 it to sometimes miss records that it should have found. 943 Relax check of name on HELO packet so that a program using -bs 944 that claims to be itself works properly. 945 Restore rewriting of $: part of address through 2, R, 4 in 946 buildaddr -- this requires passing a lot of flags to get 947 it right. Unlike old versions, this ONLY rewrites 948 recipient addresses, not sender addresses. 949 Fix a bug that caused core dumps in config files that cannot 950 resolve /file/name style addresses. Fix from Jonathan 951 Kamens of OpenVision Technologies. 952 Fix problem with fcntl locking that can cause error returns to 953 be lost if the lock is lost; this required fully 954 queueing everything, dropping the envelope (so errors 955 would get returned), and then re-reading the queue from 956 scratch. 957 Fix a problem that caused aliases that redefine an otherwise 958 true address to still send to the original address 959 if and only if the alias failed in certain bizarre 960 ways (e.g, if they pointed at a list:; syntax address). 961 Problem pointed out by Jonathan Kamens. 962 Remove support for frozen configuration files. They caused 963 more trouble than it was worth. 964 Fix problem that can cause error messages to get ignored when 965 using both -odb and -t flags. Problem noted by Rob 966 McNicholas at U.C. Berkeley. 967 Include all "normal" variations on hostname in $=w. For example, 968 if the host name is vangogh.cs.berkeley.edu, $=w will 969 contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu. 970 Add "restrictqrun" privacy flag -- without this, anyone can run 971 the queue. 972 Reset SmtpPhase global on initial connection creation so that 973 messages don't come out with stale information. 974 Pass an "ext" argument to lockfile so that error/log messages 975 will properly reflect the true filename being locked. 976 Put all [...] address forms into $=w -- this eliminates the need 977 for MAXIPADDR in conf.h. Suggested by John Gardiner 978 Myers of CMU. 979 Fix a bug that can cause qf files to be left around even after 980 an SMTP RSET command. Problem and fix from Michael 981 Corrigan. 982 Don't send a PostMasterCopy to errors when the Precedence: is 983 negative. Error reports still go to the envelope 984 sender address. 985 Add LA_SHORT for load averages. 986 Lock sendmail.st file when posting statistics. 987 Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to 988 set the size of the TCP send and receive buffers; if you 989 run over a slow slip line you may need to set these down 990 (although it would be better to fix the SLIP implementation 991 so that it's not necessary to recompile every program 992 that does bulk data transfer). 993 Allow null defaults on $( ... $) lookups. Problem reported by 994 Amir Plivatsky. 995 Diagnose crufty S and V config lines. This resulted from an 996 observation that some people were using the SITE macro 997 without the SITECONFIG macro first, which was causing 998 bogus config files that were not caught. 999 Fix makemap -f flag to turn off case folding (it was turning it 1000 on instead). THIS IS A USER VISIBLE CHANGE!!! 1001 Fix a problem that caused multiple error messages to be sent if 1002 you used "sendmail -t -oem -odb", your system uses fcntl 1003 locking, and one of the recipient addresses is unknown. 1004 Reset uid earlier in include() so that recursive .forwards or 1005 :include:s don't use the wrong uid. 1006 If file descriptor 0, 1, or 2 was closed when sendmail was 1007 called, the code to recover the descriptor was broken. 1008 This sometimes (only sometimes) caused problems with the 1009 alias file. Fix from Motonori Nakamura. 1010 Fix a problem that caused aliaswait to go into infinite recursion 1011 if the @:@ metasymbol wasn't found in the alias file. 1012 Improve error message on newaliases if database files cannot be 1013 opened or if running with no database format defined. 1014 Do a better estimation of the size of error messages when NoReturn 1015 is set. Problem noted by P{r (Pell) Emanuelsson. 1016 Fix a problem causing the "c" option (don't connect to expensive 1017 mailers) to be ignored in SMTP. Problem noted and the 1018 solution suggested by Robert Elz of Munnari University. 1019 Improve connection caching algorithm by passing "[host]" to 1020 hostsignature, which strips the square brackets and 1021 returns the real name. This allows mailertable entries 1022 to match regular entries. 1023 Re-enable Return-Receipt-To: -- people seem to want this stupid 1024 feature, even if it doesn't work right. 1025 Catch and log attempts to try the "wiz" command in server SMTP. 1026 This also ups the log level from LOG_NOTICE to LOG_CRIT. 1027 Be more generous at assigning $z to the home directory -- do this 1028 for programs that are specified through a .forward file. 1029 Fix from Andrew Chang of Sun Microsystems. 1030 Always save a fatal error message in preference to a non-fatal 1031 error message so that the "subject" line of return 1032 messages is the best possible. 1033 CONFIG: reduce the number of quotes needed to quote configuration 1034 parameters with commas: two quotes should work now, e.g., 1035 define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local''). 1036 CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom 1037 connections (domain-ized UUCP). 1038 CONFIG: fix bug in default maps (-o must be before database file 1039 name). Pointed out by Christophe Wolfhugel. 1040 CONFIG: add FEATURE(nodns) to state that we are not relying on 1041 DNS. This would presumably be used in UUCP islands. 1042 CONFIG: add OSTYPE(nextstep) and OSTYPE(linux). 1043 CONFIG: log $u in Received: line. This is in technical violation 1044 of the standards, since it doesn't guarantee a domain 1045 on the address. 1046 CONFIG: don't assume "m" in local mailer flags -- this means that 1047 if you redefine LOCAL_MAILER_FLAGS you will have to include 1048 the "m" flag should you want it. Apparently some Solaris 2.2 1049 installations can't handle multiple local recipients. 1050 Problem noted by Josh Smith. 1051 CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults). 1052 CONFIG: change default version level from 4 to 5. 1053 CONFIG: add FEATURE(nullclient) to create a config file that 1054 forwards all mail to a hub without ever looking at the 1055 addresses in any detail. 1056 CONFIG: properly strip mailer: information off of relays when 1057 used to change .BITNET form into %-hack form. 1058 CONFIG: fix a problem that caused infinite loops if presented 1059 with an address such as "!foo". 1060 CONFIG: check for self literal (e.g., [128.32.131.12]) even if 1061 the reverse "PTR" mapping is broken. There's a better 1062 way to do this, but the change is fairly major and I 1063 want to hold it for another release. Problem noted by 1064 Bret Marquis. 1065 10668.5/8.5 93/07/23 1067 Serious bug: if you used a command line recipient that was unknown 1068 sendmail would not send a return message (it was treating 1069 everything as though it had an SMTP-style client that 1070 would do the return itself). Problem noted by Josh Smith. 1071 Change "trymx" option in getcanonname() to ignore all MX data, 1072 even during a T_ANY query. This actually didn't break 1073 anything, because the only time you called getcanonname 1074 with !trymx was if you already knew there were no MX 1075 records, but it is somewhat cleaner. From Motonori 1076 Nakamura. 1077 Don't call getcanonname from getmxrr if you already know there 1078 are no DNS records matching the name. 1079 Fix a problem causing error messages to always include "The 1080 original message was received ... from localhost". 1081 The correct original host information is now included. 1082 Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their 1083 version of "test" doesn't have the -x flag). Change it 1084 to use -f instead. From John Myers. 1085 CONFIG: 8.4 mistakenly set the default SMTP-style mailer to 1086 esmtp -- it should be smtp. 1087 CONFIG: send all relayed mail using confRELAY_MAILER (defaults 1088 to "relay" (a variant of "smtp") if MAILER(smtp) is used, 1089 else "suucp" if MAILER(uucp) is used, else "unknown"); 1090 this cleans up the configs somewhat. This fixes a serious 1091 problem that caused route-addrs to get mistaken as relays, 1092 pointed out by John Myers. WARNING: this also causes 1093 the default on SMART_HOST to change from "suucp" to 1094 "relay" if you have MAILER(smtp) specified. 1095 10968.4/8.4 93/07/22 1097 Add option `w'. If you receive a message that comes to you because 1098 you are the best (lowest preference) target of an MX, and 1099 you haven't explicitly recognized the source MX host in 1100 your .cf file, this option will cause you to try the target 1101 host directly (as if there were no MX for it at all). If 1102 `w' is not set, this case is a configuration error. 1103 Beware: if `w' is set, senders may get bogus errors like 1104 "message timed out" or "host unknown" for problems that 1105 are really configuration errors. This option is 1106 disrecommended, provided only for compatibility with 1107 UIUC sendmail. 1108 Fix a problem that caused the incoming socket to be left open 1109 when sendmail forks after the DATA command. This caused 1110 calling systems to wait in FIN_WAIT_2 state until the 1111 entire list was processed and the child closed -- a 1112 potentially prodigious amount of time. Problem noted 1113 by Neil Rickert. 1114 Fix problem (created in 6.64) that caused mail sent to multiple 1115 addresses, one of which was a bad address, to completely 1116 suppress the sending of the message. This changes 1117 handling of EF_FATALERRS somewhat, and adds an 1118 EF_GLOBALERRS flag. This also fixes a potential problem 1119 with duplicate error messages if there is a syntax error 1120 in the header of a message that isn't noticed until late 1121 in processing. Original problem pointed out by Josh Smith 1122 of Harvey Mudd College. This release includes quite a bit 1123 of dickering with error handling (see below). 1124 Back out SMTP transaction if MAIL gets nested 501 error. This 1125 will only hurt already-broken software and should help 1126 humans. 1127 Fix a problem that broke aliases when neither NDBM nor NEWDB were 1128 compiled in. It would never read the alias file. 1129 Repair unbalanced `)' and `>' (the "open" versions are already 1130 repaired). 1131 Logging of "done" in dropenvelope() was incorrect: it would 1132 log this even when the queue file still existed. Change 1133 this to only log "done" (at log level 11) when the 1134 queue file is actually removed. From John Myers. 1135 Log "lost connection" in server SMTP at log level 20 if there 1136 is no pending transaction. Some senders just close the 1137 connection rather than sending QUIT. 1138 Fix a bug causing getmxrr to add a dot to the end of unqualified 1139 domains that do not have MX records -- this would cause 1140 the subsequent host name lookup to fail. The problem 1141 only occurred if you had FEATURE(nocanonify) set. 1142 Problem noted by Rick McCarty of Texas Instruments. 1143 Fix invocation of setvbuf when passed a -X flag -- I had 1144 unwittingly used an ANSI C extension, and this caused 1145 core dumps on some machines. 1146 Diagnose self-destructive alias loops on RCPT as well as EXPN. 1147 Previously it just gave an empty send queue, which 1148 then gave either "Need RCPT (recipient)" at the DATA 1149 (confusing, since you had given an RCPT command which 1150 returned 250) or just dropped the email, depending on 1151 whether you were running VERBose mode. Now it usually 1152 diagnoses this case as "aliasing/forwarding loop broken". 1153 Unfortunately, it still doesn't adequately diagnose 1154 some true error conditions. 1155 Add internal concept of "warning messages" using 6xx codes. 1156 These are not reported only to Postmaster. Unbalanced 1157 parens, brackets, and quotes are printed as 653 codes. 1158 They are always mapped to 5xx codes before use in SMTP. 1159 Clean up error messages to tell both the actual address that 1160 failed and the alias they arose from. This makes it 1161 somewhat easier to diagnose problems. Difficulty noted 1162 by Motonori Nakamura. 1163 Fix a problem that inappropriately added a ctladdr to addresses 1164 that shouldn't have had one during a queue run. This 1165 caused error messages to be handled differently during 1166 a queue run than a direct run. 1167 Don't print the qf name and line number if you get errors during 1168 the direct run of the queue from srvrsmtp -- this was 1169 just extra stuff for users to crawl through. 1170 Put command line flags on second line of pid file so you can 1171 auto-restart the daemon with all appropriate arguments. 1172 Use "kill `head -1 /etc/sendmail.pid`" to stop the 1173 daemon, and "eval `tail -1 /etc/sendmail.pid`" to 1174 restart it. 1175 Remove the ``setuid(getuid())'' in main -- this caused the 1176 IDENT daemon to screw up. This required that I change 1177 HASSETEUID to HASSETREUID and complicate the mode 1178 changing somewhat because both Ultrix and SunOS seem 1179 to have a bug causing seteuid() to set the saved uid 1180 as well as the effective. The program test/t_setreuid.c 1181 will test to see if your implementation of setreuid(2) 1182 is appropriately functional. 1183 The FallBackMX (option V) handling failed to properly identify 1184 fallback to yourself -- most of the code was there, 1185 but it wasn't being enabled. Problem noted by Murray 1186 Kucherawy of the University of Waterloo. 1187 Change :include: open timeout from ETIMEDOUT to an internal 1188 code EOPENTIMEOUT; this avoids adding "during SmtpPhase 1189 with CurHostName" in error messages, which can be 1190 confusing. Reported by Jonathan Kamens of OpenVision 1191 Technologies. 1192 Back out setpgrp (setpgid on POSIX systems) call to reset the 1193 process group id. The original fix was to get around 1194 some problems with recalcitrant MUAs, but it breaks 1195 any call from a shell that creates a process group id 1196 different from the process id. I could try to fix 1197 this by diddling the tty owner (using tcsetpgrp or 1198 equivalent) but this is too likely to break other 1199 things. 1200 Portability changes: 1201 Support -M as equivalent to -oM on Ultrix -- apparently 1202 DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs 1203 instead of using standard flags. Oh joy. This 1204 behaviour reported by Jon Giltner of University 1205 of Colorado. 1206 SGI IRIX -- this includes several changes that should 1207 help other strict ANSI compilers. 1208 SCO Unix -- from Murray Kucherawy of HookUp Communication 1209 Corporation. 1210 Solaris running the Sun C compiler (which despite the 1211 documentation apparently doesn't define 1212 __STDC__ by default). 1213 ConvexOS from Eric Schnoebelen of Convex. 1214 Sony NEWS workstations and Omron LUNA workstations from 1215 Motonori Nakamura. 1216 CONFIG: add confTRY_NULL_MX_LIST to set option `w'. 1217 CONFIG: delete `C' and `e' from default SMTP mailers flags; 1218 several people have made a good argument that this 1219 creates more problems than it solves (although this 1220 may prove painful in the short run). 1221 CONFIG: generalize all the relays to accept a "mailer:host" 1222 format. 1223 CONFIG: move local processing in ruleset 0 into a new ruleset 1224 98 (8 on old sendmail). Domain literal [a.b.c.d] 1225 addresses are also passed through this ruleset. 1226 CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined, 1227 internet-style addresses would "fall off the end" of 1228 ruleset zero and be interpreted as local -- however, 1229 the angle brackets confused the recursive call. 1230 These are now diagnosed as "Unrecognized host name". 1231 CONFIG: USENET rules weren't included in S0 because of a mistaken 1232 ifdef(`_MAILER_USENET_') instead of 1233 ifdef(`_MAILER_usenet_'). Problem found by Rein Tollevik 1234 of SINTEF RUNIT, Oslo. 1235 CONFIG: move up LOCAL_RULE_0 processing so that it happens very 1236 early in ruleset 0; this allows .mc authors to bypass 1237 things like the "short circuit" code for local addresses. 1238 Prompted by a comment by Bill Wisner of The Well. 1239 CONFIG: add confSMTP_MAILER to define the mailer used (smtp or 1240 esmtp) to send SMTP mail. This allows you to default 1241 to esmtp but use a mailertable or other override to 1242 deal with broken servers. This logic was pointed out 1243 to me by Bill Wisner. Ditto for confLOCAL_MAILER. 1244 Changes to cf/sh/makeinfo.sh to make it portable to SVR4 1245 environments. Ugly as sin. 1246 12478.3/8.3 93/07/13 1248 Fix setuid problems introduced in 8.2 that caused messages 1249 like "Cannot create qfXXXXXX: Invalid argument" 1250 or "Cannot reopen dfXXXXXX: Permission denied". This 1251 involved a new compile flag "HASSETEUID" that takes 1252 the place of the old _POSIX_SAVED_IDS -- it turns out 1253 that the POSIX interface is broken enough to break 1254 some systems badly. This includes some fixes for 1255 HP-UX. Also fixes problems where the real uid is 1256 not reset properly on startup (from Neil Rickert). 1257 Fix a problem that caused timed out messages to not report the 1258 addresses that timed out. Error messages are also more 1259 "user friendly". 1260 Drop required bandwidth on connections from 64 bytes/sec to 1261 16 bytes/sec. 1262 Further Solaris portability changes -- doesn't require the BSD 1263 compatibility library. This also adds a new 1264 "HASGETDTABLESIZE" compile flag which can be used if 1265 you want to use getdtablesize(2) instead of sysconf(2). 1266 These are loosely based on changes from David Meyer at 1267 University of Oregon. This now seems to work, at least 1268 for quick test cases. 1269 Fix a problem that can cause duplicate error messages to be 1270 sent if you are in SMTP, you send to multiple addresses, 1271 and at least one of those addresses is good and points 1272 to an account that has a .forward file (whew!). 1273 Fix a problem causing messages to be discarded if checkcompat() 1274 returned EX_TEMPFAIL (because it didn't properly mark 1275 the "to" address). Problem noted by John Myers. 1276 Fix dfopen to return NULL if the open failed; I was depending 1277 on fdopen(-1) returning NULL, which isn't the case. This 1278 isn't serious, but does result in wierd error diagnoses. 1279 From Michael Corrigan. 1280 CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of 1281 messages sent through UUCP-family mailers. Suggested 1282 by Bill Wisner of The Well. 1283 CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified, 1284 include a "uucp-dom" mailer that uses domain-style 1285 addressing. Suggested by Bill Wisner. 1286 CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match 1287 LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS. Suggested by 1288 Christophe Wolfhugel. 1289 CONFIG: Add OSTYPE(aix3). From Christophe Wolfhugel. 1290 12918.2/8.2 93/07/11 1292 Don't drop out on config file parse errors in -bt mode. 1293 On older configuration files, assume option "l" (use Errors-To 1294 header) for back compatibility. NOTE: this DOES NOT 1295 imply an endorsement of the Errors-To: header in any way. 1296 Accept -x flag on AIX-3 as well as OSF/1. Why, why, why??? 1297 Don't log errors on EHLO -- it isn't a "real" error for an old 1298 SMTP server to give an error on this command, and 1299 logging it in the transcript can be confusing. Fix 1300 from Bill Wisner. 1301 IRIX compatibility changes provided by Dan Rich 1302 <drich@sandman.lerc.nasa.gov>. 1303 Solaris 2 compatibility changes. Provided by Bob Cunningham 1304 <bob@kahala.soest.hawaii.edu>, John Oleynick 1305 <juo@klinzhai.rutgers.edu> 1306 Debugging: -d17 was overloaded (hostsignature and usersmtp.c); 1307 move usersmtp (smtpinit and smtpmailfrom) to -d18 to 1308 match the other flags in that file. 1309 Flush transcript before fork in mailfile(). From Eric Wassenaar. 1310 Save h_errno in mci struct and improve error message display. 1311 Changes from Eric Wassenaar. 1312 Open /dev/null for the transcript if the create of the xf file 1313 failed; this avoids at least one possible null pointer 1314 reference in very wierd cases. From Eric Wassenaar. 1315 Clean up statistics gathering; it was over-reporting because of 1316 forks. From Eric Wassenaar. 1317 Fix problem that causes old Return-Path: line to override new 1318 Return-Path: line (conf.c needs H_FORCE to avoid 1319 re-using old value). From Motonori Nakamura. 1320 Fix broken -m flag in K definition -- even if -m (match only) 1321 was specified, it would still replace the key with the 1322 value. Noted by Rick McCarty of Texas Instruments. 1323 If the name server timed out over several days, no "timed out" 1324 message would ever be sent back. The timeout code 1325 has been moved from markfailure() to dropenvelope() 1326 so that all such failures should be diagnosted. Pointed 1327 out by Christophe Wolfhugel and others. 1328 Relax safefile() constraints: directories in an include or 1329 forward path must be readable by self if the controlling 1330 user owns the entry, readable by all otherwise (e.g., 1331 when reading your .forward file, you have to own and 1332 have X permssion in it; everyone needs X permission in 1333 the root and directories leading up to your home); 1334 include files must be readable by anyone, but need not 1335 be owned by you. 1336 If _POSIX_SAVED_IDS is defined, setuid to the owner before 1337 reading a .forward file; this gets around some problems 1338 on NFS mounts if root permission is not exported and 1339 the user's home directory isn't x'able. 1340 Additional NeXT portability enhancements from Axel Zinser. 1341 Additional HP-UX portability enhancements from Brian Bullen. 1342 Add a timeout around SMTP message writes; this assumes you can 1343 get throughput of at least 64 bytes/second. Note that 1344 this does not impact the "datafinal" default, which 1345 is separate; this is just intended to work around 1346 network clogs that will occur before the final dot 1347 is sent. From Eric Wassenaar. 1348 Change map code to set the "include null" flag adaptively -- 1349 it initially tries both, but if it finds anything 1350 matching without a null it never tries again with a 1351 null and vice versa. If -N is specified, it never 1352 tries without the null and creates new maps with a 1353 null byte. If -O is specified, it never tries with 1354 the null (for efficiency). If -N and -O are specified, 1355 you get -NO (get it?) lookup at all, so this would 1356 be a bad idea. If you don't specify either -N or -O, 1357 it adapts. 1358 Fix recognition of "same from address" so that MH submissions 1359 will insert the appropriate full name information; 1360 this used to work and got broken somewhere along the 1361 way. 1362 Some changes to eliminate some unnecessary SYSERRs in the 1363 log. For example, if you lost a connection, don't 1364 bother reporting that fact on the connection you lost. 1365 Add some "extended debugging" flags to try to track down 1366 why we get occassional problems with file descriptor 1367 one being closed when execing a mailer; it seems to 1368 only happen when there has been another error in the 1369 same transaction. This requires XDEBUG, defined 1370 by default in conf.h. 1371 Add "-X filename" command line flag, which logs both sides of 1372 all SMTP transactions. This is intended ONLY for 1373 debugging bad implementations of other mailers; start 1374 it up, send a message from a mailer that is failing, 1375 and then kill it off and examine the indicated log. 1376 This output is not intended to be particularly human 1377 readable. This also adds the HASSETVBUF compile 1378 flag, defaulted on if your compiler defines __STDC__. 1379 CONFIG: change SMART_HOST to override an SMTP mailer. If you 1380 have a local net that should get direct connects, you 1381 will need to use LOCAL_NET_CONFIG to catch these hosts. 1382 See cf/README for an example. 1383 CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle 1384 sites that don't use the -d flag. 1385 CONFIG: hide recipient addresses as well as sender addresses 1386 behind $M if FEATURE(allmasquerade) is specified; this 1387 has been requested by several people, but can break 1388 local aliases. For example, if you mail to "localalias" 1389 this will be rewritten as "localalias@masqueradehost"; 1390 although initial delivery will work, replies will be 1391 broken. Use it sparingly. 1392 CONFIG: add FEATURE(domaintable). This maps unqualified domains 1393 to qualified domains in headers. I believe this is 1394 largely equivalent to the IDA feature of the same name. 1395 CONFIG: use $U as UUCP name instead of $k. This permits you 1396 to override the "system name" as your UUCP name -- 1397 in particular, to use domain-ized UUCP names. From 1398 Bill Wisner of The Well. 1399 CONFIG: create new mailer "esmtp" that always tries EHLO 1400 first. This is currently unused in the config files, 1401 but could be used in a mailertable entry. 1402 14038.1C/8.1B 93/06/27 1404 Serious security bug fix: it was possible to read any file on 1405 the system, regardless of ownership and permissions. 1406 If a subroutine returns a fully qualified address, return it 1407 immediately instead of feeding it back into rewriting. 1408 This fixes a problem with mailertable lookups. 1409 CONFIG: fix some M4 frotz (concat => CONCAT) 1410 14118.1B/8.1A 93/06/12 1412 Serious bug fix: pattern matching backup algorithm stepped by 1413 two tokens in classes instead of one. Found by Claus 1414 Assmann at University of Kiel, Germany. 1415 14168.1A/8.1A 93/06/08 1417 Another mailertable fix.... 1418 14198.1/8.1 93/06/07 1420 4.4BSD freeze. No semantic changes. 1421 14226.65/6.34 93/06/06 1423 Fix some lintish problems. 1424 Fix some cases where server SMTP behaved poorly when handed bogus 1425 input, pointed out by Eric Wassenaar. 1426 CONFIG: fix some more (sigh) mailertable bugs -- thanks to 1427 Motonori Nakamura of Kyoto University (again). 1428 14296.64/6.33 93/06/05 1430 Don't send 050 (-v) information after the 250 response to a QUIT 1431 command in srvrsmtp -- clients usually close the connection 1432 at this point, and it causes bogus error messages. 1433 Don't send messages that have errors on input (such as unbalanced 1434 parentheses) during SMTP transactions, since a return 1435 message has (probably) already been sent. 1436 Give better diagnostics on timeouts during network reads, including 1437 information similar to the SMTP phase. 1438 Fix bug that caused SMTP messages to deliver synchronously; this 1439 happened after the DATA 250, and hence caused reading the 1440 next command to be delayed. 1441 Ignore Errors-To: header unless 'l' (lower case el) header is 1442 specified. The Errors-To: header violates RFC 1123. 1443 Errors-To: was only needed to take the place of the 1444 envelope sender in the days when most Unix mailers 1445 didn't understand about the two kinds of senders. 1446 Don't send warning messages in response to automatically generated 1447 messages (that is, those From:<>). 1448 CONFIG: fix some rather stupid typos in the mailertable code 1449 pointed out by Motonori Nakamura of Kyoto University. 1450 CONFIG: add confUSE_ERRORS_TO configuration option. 1451 CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M 1452 (masquerade name) instead of $j. 1453 CONFIG: don't add dots to relay names (added in 6.29); it breaks 1454 several things, and can be simulated by dot terminating 1455 the names of relays. For example, use: 1456 DBbit.net.relay. 1457 (note the trailing dot). 1458 14596.63/6.32 93/06/01 1460 Fix prototypes to eliminate chars in argument lists -- some 1461 compilers are pissy about this. 1462 Log protocol ($r) and body type if set so we can determine if 1463 the adaptive algorithms are working. 1464 Pessimize on locking of database files (particularly for NEWDB 1465 databases) during opens. There were problems with 1466 processes opening the file while it was rebuilt; since 1467 NEWDB caches heavily, the reader opened an empty file, 1468 which is an error. If your system has the ability to 1469 lock atomically on open, this works properly; otherwise, 1470 there are race conditions. 1471 Check mod time on .pag file instead of .dir in NDBM aliases 1472 because the .dir file doesn't get updated for small 1473 alias files. From John Gardiner Myers of CMU. 1474 More Solaris portability -- it now compiles on Solaris, but 1475 hangs up in gethostbyname(). 1476 Move setting of RES_DEBUG flag before first myhostname() call 1477 so we can see name server traffic on that call. 1478 Fsync() queue files. 1479 Fix a problem that causes -bi to try to rebuild maps other than 1480 the alias file(s). 1481 Fix a problem that caused udb to reject entries from any but 1482 the first database listed. 1483 Rearrange doc subdirectory for 4.4BSD release tape. 1484 CONFIG: put $r into the Received line. This was an oversight. 1485 CONFIG: fix typo (call to ruleset 99 should have been rulset 90). 1486 CONFIG: move "auxiliary" subroutines to be in ruleset 90-99 1487 range -- in the long run, single digit rulesets may 1488 become reserved for builtin use by sendmail. 1489 CONFIG: fix major problem that causes host aliases (that is, 1490 anything in $=w != $j) to not be recognized. This has 1491 been around since 6.30. 1492 14936.62/6.31 93/05/28 1494 BETA RELEASE 1495 Fix recursive syserr (if there is an error printing a syserr 1496 message). This makes the code much less eager to consider 1497 a write error as serious. This also includes some 1498 heuristics to be clever about closed connections. 1499 Lock NEWDB files during gets. This requires version 1.5 or later 1500 of the db library. If you have an older version, you 1501 can use -DOLD_NEWDB. This will go away in a few weeks. 1502 Fix problem causing aliases that use host maps to get overwritten. 1503 Do appropriate byte swapping on port numbers in ident protocol 1504 code. Fix from Allan Johannesen of WPI. 1505 Defer opening of map files to the same time as alias files so that 1506 the daemon will tend to pick up new versions more promptly. 1507 Prototype a bunch more functions. 1508 Some Solaris 2.1 changes (still doesn't link though). 1509 Try to simplify Makefiles by including more subordinate #defines 1510 in conf.h (based on OS type). 1511 CONFIG: check for domains if FEATURE(mailertable) is defined. 1512 For example, if the host name is "knecht.cs.berkeley.edu" 1513 it will search the following mailertable keys: 1514 knecht.cs.berkeley.edu 1515 .cs.berkeley.edu 1516 .berkeley.edu 1517 .edu 1518 This could be used to replace the special relays for bitnet 1519 and similar nets. 1520 15216.61/6.30 93/05/24 1522 Fix problem that prevented appending dots on canonified host 1523 names. This breaks tons of config files -- very 1524 important fix. 1525 Fix improper pointer dereference in response to HELO command. 1526 Fix core dump if debugging set in map_rewrite. 1527 CONFIG: add FEATURE(always_add_domain) to always attach the 1528 local domain (only impacts local mail). 1529 CONFIG: try to avoid turning names into $j -- although 1530 technically a host can only have one "canonical name", 1531 it seems to be common practice to have several. 1532 15336.60/6.29 93/05/22 1534 Major change: merge alias databases with maps. This expands and 1535 changes the map class interface but fixes a bunch of bugs. 1536 The important user-visible change is that the file name 1537 in a K line now does not include the ".db" extension; this 1538 is added automatically. Also, the -d (NIS domain) flag is 1539 missing from the K config line; use @domain instead. 1540 When compiling, the *_MAP names are gone -- just compile 1541 in NDBM, NEWDB, and/or NIS support. 1542 Announce mailer/host/user triple on -bv flag -- from Brian 1543 Bullen of Stirling University. 1544 Don't send more than one line in response to HELO -- it confuses 1545 Pony Express, which then behaves very badly. However, 1546 this change does send two line 220 greetings, with the 1547 second line reading "ESMTP spoken here". The usersmtp 1548 module recognizes this and goes into ESMTP mode regardless 1549 of the setting of the "a" mailer flag. Thus, "a" means 1550 "always try EHLO". 1551 AIX portability changes (thanks to Christophe Wolfhugel of 1552 Herve Schauer Consultants (Paris) for providing me with 1553 an INSA account for this purpose). Lightly tested. Use 1554 -D_AIX3. This probably breaks compatibility with some 1555 older systems (e.g., 4.2bsd) but still works on SunOS 1556 4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3. 1557 Fix a problem causing an error message loop if the output channel 1558 is hosed. 1559 Add the Makefiles that I use for various environments -- some are 1560 Berkeley make versions and some are old make versions. 1561 My makefile for the NeXT box has gotten lost, alas! 1562 PRALIASES: support for printing NEWDB databases. From 1563 Michael J. Corrigan of U.C. San Diego. 1564 CONFIG: don't pass pseudo-domains to $[ ... $] (if you have 1565 a wildcard MX it can have wierd results). From 1566 Christophe Wolfhugel. 1567 CONFIG: dot terminate relay hostnames in S0. From Christophe 1568 Wolfhugel. 1569 15706.59/6.28 93/05/13 1571 Log version with SMTP daemon startup message. 1572 Adjust setproctitle to work on NetBSD and BSD/386. 1573 Fix null pointer reference in MX fallback code. 1574 A bunch of minor fixes from Eric Wassenaar: 1575 If deliver cannot execv the mailer, return EX_OSERR 1576 instead of EX_TEMPFAIL (to give better 1577 error messages). 1578 Consistently malloc e_message. 1579 Catch degenerate case of calling returntosender() 1580 with an empty returnq. 1581 MIME reformatting. 1582 15836.58/6.28 93/05/13 1584 Fix bug that can cause incorrect verbose display of user smtp 1585 messages. 1586 Disable SMTP VERB command if PRIV_NOEXPN is set (since this 1587 could reveal the same information. 1588 Allow failure when reading SMTP greeting message to go on to 1589 next MX host. 1590 Add "MIME-Version: 1.0" header if using MIME (this was NOT 1591 included in RFC 1344, but Bill King of Allan-Bradley 1592 Company forwarded me email from Nathaniel Borenstein 1593 claiming that it was an inadvertent omission). 1594 Don't use Content-Type: X-message-header. According to John 1595 Myers of CMU, many MIME readers will completely ignore 1596 the data if they don't recognize it. Instead, just 1597 add a blank line to make it a legal (empty) message. 1598 Fix problem causing dots to keep getting appended to cached 1599 hostnames. This can cause buffer overrun conditions. 1600 The problem was found by Erik Forsberg of Retix, 1601 although I used a different bug fix than he provided. 1602 Fix parsing of split header/envelope rewriting specs -- from 1603 Eric Forsberg. 1604 Fix from Eric Wassenaar to correct To: lists in error messages. 1605 16066.57/6.28 93/05/11 1607 Fix minor glitch causing extra ctladdrs to be output to queue 1608 file. Just an annoyance. 1609 Cache results of name server canonification lookups to avoid 1610 backed up queue runs. 1611 Major rewrite of alias.c: considerable cleanup, plus sample 1612 (untested) support for NIS aliases. The "A" option 1613 can now be a comma separated list (or be repeated) -- 1614 that is, you can have multiple alias databases. Each 1615 database can have the syntax ``class:file''; if no class 1616 is specified, the "implicit" class is assumed. Implicit 1617 searches through a list of compiled in types -- hash, 1618 dbm, nis, and stab. Alias files are searched in the 1619 order they are listed. For example: 1620 OAhash:/etc/aliases.local,/etc/aliases 1621 OAnis:mail.aliases@my.nis.domain 1622 first searches the hash database /etc/aliases.local, 1623 then the regular /etc/aliases database, then the NIS 1624 map "mail.aliases" in the NIS domain "my.nis.domain". 1625 If in Verbose mode (probably from VERB command) run SMTP job 1626 in foreground and don't do RCPT optimizations. 1627 Add udb :mailsender as equivalent to owner- for regular aliases. 1628 Delete option 8; add option 7 that means the opposite. That is, 1629 default to 8-bit mode; a special option is needed to 1630 force sendmail into 7 bit mode. 1631 Send error messages in encapsulated MIME format. 1632 New compile flag "NIS" that turns on NIS alias and NIS map 1633 support. 1634 Add "j" option to send error messages in MIME (RFC 1341) 1635 encapsulated message format per RFC 1344. The 1636 syntax is pretty ugly if you don't have MIME-aware 1637 user agents. 1638 Clean up message handling (for display in mailq output). 1639 New setproctitle implementation for 4.4bsd. 1640 Create files (such as ~/dead.letter) using mode FileMode (the 1641 F option value) instead of 0666. 1642 Fix bug causing output of EXPN command to not be fully qualified. 1643 This may cause some problems with UUCP addresses that 1644 will require some config file assistance -- specifically, 1645 the $: part has to include the host name for this output 1646 to make sense. 1647 Fix a problem that sometimes diagnosed errors and still sent the 1648 message if the header syntax was bad. 1649 Fix a bug that caused an error message to be emailed when sendmail 1650 was operating in -bv mode. 1651 Add "ListenQueueSize" keyword to daemon options option (OO) to 1652 set the queue size parameter passed to listen(). You 1653 will normally have to tweak your kernel to up this. 1654 Strip spaces off of beginning of message-id before logging (in 1655 case it was folded across lines). 1656 Tweak compile flags in daemon.c -- there were some cases where 1657 it wouldn't work without NETINET. 1658 Change *file* mailer to output all the usual default headers 1659 (From, Date, Message-Id). It gets used when sending 1660 back error messages. 1661 CONFIG: explicitly catch and diagnose list:; syntax in ruleset 1662 zero -- this is not a valid recipient syntax according 1663 to RFC 821. 1664 CONFIG: add confMIME_FORMAT_ERRORS to send error messages in 1665 MIME format. Defaults to on. 1666 CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment 1667 the flags for those mailers. 1668 16696.56/6.27 93/05/01 1670 Fix problem that causes the fallback mail to postmaster 1671 (case ESM_POSTMASTER in savemail()) to not look at 1672 aliases (ugh). 1673 Some more HPUX tweaking (compile flag hpux => __hpux so it 1674 still works in ANSI mode). 1675 Don't try to flock non-regular files when mailing to a file. 1676 In particular, this was a problem if you tried to 1677 send to /dev/null. 1678 Fix a wierd bug that can cause senders to be queued as 1679 recipients if the name server is down when the mail 1680 is initially sent. This hack just ignores sender 1681 deletion (essentially, it sets the MeToo flag) if there 1682 is a TEMPFAIL during processing of the sender address. 1683 Obscure. 1684 Fix a dangling else problem -- from Brian Bullen from University 1685 of Stirling, UK. 1686 Add the "b" mailer flag to force a blank line on the end of 1687 messages. Some brilliant versions of /bin/mail insist 1688 on this but do not add it themselves. 1689 Add the "g" mailer flag to prevent user SMTP from sending 1690 "MAIL From:<>". This is only intended to be a 1691 transitional gesture, and should not be used if at 1692 all possible. It appears that Berkeley and IDA 1693 config files have always handled this properly; the 1694 UK config kit apparently does not. 1695 Don't lowercase and then capitalize header field names -- leave 1696 them with original capitalization. Fixes from Bill 1697 King of Allen-Bradley Company. 1698 Further cleanup and improved reporting of error messages, 1699 particularly conditions that cause messages to be 1700 requeued for future delivery. 1701 Tweak syslog priorities in some cases. 1702 CONFIG: clean up route-addr on UUCP addresses. 1703 17046.55/6.25 93/04/27 1705 HPUX 8.07 compatibility changes in getla() -- I had to make 1706 these changes to get it to work at Berkeley, although 1707 others seem to have been working before (???). 1708 Various patches to XLA code. 1709 Fix problem that causes setuid bit on files to be ignored from 1710 SMTP or in queue runs. Problem noted by Jason Ornstein 1711 of Under The Wire, Inc. 1712 Fix problem that can cause CNAMEs to be ignored. 1713 Generalize getmxrr to match local host in $=w instead of a 1714 single name passed in. 1715 Some cleanup from Eric Wassenaar: 1716 Use FileMailer instead of ProgMailer in two places. 1717 Eliminate duplicate 8th-bit stripping in commaize. 1718 Fix a problem with mis-parsing of backslash escapes 1719 under some circumstances. 1720 NIS map fix (was always including trailing null character) 1721 from Mike Glendinning of Ingres UK. 1722 Add "a" mailer flag to try using ESMTP. It tries the EHLO 1723 command and if that fails falls back to regular SMTP. 1724 Also parses EHLO option keywords. If host supports 1725 SIZE extension, this is added to the MAIL FROM: 1726 command. 1727 Extend "b" option to include a second value which is the 1728 maximum message size this server is willing to accept. 1729 For example, a value of "10/1000000" says that there 1730 must be ten blocks free, and sendmail will reject 1731 any message larger than one megabyte. 1732 Some portability hooks for NeXT (this could be applicable 1733 to Mach in general). You have to create an empty 1734 file called "unistd.h" to get it to compile. 1735 Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to 1736 be more generous. 1737 Add X400-Received: to the list of headers tagged with H_TRACE 1738 in conf.c. From Bill King, Allen-Bradley Co. 1739 17406.54/6.25 93/04/19 1741 Fix problem that caused redefinition of SMTP and QUEUE compile 1742 flags. Pointed out by Jon Forrest of the Sequoia 2000 1743 project at Berkeley. 1744 Properly handle \! hack -- it was treating host\!user as one 1745 token (host!user) instead of three (host, !, user). 1746 Fix from Eric Wassenaar of NIKHEF-H. 1747 Fix compilation problem in getauthinfo() if IDENTPROTO is off. 1748 Turn off DEFNAMES and DNSRCH when getting the hostsignature 1749 (i.e., MX records) in level 1 configuration files; this 1750 matches the old behaviour. From Motonori Nakamura of 1751 Kyoto University. 1752 Improve error message printing -- if sent through an alias, 1753 error messages include the name of the alias in the 1754 message. Unfortunately, in order to make this work 1755 properly in queue runs, this changes the format of the 1756 C line in the qf file. The relatively uselessness of 1757 the previous information was pointed out to me by 1758 Allan E Johannesen of WPI. 1759 Add XLA compile flag to add hooks to Christophe Wolfhugel's 1760 extended load average code. This is still in very early 1761 form. For information regarding the guts of the xla 1762 code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr. 1763 Additional hooks for detecting tempfails in rewriting rules 1764 (that is, in map lookups). 1765 17666.53/6.25 93/04/15 1767 Properly diagnose ruleset zero returning null (instead of a mailer 1768 triple). From Motonori Nakamura of Kyoto University. 1769 More generalization of socket code for other protocols. 1770 Shorten timeouts on reverse name lookups -- since they are done 1771 during connection establishment, long timeouts here can 1772 cause higher level timeouts. This mainly serves to accept 1773 mail from hosts that do not have proper reverse (PTR) DNS 1774 records set up. 1775 Reset e_statmsg before each mailer invocation to avoid bogus 1776 messages in the log. 1777 Redefine $r, $s, and $_ in error envelopes so you don't get 1778 incorrect cruft in the error message. Problem noted by 1779 Motonori Nakamura of Kyoto University. 1780 Fix a problem that can cause failure to return errors to Postmaster 1781 in certain cases. From Motonori Nakamura. 1782 Fix a problem that can cause some systems to give duplicate error 1783 messages when a bad syntax address such as "<a" is presented 1784 to an SMTP server. It doesn't seem to occur on all 1785 machines. From Motonori Nakamura. 1786 Default IDENTPROTO off for Ultrix and HPUX, which apparently have 1787 the interesting "feature" that when they receive a "Host 1788 unreachable" message they closes all open connections to 1789 that host. However, some firewall gateways send this message 1790 if you try to connect to an unauthorized port, such as the 1791 IDENT port (113). Thus, no email can be received from such 1792 hosts. There is some evidence that versions of Ultrix before 1793 4.3 do not have this problem. Thanks to Tom Ivar Helbekkmo 1794 for pointing out this behaviour to me and to Michael Corrigan 1795 of U.C. San Diego for informing me about the HPUX problem. 1796 Allow IPC mailers to return a colon-separated list of hosts in the 1797 $@ clause; these are searched in order as though they were 1798 MX records. 1799 When sending an error report, print the list of addresses tagged 1800 as bad. Requested by Allan E Johannesen of WPI. 1801 Change map function calls to return a status code. This gets 1802 passed back as the result of rewrite. Parseaddr marks 1803 the address as a QUEUEUP address if the return code is 1804 EX_TEMPFAIL. All this to queue properly if the name 1805 server is down. This code is not well tested. This code 1806 changes the interface to map lookup functions (a fifth 1807 parameter, int *statp, is added). Feature requested by 1808 Dan Oscarsson. 1809 Don't delete quotes (in the dequote map) if there are spaces in 1810 the string, since this would cause them to be replaced by 1811 the SpaceSub character. 1812 Accept BODY=8BITMIME on SMTP MAIL command. This isn't advertised 1813 because the 8BIT to 7BIT translation doesn't exist yet. 1814 This does add a "bodytype" field to both envelope and 1815 queue file and a -B command line flag to pass the type in 1816 during direct invocations. 1817 Discard return error messages only on responses to responses to 1818 responses, not on responses to responses. That is, the 1819 algorithm is to try return to sender, then return to 1820 postmaster, then discard. Previously it discarded 1821 immediately if the return to sender pass failed. 1822 CONFIG: back out change to hide unqualified hostnames behind %-hack. 1823 This screws up local aliases and .forward files. 1824 CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $]; 1825 some sites only handle completely canonified names. 1826 Requested by John Gardiner Myers of CMU. 1827 CONFIG: some UUCP code was still included even if FEATURE(nouucp) 1828 was specified. 1829 18306.52/6.24 93/04/10 1831 Clean up some minor glitches on error return messages pointed out 1832 by Motonori Nakamura of Kyoto University. 1833 Fix reply() to not reset SmtpReplyBuffer on fatal errors; this 1834 was supposed to reset SmtpMsg Buffer. This makes the 1835 client side code virtually useless. Reported by Allan 1836 E Johannesen of WPI and Phil Brandenberger of Swarthmore. 1837 Better debug messages if fuzzy is disabled, suggested by Allan 1838 E Johannesen of WPI. 1839 Offset SmtpReplyBuffer by four in usersmtp when checking for 1840 loopback. From Eric Wassenaar. 1841 Don't set $s until after runinchild in srvrsmtp -- otherwise 1842 it gets cleared. From Eric Wassenaar. 1843 Implement IDA-style $&x for deferred macro expansion. 1844 More POSIX compatibility. 1845 CONFIG: Hide unqualified hostnames behind %-hack using $s as the 1846 actual sender. This is only done if $r is non-null, that 1847 is, if this is not locally submitted mail. 1848 CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host 1849 names to internet domains. A program contributed by 1850 John Gardiner Myers of CMU to create the maps is included 1851 in the contrib directory (in the "misc" tar file). 1852 CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP 1853 hosts. There is currently no tool to create this map. 1854 18556.51/6.23 93/04/04 1856 Add D= mailer flag to specify a path of possible working directories 1857 in which to execute the mailer. This is intended for the 1858 prog mailer; some shells can get upset if they don't have 1859 access to the current directory. 1860 Add RFC 1413 (IDENT) protocol support. This is only very loosely 1861 tested. This adds a $_ macro to be the authenticated 1862 info (in ``user@domain [address]'' form) and debug flag 1863 9 to trace the protocol. 1864 Check for loopbacks in usersmtp instead of srvrsmtp -- there is no 1865 reason for a local agent to not be talking to the localhost 1866 (although the inverse is not true). 1867 Add a few hooks for automated map rebuilding. This is certainly 1868 not done yet. 1869 CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is, 1870 user's home directory then the root. 1871 CONFIG: Log RFC 1413 identification in Received: line. 1872 18736.50/6.22 93/04/01 1874 Fixes to requeueing code to make it compute priority, nrcpts, 1875 and the like properly. 1876 18776.49/6.22 93/04/01 1878 Diagnose incorrect privacy flags. Suggested by Bryan Costales 1879 of ICSI. 1880 Some ANSI C fixes. 1881 Arrange to quote backslashes as well as other special characters 1882 in the phrase part of a route-addr. 1883 Some fixes to FallBackMX code suggested by Motonori Nakamura of 1884 Kyoto University. 1885 More vigorous zeroing of CurHostAddr to avoid logging of bogus 1886 host addresses when you are actually just printing 1887 information from the MCI structure; problem noted by 1888 Michael Corrigan of U.C. San Diego. 1889 Don't ignore rest of queue if any job is not runnable. This can 1890 also cause an incorrect job to be lost. Fix from 1891 Eric Wassenaar. 1892 Always respond "quickly" to RCPT command; do alias expansion and 1893 the like later. This also means that mail for lists that 1894 have errors will be acccepted, and an error sent back 1895 later. This is done by instantiating the queue file 1896 and then immediately running and requeueing it. 1897 18986.48/6.22 93/03/30 1899 Fix incorrect diagnosis of infinite loop in ruleset. Problem noted 1900 by several people. 1901 Improve information printed when infinite loops are discovered. 1902 Zero CurHostAddr to fix erroneous internet addresses in log when no 1903 addresses can be bound. Pointed out by Motonori Nakamura 1904 of Kyoto University. 1905 "Probe" SMTP connections using RSET instead of NOOP "just in case". 1906 Suggested by John Gardiner Myers of CMU. 1907 Don't warn about -f if you are setting sender to yourself. 1908 19096.47/6.22 93/03/29 1910 Fix incompatible call to endmailer in smtpquit which causes core 1911 dumps. Noted by Allan E Johannesen of WPI. 1912 HPUX portability changes from Michael J. Corrigan of UC San Diego. 1913 Require MAIL before RCPT command in srvrsmtp.c. This had been 1914 intentional from the 821 draft days when the order wasn't 1915 clear, but is silly now. 1916 Fix bug in nis_magic routine that was initializing parameters 1917 incorrectly. Fix from Takahiro Kanbe of Fuji Xerox 1918 Information Systems Co., Ltd. 1919 Change default for PrivacyFlags in conf.c to 0 -- since it always 1920 "or"s in new values, there was no way to turn off the 1921 AuthWarning stuff. 1922 Add O option to set SMTP daemon options. 1923 Add V option to set fallback MX host. This always sorts at lower 1924 priority than anything it gets from the name server. It 1925 should only be used for environments with very bad network 1926 connectivity. Requested by several people. 1927 Log sending info. It's not clear this is a good idea. 1928 CONFIG: fix typo in mailertable code. Noted by Phil Brandenberger 1929 of Swarthmore. 1930 CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options 1931 O and V, respectively. 1932 19336.46/6.21 93/03/26 1934 Fix botch in server SMTP that broke transactions that did not 1935 use HELO first (like MH). Fix from Michael Corrigan 1936 of U.C. San Diego. 1937 Fall back to other MX records if there is an error anywhere 1938 in delivery (actually on MAIL or DATA -- RCPT is harder). 1939 Suggested by John Gardiner Myers and Motonori Nakamura. 1940 Revert to non-prototypes -- it turns out that our ANSI C 1941 compiler is more forgiving than most others about 1942 mixing prototyped extern declarations with non-prototyped 1943 function definitions. 1944 Fix a problem with multi-word class matching pointed out by 1945 Neil Rickert. Given: 1946 CX b a.b.c 1947 R$+ $=X $+ $: $1 < $2 > $3 1948 the input "user@a.b.c" failed instead of being properly 1949 rewritten as "user@a.<b>.c". 1950 Neil also convinced me that it was correct that $~ should match 1951 only one token -- the problem is that it's always possible 1952 to add another token, so $~ matches far too eagerly. 1953 19546.45/6.21 93/03/25 1955 Implement multi-word classes (properly!). 1956 19576.44/6.21 93/03/25 1958 Add X-Authentication-Warning: headers to clue users into possible 1959 attempts to forge mail. This is on the authwarnings 1960 privacy flag, but is the default. Suggested by Bryan 1961 Costales of ICSI. 1962 Pass default units for convtime in so they can be more reasonable. 1963 Allow config files to always add a new Comments: header (i.e., 1964 they will be added even if an old one already exists). 1965 Suggested by Bryan Costales of ICSI. 1966 Allow config files to delete an existing Return-Path: header. 1967 These should only be added at final delivery. Suggested 1968 by Bryan Costales of ICSI. 1969 Some debugging additions. Suggested by Bryan Costales of ICSI. 1970 Clean up logging of Family 0 addresses. Noted by David Muir 1971 Sharnoff and others. 1972 Add a "dequote" map class. This allows config files to strip 1973 quotes off of addresses. Note that this is not a builtin 1974 map, just a class -- so you have to define the map 1975 using the K line. 1976 Fix a bug in the queueup() loop getting a locked tf where in 1977 very odd cases it can fall off the bottom and core dump. 1978 Of course, it was P{r Emanuelsson who found it.... 1979 Open a new transcript when splitting an envelope. Problem found 1980 by Allan E Johannesen of WPI. 1981 Improved error output in endmailer if the mailer core dumps. 1982 CONFIG: Fix typo in UUCP mailer definition. 1983 CONFIG: Default several of the new options on: eight bit input, 1984 privacy flags set to "authwarnings", and message warning 1985 set to 4h. 1986 CONFIG: Use dequote map. 1987 19886.43/6.20 93/03/23 1989 Fix problem with assumption of an sa_len field in a generic 1990 sockaddr -- it turns out that most vendors haven't 1991 picked up this (very important) fix. 1992 Change compilation flags for daemon code -- select one or both 1993 of NETINET or NETISO, but don't ever set DAEMON manually. 1994 CONFIG: add FEATURE(mailertable) to do IDA-style mailertables. 1995 19966.42/6.19 93/03/19 1997 Use Postmaster as default fallback return address, not root. 1998 POSIX changes for file descriptor handling. 1999 Diagnose errors writing new queue file. 2000 If you change the owner using an owner- alias, also change the 2001 error mode to EM_MAIL so that errors don't get dropped 2002 into an inappropriate directory. Problem noted by 2003 Allan E Johannesen of WPI. 2004 If you are su'ed to root, send email as who you really are, not 2005 as root. From Brian Kantor of U.C. San Diego. 2006 Allow warning messages to be sent after a configurable interval 2007 has passed without delivery. The message is sent only 2008 once per envelope. This changes the format of the qf 2009 file to have an F line, and the format of the T option 2010 to accept take the format "return/warn" (both intervals). 2011 Don't force all local names to lower case -- this was left over 2012 from the wierd handling of case mapping on aliases. It 2013 is now driven (as expected) by the "u" mailer flag. 2014 Problem noted by P{r Emanuelsson. 2015 Fix problem that caused headers on returned email to be trashed; 2016 they were getting freed, but are still accessible via 2017 BlankEnvelope. 2018 Fix problem that caused bogus ids to be created on returned 2019 mail. 2020 Add support for ISO and other non-INET networking. This is by 2021 no means finished yet. This does assume a lot of other 2022 system support, like a version of gethostbyname that 2023 returns non-AF_INET addresses. 2024 CONFIG: change default on prog mailer to keep upper case in 2025 user names (i.e., in the program command line). 2026 CONFIG: strip trailing dots off of hosts in uucp mailer before 2027 convert to bang format. 2028 CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H 2029 (MAIL_HUB) delivery that doesn't add local domain. Note 2030 that this violates 821, but is probably "more correct" 2031 for what we are trying to do. Problem pointed out by 2032 Michael Graff of Iowa State. 2033 20346.41/6.18 93/03/18 2035 Clean up unnecessary creates of queue ids (i.e., empty qf files) 2036 when not needed, such as when starting up an SMTP 2037 connection. 2038 Fix problem where split envelopes aren't instantiated in the queue. 2039 This is quite a serious bug. 2040 Owner- aliases had problems with leading spaces causing a 2041 premature delimitation. 2042 20436.40/6.18 93/03/18 2044 Have ending 250 (after DATA) include the id; suggested by 2045 Brian Kantor of UC San Diego. 2046 Add logging on envelope splitting. 2047 Change queue ids to have one more letter encoding the hour of 2048 the day so that during a single day there is a greater 2049 likelihood of uniqueness; requested by Brian Kantor. 2050 20516.39/6.18 93/03/18 2052 Fix minor compile problem if LOCKF is defined. 2053 Define size of tobuf in conf.h. Observed by Toshinari Takahashi 2054 of Toshiba. 2055 Restore e_sender -- this is equivalent to e_from.q_paddr without 2056 decorations such as angle brackets and comments. 2057 OSF/1 on Alpha changes from Allan E Johannesen of WPI. 2058 CONFIG: fix typo in S3 for list syntax (;: => :;). Thanks to 2059 Christopher Hoover for noting the problem. 2060 20616.38/6.17 93/03/17 2062 Pass envelope to disconnect to avoid another use of CurEnv, which 2063 can apparently end up being null at inopportune times. 2064 Log "received from" as "relay=" for consistency (suggested by 2065 John Gardiner Myers). 2066 Fix major bug in header handling: if no From: line existed in 2067 the header (so sendmail inserts one), and the sender is 2068 an alias that has an owner, the From: line shows the 2069 owner (as well as the envelope). Fixed by early binding 2070 the headers (which will change debugging output). 2071 HPUX portability patches from Michael J. Corrigan of UC San Diego. 2072 Some attempts to adapt better to out of open file conditions. 2073 Some changes to ctladdr handling in queue files. 2074 20756.37/6.17 93/03/16 2076 MAJOR CHANGE: delete e_sender and e_returnpath (why are these 2077 different from e_from?) and $< macro. 2078 Log correct IP address in relay= field even if the connection 2079 times out. 2080 Log "received from [RESPONSE]" on EF_RESPONSE messages (from 2081 John Gardiner Myers). 2082 Fixes to SysExMsg logging (sometimes just got "message: %s" 2083 instead of "message: error message"), noted by Eric 2084 Wassenaar. Also reported by Motonori Nakamura. 2085 Improvements to MX piggybacking code, from Motonori Nakamura. 2086 Fix case where CurHostName points to an auto variable that has 2087 been deallocated (from Motonori Nakamura). 2088 Fix bug causing newlines to be included in aliases if option 2089 "n" (check alias RHS) is set; bug noted by David Muir 2090 Sharnoff. 2091 Fix problem causing user names that should be mapped to lower 2092 case to not be mapped if they are sent during a queue 2093 run. This greatly simplifies the case mapping code. 2094 Problem noted by Allan E Johannesen of WPI. 2095 Don't do recipient address rewriting in buildaddr. This 2096 improperly did recipient rewriting on sender addresses, 2097 and just seems bogus in general -- but the change could 2098 break some .cf files. 2099 Pass TZ envariable to child processes for System V. 2100 CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to 2101 define those rulesets. 2102 KNOWN PROBLEM: I have seen some problems on SunOS that causes 2103 the User Data Base to give errors on some addresses. I 2104 have tracked the problem back at least as far as 93.02.15 2105 (version 6.22). Running with debugging on makes it 2106 go away, so I conclude that it is referencing uninitialized 2107 stack data. I haven't been able to track this down yet. 2108 21096.36/6.16 93/03/08 2110 Allow local mailer to specify $@host -- this lets you assign the 2111 "foo" part of jgm+foo to $h for passing in to the local 2112 mailer. 2113 Additional debug printing in getcanonname (show query type). 2114 Don't add the e_fromdomain on sender addresses -- this interacts 2115 wierdly with the owner- code. 2116 Improve delivery logging to not log obvious or meaningless stuff. 2117 Include numeric IP address in Received: lines per RFC 1123 section 2118 5.2.8. 2119 Fixed a bug in checking stat() return value if restrictmailq is 2120 set. Also, check the entire group set instead of just the 2121 primary group. Both from John Gardiner Myers. 2122 Don't have usrerr automatically print errno, since this is often 2123 misleading. 2124 Use transienterror() in makeconnection after connect() fails and 2125 in openmailer after execve() fails (from Eric Wassenaar). 2126 Also moved transienterror() from util.c to conf.c. 2127 Clean up from= logging on response messages. 2128 Undo patch allowing prescan to return a null vector -- it breaks 2129 too many things. 2130 Config: FEATURE(notsticky) lets you use UDB for everything coming 2131 in to the machine, even if it is specifically targetted 2132 to this machine. Without it, UDB is bypassed if the user 2133 name is fully qualified. 2134 Config: fix another minor botch with <> (local mailer wasn't 2135 mapping them properly). 2136 21376.35/6.15 93/03/05 2138 Fix getrealhostname to return null if sinlen <= 0 -- this can 2139 occur if stdin is a pipe. 2140 Avoid infinite loop in getcanonname if name server return 2141 NO_DATA (for example). 2142 Config: avoid having C flag qualify list syntax and error syntax. 2143 21446.34/6.14 93/03/05 2145 Fix logging in deliver to not pass too many parameters to Ultrix 2146 versions of syslog. 2147 Don't write the pid file until after the daemon has actually 2148 opened and conditioned the connection. 2149 Consider addresses "different" if their q_uids differ (so that 2150 two users forwarding to the same program will be seen 2151 as different, rather than the same). 2152 Fix problem with bad parameters in main() -- they set ExitStat 2153 but don't exit. 2154 Fix null pointer references through RealHostName -- painfully 2155 discovered by Allan E Johannesen of WPI. 2156 Fix bug causing user@@localhost to core dump (yuch). 2157 Config: don't put two @host.dom.ain on users in $=E in SMTP 2158 mailer. Also, catch user@ (no host) in ruleset 0. 2159 21606.33/6.13 93/03/03 2161 Config: add confCW_FILE as the name of the cw configuration file 2162 (defaults to /etc/sendmail.cw). From P{r Emanuelsson. 2163 Allow prescan to return a pointer to an empty list -- this is 2164 not an error. Also, clean up error reporting to avoid 2165 double errors (prescan reports once, then the caller 2166 reports again). 2167 Changes to avoid trusting T_ANY queries -- run them, but if you 2168 don't get the info you expected, do T_A and T_MX queries 2169 anyhow. This also fixes an oversight where _res.options 2170 bits were being ignored. 2171 If PRIV_NOVRFY is set, use 252 response code instead of 502 per 2172 RFC 1123 section 5.2.3. It's not 100% clear that this 2173 is correct, but it probably works better with stupid 2174 mailers that do a VRFY and only check the first digit. 2175 21766.32/6.12 93/03/02 2177 Fix uninitialized variable "protocol" in smtp code. 2178 Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI. 2179 Additional hooks for RFC 1427 (ESMTP SIZE extension). This 2180 includes requiring that enoughspace() know the system 2181 block size, which will undoubtedly break most ports. 2182 Trace flag 19 in use for srvrsmtp.c. 2183 Additional logging -- notably the sending mailer name. This 2184 also changes the delivery logging to strict field=value 2185 syntax. 2186 Fix some problems with messages getting sent even to addresses 2187 that had been marked bad -- from Eric Wassenaar. 2188 More WIDE changes: accept host name inside [...] as non-MXed 2189 host. This is intended ONLY for use inside firewalled 2190 environments, where the MX points at the gateway. 2191 Change .cf file conventions so that mapping for <> addresses 2192 don't have an @ in them (to avoid confusing the C mailer 2193 flag). Pointed out by Neil Rickert. 2194 Config extensions for Sam Leffler's FlexFAX software. 2195 21966.31/6.10 93/02/28 2197 Fix some more bugs in alias owner code -- there were some wierd 2198 cases where an error in a non-aliased name would override 2199 the return info in an aliased name with an owner. 2200 Changes from WIDE Project, forwarded to me by Motonori Nakamura: 2201 Log actual delivery host (after MX et al); from 2202 yasuhiro@dcl.co.jp. 2203 Log daemon startup. 2204 Deliver Postmaster copies without a body. 2205 Better logging of SMTP senders. 2206 Send all program email as daemon even when local. 2207 As requested in various forms from many people, accept -qIstring 2208 to limit queue runs to jobs with queue-id matching string. 2209 Similarly for -qRstring for recipients, -qSstring for 2210 senders. 2211 Initial hooks for ESMTP support (see RFC 1425). 2212 Fixed a syntax error in the UUCP mailer specification that caused 2213 core dumps on startup. 2214 Check for missing A= or P= arguments in mailer definitions. 2215 22166.30/6.10 93/02/27 2217 Require FROZENCONFIG compilation flag to include frozen 2218 configuration code. Frozen configuration is really 2219 not a very good idea any more, particularly in shared 2220 library environments. 2221 Do better checking of errno after opens of :include: and .forward 2222 files to defer delivery on network and other transient 2223 errors. Suggestion from Craig Everhart. 2224 Fix minor botch in read timeout macro processing. 2225 Add FEATURE(nouucp) to config files for sites that know absolutely 2226 nothing about UUCP. 2227 Add built cf files to distribution tape and clarify how to build 2228 them if you don't have the Berkeley make. 2229 Some sizeof(long) portability changes for the Alpha, from Allan 2230 E Johannesen. 2231 Add "restrictmailq" privacy flag -- if set, only people in the same 2232 group as your queue directory can print the queue. If you 2233 set this, be sure you also restrict access to log files.... 2234 Fix another bug in owner-list stuff that can cause data files to 2235 be "lost". 2236 Fix a bug with queue runs that cause forwards to yourself to go 2237 into alias/forwarding loops. I'm still iffy about this 2238 fix. 2239 Fix from Eric Wassenaar for suppression of return message code. 2240 22416.29/6.9 93/02/24 2242 Fix yet another problem in alias owner code -- put the wrong return 2243 address on the enclosed return-to-sender letter. 2244 22456.28/6.9 93/02/24 2246 Fix botch in alias owner code that caused it to not operate if the 2247 error was detected locally. 2248 22496.27/6.9 93/02/24 2250 M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include 2251 file <sys/mount.h>. 2252 Miscellaneous bug fixes from Eric Wassenaar: 2253 sendmail -bv -t logs the from line even though in verify 2254 mode only. 2255 sendmail -v can go into queue mode if shouldqueue returns 2256 TRUE. 2257 Add route-addr pruning per RFC 1123 section 5.3.3. This can be 2258 disabled using the "R" option. 2259 Delete (always undocumented) -R flag (save original recipients); 2260 there are ways to syslog(3) these now. 2261 Clean up SMTP reply codes -- specify them as needed in the code, 2262 instead of in conf.c -- this was needed during the NCP to 2263 TCP transition, but seems silly now. This also changes 2264 parameters to message and nmessage. 2265 Have mailstats read the .cf file to find the sendmail.st file and 2266 get text versions of mailer names. An initial version of 2267 this code was provided by Tuominen Keijo (although the 2268 comments indicate the good bits were written by "E.V."). 2269 Add yet more System V compatibility hacks. 2270 Fix bug in VRFY code (assumes everything must be a local user). 2271 Allow specification of any of the hard-wired pathnames in the 2272 Makefile. 2273 Delete concept of "trusted users" -- this really didn't provide 2274 any security anyway, and caused some problems. 2275 Delete last vestige of support for the word "at" as an equivalent 2276 to the character "@". 2277 Propagate owner-foo alias information into the envelope sender. 2278 Based on code from John Gardiner Myers. This is a major 2279 semantic change -- beware! 2280 Allow $@ on LHS to indicate "match zero" -- this is used to match 2281 the null expression. 2282 22836.26/6.8 93/02/21 2284 Don't "lose" queue runs. Very important fix from (who else?) 2285 Eric Wassenaar. 2286 Completely reset state on RSET command -- from Eric Wassenaar. 2287 Send error messages and return receipts using an envelope sender 2288 of <> regardless of the setting of $n. Rewriting rules 2289 can undo this if they feel the necessity, as might be 2290 needed for networks that don't understand the syntax. 2291 This is permitted by RFC 821 section 3.6 and required by 2292 RFC 1123 section 5.3.3. THIS REQUIRES VERSION 4 CONFIG 2293 FILES because the rulesets must be able to parse <> 2294 properly. 2295 Don't ever send error messages to "<>" -- they will get sent to 2296 the local postmaster or dumped in /usr/tmp/dead.letter 2297 instead. Per RFC 1123 section 5.3.3. 2298 Explicitly check for email to yourself as a dotted quad. You 2299 have to call $[ [ ... ] $] to get this. 2300 Up the message timeout to five days per RFC 1123 section 5.3.1.1. 2301 Make all read timeouts individually configurable, as strongly 2302 recommended by RFC 1123 section 5.3.2. 2303 Use f_bavail (blocks available to regular users) instead of f_bfree 2304 (blocks available to superuser) in free block checks. 2305 Change $d macro to be the current time, not the origination time, 2306 since this is consistent with how it is used now. 2307 Generalization of enoughspace from Eric Wassenaar covering 2308 SGI, Apollo, HPUX, Ultrix, and SunOS. 2309 Ignore process group signals -- some front ends can do this if 2310 you kill a window too quickly. From Eric Wassenaar. 2311 Change umask to 022. 2312 23136.25/6.8 93/02/20 2314 Close all cached connections before calling mailers and after 2315 forking for delivery (caused double closes which resulted 2316 in false errors). 2317 Add FEATURE(redirect) in config files -- this allows you to alias 2318 old addresses to a pointer to the new address that will 2319 give a 551 error message, but not deliver the mail. 2320 Some code changes to make the 551 errors look pretty. 2321 Names of M4 program paths in config files have changed -- they 2322 are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS. 2323 Fix a bug in the QSELFREF code having to do with empty .forward 2324 files, reported by Eric Wassenaar. 2325 Add option "p" (privacy flags); this allows you to tune how 2326 picky the SMTP server will be. This also adds the 2327 confPRIVACY_FLAGS M4 macro in the config files. 2328 Add option "b" (minimum blocks free). If there are fewer than 2329 this number of blocks free on the filesystem containing 2330 the queue directory, the SMTP MAIL command will return 2331 a 452 response and ask you to try again later. This 2332 also adds the confMIN_FREE_BLOCKS M4 macro in the config 2333 files. 2334 Made VRFY just verify (doesn't expand aliases and .forward files); 2335 EXPN does full expansion. RCPT in queue-only mode also 2336 doesn't chase aliases and .forward. 2337 23386.24/6.7 93/02/19 2339 Increase the number of domain search entries in domain.c to allow 2340 for the extra "" entry indicating the root domain. 2341 Reported by Motonori Nakamura of Kyoto U. 2342 Add a "SMART_HOST" in the configs for UUCP-connected sites that 2343 want to forward all mail with extra "@"s to that site. 2344 Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to 2345 be specified as ``mailer:hostname'' to use an alternate 2346 mailer. 2347 Clarified and updated some wording in the Operations Guide. 2348 Add the "c" mailer flag -- this suppresses all comment parts of 2349 addresses (requested by John Curran of NEARnet). 2350 Have -v print prompts in -bt mode even if stdin is not a terminal 2351 (default behaviour is to be silent if not reading from 2352 a terminal). Suggested by Bryan Costales, ICSI. 2353 Move the metacharacters from C0 space (\001-\037) into C1 space 2354 (\201-\237). This also fixes a bunch of potential bugs 2355 with G1 characters (\240-\276) in headers relating to 2356 negative numbers passed to isspace() et al. 2357 Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias 2358 database if YPCOMPAT is #defined. Enhancement from 2359 Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd. 2360 Add "list" Precedence (-30); this can be used with old sendmails 2361 which will map to precedence 0 (which will return error 2362 messages). Suggested by Stephen R. van den Berg. 2363 Many bug fixes from Eric Wassenaar of the National Institute for 2364 Nuclear and High-Energy Physics, Amsterdam: 2365 Clear timeouts properly on open failures in include(). 2366 Don't dereference through NULL if no home directory found. 2367 Re-establish SIGCHLD signal on System 5 in reapchild(). 2368 Avoid NULL pointer reference on -pFOO flag. 2369 Properly handle backslash escapes in comments. 2370 Correctly check reply status on SMTP NOOP command. 2371 Properly save SMTP error message if peer gives 2372 "Service Shutting Down" message. 2373 Avoid writing to the transcript if it couldn't be opened. 2374 Signal errors in SMTP children to parent properly. 2375 Handle self references in a list more globally (include a 2376 QSELFREF bit in the address flags). This enhancement 2377 was suggested by Eric Wassenaar. 2378 Use initgroups() in hpux, even though it's System-V based. The 2379 HASINITGROUPS compile flag can set this on other systems. 2380 This HPUX behaviour was pointed out by Eric Wassenaar. 2381 23826.23/6.6 93/02/16 2383 Clean up handling of LogLevel to make it easier to figure out 2384 what's on what level. 2385 Change log levels to have some consistency: 2386 1 serious system failures, security problems 2387 2 lost communications, protocol failures 2388 3 other serious failures 2389 4 minor errors 2390 5 message collection 2391 6 vrfy logging, creation of return-to-sender 2392 7 delivery failures 2393 8 delivery successes 2394 9 delivery tempfails (queue ups) 2395 10 database expansion 2396 >64 debugging 2397 Allow IDA-style separated processing on S= and R= in Mailer 2398 definition lines. Note that rulesets 1 and 2 are 2399 still used for both addresses as before. Bruce Lilly 2400 gave a convincing argument that RFC976 insists on 2401 this behaviour. 2402 Added some time zones to arpatounix -- they may not be in the 2403 standards, but they are in use. However, I may delete 2404 arpatounix entirely -- there appears to be no reason 2405 for it to exist. 2406 Change to UUCP mailer (in cf directory) to try to do a saner job. 2407 I'm still not certain about this mailer in general. 2408 24096.22/6.5 93/02/15 2410 Fix bug that prevents saving letters in ~/dead.letter. 2411 Don't add angle brackets in VRFY command if angle brackets already 2412 exist in the address. 2413 Fix bogus error message in udbexpand. 2414 Null terminate host buffers in buildaddr (broken in 6.21) -- 2415 IMPORTANT FIX!! 2416 24176.21/6.5 93/02/15 2418 Fix another incorrect error message in alias.c, found by Azuma 2419 Okamoto. 2420 Fix a couple of problems in the more-configurable config files, 2421 found by Tom Ivar Helbekkmo. 2422 Fix problem with quoted :include: entries. 2423 Don't duplicate the filename on verbose printing of .forward and 2424 :include: contents. 2425 Extend size of prescan buffer (to allow bigger addresses). Also, 2426 detect some buffer overflows. 2427 Log user SMTP protocol errors (log level 4). 2428 24296.20/6.4 93/02/14 2430 Fix another problem in the MCI state machine caused when there 2431 were errors generated from the other end to commands 2432 other than RCPT. 2433 24346.19/6.4 93/02/14 2435 Include load average support for DEC Alpha running OSF/1. 2436 Fix multiple-response problem with errors in MAIL From: line. 2437 Fix SMTP reply codes for invalid address syntaxes (give 501; 2438 never give multiple error messages for a single message). 2439 Fix problem where a cached connection timeout rejects all 2440 later connects to that host. 2441 Fix incorrect error message if alias.c is compiled with DBM only. 2442 Additional changes to fix nested conditionals (from Bruce Lilly). 2443 Recover more gracefully from operating system failures, particularly 2444 NULL returns from openmailer (from Noritoshi Demizu, 2445 OMRON Corporation). 2446 Log forward, alias, and userdb expand operations on log level 10; 2447 concept suggested by P{r (Pell) Emanuelsson. 2448 Changes for HPUX 8.07 compatibility. 2449 24506.18/6.4 93/02/12 2451 Allow any config option to be set using an M4 define. 2452 Change UNAME compile flag to HASUNAME for IDA compatibility 2453 (besides, it's a better name). 2454 Note in README that on SunOS it must be linked -Bstatic. 2455 Fairly major change in domain.c to handle wildcard MX records 2456 more rationally. NOTE: the "w" option (no wildcard MX 2457 records match local domain) has been eliminated. 2458 Fix some unset variable references pointed out by Bruce Lilly. 2459 Fix host name in process titles when using cached connection. 2460 24616.17/6.3 93/01/28 2462 Fix System 5 compatibility changes to be compatible with the rest 2463 of the world. 2464 24656.16/6.3 93/01/28 2466 Experimental fix for problem handling errors in the SMTP 2467 protocol in conjunction with connection caching. 2468 System 5 compatibility changes. 2469 24706.15/6.3 93/01/26 2471 Fix a bug that causes local mail delivered using -odq to be 2472 eliminated as a duplicate (because it matched the 2473 ctladdr, now passed in as a C line). These changes 2474 are pretty tricky...... 2475 24766.14/6.3 93/01/25 2477 Add debugging for some MCI errors. 2478 24796.13/6.3 93/01/22 2480 Fix -e compatibility flag to take a value. 2481 Fix a couple of minor compilation warnings on Sun cc. 2482 Improve error messages in a few cases to be more self-explanatory. 2483 24846.12/6.3 93/01/21 2485 Fix yet-another problem with environment handling, pointed out 2486 by Yoshitaka Tokugawa and Tom Ivar Helbekkmo. 2487 Some heuristics to try to limit resource exhaustion problems 2488 if a downstream host has been down for a long time. 2489 Fix problem with incorrect host name being logged in "Connection 2490 timed out" messages (from Tom Ivar Helbekkmo). 2491 Fix some ANSI C problems (from Takahiro Kanbe). 2492 Properly log message sender on returned mail during queue run. 2493 Count number of recipients properly. 2494 Fix a problem in yp map code. 2495 Diagnose "message timed out" (from Motonori Nakamura). 2496 24976.11/6.3 93/01/20 2498 Fix problem with address delimitor inside quotes. 2499 Define $k and $=k to be the UUCP name (from the uname call) 2500 based on code from Bruce Lilly. 2501 25026.10/6.2 93/01/18 2503 Implement arpatounix (largely code from Bruce Lilly). 2504 Log more info (suggested by John Myers). 2505 Allow nested $?...$|...$. (inspired by code from Bruce Lilly of 2506 Sony US). 2507 POSIX compatibility (noted by Keith Bostic). 2508 Handle SMTP MAIL command errors properly (urged by several people, 2509 notably John Myers of CMU). 2510 Do early diagnosis of .cf errors (notably referencing a RHS 2511 substitution that isn't on the LHS). 2512 Adjust checkpointing to better handle batched recipients, suggested 2513 by John Myers. 2514 Fix miscellaneous bugs. 2515 (config files:) Implement MAIL_HUB for all local mail (to handle 2516 NFS-mounted directories) as urged by Tom Ivar Helbekkmo 2517 of the Norwegian School of Economics. 2518 25196.9/6.1 93/01/13 2520 Environment handling simplification/bug fix -- child processes 2521 get a minimal, fixed environment. This avoids different 2522 behaviour in queue runs. 2523 Handle commas inside comments properly. 2524 Properly limit large messages submitted in -obq mode. 2525 25266.8/6.1 93/01/10 2527 Check mtime of thaw file against .cf and sendmail binary, based on 2528 code from John Myers. 2529 25306.7/6.1 93/01/10 2531 MX piggybacking, based on code from John Myers@CMU. 2532 Allow checkcompat to return -1 to mean tempfail. 2533 Bug fix in m_mno computation. 2534 25356.6/6.1 93/01/09 2536 Tuning of queueing functions as recommended by John Gardiner Myers. 2537 Return mail headers (no body) on messages with negative precedence. 2538 Minor other bug fixes. 2539 25406.5/6.1 93/01/03 2541 Fix botch causing queued headers to have ?XX? prefixes. 2542 25436.4/6.1 93/01/02 2544 Changes to recognize special mailer types (e.g., file) early. 2545 25466.3/6.1 93/01/01 2547 Pass timeouts to sfgets. 2548 Check for control characters in addresses. 2549 Fixed deferred error reporting. 2550 Report duplicate aliases. 2551 Handle mixed case recursive aliases. 2552 Misc bug fixes. 2553 25546.2/6.1 92/12/30 2555 Put return-receipt-to on a conf.c flag (but don't set it). 2556 Fix minor syslog problem. 2557