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