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