1*66352Seric SENDMAIL RELEASE NOTES 2*66352Seric @(#)RELEASE_NOTES 8.6.6.1 (Berkeley) 03/13/94 3*66352Seric 4*66352SericThis listing shows the version of the sendmail binary, the version 5*66352Sericof the sendmail configuration files, the date of release, and a 6*66352Sericsummary of the changes in that release. 7*66352Seric 8*66352Seric8.6.6/8.6.6 94/03/13 9*66352Seric SECURITY: the ability to give files away on System V-based 10*66352Seric systems proved dangerous -- don't run as the owner 11*66352Seric of a :include: file on a system that allows giveaways. 12*66352Seric Unfortunately, this also applies to determining a 13*66352Seric valid shell. 14*66352Seric IMPORTANT: Previous versions weren't expiring old connections 15*66352Seric in the connection cache for a long time under some 16*66352Seric circumstances. This could result in resource exhaustion, 17*66352Seric both at your end and at the other end. This checks the 18*66352Seric connections for timeouts much more frequently. From 19*66352Seric Doug Anderson of NCSC. 20*66352Seric Fix a glitch that snuck in that caused programs to be run as 21*66352Seric the sender instead of the recipient if the mail was 22*66352Seric from a local user to another local user. From 23*66352Seric Motonori Nakamura of Kyoto University. 24*66352Seric Fix "wildcard" on /etc/shell matching -- instead of looking 25*66352Seric for "*", look for "/SENDMAIL/ANY/SHELL/". From 26*66352Seric Bryan Costales of ICSI. 27*66352Seric Change the method used to declare the "statfs" availability; 28*66352Seric instead of HASSTATFS and/or HASUSTAT with a ton of 29*66352Seric tweaking in conf.c, there is a single #define called 30*66352Seric SFS_TYPE which takes on one of six values (SFS_NONE 31*66352Seric for no statfs availability, SFS_USTAT for the ustat(2) 32*66352Seric syscall, SFS_4ARGS for a four argument statfs(2) call, 33*66352Seric and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument 34*66352Seric statfs(2) call with the declarations in <sys/vfs.h>, 35*66352Seric <sys/mount.h>, or <sys/statfs.h> respectively). 36*66352Seric Fix glitch in NetInfo support that could return garbage if 37*66352Seric there was no "/locations/sendmail" property. From 38*66352Seric David Meyer of the University of Virginia. 39*66352Seric Change HASFLOCK from defined/not-defined to a 0/1 definition 40*66352Seric to allow Linux to turn it off even though it is a 41*66352Seric BSD-like system. 42*66352Seric Allow setting of "ident" timeout to zero to turn off the ident 43*66352Seric protocol entirely. 44*66352Seric Make 7-bit stripping local to a connection (instead of to a 45*66352Seric mailer); this allows you to specify that SMTP is a 46*66352Seric 7-bit channel, but revert to 8-bit should it advertise 47*66352Seric that it supports 8BITMIME. You still have to specify 48*66352Seric mailer flag 7 to get this stripping at all. 49*66352Seric Improve makesendmail script so it handles more cases automatically. 50*66352Seric Tighten up restrictions on taking ownership of :include: files 51*66352Seric to avoid problems on systems that allow you to give away 52*66352Seric files. 53*66352Seric Fix a problem that made it impossible to rebuild the alias 54*66352Seric file if it was on a read-only file system. From 55*66352Seric Harry Edmon of the University of Washington. 56*66352Seric Improve MX randomization function. From John Gardiner Myers 57*66352Seric of CMU. 58*66352Seric Fix a minor glitch causing a bogus message to be printed (used 59*66352Seric %s instead of %d in a printf string for the line number) 60*66352Seric when a bad queue file was read. From Harry Edmon. 61*66352Seric Allow $s to remain NULL on locally generated mail. I'm not 62*66352Seric sure this is necessary, but a lot of people have complained 63*66352Seric about it, and there is a legitimate question as to whether 64*66352Seric "localhost" is legal as an 822-style domain. 65*66352Seric Fix a problem with very short line lengths (mailer L= flag) in 66*66352Seric headers. This causes a leading space to be added onto 67*66352Seric continuation lines (including in the body!), and also 68*66352Seric tries to wrap headers containing addresses (From:, To:, 69*66352Seric etc) intelligently at the shorter line lengths. Problem 70*66352Seric Reported by Lars-Johan Liman of SUNET Operations Center. 71*66352Seric Log the real user name when logging syserrs, since these can have 72*66352Seric security implications. Suggested by several people. 73*66352Seric Fix address logging of cached connections -- it used to always 74*66352Seric log the numeric address as zero. This is a somewhat 75*66352Seric bogus implementation in that it does an extra system 76*66352Seric call, but it should be an inexpensive one. Fix from 77*66352Seric Motonori Nakamura. 78*66352Seric Tighten up handling of short syslog buffers even more -- there 79*66352Seric were cases where the outgoing relay= name was too long 80*66352Seric to share a line with delay= and mailer= logging. 81*66352Seric Limit the overhead on split envelopes to one open file descriptor 82*66352Seric per envelope -- previously the overhead was three 83*66352Seric descriptors. This was in response to a problem reported 84*66352Seric by P{r (Pell) Emanuelsson. 85*66352Seric Fixes to better handle the case of unexpected connection closes; 86*66352Seric this redirects the output to the transcript so the info 87*66352Seric is not lost. From Eric Wassenaar. 88*66352Seric Fix potential string overrun if you macro evaluate a string that 89*66352Seric has a naked $ at the end. Problem noted by James Matheson 90*66352Seric <jmrm@eng.cam.ac.uk>. 91*66352Seric Make default error number on $#error messages 553 (``Requested 92*66352Seric action not taken: mailbox name not allowed'') instead of 93*66352Seric 501 (``Syntax error in parameters or arguments'') to 94*66352Seric avoid bogus "protocol error" messages. 95*66352Seric Strip off any existing trailing dot on names during $[ ... $] 96*66352Seric lookup. This prevents it from ending up with two dots 97*66352Seric on the end of dot terminated names. From Wesley Craig 98*66352Seric of the University of Michigan and Bryan Costales of ICSI. 99*66352Seric Clean up file class reading so that the debugging information is 100*66352Seric more informative. It hadn't been using setclass, so you 101*66352Seric didn't see the class items being added. 102*66352Seric Avoid core dump if you are running a version of sendmail where 103*66352Seric NIS is compiled in, and you specify an NIS map, but 104*66352Seric NIS is not running. Fix from John Oleynick of 105*66352Seric Rutgers. 106*66352Seric Diagnose bizarre case where res_search returns a failure value, 107*66352Seric but sets h_errno to a success value. 108*66352Seric Make sure that "too many hops" messages are considered important 109*66352Seric enough to send an error to the Postmaster (that is, the 110*66352Seric address specified in the P option). This fix should 111*66352Seric help problems that cause the df file to be left around 112*66352Seric sometimes -- unfortunately, I can't seem to reproduce 113*66352Seric the problem myself. 114*66352Seric Avoid core dump (null pointer reference) on EXPN command; this 115*66352Seric only occurred if your log level was set to 10 or higher 116*66352Seric and the target account was an alias or had a .forward file. 117*66352Seric Problem noted by Janne Himanka. 118*66352Seric Avoid "denial of service" attacks by someone who is flooding your 119*66352Seric SMTP port with bad commands by shutting the connection 120*66352Seric after 25 bad commands are issued. From Kyle Jones of 121*66352Seric UUNET. 122*66352Seric Fix core dump on error messages with very long "to" buffers; 123*66352Seric fmtmsg overflows the message buffer. Fixed by trimming 124*66352Seric the to address to 203 characters. Problem reported by 125*66352Seric John Oleynick. 126*66352Seric Fix configuration for HASFLOCK -- there were some spots where 127*66352Seric a #ifndef was incorrectly #ifdef. Pointed out by 128*66352Seric George Baltz of the University of Maryland. 129*66352Seric Fix a typo in savemail() that could cause the error message To: 130*66352Seric lists to be incorrect in some places. From Motonori 131*66352Seric Nakamura. 132*66352Seric Fix a glitch that can cause duplicate error messages on split 133*66352Seric envelopes where an address on one of the lists has a 134*66352Seric name server failure. Fix from Voradesh Yenbut of the 135*66352Seric University of Washington. 136*66352Seric Fix possible bogus pointer reference on ESMTP parameters that 137*66352Seric don't have an ``=value'' part. 138*66352Seric CNAME loops caused an error message to be generated, but also 139*66352Seric re-queued the message. Changed to just re-queue the 140*66352Seric message (it's really hard to just bounce it because 141*66352Seric of the wierd way the name server works in the presence 142*66352Seric of CNAME loops). Problem noted by James M.R.Matheson 143*66352Seric of Cambridge University. 144*66352Seric Avoid giving ``warning: foo owned process doing -bs'' messages 145*66352Seric if they use ``MAIL FROM:<foo>'' where foo is their true 146*66352Seric user name. Suggested by Andreas Stolcke of ICSI. 147*66352Seric Change the NAMED_BIND compile flag to be a 0/1 flag so you can 148*66352Seric override it easily in the Makefile -- that is, you can 149*66352Seric turn it off using -DNAMED_BIND=0. 150*66352Seric If a gethostbyname(...) of an address with a trailing dot fails, 151*66352Seric try it without the trailing dot. This is because if 152*66352Seric you have a version of gethostbyname() that falls back 153*66352Seric to NIS or the /etc/hosts file it will fail to find 154*66352Seric perfectly reasonable names that just don't happen to 155*66352Seric be dot terminated in the hosts file. You don't want to 156*66352Seric strip the dot first though because we're trying to ensure 157*66352Seric that country names that match one of your subdomains get 158*66352Seric a chance. 159*66352Seric PRALIASES: fix bogus output on non-null-terminated strings. 160*66352Seric From Bill Gianopoulos of Raytheon. 161*66352Seric CONFIG: Avoid rewriting anything that matches $w to be $j. 162*66352Seric This was in code intended to only catch the self-literal 163*66352Seric address (that is, [1.2.3.4], where 1.2.3.4 is your 164*66352Seric IP address), but the code was broken. However, it will 165*66352Seric still do this if $M is defined; this is necessary to 166*66352Seric get client configurations to work (sigh). Note that this 167*66352Seric means that $M overrides :mailname entries in the user 168*66352Seric database! Problem noted by Paul Southworth. 169*66352Seric CONFIG: Fix definition of Solaris help file location. From 170*66352Seric Steve Cliffe <steve@gorgon.cs.uow.edu.au>. 171*66352Seric CONFIG: Fix bug that broke news.group.USENET mappings. 172*66352Seric CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX, 173*66352Seric and USENET_MAILER_MAX to tweak the maximum message 174*66352Seric size for various mailers. 175*66352Seric CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0] 176*66352Seric instead of assuming that it is "inews" for consistency 177*66352Seric with other mailers. From Michael Corrigan of UC San Diego. 178*66352Seric CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB, 179*66352Seric qualify the address in the SMTP envelope as user@{relay|hub} 180*66352Seric instead of user@$j. From Bill Wisner of The Well. 181*66352Seric CONFIG: Fix route-addr syntax in nullrelay configuration set. 182*66352Seric CONFIG: Don't turn off case mapping of user names in the local 183*66352Seric mailer for IRIX. This was different than most every other 184*66352Seric system. 185*66352Seric CONFIG: Avoid infinite loops on certainly list:; syntaxes in 186*66352Seric envelope. Noted by Thierry Besancon 187*66352Seric <besancon@excalibur.ens.fr>. 188*66352Seric CONFIG: Don't include -z by default on uux line -- most systems 189*66352Seric don't want it set by default. Pointed out by Philippe 190*66352Seric Michel of Thomson CSF. 191*66352Seric CONFIG: Fix some bugs with mailertables -- for example, if your 192*66352Seric host name was foo.bar.ray.com and you matched against 193*66352Seric ".ray.com", the old implementation bound %1 to "bar" 194*66352Seric instead of "foo.bar". Also, allow "." in the mailertable 195*66352Seric to match anything -- essentially, take over SMART_HOST. 196*66352Seric This also moves matching of explicit local host names 197*66352Seric before the mailertable so they don't have to be special 198*66352Seric cased in the mailertable data. Reported by Bill 199*66352Seric Gianopoulos of Raytheon; the fix for the %1 binding 200*66352Seric problem was contributed by Nicholas Comanos of the 201*66352Seric University of Sydney. 202*66352Seric CONFIG: Don't include "root" in class $=L (users to deliver 203*66352Seric locally, even if a hub or relay exists) by default. 204*66352Seric This is because of the known bug where definition of 205*66352Seric both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore 206*66352Seric both and deliver into the local mailbox. 207*66352Seric CONFIG: Move up bitdomain and uudomain handling so that they 208*66352Seric are done before .UUCP class matching; uudomain was 209*66352Seric reported as ineffective before. This also frees up 210*66352Seric diversion 8 for future use. Problem reported by Kimmo 211*66352Seric Suominen. 212*66352Seric CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4]) 213*66352Seric into host names. As pointed out by Jonathan Kamens, 214*66352Seric these are often used because either the forward or reverse 215*66352Seric mapping is broken; this translation makes it broken again. 216*66352Seric DOC: Clarify $@ and $: in the Install & Op Guide. From Kimmo 217*66352Seric Suominen. 218*66352Seric Portability fixes: 219*66352Seric Unicos from David L. Kensiski of Sterling Sofware. 220*66352Seric DomainOS from Don Lewis of Silicon Systems. 221*66352Seric GNU m4 1.0.3 from Karst Koymans of Utrecht University. 222*66352Seric Convex from Kimmo Suominen <kim@tac.nyc.ny.us>. 223*66352Seric NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>. 224*66352Seric BSD/386 from Tony Sanders of BSDI. 225*66352Seric Apollo from Eric Wassenaar. 226*66352Seric DGUX from Doug Anderson. 227*66352Seric Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent. 228*66352Seric NEW FILES: 229*66352Seric src/Makefile.DomainOS 230*66352Seric src/Makefile.PTX 231*66352Seric src/Makefile.SunOS.5.1 232*66352Seric src/Makefile.SunOS.5.2 233*66352Seric src/Makefile.SunOS.5.x 234*66352Seric src/mailq.1 235*66352Seric cf/ostype/domainos.m4 236*66352Seric doc/op/Makefile 237*66352Seric doc/intro/Makefile 238*66352Seric doc/usenix/Makefile 239*66352Seric 24066348Seric8.6.5/8.6.5 94/01/13 24166348Seric Security fix: /.forward could be owned by anyone (the test 24266348Seric to allow root to own any file was backwards). From 24366348Seric Bob Campbell at U.C. Berkeley. 24466348Seric Security fix: group ids were not completely set when programs 24566348Seric were invoked. This caused programs to have group 24666348Seric permissions they should not have had (usually group 24766348Seric daemon instead of their own group). In particular, 24866348Seric Perl scripts would refuse to run. 24966348Seric Security: check to make sure files that are written are not 25066348Seric symbolic links (at least under some circumstances). 25166348Seric Although this does not respond to a specific known 25266348Seric attack, it's just a good idea. Suggested by 25366348Seric Christian Wettergren. 25466348Seric Security fix: if a user had an NFS mounted home directory on 25566348Seric a system with a restricted shell listed in their 25666348Seric /etc/passwd entry, they could still execute any 25766348Seric program by putting that in their .forward file. 25866348Seric This fix prevents that by insisting that their shell 25966348Seric appear in /etc/shells before allowing a .forward to 26066348Seric execute a program or write a file. You can disable 26166348Seric this by putting "*" in /etc/shells. It also won't 26266348Seric permit world-writable :include: files to reference 26366348Seric programs or files (there's no way to disable this). 26466348Seric These behaviours are only one level deep -- for 26566348Seric example, it is legal for a world-writable :include: 26666348Seric file to reference an alias that writes a file, on 26766348Seric the assumption that the alias file is well controlled. 26866348Seric Security fix: root was not treated suspiciously enough when 26966348Seric looking into subdirectories. This would potentially 27066348Seric allow a cracker to examine files that were publically 27166348Seric readable but in a non-publically searchable directory. 27266348Seric Fix a problem that causes an error on QUIT on a cached 27366348Seric connection to create problems on the current job. 27466348Seric These are typically unrelated, so errors occur in 27566348Seric the wrong place. 27666348Seric Reset CurrentLA in sendall() -- this makes sendmail queue 27766348Seric runs more responsive to load average, and fixes a 27866348Seric problem that ignored the load average in locally 27966348Seric generated mail. From Eric Wassenaar. 28066348Seric Fix possible core dump on aliases with null LHS. From 28166348Seric John Orthoefer of BB&N. 28266348Seric Revert to using flock() whenever possible -- there are just 28366348Seric too many bugs in fcntl() locking, particularly over 28466348Seric NFS, that cause sendmail to fail in perverse ways. 28566348Seric Fix a bug that causes the connection cache to get confused 28666348Seric when sending error messages. This resulted in 28766348Seric "unexpected close" messages. It should fix itself 28866348Seric on the following queue run. Problem noted by 28966348Seric Liudvikas Bukys of Rochester University. 29066348Seric Include $k in $=k as documented in the Install & Op Guide. 29166348Seric This seems odd, but it was documented.... From 29266348Seric Michael Corrigan of UCSD. 29366348Seric Fix problem that caused :include:s from alias files to be 29466348Seric forced to be owned by root instead of daemon 29566348Seric (actually DefUid). From Tim Irvin. 29666348Seric Diagnose unrecognized I option values -- from Mortin Forssen 29766348Seric of the Chalmers University of Technology. 29866348Seric Make "error" mailer work consistently when there is no error 29966348Seric code associated with it -- previously it returned OK 30066348Seric even though there was a real problem. Now it assumes 30166348Seric EX_UNAVAILABLE. 30266348Seric Fix bug that caused the last header line of messages that had 30366348Seric no body and which were terminated with EOF instead of 30466348Seric "." to be discarded. Problem noted by Liudvikas Bukys. 30566348Seric Fix core dump on SMTP mail to programs that failed -- it tried 30666348Seric to go to a "next MX host" when none existed, causing 30766348Seric a core dump. From der Mouse at McGill University. 30866348Seric Change IDENTPROTO from a defined/not defined to a 0/1 switch; 30966348Seric this makes it easier to turn it off (using 31066348Seric -DIDENTPROTO=0 in the Makefile). From der Mouse. 31166348Seric Fix YP_MASTER_NAME store to use the unupdated result of 31266348Seric gethostname() (instead of myhostname(), which tries 31366348Seric to fully qualify the name) to be consistent with 31466348Seric SunOS. If your hostname is unqualified, this fixes 31566348Seric transfers to slave servers. Bug noted by Keith 31666348Seric McMillan of Ameritech Services, Inc. 31766348Seric Fix Ultrix problem: gethostbyname() can return a very large 31866348Seric (> 500) h_length field, which causes the sockaddr 31966348Seric to be trashed. Use the size of the sockaddr instead. 32066348Seric Fix from Bob Manson of Ohio State. 32166348Seric Don't assume "-a." on host lookups if NAMED_BIND is not 32266348Seric defined -- this confuses gethostbyname on hosts 32366348Seric file lookups, which doesn't understand the trailing 32466348Seric dot convention. 32566348Seric Log SMTP server subprocesses that die with a signal instead 32666348Seric of from a clean exit. 32766348Seric If you don't have option "I" set, don't assume that a DNS 32866348Seric "host unknown" message is authoritative -- it 32966348Seric might still be found in /etc/hosts. 33066348Seric Fix a problem that would cause Deferred: messages to be sent 33166348Seric as the subject of an error message, even though the 33266348Seric actual cause of a message was more severe than that. 33366348Seric Problem noted by Chris Seabrook of OSSI. 33466348Seric Fix race condition in DBM alias file locking. From Kyle 33566348Seric Jones of UUNET. 33666348Seric Limit delivery syslog line length to avoid bugs in some 33766348Seric versions of syslog(3). This adds a new compile time 33866348Seric variable SYSLOG_BUFSIZE. From Jay Plett of Princeton 33966348Seric University, which is in turn derived from IDA. 34066348Seric Fix quotes inside of comments in addresses -- previously 34166348Seric it insisted that they be balanced, but the 822 spec 34266348Seric says that they should be ignored. 34366348Seric Dump open file state to syslog upon receiving SIGUSR1 (for 34466348Seric debugging). This also evaluates ruleset 89, if set 34566348Seric (with the null input), and logs the result. This 34666348Seric should be used sparingly, since the rewrite process 34766348Seric is not reentrant. 34866348Seric Change -qI, -qR, and -qS flags to be case-insensitive as 34966348Seric documented in the Bat Book. 35066348Seric If the mailer returned EX_IOERR or EX_OSERR, sendmail did not 35166348Seric return an error message and did not requeue the message. 35266348Seric Fix based on code from Roland Dirlewanger of 35366348Seric Reseau Regional Aquarel, Bordeaux, France. 35466348Seric Fix a problem that caused a seg fault if you got a 421 error 35566348Seric code during some parts of connection initialization. 35666348Seric I've only seen this when talking to buggy mailers on 35766348Seric the other end, but it shouldn't give a seg fault in 35866348Seric any case. From Amir Plivatsky. 35966348Seric Fix core dump caused by a ruleset call that returns null. 36066348Seric Fix from Bryan Costales of ICSI. 36166348Seric Full-Name: field was being ignored. Fix from Motonori Nakamura 36266348Seric of Kyoto University. 36366348Seric Fix a possible problem with very long input lines in setproctitle. 36466348Seric From P{r Emanuelsson. 36566348Seric Avoid putting "This is a warning message" out on return receipts. 36666348Seric Suggested by Douglas Anderson. 36766348Seric Detect loops caused by recursive ruleset calls. Suggested by 36866348Seric Bryan Costales. 36966348Seric Initialize non-alias maps during alias rebuilds -- they may be 37066348Seric needed for parsing. Problem noted by Douglas Anderson. 37166348Seric Log sender address even if no message was collected in SMTP 37266348Seric (e.g., if all RCPTs failed). Suggested by Motonori 37366348Seric Nakamura. 37466348Seric Don't reflect the owner-list contents into the envelope sender 37566348Seric address if the value contains ", :, /, or | (to avoid 37666348Seric illegal addresses appearing there). 37766348Seric Efficiency hack for toktype macro -- from Craig Partridge of 37866348Seric BB&N. 37966348Seric Clean up DNS error printing so that a host name is always 38066348Seric included. 38166348Seric Remember to set $i during queue runs. Reported by Stephen 38266348Seric Campbell of Dartmouth University. 38366348Seric If ${HOSTALIASES} is set, use it during canonification so that 38466348Seric headers are properly mapped. Reported by Anne Bennett 38566348Seric of Concordia University. 38666348Seric Avoid printing misleading error message if SMTP mailer (not 38766348Seric using [IPC]) should die on a core dump. 38866348Seric Avoid incorrect diagnosis of "file 1 closed" when it is caused 38966348Seric by the other end closing the connection. From 39066348Seric Dave Morrison of Oracle. 39166348Seric Improve several of the error messages printed by "mailq" 39266348Seric to include a host name or other useful information. 39366348Seric Add NetInfo preliminary support for NeXT systems. From Vince 39466348Seric DeMarco. 39566348Seric Fix a glitch that sometimes caused :include:s that pointed to 39666348Seric NFS filesystems that were down to give an "aliasing/ 39766348Seric forwarding loop broken" message instead of queueing 39866348Seric the message for retry. Noted by William C Fenner of 39966348Seric the NRL Connection Machine Facility. 40066348Seric Fix a problem that could cause a core dump if the input sequence 40166348Seric had (or somehow acquired) a \231 character. 40266348Seric Make sure that route-addrs always have <angle brackets> around 40366348Seric them in non-SMTP envelopes (SMTP envelopes already do 40466348Seric this properly). 40566348Seric Avoid wierd headers on unbalanced punctuation of the form: 40666348Seric ``Joe User <user)'' -- this caused reference to the 40766348Seric null macro. Fix from Rick McCarty of IO.COM. 40866348Seric Fix a problem that caused an alias "user: user@local.host" to 40966348Seric not have the QNOTREMOTE bit set; this caused configs 41066348Seric to act as if FEATURE(notsticky) was defined even when 41166348Seric it was not. The effect of the problem was to make it 41266348Seric very hard to to set up satellite sites that had a few 41366348Seric local accounts, with everything else forwarded to a 41466348Seric corporate hub. Reported by Detlef Drewanz of the 41566348Seric University of Rostock and Mark Frost of NCD. 41666348Seric Change queuing to not call rulesets 3, {1 or 2}, 4 on header 41766348Seric addresses. This is more efficient (fewer name server 41866348Seric calls) and fixes certain unusual configurations, such 41966348Seric as those that have ruleset 4 do something that is 42066348Seric non-idempotent unless a mailer-specific ruleset did 42166348Seric something else. Problem reported by Brian J. Coan 42266348Seric of the Institute for Global Communications. 42366348Seric Fix the "obsolete argument" routine in main to better understand 42466348Seric new arguments. For example, if you used ``sendmail 42566348Seric -C config -v -q'' it would choke on the -q because 42666348Seric the -C would stop looking for old-format arguments. 42766348Seric Fix the code that was intended to allow two users to forward their 42866348Seric mail to the same program and have them appear unique. 42966348Seric Portability fixes for: 43066348Seric SCO UNIX from Murray Kucherawy. 43166348Seric SCO Open Server 3.2v4 from Philippe Brand. 43266348Seric System V Release 4 from Rick Ellis and others. 43366348Seric OSF/1 from Steve Campbell. 43466348Seric DG/UX from Ben Mesander of the USGS and Bryan Curnutt 43566348Seric of Stoner Associates. 43666348Seric Motorola SysV88 from Kevin Johnson of Motorola. 43766348Seric Solaris 2.3 from Casper H.S. Dik of the University 43866348Seric of Amsterdam and John Caruso of University 43966348Seric of Maryland. 44066348Seric FreeBSD from Ollivier Robert. 44166348Seric NetBSD from Adam Glass. 44266348Seric TitanOS from Kate Hedstrom of Rutgers University. 44366348Seric Irix from Bryan Curnutt. 44466348Seric Dynix from Jim Davis of the University of Arizona. 44566348Seric RISC/os. 44666348Seric Linux from John Kennedy of California State University 44766348Seric at Chico. 44866348Seric Solaris 2.x from Tony Boner of the U.S. Air Force. 44966348Seric NEXTSTEP 3.x from Vince DeMarco. 45066348Seric HP-UX from various people. NOTA BENE: the location 45166348Seric of the config file has moved to /usr/lib 45266348Seric to match the HP-UX version of sendmail. 45366348Seric CONFIG: Don't do any recipient rewriting on relay mailer; 45466348Seric since this is intended only for internal use, the 45566348Seric usual RFC 821/822/1123 rules can be relaxed. The 45666348Seric main point of this is to avoid munging (ugh) UUCP 45766348Seric addresses when relaying internally. 45866348Seric CONFIG: fix typo in mailer/uucp.m4 that mutilates list:; 45966348Seric syntax addresses delivered via UUCP. Solution 46066348Seric provided by Peter Wemm. 46166348Seric CONFIG: fix thumb-fumble in default UUCP relaying in ruleset 46266348Seric zero; it caused double @ signs in addresses. From 46366348Seric Irving Reid of the University of Toronto. 46466348Seric CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1 46566348Seric from Markku Toijala of ICL Personal Systems Oy. 46666348Seric CONFIG: Add trailing "." on pseudo-domains for consistency; 46766348Seric this fixes a problem (noted by Al Whaley of Sunnyside) 46866348Seric that made it hard to recognize your own pseudodomain 46966348Seric names. 47066348Seric CONFIG: catch "@host" syntax errors (i.e., null local-parts) 47166348Seric rather than letting them get "local configuration 47266348Seric error"s. Problem noted by John Gardiner Myers. 47366348Seric CONFIG: add uucp-uudom mailer variant, based on code posted 47466348Seric by Spider Boardman <spider@Orb.Nashua.NH.US>; this 47566348Seric has uucp-dom semantics but old UUCP syntax. This 47666348Seric also permits "uucp-old" as an alias for "uucp" and 47766348Seric "uucp-new" as a synonym for "suucp" for consistency. 47866348Seric CONFIG: add POP mailer support (from Kimmo Suominen 47966348Seric <kim@grendel.lut.fi>). 48066348Seric CONFIG: drop CSNET_RELAY support -- CSNET is long gone. 48166348Seric CONFIG: fix bug caused with domain literal addresses (e.g., 48266348Seric ``[128.32.131.12]'') when FEATURE(allmasquerade) 48366348Seric was set; it would get an additional @masquerade.host 48466348Seric added to the address. Problem noted by Peter Wan 48566348Seric of Georgia Tech. 48666348Seric CONFIG: make sure that the local UUCP name is in $=w. From 48766348Seric Jim Murray of Stratus. 48866348Seric CONFIG: changes to UUCP rewriting to simulate IDA-style "V" 48966348Seric mailer flag. Briefly, if you are sending to host 49066348Seric "foo", then it rewrites "foo!...!baz" to "...!baz", 49166348Seric "foo!baz" remains "foo!baz", and anything else has 49266348Seric the local name prepended. 49366348Seric CONFIG: portability fixes for HP-UX. 49466348Seric DOC: several minor problems fixed in the Install & Op Guide. 49566348Seric MAKEMAP: fix core dump problem on lines that are too long or 49666348Seric which lack newline. From Mark Delany. 49766348Seric MAILSTATS: print sums of columns (total messages & kbytes 49866348Seric in and out of the system). From Tom Ferrin of UC 49966348Seric San Francisco Computer Graphics Lab. 50066348Seric SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES: 50166348Seric On HP-UX, /etc/sendmail.cf has been moved to 50266348Seric /usr/lib/sendmail.cf to match HP sendmail. 50366348Seric Permissions have been tightened up on world-writable 50466348Seric :include: files and accounts that have shells 50566348Seric that are not listed in /etc/shells. This may 50666348Seric cause some .forward files that have worked 50766348Seric before to start failing. 50866348Seric SIGUSR1 dumps some state to the log. 50966348Seric NEW FILES: 51066348Seric src/Makefile.DGUX 51166348Seric src/Makefile.Dynix 51266348Seric src/Makefile.FreeBSD 51366348Seric src/Makefile.Mach386 51466348Seric src/Makefile.NetBSD 51566348Seric src/Makefile.RISCos 51666348Seric src/Makefile.SCO 51766348Seric src/Makefile.SVR4 51866348Seric src/Makefile.Titan 51966348Seric cf/mailer/pop.m4 52066348Seric cf/ostype/bsdi1.0.m4 52166348Seric cf/ostype/dgux.m4 52266348Seric cf/ostype/dynix3.2.m4 52366348Seric cf/ostype/sco3.2.m4 52466348Seric makemap/Makefile.dist 52566348Seric praliases/Makefile.dist 52666348Seric 52766347Seric8.6.4/8.6.4 93/10/31 52866347Seric Repair core-dump problem (write to read-only memory segment) 52966347Seric if you fall back to the return-to-Postmaster case in 53066347Seric savemail. Problem reported by Richard Liu. 53166347Seric Immediately diagnose bogus sender addresses in SMTP. This 53266347Seric makes quite certain that crackers can't use this 53366347Seric class of attack. 53466347Seric Reliability Fix: check return value from fclose() and fsync() 53566347Seric in a few critical places. 53666347Seric Minor problem in initsys() that reversed a condition for 53766347Seric redirecting the output channel on queue runs. It's 53866347Seric not clear this code even does anything. From Eric 53966347Seric Wassenaar of the Dutch National Institute for Nuclear 54066347Seric and High-Energy Physics. 54166347Seric Fix some problems that caused queue runs to do "too much work", 54266347Seric such as double-reading the Errors-To: header. From 54366347Seric Eric Wassenaar. 54466347Seric Error messages on writing the temporary file (including the 54566347Seric data file) were getting suppressed in SMTP -- this 54666347Seric fix causes them to be properly reported. From Eric 54766347Seric Wassenaar. 54866347Seric Some changes to support AF_UNIX sockets -- this will only 54966347Seric really become relevant in the next release, but some 55066347Seric people need it for local patches. From Michael 55166347Seric Corrigan of UC San Diego. 55266347Seric Use dynamically allocated memory (instead of static buffers) 55366347Seric for macros defined in initsys() and settime(); since 55466347Seric these can have different values depending on which 55566347Seric envelope they are in. From Eric Wassenaar. 55666347Seric Improve logging to show ctladdr on to= logging; this tells you 55766347Seric what uid/gid processes ran as. 55866347Seric Fix a problem that caused error messages to be discarded if 55966347Seric the sender address was unparseable for some reason; 56066347Seric this was supposed to fall back to the "return to 56166347Seric postmaster" case. 56266347Seric Improve aliaswait backoff algorithm. 56366347Seric Portability patches for Linux (8.6.3 required another header 56466347Seric file) (from Karl London) and SCO UNIX. 56566347Seric CONFIG: patch prog mailer to not strip host name off of envelope 56666347Seric addresses (so that it matches local again). From 56766347Seric Christopher Davis. 56866347Seric CONFIG: change uucp-dom mailer so that "<>" translates to $n; 56966347Seric this prevents uux from seeing lines with null names like 57066347Seric ``From Sat Oct 30 14:55:31 1993''. From Motonori 57166347Seric Nakamura of Kyoto University. 57266347Seric CONFIG: handle <list:;> syntax correctly. This isn't legal, but 57366347Seric it shouldn't fail miserably. From Motonori Nakamura. 57466347Seric 57566346Seric8.6.3/8.6.3 93/10/24 57666346Seric IMPORTANT FIX: Fix several problems that caused open files to 57766346Seric be "lost" during queue runs; this overflowed the open 57866346Seric file table on large runs. An assumption that fdopen 57966346Seric always succeeds sometimes resulted in core dumps when 58066346Seric this happens; sometimes the message is delivered twice, 58166346Seric sometimes (probably) infinite times. This problem in 58266346Seric various form was reported by P{r (Pell) Emanuelsson and 58366346Seric Robert Campbell of U.C. Berkeley. 58466346Seric Special diagnosis of EMFILE error conditions -- it now prints 58566346Seric the known open file descriptors so you can figure out 58666346Seric what is consuming so much resources. 58766346Seric Fix a couple of problems caused by early address parsing 58866346Seric errors -- one caused it to return a "this is only a 58966346Seric warning" when it really wasn't, and the other started 59066346Seric parsing through a random pointer. The first was 59166346Seric noted by Eric Wassenaar. 59266346Seric Fix an infinite loop problem caused by null components in the 59366346Seric host signature. Problem noted by Jan Sorensen. 59466346Seric Be sure to reset the "current date" when sending an error 59566346Seric message -- PostMasterCopy messages were being sent 59666346Seric with an old Date: header. 59766346Seric Fix a problem that caused duplicated mail when sendmail was 59866346Seric (1) compiled without HASFLOCK, (2) you are sending to 59966346Seric an alias that has an owner-* alias, (3) you execute 60066346Seric sendmail with -t flag, (4) you run in -odb mode, and 60166346Seric (5) the sender specifies both the alias name and 60266346Seric another alias [i.e., the envelope is split], then 60366346Seric duplicate messages are sent. The problem description 60466346Seric and one-line fix are from Motonori Nakamura of Kyoto 60566346Seric University. 60666346Seric Avoid a problem that causes error messages to be discarded 60766346Seric in some cases -- this was the result of a "fix" to 60866346Seric avoid duplicate error messages, but two are better 60966346Seric than zero. Reported by Tim Rylance. 61066346Seric Fix a minor botch in checkfd012() -- fix from Dave Hill of 61166346Seric Computervision R&D Ltd. 61266346Seric Remove "X-Authentication-Warning: <user> set sender to <address> 61366346Seric using -f" entirely -- it is far too eager to include 61466346Seric this, and it is confusing folks. I'll try to make it 61566346Seric work "right" in 8.7. Problem noted by Yoshitaka 61666346Seric Tokugawa of dit Co., Ltd. 61766346Seric Fix a race condition with the errno value in tick() and 61866346Seric reapchild() -- this caused occasional misdiagnosis 61966346Seric of problems. Kyle Jones of UUNET helped this along. 62066346Seric Repair rule loop-detection code. From Michael Corrigan of 62166346Seric U.C. San Diego. 62266346Seric Fix a problem that caused sender domain addition (C mailer 62366346Seric flag to be ignored if you use -odq or use -odb with 62466346Seric a high load average. Problem reported by Jim Murray 62566346Seric of Stratus. 62666346Seric Fix ident protocol on multi-homed machines. It was not 62766346Seric always using the correct interface. Fix from J.R. 62866346Seric Oldroyd of Opal. 62966346Seric Previously, sendmail assumed that any SMTP greeting message 63066346Seric that wasn't 2xx was a temporary failure -- it should 63166346Seric only take 4xx as a temporary failure, and return a 63266346Seric solid error message on anything else -- for example, 63366346Seric to allow you to reject connections on a workstation 63466346Seric that is MXed to a mail server. 63566346Seric Portability enhancements for 386BSD/FreeBSD/NetBSD from 63666346Seric Ollivier Robert. 63766346Seric CONFIG: FEATURE(always_add_domain) didn't always add the domain; 63866346Seric in particular, on local mail it modified the header sender 63966346Seric but not the header recipient address(es). Reported by 64066346Seric Jeffrey Honig of Cornell University. Also, strip 64166346Seric any host from envelope recipient address(es), since 64266346Seric local mailers don't understand host names -- this is 64366346Seric to help mailertable entries. From Christopher Davis. 64466346Seric CONFIG: masquerading didn't apply to addresses that already 64566346Seric had a domain. This change replaces a local hostname 64666346Seric by the masquerade name in the SMTP mailer (previously 64766346Seric it only added the masquerade name if it didn't already 64866346Seric have a domain name). Several people complained about 64966346Seric this. 65066346Seric 65166345Seric8.6.2/8.6.2 93/10/15 65266345Seric Put a "successful delivery" message in the transcript for 65366345Seric addresses that get return-receipts. 65466345Seric Put a prominent "this is only a warning" message in warning 65566345Seric messages -- some people don't read carefully enough 65666345Seric and end up sending the message several times. 65766345Seric Include reason for temporary failure in the "warning" return 65866345Seric message. Currently, it just says "cannot send for 65966345Seric four hours". 66066345Seric Fix the "Original message received" time generated for 66166345Seric returntosender messages. It was previously listed as 66266345Seric the current time. Bug reported by Eric Hagberg of 66366345Seric Cornell University Medical College. 66466345Seric If there is an error when writing the body of a message, 66566345Seric don't send the trailing dot and wait for a response 66666345Seric in sender SMTP, as this could cause the connection to 66766345Seric hang up under some bizarre circumstances. From Eric 66866345Seric Wassenaar. 66966345Seric Fix some server SMTP synchronization problems caused when 67066345Seric connections fail during message collection. From 67166345Seric Eric Wassenaar. 67266345Seric Fix a problem that can cause srvrsmtp to reject mail if the 67366345Seric name server is down -- it accepts the RCPT but rejects 67466345Seric the DATA command. Problem reported by Jim Murray of 67566345Seric Stratus. 67666345Seric Fix a problem that can cause core dumps if the config file 67766345Seric incorrectly resolves to a null hostname. Reported by 67866345Seric Allan Johannesen of WPI. 67966345Seric Non-root use of -C flag, dangerous -f flags, and use of -oQ 68066345Seric by non-root users were not put into 68166345Seric X-Authentication-Warning:s as intended because the 68266345Seric config file hadn't set the PrivacyFlags yet. Fix 68366345Seric from Sven-Ove Westberg of the University of Lulea. 68466345Seric Under very odd circumstances, the alias file rebuild code 68566345Seric could get confused as to whether a database was 68666345Seric open or not. 68766345Seric Check "vendor code" on the end of V lines -- this is 68866345Seric intended to provide a hook for vendor-specific 68966345Seric configuration syntax. (This is a "new feature", 69066345Seric but I've made an exception to my rule in a belief 69166345Seric that this is a highly exceptional case.) 69266345Seric Portability fixes for DG/UX (from Douglas Anderson of NCSC), 69366345Seric SCO Unix (from Murray Kucherawy), A/UX, and OSF/1 69466345Seric (from Jon Forrest of UC Berkeley) 69566345Seric CONFIG: fix ``mailer:host'' form of UUCP relay naming. 69666345Seric 69766344Seric8.6.1/8.6 93/10/08 69866344Seric Portability fixes for A/UX and Encore UMAX V. 69966344Seric Fix error message handling -- if you had a name server down 70066344Seric causing an error during parsing, that message was never 70166344Seric propogated to the queue file. 70266344Seric 70366343Seric8.6/8.6 93/10/05 70466343Seric Configuration cleanup: make it easier to undo IDENTPROTO in 70566343Seric conf.h (other systems have the same bug). 70666343Seric If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume 70766343Seric getdtablesize() instead of sysconf(); a disturbingly 70866343Seric large number of systems defined _SC_OPEN_MAX in the 70966343Seric header files but don't have the syscall. 71066343Seric Another patch to really truly ignore MX records in getcanonname 71166343Seric if trymx == FALSE. 71266343Seric Fix problem that caused the "250 IAA25499 Message accepted for 71366343Seric delivery" message to be omitted if there was an error 71466343Seric in the header of the message (e.g., a bad Errors-To: 71566343Seric line). Pointed out by Michael Corrigan of UCSD. 71666343Seric Announce name of host we are chatting when we get errors; this 71766343Seric is an IDA-ism suggested by Christophe Wolfhugel. 71866343Seric Portability fixes for Alpha OSF/1 (from Anthony Baxter of the 71966343Seric Australian Artificial Intelligence Institute), SCO Unix 72066343Seric (from Murray Kucherawy of Hookup Communication Corp.), 72166343Seric NeXT (from Vince DeMarco and myself), Linux (from 72266343Seric Karl London <karl@borg.demon.co.uk>), BSDI (from 72366343Seric Christophe Wolfhugel, and SVR4 on Dell (from Kimmo 72466343Seric Suominen), AUX 3.0 on Macintosh, and ANSI C compilers. 72566343Seric Some changes to get around gcc optimizer bugs. From Takahiro 72666343Seric Kanbe. 72766343Seric Fix error recovery in queueup if another tf file of the same 72866343Seric name already exists. Problem stumbled over by Bill 72966343Seric Wisner of The Well. 73066343Seric Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes. 73166343Seric Problem noted by Keith McMillan of Ameritech Services. 73266343Seric Deal with group permissions properly when opening .forward and 73366343Seric :include: files. This relaxes the 8.1C restrictions 73466343Seric slightly more. This includes proper setting of groups 73566343Seric when reading :include: files, allowing you to read some 73666343Seric files that you should be able to read but have previously 73766343Seric been denied unless you owned them or they had "other" 73866343Seric read permission. 73966343Seric Make certain that $j is in $=w (after the .cf is read) so that 74066343Seric if the user is forced to override some silly system, 74166343Seric MX suppression will still work. 74266343Seric Fix a couple of efficiency problems where newstr was double- 74366343Seric calling expensive routines. In at least one case, it 74466343Seric wasn't guaranteed that they would always return the 74566343Seric same result. Problem noted by Christophe Wolfhugel. 74666343Seric Fix null pointer dereference in putoutmsg -- only on an error 74766343Seric condition from a non-SMTP mailer. From Motonori 74866343Seric Nakamura. 74966343Seric Macro expand "C" line class definitions before scanning so that 75066343Seric "CX $Z" works. 75166343Seric Fix problem that caused error message to be sent while still 75266343Seric trying to send the original message if the connection 75366343Seric is closed during a DATA command after getting an error 75466343Seric on an RCPT command (pretty obscure). Problem reported 75566343Seric by John Myers of CMU. 75666343Seric Fix reply to NOOP to be 250 instead of 200 -- this is a long 75766343Seric term bug. 75866343Seric Fix a nasty bug causing core dumps when returning the "warning: 75966343Seric cannot deliver for N hours -- will keep trying" message; 76066343Seric it only occurred if you had PostMasterCopy set and 76166343Seric only on some architectures. Although sendmail would 76266343Seric keep trying, it would send error messages on each 76366343Seric queue interval. This is an important fix. 76466343Seric Allow u and g options to take user and group names respectively. 76566343Seric Don't do a chdir into the queue directory in -bt mode to make 76666343Seric ruleset testing a bit easier. 76766343Seric Don't allow users to turn off logging (using -oL) on the command 76866343Seric line -- command line can only raise, not lower, logging 76966343Seric level. 77066343Seric Set $u to the original recipient on the SMTP transaction or on 77166343Seric the command line. This is only done if there is exactly 77266343Seric one recipient. Technically, this does not meet the 77366343Seric specs, because it does not guarantee a domain on the 77466343Seric address. 77566343Seric Fix a problem that dumped error messages on bad addresses if 77666343Seric you used the -t flag. Problem noted by Josh Smith of 77766343Seric Harvey Mudd College. 77866343Seric Given an address such as ``<foo> <bar>'', auto-quote the first 77966343Seric ``<foo>'' part, giving ``"<foo>" <bar>''. This is to 78066343Seric avoid the problem of people who use angle brackets in 78166343Seric their full name information. 78266343Seric Fix a null pointer dereference if you set option "l", have 78366343Seric an Errors-To: header in the message, and have Errors-To: 78466343Seric defined in the config file H lines. From J.R. Oldroyd. 78566343Seric Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get 78666343Seric wrong when compiling. Suggested by Rick McCarty of TI. 78766343Seric Fix a problem that could pass negative SIZE parameter if the 78866343Seric df file got lost; this would cause servers to always 78966343Seric give a temporary failure, making the problem even worse. 79066343Seric Problem noted by Allan Johannesen of WPI. 79166343Seric Add "ident" timeout (one of the "r" option selectors) for IDENT 79266343Seric protocol timeouts (30s default). Requested by Murray 79366343Seric Kucherawy of HookUp Communication Corp. to handle bogus 79466343Seric PC TCP/IP implementations. 79566343Seric Change $w default definition to be just the first component of 79666343Seric the domain name on config level 5. The $j macro defaults 79766343Seric to the FQDN; $m remains as before. This lets well-behaved 79866343Seric config files use any of the short, long, or subdomain 79966343Seric names. 80066343Seric Add makesendmail script in src to try to automate multi-architecture 80166343Seric builds. I know, this is sub-optimal, but it is still 80266343Seric helpful. 80366343Seric Fix very obscure race condition that can cause a queue run to 80466343Seric get a queue file for an already completed job. This 80566343Seric problem has existed for years. Problem noted by the 80666343Seric long suffering Allan Johannesen of WPI. 80766343Seric Fix a problem that caused the raw sender name to be passed to 80866343Seric udbsender instead of the canonified name -- this caused 80966343Seric it to sometimes miss records that it should have found. 81066343Seric Relax check of name on HELO packet so that a program using -bs 81166343Seric that claims to be itself works properly. 81266343Seric Restore rewriting of $: part of address through 2, R, 4 in 81366343Seric buildaddr -- this requires passing a lot of flags to get 81466343Seric it right. Unlike old versions, this ONLY rewrites 81566343Seric recipient addresses, not sender addresses. 81666343Seric Fix a bug that caused core dumps in config files that cannot 81766343Seric resolve /file/name style addresses. Fix from Jonathan 81866343Seric Kamens of OpenVision Technologies. 81966343Seric Fix problem with fcntl locking that can cause error returns to 82066343Seric be lost if the lock is lost; this required fully 82166343Seric queueing everything, dropping the envelope (so errors 82266343Seric would get returned), and then re-reading the queue from 82366343Seric scratch. 82466343Seric Fix a problem that caused aliases that redefine an otherwise 82566343Seric true address to still send to the original address 82666343Seric if and only if the alias failed in certain bizarre 82766343Seric ways (e.g, if they pointed at a list:; syntax address). 82866343Seric Problem pointed out by Jonathan Kamens. 82966343Seric Remove support for frozen configuration files. They caused 83066343Seric more trouble than it was worth. 83166343Seric Fix problem that can cause error messages to get ignored when 83266343Seric using both -odb and -t flags. Problem noted by Rob 83366343Seric McNicholas at U.C. Berkeley. 83466343Seric Include all "normal" variations on hostname in $=w. For example, 83566343Seric if the host name is vangogh.cs.berkeley.edu, $=w will 83666343Seric contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu. 83766343Seric Add "restrictqrun" privacy flag -- without this, anyone can run 83866343Seric the queue. 83966343Seric Reset SmtpPhase global on initial connection creation so that 84066343Seric messages don't come out with stale information. 84166343Seric Pass an "ext" argument to lockfile so that error/log messages 84266343Seric will properly reflect the true filename being locked. 84366343Seric Put all [...] address forms into $=w -- this eliminates the need 84466343Seric for MAXIPADDR in conf.h. Suggested by John Gardiner 84566343Seric Myers of CMU. 84666343Seric Fix a bug that can cause qf files to be left around even after 84766343Seric an SMTP RSET command. Problem and fix from Michael 84866343Seric Corrigan. 84966343Seric Don't send a PostMasterCopy to errors when the Precedence: is 85066343Seric negative. Error reports still go to the envelope 85166343Seric sender address. 85266343Seric Add LA_SHORT for load averages. 85366343Seric Lock sendmail.st file when posting statistics. 85466343Seric Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to 85566343Seric set the size of the TCP send and receive buffers; if you 85666343Seric run over a slow slip line you may need to set these down 85766343Seric (although it would be better to fix the SLIP implementation 85866343Seric so that it's not necessary to recompile every program 85966343Seric that does bulk data transfer). 86066343Seric Allow null defaults on $( ... $) lookups. Problem reported by 86166343Seric Amir Plivatsky. 86266343Seric Diagnose crufty S and V config lines. This resulted from an 86366343Seric observation that some people were using the SITE macro 86466343Seric without the SITECONFIG macro first, which was causing 86566343Seric bogus config files that were not caught. 86666343Seric Fix makemap -f flag to turn off case folding (it was turning it 86766343Seric on instead). THIS IS A USER VISIBLE CHANGE!!! 86866343Seric Fix a problem that caused multiple error messages to be sent if 86966343Seric you used "sendmail -t -oem -odb", your system uses fcntl 87066343Seric locking, and one of the recipient addresses is unknown. 87166343Seric Reset uid earlier in include() so that recursive .forwards or 87266343Seric :include:s don't use the wrong uid. 87366343Seric If file descriptor 0, 1, or 2 was closed when sendmail was 87466343Seric called, the code to recover the descriptor was broken. 87566343Seric This sometimes (only sometimes) caused problems with the 87666343Seric alias file. Fix from Motonori Nakamura. 87766343Seric Fix a problem that caused aliaswait to go into infinite recursion 87866343Seric if the @:@ metasymbol wasn't found in the alias file. 87966343Seric Improve error message on newaliases if database files cannot be 88066343Seric opened or if running with no database format defined. 88166343Seric Do a better estimation of the size of error messages when NoReturn 88266343Seric is set. Problem noted by P{r (Pell) Emanuelsson. 88366343Seric Fix a problem causing the "c" option (don't connect to expensive 88466343Seric mailers) to be ignored in SMTP. Problem noted and the 88566343Seric solution suggested by Robert Elz of Munnari University. 88666343Seric Improve connection caching algorithm by passing "[host]" to 88766343Seric hostsignature, which strips the square brackets and 88866343Seric returns the real name. This allows mailertable entries 88966343Seric to match regular entries. 89066343Seric Re-enable Return-Receipt-To: -- people seem to want this stupid 89166343Seric feature, even if it doesn't work right. 89266343Seric Catch and log attempts to try the "wiz" command in server SMTP. 89366343Seric This also ups the log level from LOG_NOTICE to LOG_CRIT. 89466343Seric Be more generous at assigning $z to the home directory -- do this 89566343Seric for programs that are specified through a .forward file. 89666343Seric Fix from Andrew Chang of Sun Microsystems. 89766343Seric Always save a fatal error message in preference to a non-fatal 89866343Seric error message so that the "subject" line of return 89966343Seric messages is the best possible. 90066343Seric CONFIG: reduce the number of quotes needed to quote configuration 90166343Seric parameters with commas: two quotes should work now, e.g., 90266343Seric define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local''). 90366343Seric CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom 90466343Seric connections (domain-ized UUCP). 90566343Seric CONFIG: fix bug in default maps (-o must be before database file 90666343Seric name). Pointed out by Christophe Wolfhugel. 90766343Seric CONFIG: add FEATURE(nodns) to state that we are not relying on 90866343Seric DNS. This would presumably be used in UUCP islands. 90966343Seric CONFIG: add OSTYPE(nextstep) and OSTYPE(linux). 91066343Seric CONFIG: log $u in Received: line. This is in technical violation 91166343Seric of the standards, since it doesn't guarantee a domain 91266343Seric on the address. 91366343Seric CONFIG: don't assume "m" in local mailer flags -- this means that 91466343Seric if you redefine LOCAL_MAILER_FLAGS you will have to include 91566343Seric the "m" flag should you want it. Apparently some Solaris 2.2 91666343Seric installations can't handle multiple local recipients. 91766343Seric Problem noted by Josh Smith. 91866343Seric CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults). 91966343Seric CONFIG: change default version level from 4 to 5. 92066343Seric CONFIG: add FEATURE(nullclient) to create a config file that 92166343Seric forwards all mail to a hub without ever looking at the 92266343Seric addresses in any detail. 92366343Seric CONFIG: properly strip mailer: information off of relays when 92466343Seric used to change .BITNET form into %-hack form. 92566343Seric CONFIG: fix a problem that caused infinite loops if presented 92666343Seric with an address such as "!foo". 92766343Seric CONFIG: check for self literal (e.g., [128.32.131.12]) even if 92866343Seric the reverse "PTR" mapping is broken. There's a better 92966343Seric way to do this, but the change is fairly major and I 93066343Seric want to hold it for another release. Problem noted by 93166343Seric Bret Marquis. 93266343Seric 93366342Seric8.5/8.5 93/07/23 93466342Seric Serious bug: if you used a command line recipient that was unknown 93566342Seric sendmail would not send a return message (it was treating 93666342Seric everything as though it had an SMTP-style client that 93766342Seric would do the return itself). Problem noted by Josh Smith. 93866342Seric Change "trymx" option in getcanonname() to ignore all MX data, 93966342Seric even during a T_ANY query. This actually didn't break 94066342Seric anything, because the only time you called getcanonname 94166342Seric with !trymx was if you already knew there were no MX 94266342Seric records, but it is somewhat cleaner. From Motonori 94366342Seric Nakamura. 94466342Seric Don't call getcanonname from getmxrr if you already know there 94566342Seric are no DNS records matching the name. 94666342Seric Fix a problem causing error messages to always include "The 94766342Seric original message was received ... from localhost". 94866342Seric The correct original host information is now included. 94966342Seric Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their 95066342Seric version of "test" doesn't have the -x flag). Change it 95166342Seric to use -f instead. From John Myers. 95266342Seric CONFIG: 8.4 mistakenly set the default SMTP-style mailer to 95366342Seric esmtp -- it should be smtp. 95466342Seric CONFIG: send all relayed mail using confRELAY_MAILER (defaults 95566342Seric to "relay" (a variant of "smtp") if MAILER(smtp) is used, 95666342Seric else "suucp" if MAILER(uucp) is used, else "unknown"); 95766342Seric this cleans up the configs somewhat. This fixes a serious 95866342Seric problem that caused route-addrs to get mistaken as relays, 95966342Seric pointed out by John Myers. WARNING: this also causes 96066342Seric the default on SMART_HOST to change from "suucp" to 96166342Seric "relay" if you have MAILER(smtp) specified. 96266342Seric 96366341Seric8.4/8.4 93/07/22 96466341Seric Add option `w'. If you receive a message that comes to you because 96566341Seric you are the best (lowest preference) target of an MX, and 96666341Seric you haven't explicitly recognized the source MX host in 96766341Seric your .cf file, this option will cause you to try the target 96866341Seric host directly (as if there were no MX for it at all). If 96966341Seric `w' is not set, this case is a configuration error. 97066341Seric Beware: if `w' is set, senders may get bogus errors like 97166341Seric "message timed out" or "host unknown" for problems that 97266341Seric are really configuration errors. This option is 97366341Seric disrecommended, provided only for compatibility with 97466341Seric UIUC sendmail. 97566341Seric Fix a problem that caused the incoming socket to be left open 97666341Seric when sendmail forks after the DATA command. This caused 97766341Seric calling systems to wait in FIN_WAIT_2 state until the 97866341Seric entire list was processed and the child closed -- a 97966341Seric potentially prodigious amount of time. Problem noted 98066341Seric by Neil Rickert. 98166341Seric Fix problem (created in 6.64) that caused mail sent to multiple 98266341Seric addresses, one of which was a bad address, to completely 98366341Seric suppress the sending of the message. This changes 98466341Seric handling of EF_FATALERRS somewhat, and adds an 98566341Seric EF_GLOBALERRS flag. This also fixes a potential problem 98666341Seric with duplicate error messages if there is a syntax error 98766341Seric in the header of a message that isn't noticed until late 98866341Seric in processing. Original problem pointed out by Josh Smith 98966341Seric of Harvey Mudd College. This release includes quite a bit 99066341Seric of dickering with error handling (see below). 99166341Seric Back out SMTP transaction if MAIL gets nested 501 error. This 99266341Seric will only hurt already-broken software and should help 99366341Seric humans. 99466341Seric Fix a problem that broke aliases when neither NDBM nor NEWDB were 99566341Seric compiled in. It would never read the alias file. 99666341Seric Repair unbalanced `)' and `>' (the "open" versions are already 99766341Seric repaired). 99866341Seric Logging of "done" in dropenvelope() was incorrect: it would 99966341Seric log this even when the queue file still existed. Change 100066341Seric this to only log "done" (at log level 11) when the 100166341Seric queue file is actually removed. From John Myers. 100266341Seric Log "lost connection" in server SMTP at log level 20 if there 100366341Seric is no pending transaction. Some senders just close the 100466341Seric connection rather than sending QUIT. 100566341Seric Fix a bug causing getmxrr to add a dot to the end of unqualified 100666341Seric domains that do not have MX records -- this would cause 100766341Seric the subsequent host name lookup to fail. The problem 100866341Seric only occurred if you had FEATURE(nocanonify) set. 100966341Seric Problem noted by Rick McCarty of Texas Instruments. 101066341Seric Fix invocation of setvbuf when passed a -X flag -- I had 101166341Seric unwittingly used an ANSI C extension, and this caused 101266341Seric core dumps on some machines. 101366341Seric Diagnose self-destructive alias loops on RCPT as well as EXPN. 101466341Seric Previously it just gave an empty send queue, which 101566341Seric then gave either "Need RCPT (recipient)" at the DATA 101666341Seric (confusing, since you had given an RCPT command which 101766341Seric returned 250) or just dropped the email, depending on 101866341Seric whether you were running VERBose mode. Now it usually 101966341Seric diagnoses this case as "aliasing/forwarding loop broken". 102066341Seric Unfortunately, it still doesn't adequately diagnose 102166341Seric some true error conditions. 102266341Seric Add internal concept of "warning messages" using 6xx codes. 102366341Seric These are not reported only to Postmaster. Unbalanced 102466341Seric parens, brackets, and quotes are printed as 653 codes. 102566341Seric They are always mapped to 5xx codes before use in SMTP. 102666341Seric Clean up error messages to tell both the actual address that 102766341Seric failed and the alias they arose from. This makes it 102866341Seric somewhat easier to diagnose problems. Difficulty noted 102966341Seric by Motonori Nakamura. 103066341Seric Fix a problem that inappropriately added a ctladdr to addresses 103166341Seric that shouldn't have had one during a queue run. This 103266341Seric caused error messages to be handled differently during 103366341Seric a queue run than a direct run. 103466341Seric Don't print the qf name and line number if you get errors during 103566341Seric the direct run of the queue from srvrsmtp -- this was 103666341Seric just extra stuff for users to crawl through. 103766341Seric Put command line flags on second line of pid file so you can 103866341Seric auto-restart the daemon with all appropriate arguments. 103966341Seric Use "kill `head -1 /etc/sendmail.pid`" to stop the 104066341Seric daemon, and "eval `tail -1 /etc/sendmail.pid`" to 104166341Seric restart it. 104266341Seric Remove the ``setuid(getuid())'' in main -- this caused the 104366341Seric IDENT daemon to screw up. This required that I change 104466341Seric HASSETEUID to HASSETREUID and complicate the mode 104566341Seric changing somewhat because both Ultrix and SunOS seem 104666341Seric to have a bug causing seteuid() to set the saved uid 104766341Seric as well as the effective. The program test/t_setreuid.c 104866341Seric will test to see if your implementation of setreuid(2) 104966341Seric is appropriately functional. 105066341Seric The FallBackMX (option V) handling failed to properly identify 105166341Seric fallback to yourself -- most of the code was there, 105266341Seric but it wasn't being enabled. Problem noted by Murray 105366341Seric Kucherawy of the University of Waterloo. 105466341Seric Change :include: open timeout from ETIMEDOUT to an internal 105566341Seric code EOPENTIMEOUT; this avoids adding "during SmtpPhase 105666341Seric with CurHostName" in error messages, which can be 105766341Seric confusing. Reported by Jonathan Kamens of OpenVision 105866341Seric Technologies. 105966341Seric Back out setpgrp (setpgid on POSIX systems) call to reset the 106066341Seric process group id. The original fix was to get around 106166341Seric some problems with recalcitrant MUAs, but it breaks 106266341Seric any call from a shell that creates a process group id 106366341Seric different from the process id. I could try to fix 106466341Seric this by diddling the tty owner (using tcsetpgrp or 106566341Seric equivalent) but this is too likely to break other 106666341Seric things. 106766341Seric Portability changes: 106866341Seric Support -M as equivalent to -oM on Ultrix -- apparently 106966341Seric DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs 107066341Seric instead of using standard flags. Oh joy. This 107166341Seric behaviour reported by Jon Giltner of University 107266341Seric of Colorado. 107366341Seric SGI IRIX -- this includes several changes that should 107466341Seric help other strict ANSI compilers. 107566341Seric SCO Unix -- from Murray Kucherawy of HookUp Communication 107666341Seric Corporation. 107766341Seric Solaris running the Sun C compiler (which despite the 107866341Seric documentation apparently doesn't define 107966341Seric __STDC__ by default). 108066341Seric ConvexOS from Eric Schnoebelen of Convex. 108166341Seric Sony NEWS workstations and Omron LUNA workstations from 108266341Seric Motonori Nakamura. 108366341Seric CONFIG: add confTRY_NULL_MX_LIST to set option `w'. 108466341Seric CONFIG: delete `C' and `e' from default SMTP mailers flags; 108566341Seric several people have made a good argument that this 108666341Seric creates more problems than it solves (although this 108766341Seric may prove painful in the short run). 108866341Seric CONFIG: generalize all the relays to accept a "mailer:host" 108966341Seric format. 109066341Seric CONFIG: move local processing in ruleset 0 into a new ruleset 109166341Seric 98 (8 on old sendmail). Domain literal [a.b.c.d] 109266341Seric addresses are also passed through this ruleset. 109366341Seric CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined, 109466341Seric internet-style addresses would "fall off the end" of 109566341Seric ruleset zero and be interpreted as local -- however, 109666341Seric the angle brackets confused the recursive call. 109766341Seric These are now diagnosed as "Unrecognized host name". 109866341Seric CONFIG: USENET rules weren't included in S0 because of a mistaken 109966341Seric ifdef(`_MAILER_USENET_') instead of 110066341Seric ifdef(`_MAILER_usenet_'). Problem found by Rein Tollevik 110166341Seric of SINTEF RUNIT, Oslo. 110266341Seric CONFIG: move up LOCAL_RULE_0 processing so that it happens very 110366341Seric early in ruleset 0; this allows .mc authors to bypass 110466341Seric things like the "short circuit" code for local addresses. 110566341Seric Prompted by a comment by Bill Wisner of The Well. 110666341Seric CONFIG: add confSMTP_MAILER to define the mailer used (smtp or 110766341Seric esmtp) to send SMTP mail. This allows you to default 110866341Seric to esmtp but use a mailertable or other override to 110966341Seric deal with broken servers. This logic was pointed out 111066341Seric to me by Bill Wisner. Ditto for confLOCAL_MAILER. 111166341Seric Changes to cf/sh/makeinfo.sh to make it portable to SVR4 111266341Seric environments. Ugly as sin. 111366341Seric 111466340Seric8.3/8.3 93/07/13 111566340Seric Fix setuid problems introduced in 8.2 that caused messages 111666340Seric like "Cannot create qfXXXXXX: Invalid argument" 111766340Seric or "Cannot reopen dfXXXXXX: Permission denied". This 111866340Seric involved a new compile flag "HASSETEUID" that takes 111966340Seric the place of the old _POSIX_SAVED_IDS -- it turns out 112066340Seric that the POSIX interface is broken enough to break 112166340Seric some systems badly. This includes some fixes for 112266340Seric HP-UX. Also fixes problems where the real uid is 112366340Seric not reset properly on startup (from Neil Rickert). 112466340Seric Fix a problem that caused timed out messages to not report the 112566340Seric addresses that timed out. Error messages are also more 112666340Seric "user friendly". 112766340Seric Drop required bandwidth on connections from 64 bytes/sec to 112866340Seric 16 bytes/sec. 112966340Seric Further Solaris portability changes -- doesn't require the BSD 113066340Seric compatibility library. This also adds a new 113166340Seric "HASGETDTABLESIZE" compile flag which can be used if 113266340Seric you want to use getdtablesize(2) instead of sysconf(2). 113366340Seric These are loosely based on changes from David Meyer at 113466340Seric University of Oregon. This now seems to work, at least 113566340Seric for quick test cases. 113666340Seric Fix a problem that can cause duplicate error messages to be 113766340Seric sent if you are in SMTP, you send to multiple addresses, 113866340Seric and at least one of those addresses is good and points 113966340Seric to an account that has a .forward file (whew!). 114066340Seric Fix a problem causing messages to be discarded if checkcompat() 114166340Seric returned EX_TEMPFAIL (because it didn't properly mark 114266340Seric the "to" address). Problem noted by John Myers. 114366340Seric Fix dfopen to return NULL if the open failed; I was depending 114466340Seric on fdopen(-1) returning NULL, which isn't the case. This 114566340Seric isn't serious, but does result in wierd error diagnoses. 114666340Seric From Michael Corrigan. 114766340Seric CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of 114866340Seric messages sent through UUCP-family mailers. Suggested 114966340Seric by Bill Wisner of The Well. 115066340Seric CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified, 115166340Seric include a "uucp-dom" mailer that uses domain-style 115266340Seric addressing. Suggested by Bill Wisner. 115366340Seric CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match 115466340Seric LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS. Suggested by 115566340Seric Christophe Wolfhugel. 115666340Seric CONFIG: Add OSTYPE(aix3). From Christophe Wolfhugel. 115766340Seric 115866339Seric8.2/8.2 93/07/11 115966339Seric Don't drop out on config file parse errors in -bt mode. 116066339Seric On older configuration files, assume option "l" (use Errors-To 116166339Seric header) for back compatibility. NOTE: this DOES NOT 116266339Seric imply an endorsement of the Errors-To: header in any way. 116366339Seric Accept -x flag on AIX-3 as well as OSF/1. Why, why, why??? 116466339Seric Don't log errors on EHLO -- it isn't a "real" error for an old 116566339Seric SMTP server to give an error on this command, and 116666339Seric logging it in the transcript can be confusing. Fix 116766339Seric from Bill Wisner. 116866339Seric IRIX compatibility changes provided by Dan Rich 116966339Seric <drich@sandman.lerc.nasa.gov>. 117066339Seric Solaris 2 compatibility changes. Provided by Bob Cunningham 117166339Seric <bob@kahala.soest.hawaii.edu>, John Oleynick 117266339Seric <juo@klinzhai.rutgers.edu> 117366339Seric Debugging: -d17 was overloaded (hostsignature and usersmtp.c); 117466339Seric move usersmtp (smtpinit and smtpmailfrom) to -d18 to 117566339Seric match the other flags in that file. 117666339Seric Flush transcript before fork in mailfile(). From Eric Wassenaar. 117766339Seric Save h_errno in mci struct and improve error message display. 117866339Seric Changes from Eric Wassenaar. 117966339Seric Open /dev/null for the transcript if the create of the xf file 118066339Seric failed; this avoids at least one possible null pointer 118166339Seric reference in very wierd cases. From Eric Wassenaar. 118266339Seric Clean up statistics gathering; it was over-reporting because of 118366339Seric forks. From Eric Wassenaar. 118466339Seric Fix problem that causes old Return-Path: line to override new 118566339Seric Return-Path: line (conf.c needs H_FORCE to avoid 118666339Seric re-using old value). From Motonori Nakamura. 118766339Seric Fix broken -m flag in K definition -- even if -m (match only) 118866339Seric was specified, it would still replace the key with the 118966339Seric value. Noted by Rick McCarty of Texas Instruments. 119066339Seric If the name server timed out over several days, no "timed out" 119166339Seric message would ever be sent back. The timeout code 119266339Seric has been moved from markfailure() to dropenvelope() 119366339Seric so that all such failures should be diagnosted. Pointed 119466339Seric out by Christophe Wolfhugel and others. 119566339Seric Relax safefile() constraints: directories in an include or 119666339Seric forward path must be readable by self if the controlling 119766339Seric user owns the entry, readable by all otherwise (e.g., 119866339Seric when reading your .forward file, you have to own and 119966339Seric have X permssion in it; everyone needs X permission in 120066339Seric the root and directories leading up to your home); 120166339Seric include files must be readable by anyone, but need not 120266339Seric be owned by you. 120366339Seric If _POSIX_SAVED_IDS is defined, setuid to the owner before 120466339Seric reading a .forward file; this gets around some problems 120566339Seric on NFS mounts if root permission is not exported and 120666339Seric the user's home directory isn't x'able. 120766339Seric Additional NeXT portability enhancements from Axel Zinser. 120866339Seric Additional HP-UX portability enhancements from Brian Bullen. 120966339Seric Add a timeout around SMTP message writes; this assumes you can 121066339Seric get throughput of at least 64 bytes/second. Note that 121166339Seric this does not impact the "datafinal" default, which 121266339Seric is separate; this is just intended to work around 121366339Seric network clogs that will occur before the final dot 121466339Seric is sent. From Eric Wassenaar. 121566339Seric Change map code to set the "include null" flag adaptively -- 121666339Seric it initially tries both, but if it finds anything 121766339Seric matching without a null it never tries again with a 121866339Seric null and vice versa. If -N is specified, it never 121966339Seric tries without the null and creates new maps with a 122066339Seric null byte. If -O is specified, it never tries with 122166339Seric the null (for efficiency). If -N and -O are specified, 122266339Seric you get -NO (get it?) lookup at all, so this would 122366339Seric be a bad idea. If you don't specify either -N or -O, 122466339Seric it adapts. 122566339Seric Fix recognition of "same from address" so that MH submissions 122666339Seric will insert the appropriate full name information; 122766339Seric this used to work and got broken somewhere along the 122866339Seric way. 122966339Seric Some changes to eliminate some unnecessary SYSERRs in the 123066339Seric log. For example, if you lost a connection, don't 123166339Seric bother reporting that fact on the connection you lost. 123266339Seric Add some "extended debugging" flags to try to track down 123366339Seric why we get occassional problems with file descriptor 123466339Seric one being closed when execing a mailer; it seems to 123566339Seric only happen when there has been another error in the 123666339Seric same transaction. This requires XDEBUG, defined 123766339Seric by default in conf.h. 123866339Seric Add "-X filename" command line flag, which logs both sides of 123966339Seric all SMTP transactions. This is intended ONLY for 124066339Seric debugging bad implementations of other mailers; start 124166339Seric it up, send a message from a mailer that is failing, 124266339Seric and then kill it off and examine the indicated log. 124366339Seric This output is not intended to be particularly human 124466339Seric readable. This also adds the HASSETVBUF compile 124566339Seric flag, defaulted on if your compiler defines __STDC__. 124666339Seric CONFIG: change SMART_HOST to override an SMTP mailer. If you 124766339Seric have a local net that should get direct connects, you 124866339Seric will need to use LOCAL_NET_CONFIG to catch these hosts. 124966339Seric See cf/README for an example. 125066339Seric CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle 125166339Seric sites that don't use the -d flag. 125266339Seric CONFIG: hide recipient addresses as well as sender addresses 125366339Seric behind $M if FEATURE(allmasquerade) is specified; this 125466339Seric has been requested by several people, but can break 125566339Seric local aliases. For example, if you mail to "localalias" 125666339Seric this will be rewritten as "localalias@masqueradehost"; 125766339Seric although initial delivery will work, replies will be 125866339Seric broken. Use it sparingly. 125966339Seric CONFIG: add FEATURE(domaintable). This maps unqualified domains 126066339Seric to qualified domains in headers. I believe this is 126166339Seric largely equivalent to the IDA feature of the same name. 126266339Seric CONFIG: use $U as UUCP name instead of $k. This permits you 126366339Seric to override the "system name" as your UUCP name -- 126466339Seric in particular, to use domain-ized UUCP names. From 126566339Seric Bill Wisner of The Well. 126666339Seric CONFIG: create new mailer "esmtp" that always tries EHLO 126766339Seric first. This is currently unused in the config files, 126866339Seric but could be used in a mailertable entry. 126966339Seric 127066338Seric8.1C/8.1B 93/06/27 127166338Seric Serious security bug fix: it was possible to read any file on 127266338Seric the system, regardless of ownership and permissions. 127366338Seric If a subroutine returns a fully qualified address, return it 127466338Seric immediately instead of feeding it back into rewriting. 127566338Seric This fixes a problem with mailertable lookups. 127666338Seric CONFIG: fix some M4 frotz (concat => CONCAT) 127766338Seric 127866338Seric8.1B/8.1A 93/06/12 127966338Seric Serious bug fix: pattern matching backup algorithm stepped by 128066338Seric two tokens in classes instead of one. Found by Claus 128166338Seric Assmann at University of Kiel, Germany. 128266338Seric 128366338Seric8.1A/8.1A 93/06/08 128466338Seric Another mailertable fix.... 128566338Seric 128666338Seric8.1/8.1 93/06/07 128766338Seric 4.4BSD freeze. No semantic changes. 128866338Seric 128966338Seric6.65/6.34 93/06/06 129066338Seric Fix some lintish problems. 129166338Seric Fix some cases where server SMTP behaved poorly when handed bogus 129266338Seric input, pointed out by Eric Wassenaar. 129366338Seric CONFIG: fix some more (sigh) mailertable bugs -- thanks to 129466338Seric Motonori Nakamura of Kyoto University (again). 129566338Seric 129666338Seric6.64/6.33 93/06/05 129766338Seric Don't send 050 (-v) information after the 250 response to a QUIT 129866338Seric command in srvrsmtp -- clients usually close the connection 129966338Seric at this point, and it causes bogus error messages. 130066338Seric Don't send messages that have errors on input (such as unbalanced 130166338Seric parentheses) during SMTP transactions, since a return 130266338Seric message has (probably) already been sent. 130366338Seric Give better diagnostics on timeouts during network reads, including 130466338Seric information similar to the SMTP phase. 130566338Seric Fix bug that caused SMTP messages to deliver synchronously; this 130666338Seric happened after the DATA 250, and hence caused reading the 130766338Seric next command to be delayed. 130866338Seric Ignore Errors-To: header unless 'l' (lower case el) header is 130966338Seric specified. The Errors-To: header violates RFC 1123. 131066338Seric Errors-To: was only needed to take the place of the 131166338Seric envelope sender in the days when most Unix mailers 131266338Seric didn't understand about the two kinds of senders. 131366338Seric Don't send warning messages in response to automatically generated 131466338Seric messages (that is, those From:<>). 131566338Seric CONFIG: fix some rather stupid typos in the mailertable code 131666338Seric pointed out by Motonori Nakamura of Kyoto University. 131766338Seric CONFIG: add confUSE_ERRORS_TO configuration option. 131866338Seric CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M 131966338Seric (masquerade name) instead of $j. 132066338Seric CONFIG: don't add dots to relay names (added in 6.29); it breaks 132166338Seric several things, and can be simulated by dot terminating 132266338Seric the names of relays. For example, use: 132366338Seric DBbit.net.relay. 132466338Seric (note the trailing dot). 132566338Seric 132666338Seric6.63/6.32 93/06/01 132766338Seric Fix prototypes to eliminate chars in argument lists -- some 132866338Seric compilers are pissy about this. 132966338Seric Log protocol ($r) and body type if set so we can determine if 133066338Seric the adaptive algorithms are working. 133166338Seric Pessimize on locking of database files (particularly for NEWDB 133266338Seric databases) during opens. There were problems with 133366338Seric processes opening the file while it was rebuilt; since 133466338Seric NEWDB caches heavily, the reader opened an empty file, 133566338Seric which is an error. If your system has the ability to 133666338Seric lock atomically on open, this works properly; otherwise, 133766338Seric there are race conditions. 133866338Seric Check mod time on .pag file instead of .dir in NDBM aliases 133966338Seric because the .dir file doesn't get updated for small 134066338Seric alias files. From John Gardiner Myers of CMU. 134166338Seric More Solaris portability -- it now compiles on Solaris, but 134266338Seric hangs up in gethostbyname(). 134366338Seric Move setting of RES_DEBUG flag before first myhostname() call 134466338Seric so we can see name server traffic on that call. 134566338Seric Fsync() queue files. 134666338Seric Fix a problem that causes -bi to try to rebuild maps other than 134766338Seric the alias file(s). 134866338Seric Fix a problem that caused udb to reject entries from any but 134966338Seric the first database listed. 135066338Seric Rearrange doc subdirectory for 4.4BSD release tape. 135166338Seric CONFIG: put $r into the Received line. This was an oversight. 135266338Seric CONFIG: fix typo (call to ruleset 99 should have been rulset 90). 135366338Seric CONFIG: move "auxiliary" subroutines to be in ruleset 90-99 135466338Seric range -- in the long run, single digit rulesets may 135566338Seric become reserved for builtin use by sendmail. 135666338Seric CONFIG: fix major problem that causes host aliases (that is, 135766338Seric anything in $=w != $j) to not be recognized. This has 135866338Seric been around since 6.30. 135966338Seric 136066338Seric6.62/6.31 93/05/28 136166338Seric BETA RELEASE 136266338Seric Fix recursive syserr (if there is an error printing a syserr 136366338Seric message). This makes the code much less eager to consider 136466338Seric a write error as serious. This also includes some 136566338Seric heuristics to be clever about closed connections. 136666338Seric Lock NEWDB files during gets. This requires version 1.5 or later 136766338Seric of the db library. If you have an older version, you 136866338Seric can use -DOLD_NEWDB. This will go away in a few weeks. 136966338Seric Fix problem causing aliases that use host maps to get overwritten. 137066338Seric Do appropriate byte swapping on port numbers in ident protocol 137166338Seric code. Fix from Allan Johannesen of WPI. 137266338Seric Defer opening of map files to the same time as alias files so that 137366338Seric the daemon will tend to pick up new versions more promptly. 137466338Seric Prototype a bunch more functions. 137566338Seric Some Solaris 2.1 changes (still doesn't link though). 137666338Seric Try to simplify Makefiles by including more subordinate #defines 137766338Seric in conf.h (based on OS type). 137866338Seric CONFIG: check for domains if FEATURE(mailertable) is defined. 137966338Seric For example, if the host name is "knecht.cs.berkeley.edu" 138066338Seric it will search the following mailertable keys: 138166338Seric knecht.cs.berkeley.edu 138266338Seric .cs.berkeley.edu 138366338Seric .berkeley.edu 138466338Seric .edu 138566338Seric This could be used to replace the special relays for bitnet 138666338Seric and similar nets. 138766338Seric 138866338Seric6.61/6.30 93/05/24 138966338Seric Fix problem that prevented appending dots on canonified host 139066338Seric names. This breaks tons of config files -- very 139166338Seric important fix. 139266338Seric Fix improper pointer dereference in response to HELO command. 139366338Seric Fix core dump if debugging set in map_rewrite. 139466338Seric CONFIG: add FEATURE(always_add_domain) to always attach the 139566338Seric local domain (only impacts local mail). 139666338Seric CONFIG: try to avoid turning names into $j -- although 139766338Seric technically a host can only have one "canonical name", 139866338Seric it seems to be common practice to have several. 139966338Seric 140066338Seric6.60/6.29 93/05/22 140166338Seric Major change: merge alias databases with maps. This expands and 140266338Seric changes the map class interface but fixes a bunch of bugs. 140366338Seric The important user-visible change is that the file name 140466338Seric in a K line now does not include the ".db" extension; this 140566338Seric is added automatically. Also, the -d (NIS domain) flag is 140666338Seric missing from the K config line; use @domain instead. 140766338Seric When compiling, the *_MAP names are gone -- just compile 140866338Seric in NDBM, NEWDB, and/or NIS support. 140966338Seric Announce mailer/host/user triple on -bv flag -- from Brian 141066338Seric Bullen of Stirling University. 141166338Seric Don't send more than one line in response to HELO -- it confuses 141266338Seric Pony Express, which then behaves very badly. However, 141366338Seric this change does send two line 220 greetings, with the 141466338Seric second line reading "ESMTP spoken here". The usersmtp 141566338Seric module recognizes this and goes into ESMTP mode regardless 141666338Seric of the setting of the "a" mailer flag. Thus, "a" means 141766338Seric "always try EHLO". 141866338Seric AIX portability changes (thanks to Christophe Wolfhugel of 141966338Seric Herve Schauer Consultants (Paris) for providing me with 142066338Seric an INSA account for this purpose). Lightly tested. Use 142166338Seric -D_AIX3. This probably breaks compatibility with some 142266338Seric older systems (e.g., 4.2bsd) but still works on SunOS 142366338Seric 4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3. 142466338Seric Fix a problem causing an error message loop if the output channel 142566338Seric is hosed. 142666338Seric Add the Makefiles that I use for various environments -- some are 142766338Seric Berkeley make versions and some are old make versions. 142866338Seric My makefile for the NeXT box has gotten lost, alas! 142966338Seric PRALIASES: support for printing NEWDB databases. From 143066338Seric Michael J. Corrigan of U.C. San Diego. 143166338Seric CONFIG: don't pass pseudo-domains to $[ ... $] (if you have 143266338Seric a wildcard MX it can have wierd results). From 143366338Seric Christophe Wolfhugel. 143466338Seric CONFIG: dot terminate relay hostnames in S0. From Christophe 143566338Seric Wolfhugel. 143666338Seric 143766338Seric6.59/6.28 93/05/13 143866338Seric Log version with SMTP daemon startup message. 143966338Seric Adjust setproctitle to work on NetBSD and BSD/386. 144066338Seric Fix null pointer reference in MX fallback code. 144166338Seric A bunch of minor fixes from Eric Wassenaar: 144266338Seric If deliver cannot execv the mailer, return EX_OSERR 144366338Seric instead of EX_TEMPFAIL (to give better 144466338Seric error messages). 144566338Seric Consistently malloc e_message. 144666338Seric Catch degenerate case of calling returntosender() 144766338Seric with an empty returnq. 144866338Seric MIME reformatting. 144966338Seric 145066338Seric6.58/6.28 93/05/13 145166338Seric Fix bug that can cause incorrect verbose display of user smtp 145266338Seric messages. 145366338Seric Disable SMTP VERB command if PRIV_NOEXPN is set (since this 145466338Seric could reveal the same information. 145566338Seric Allow failure when reading SMTP greeting message to go on to 145666338Seric next MX host. 145766338Seric Add "MIME-Version: 1.0" header if using MIME (this was NOT 145866338Seric included in RFC 1344, but Bill King of Allan-Bradley 145966338Seric Company forwarded me email from Nathaniel Borenstein 146066338Seric claiming that it was an inadvertent omission). 146166338Seric Don't use Content-Type: X-message-header. According to John 146266338Seric Myers of CMU, many MIME readers will completely ignore 146366338Seric the data if they don't recognize it. Instead, just 146466338Seric add a blank line to make it a legal (empty) message. 146566338Seric Fix problem causing dots to keep getting appended to cached 146666338Seric hostnames. This can cause buffer overrun conditions. 146766338Seric The problem was found by Erik Forsberg of Retix, 146866338Seric although I used a different bug fix than he provided. 146966338Seric Fix parsing of split header/envelope rewriting specs -- from 147066338Seric Eric Forsberg. 147166338Seric Fix from Eric Wassenaar to correct To: lists in error messages. 147266338Seric 147366338Seric6.57/6.28 93/05/11 147466338Seric Fix minor glitch causing extra ctladdrs to be output to queue 147566338Seric file. Just an annoyance. 147666338Seric Cache results of name server canonification lookups to avoid 147766338Seric backed up queue runs. 147866338Seric Major rewrite of alias.c: considerable cleanup, plus sample 147966338Seric (untested) support for NIS aliases. The "A" option 148066338Seric can now be a comma separated list (or be repeated) -- 148166338Seric that is, you can have multiple alias databases. Each 148266338Seric database can have the syntax ``class:file''; if no class 148366338Seric is specified, the "implicit" class is assumed. Implicit 148466338Seric searches through a list of compiled in types -- hash, 148566338Seric dbm, nis, and stab. Alias files are searched in the 148666338Seric order they are listed. For example: 148766338Seric OAhash:/etc/aliases.local,/etc/aliases 148866338Seric OAnis:mail.aliases@my.nis.domain 148966338Seric first searches the hash database /etc/aliases.local, 149066338Seric then the regular /etc/aliases database, then the NIS 149166338Seric map "mail.aliases" in the NIS domain "my.nis.domain". 149266338Seric If in Verbose mode (probably from VERB command) run SMTP job 149366338Seric in foreground and don't do RCPT optimizations. 149466338Seric Add udb :mailsender as equivalent to owner- for regular aliases. 149566338Seric Delete option 8; add option 7 that means the opposite. That is, 149666338Seric default to 8-bit mode; a special option is needed to 149766338Seric force sendmail into 7 bit mode. 149866338Seric Send error messages in encapsulated MIME format. 149966338Seric New compile flag "NIS" that turns on NIS alias and NIS map 150066338Seric support. 150166338Seric Add "j" option to send error messages in MIME (RFC 1341) 150266338Seric encapsulated message format per RFC 1344. The 150366338Seric syntax is pretty ugly if you don't have MIME-aware 150466338Seric user agents. 150566338Seric Clean up message handling (for display in mailq output). 150666338Seric New setproctitle implementation for 4.4bsd. 150766338Seric Create files (such as ~/dead.letter) using mode FileMode (the 150866338Seric F option value) instead of 0666. 150966338Seric Fix bug causing output of EXPN command to not be fully qualified. 151066338Seric This may cause some problems with UUCP addresses that 151166338Seric will require some config file assistance -- specifically, 151266338Seric the $: part has to include the host name for this output 151366338Seric to make sense. 151466338Seric Fix a problem that sometimes diagnosed errors and still sent the 151566338Seric message if the header syntax was bad. 151666338Seric Fix a bug that caused an error message to be emailed when sendmail 151766338Seric was operating in -bv mode. 151866338Seric Add "ListenQueueSize" keyword to daemon options option (OO) to 151966338Seric set the queue size parameter passed to listen(). You 152066338Seric will normally have to tweak your kernel to up this. 152166338Seric Strip spaces off of beginning of message-id before logging (in 152266338Seric case it was folded across lines). 152366338Seric Tweak compile flags in daemon.c -- there were some cases where 152466338Seric it wouldn't work without NETINET. 152566338Seric Change *file* mailer to output all the usual default headers 152666338Seric (From, Date, Message-Id). It gets used when sending 152766338Seric back error messages. 152866338Seric CONFIG: explicitly catch and diagnose list:; syntax in ruleset 152966338Seric zero -- this is not a valid recipient syntax according 153066338Seric to RFC 821. 153166338Seric CONFIG: add confMIME_FORMAT_ERRORS to send error messages in 153266338Seric MIME format. Defaults to on. 153366338Seric CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment 153466338Seric the flags for those mailers. 153566338Seric 153666338Seric6.56/6.27 93/05/01 153766338Seric Fix problem that causes the fallback mail to postmaster 153866338Seric (case ESM_POSTMASTER in savemail()) to not look at 153966338Seric aliases (ugh). 154066338Seric Some more HPUX tweaking (compile flag hpux => __hpux so it 154166338Seric still works in ANSI mode). 154266338Seric Don't try to flock non-regular files when mailing to a file. 154366338Seric In particular, this was a problem if you tried to 154466338Seric send to /dev/null. 154566338Seric Fix a wierd bug that can cause senders to be queued as 154666338Seric recipients if the name server is down when the mail 154766338Seric is initially sent. This hack just ignores sender 154866338Seric deletion (essentially, it sets the MeToo flag) if there 154966338Seric is a TEMPFAIL during processing of the sender address. 155066338Seric Obscure. 155166338Seric Fix a dangling else problem -- from Brian Bullen from University 155266338Seric of Stirling, UK. 155366338Seric Add the "b" mailer flag to force a blank line on the end of 155466338Seric messages. Some brilliant versions of /bin/mail insist 155566338Seric on this but do not add it themselves. 155666338Seric Add the "g" mailer flag to prevent user SMTP from sending 155766338Seric "MAIL From:<>". This is only intended to be a 155866338Seric transitional gesture, and should not be used if at 155966338Seric all possible. It appears that Berkeley and IDA 156066338Seric config files have always handled this properly; the 156166338Seric UK config kit apparently does not. 156266338Seric Don't lowercase and then capitalize header field names -- leave 156366338Seric them with original capitalization. Fixes from Bill 156466338Seric King of Allen-Bradley Company. 156566338Seric Further cleanup and improved reporting of error messages, 156666338Seric particularly conditions that cause messages to be 156766338Seric requeued for future delivery. 156866338Seric Tweak syslog priorities in some cases. 156966338Seric CONFIG: clean up route-addr on UUCP addresses. 157066338Seric 157166338Seric6.55/6.25 93/04/27 157266338Seric HPUX 8.07 compatibility changes in getla() -- I had to make 157366338Seric these changes to get it to work at Berkeley, although 157466338Seric others seem to have been working before (???). 157566338Seric Various patches to XLA code. 157666338Seric Fix problem that causes setuid bit on files to be ignored from 157766338Seric SMTP or in queue runs. Problem noted by Jason Ornstein 157866338Seric of Under The Wire, Inc. 157966338Seric Fix problem that can cause CNAMEs to be ignored. 158066338Seric Generalize getmxrr to match local host in $=w instead of a 158166338Seric single name passed in. 158266338Seric Some cleanup from Eric Wassenaar: 158366338Seric Use FileMailer instead of ProgMailer in two places. 158466338Seric Eliminate duplicate 8th-bit stripping in commaize. 158566338Seric Fix a problem with mis-parsing of backslash escapes 158666338Seric under some circumstances. 158766338Seric NIS map fix (was always including trailing null character) 158866338Seric from Mike Glendinning of Ingres UK. 158966338Seric Add "a" mailer flag to try using ESMTP. It tries the EHLO 159066338Seric command and if that fails falls back to regular SMTP. 159166338Seric Also parses EHLO option keywords. If host supports 159266338Seric SIZE extension, this is added to the MAIL FROM: 159366338Seric command. 159466338Seric Extend "b" option to include a second value which is the 159566338Seric maximum message size this server is willing to accept. 159666338Seric For example, a value of "10/1000000" says that there 159766338Seric must be ten blocks free, and sendmail will reject 159866338Seric any message larger than one megabyte. 159966338Seric Some portability hooks for NeXT (this could be applicable 160066338Seric to Mach in general). You have to create an empty 160166338Seric file called "unistd.h" to get it to compile. 160266338Seric Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to 160366338Seric be more generous. 160466338Seric Add X400-Received: to the list of headers tagged with H_TRACE 160566338Seric in conf.c. From Bill King, Allen-Bradley Co. 160666338Seric 160766338Seric6.54/6.25 93/04/19 160866338Seric Fix problem that caused redefinition of SMTP and QUEUE compile 160966338Seric flags. Pointed out by Jon Forrest of the Sequoia 2000 161066338Seric project at Berkeley. 161166338Seric Properly handle \! hack -- it was treating host\!user as one 161266338Seric token (host!user) instead of three (host, !, user). 161366338Seric Fix from Eric Wassenaar of NIKHEF-H. 161466338Seric Fix compilation problem in getauthinfo() if IDENTPROTO is off. 161566338Seric Turn off DEFNAMES and DNSRCH when getting the hostsignature 161666338Seric (i.e., MX records) in level 1 configuration files; this 161766338Seric matches the old behaviour. From Motonori Nakamura of 161866338Seric Kyoto University. 161966338Seric Improve error message printing -- if sent through an alias, 162066338Seric error messages include the name of the alias in the 162166338Seric message. Unfortunately, in order to make this work 162266338Seric properly in queue runs, this changes the format of the 162366338Seric C line in the qf file. The relatively uselessness of 162466338Seric the previous information was pointed out to me by 162566338Seric Allan E Johannesen of WPI. 162666338Seric Add XLA compile flag to add hooks to Christophe Wolfhugel's 162766338Seric extended load average code. This is still in very early 162866338Seric form. For information regarding the guts of the xla 162966338Seric code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr. 163066338Seric Additional hooks for detecting tempfails in rewriting rules 163166338Seric (that is, in map lookups). 163266338Seric 163366338Seric6.53/6.25 93/04/15 163466338Seric Properly diagnose ruleset zero returning null (instead of a mailer 163566338Seric triple). From Motonori Nakamura of Kyoto University. 163666338Seric More generalization of socket code for other protocols. 163766338Seric Shorten timeouts on reverse name lookups -- since they are done 163866338Seric during connection establishment, long timeouts here can 163966338Seric cause higher level timeouts. This mainly serves to accept 164066338Seric mail from hosts that do not have proper reverse (PTR) DNS 164166338Seric records set up. 164266338Seric Reset e_statmsg before each mailer invocation to avoid bogus 164366338Seric messages in the log. 164466338Seric Redefine $r, $s, and $_ in error envelopes so you don't get 164566338Seric incorrect cruft in the error message. Problem noted by 164666338Seric Motonori Nakamura of Kyoto University. 164766338Seric Fix a problem that can cause failure to return errors to Postmaster 164866338Seric in certain cases. From Motonori Nakamura. 164966338Seric Fix a problem that can cause some systems to give duplicate error 165066338Seric messages when a bad syntax address such as "<a" is presented 165166338Seric to an SMTP server. It doesn't seem to occur on all 165266338Seric machines. From Motonori Nakamura. 165366338Seric Default IDENTPROTO off for Ultrix and HPUX, which apparently have 165466338Seric the interesting "feature" that when they receive a "Host 165566338Seric unreachable" message they closes all open connections to 165666338Seric that host. However, some firewall gateways send this message 165766338Seric if you try to connect to an unauthorized port, such as the 165866338Seric IDENT port (113). Thus, no email can be received from such 165966338Seric hosts. There is some evidence that versions of Ultrix before 166066338Seric 4.3 do not have this problem. Thanks to Tom Ivar Helbekkmo 166166338Seric for pointing out this behaviour to me and to Michael Corrigan 166266338Seric of U.C. San Diego for informing me about the HPUX problem. 166366338Seric Allow IPC mailers to return a colon-separated list of hosts in the 166466338Seric $@ clause; these are searched in order as though they were 166566338Seric MX records. 166666338Seric When sending an error report, print the list of addresses tagged 166766338Seric as bad. Requested by Allan E Johannesen of WPI. 166866338Seric Change map function calls to return a status code. This gets 166966338Seric passed back as the result of rewrite. Parseaddr marks 167066338Seric the address as a QUEUEUP address if the return code is 167166338Seric EX_TEMPFAIL. All this to queue properly if the name 167266338Seric server is down. This code is not well tested. This code 167366338Seric changes the interface to map lookup functions (a fifth 167466338Seric parameter, int *statp, is added). Feature requested by 167566338Seric Dan Oscarsson. 167666338Seric Don't delete quotes (in the dequote map) if there are spaces in 167766338Seric the string, since this would cause them to be replaced by 167866338Seric the SpaceSub character. 167966338Seric Accept BODY=8BITMIME on SMTP MAIL command. This isn't advertised 168066338Seric because the 8BIT to 7BIT translation doesn't exist yet. 168166338Seric This does add a "bodytype" field to both envelope and 168266338Seric queue file and a -B command line flag to pass the type in 168366338Seric during direct invocations. 168466338Seric Discard return error messages only on responses to responses to 168566338Seric responses, not on responses to responses. That is, the 168666338Seric algorithm is to try return to sender, then return to 168766338Seric postmaster, then discard. Previously it discarded 168866338Seric immediately if the return to sender pass failed. 168966338Seric CONFIG: back out change to hide unqualified hostnames behind %-hack. 169066338Seric This screws up local aliases and .forward files. 169166338Seric CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $]; 169266338Seric some sites only handle completely canonified names. 169366338Seric Requested by John Gardiner Myers of CMU. 169466338Seric CONFIG: some UUCP code was still included even if FEATURE(nouucp) 169566338Seric was specified. 169666338Seric 169766338Seric6.52/6.24 93/04/10 169866338Seric Clean up some minor glitches on error return messages pointed out 169966338Seric by Motonori Nakamura of Kyoto University. 170066338Seric Fix reply() to not reset SmtpReplyBuffer on fatal errors; this 170166338Seric was supposed to reset SmtpMsg Buffer. This makes the 170266338Seric client side code virtually useless. Reported by Allan 170366338Seric E Johannesen of WPI and Phil Brandenberger of Swarthmore. 170466338Seric Better debug messages if fuzzy is disabled, suggested by Allan 170566338Seric E Johannesen of WPI. 170666338Seric Offset SmtpReplyBuffer by four in usersmtp when checking for 170766338Seric loopback. From Eric Wassenaar. 170866338Seric Don't set $s until after runinchild in srvrsmtp -- otherwise 170966338Seric it gets cleared. From Eric Wassenaar. 171066338Seric Implement IDA-style $&x for deferred macro expansion. 171166338Seric More POSIX compatibility. 171266338Seric CONFIG: Hide unqualified hostnames behind %-hack using $s as the 171366338Seric actual sender. This is only done if $r is non-null, that 171466338Seric is, if this is not locally submitted mail. 171566338Seric CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host 171666338Seric names to internet domains. A program contributed by 171766338Seric John Gardiner Myers of CMU to create the maps is included 171866338Seric in the contrib directory (in the "misc" tar file). 171966338Seric CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP 172066338Seric hosts. There is currently no tool to create this map. 172166338Seric 172266338Seric6.51/6.23 93/04/04 172366338Seric Add D= mailer flag to specify a path of possible working directories 172466338Seric in which to execute the mailer. This is intended for the 172566338Seric prog mailer; some shells can get upset if they don't have 172666338Seric access to the current directory. 172766338Seric Add RFC 1413 (IDENT) protocol support. This is only very loosely 172866338Seric tested. This adds a $_ macro to be the authenticated 172966338Seric info (in ``user@domain [address]'' form) and debug flag 173066338Seric 9 to trace the protocol. 173166338Seric Check for loopbacks in usersmtp instead of srvrsmtp -- there is no 173266338Seric reason for a local agent to not be talking to the localhost 173366338Seric (although the inverse is not true). 173466338Seric Add a few hooks for automated map rebuilding. This is certainly 173566338Seric not done yet. 173666338Seric CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is, 173766338Seric user's home directory then the root. 173866338Seric CONFIG: Log RFC 1413 identification in Received: line. 173966338Seric 174066338Seric6.50/6.22 93/04/01 174166338Seric Fixes to requeueing code to make it compute priority, nrcpts, 174266338Seric and the like properly. 174366338Seric 174466338Seric6.49/6.22 93/04/01 174566338Seric Diagnose incorrect privacy flags. Suggested by Bryan Costales 174666338Seric of ICSI. 174766338Seric Some ANSI C fixes. 174866338Seric Arrange to quote backslashes as well as other special characters 174966338Seric in the phrase part of a route-addr. 175066338Seric Some fixes to FallBackMX code suggested by Motonori Nakamura of 175166338Seric Kyoto University. 175266338Seric More vigorous zeroing of CurHostAddr to avoid logging of bogus 175366338Seric host addresses when you are actually just printing 175466338Seric information from the MCI structure; problem noted by 175566338Seric Michael Corrigan of U.C. San Diego. 175666338Seric Don't ignore rest of queue if any job is not runnable. This can 175766338Seric also cause an incorrect job to be lost. Fix from 175866338Seric Eric Wassenaar. 175966338Seric Always respond "quickly" to RCPT command; do alias expansion and 176066338Seric the like later. This also means that mail for lists that 176166338Seric have errors will be acccepted, and an error sent back 176266338Seric later. This is done by instantiating the queue file 176366338Seric and then immediately running and requeueing it. 176466338Seric 176566338Seric6.48/6.22 93/03/30 176666338Seric Fix incorrect diagnosis of infinite loop in ruleset. Problem noted 176766338Seric by several people. 176866338Seric Improve information printed when infinite loops are discovered. 176966338Seric Zero CurHostAddr to fix erroneous internet addresses in log when no 177066338Seric addresses can be bound. Pointed out by Motonori Nakamura 177166338Seric of Kyoto University. 177266338Seric "Probe" SMTP connections using RSET instead of NOOP "just in case". 177366338Seric Suggested by John Gardiner Myers of CMU. 177466338Seric Don't warn about -f if you are setting sender to yourself. 177566338Seric 177666338Seric6.47/6.22 93/03/29 177766338Seric Fix incompatible call to endmailer in smtpquit which causes core 177866338Seric dumps. Noted by Allan E Johannesen of WPI. 177966338Seric HPUX portability changes from Michael J. Corrigan of UC San Diego. 178066338Seric Require MAIL before RCPT command in srvrsmtp.c. This had been 178166338Seric intentional from the 821 draft days when the order wasn't 178266338Seric clear, but is silly now. 178366338Seric Fix bug in nis_magic routine that was initializing parameters 178466338Seric incorrectly. Fix from Takahiro Kanbe of Fuji Xerox 178566338Seric Information Systems Co., Ltd. 178666338Seric Change default for PrivacyFlags in conf.c to 0 -- since it always 178766338Seric "or"s in new values, there was no way to turn off the 178866338Seric AuthWarning stuff. 178966338Seric Add O option to set SMTP daemon options. 179066338Seric Add V option to set fallback MX host. This always sorts at lower 179166338Seric priority than anything it gets from the name server. It 179266338Seric should only be used for environments with very bad network 179366338Seric connectivity. Requested by several people. 179466338Seric Log sending info. It's not clear this is a good idea. 179566338Seric CONFIG: fix typo in mailertable code. Noted by Phil Brandenberger 179666338Seric of Swarthmore. 179766338Seric CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options 179866338Seric O and V, respectively. 179966338Seric 180066338Seric6.46/6.21 93/03/26 180166338Seric Fix botch in server SMTP that broke transactions that did not 180266338Seric use HELO first (like MH). Fix from Michael Corrigan 180366338Seric of U.C. San Diego. 180466338Seric Fall back to other MX records if there is an error anywhere 180566338Seric in delivery (actually on MAIL or DATA -- RCPT is harder). 180666338Seric Suggested by John Gardiner Myers and Motonori Nakamura. 180766338Seric Revert to non-prototypes -- it turns out that our ANSI C 180866338Seric compiler is more forgiving than most others about 180966338Seric mixing prototyped extern declarations with non-prototyped 181066338Seric function definitions. 181166338Seric Fix a problem with multi-word class matching pointed out by 181266338Seric Neil Rickert. Given: 181366338Seric CX b a.b.c 181466338Seric R$+ $=X $+ $: $1 < $2 > $3 181566338Seric the input "user@a.b.c" failed instead of being properly 181666338Seric rewritten as "user@a.<b>.c". 181766338Seric Neil also convinced me that it was correct that $~ should match 181866338Seric only one token -- the problem is that it's always possible 181966338Seric to add another token, so $~ matches far too eagerly. 182066338Seric 182166338Seric6.45/6.21 93/03/25 182266338Seric Implement multi-word classes (properly!). 182366338Seric 182466338Seric6.44/6.21 93/03/25 182566338Seric Add X-Authentication-Warning: headers to clue users into possible 182666338Seric attempts to forge mail. This is on the authwarnings 182766338Seric privacy flag, but is the default. Suggested by Bryan 182866338Seric Costales of ICSI. 182966338Seric Pass default units for convtime in so they can be more reasonable. 183066338Seric Allow config files to always add a new Comments: header (i.e., 183166338Seric they will be added even if an old one already exists). 183266338Seric Suggested by Bryan Costales of ICSI. 183366338Seric Allow config files to delete an existing Return-Path: header. 183466338Seric These should only be added at final delivery. Suggested 183566338Seric by Bryan Costales of ICSI. 183666338Seric Some debugging additions. Suggested by Bryan Costales of ICSI. 183766338Seric Clean up logging of Family 0 addresses. Noted by David Muir 183866338Seric Sharnoff and others. 183966338Seric Add a "dequote" map class. This allows config files to strip 184066338Seric quotes off of addresses. Note that this is not a builtin 184166338Seric map, just a class -- so you have to define the map 184266338Seric using the K line. 184366338Seric Fix a bug in the queueup() loop getting a locked tf where in 184466338Seric very odd cases it can fall off the bottom and core dump. 184566338Seric Of course, it was P{r Emanuelsson who found it.... 184666338Seric Open a new transcript when splitting an envelope. Problem found 184766338Seric by Allan E Johannesen of WPI. 184866338Seric Improved error output in endmailer if the mailer core dumps. 184966338Seric CONFIG: Fix typo in UUCP mailer definition. 185066338Seric CONFIG: Default several of the new options on: eight bit input, 185166338Seric privacy flags set to "authwarnings", and message warning 185266338Seric set to 4h. 185366338Seric CONFIG: Use dequote map. 185466338Seric 185566338Seric6.43/6.20 93/03/23 185666338Seric Fix problem with assumption of an sa_len field in a generic 185766338Seric sockaddr -- it turns out that most vendors haven't 185866338Seric picked up this (very important) fix. 185966338Seric Change compilation flags for daemon code -- select one or both 186066338Seric of NETINET or NETISO, but don't ever set DAEMON manually. 186166338Seric CONFIG: add FEATURE(mailertable) to do IDA-style mailertables. 186266338Seric 186366338Seric6.42/6.19 93/03/19 186466338Seric Use Postmaster as default fallback return address, not root. 186566338Seric POSIX changes for file descriptor handling. 186666338Seric Diagnose errors writing new queue file. 186766338Seric If you change the owner using an owner- alias, also change the 186866338Seric error mode to EM_MAIL so that errors don't get dropped 186966338Seric into an inappropriate directory. Problem noted by 187066338Seric Allan E Johannesen of WPI. 187166338Seric If you are su'ed to root, send email as who you really are, not 187266338Seric as root. From Brian Kantor of U.C. San Diego. 187366338Seric Allow warning messages to be sent after a configurable interval 187466338Seric has passed without delivery. The message is sent only 187566338Seric once per envelope. This changes the format of the qf 187666338Seric file to have an F line, and the format of the T option 187766338Seric to accept take the format "return/warn" (both intervals). 187866338Seric Don't force all local names to lower case -- this was left over 187966338Seric from the wierd handling of case mapping on aliases. It 188066338Seric is now driven (as expected) by the "u" mailer flag. 188166338Seric Problem noted by P{r Emanuelsson. 188266338Seric Fix problem that caused headers on returned email to be trashed; 188366338Seric they were getting freed, but are still accessible via 188466338Seric BlankEnvelope. 188566338Seric Fix problem that caused bogus ids to be created on returned 188666338Seric mail. 188766338Seric Add support for ISO and other non-INET networking. This is by 188866338Seric no means finished yet. This does assume a lot of other 188966338Seric system support, like a version of gethostbyname that 189066338Seric returns non-AF_INET addresses. 189166338Seric CONFIG: change default on prog mailer to keep upper case in 189266338Seric user names (i.e., in the program command line). 189366338Seric CONFIG: strip trailing dots off of hosts in uucp mailer before 189466338Seric convert to bang format. 189566338Seric CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H 189666338Seric (MAIL_HUB) delivery that doesn't add local domain. Note 189766338Seric that this violates 821, but is probably "more correct" 189866338Seric for what we are trying to do. Problem pointed out by 189966338Seric Michael Graff of Iowa State. 190066338Seric 190166338Seric6.41/6.18 93/03/18 190266338Seric Clean up unnecessary creates of queue ids (i.e., empty qf files) 190366338Seric when not needed, such as when starting up an SMTP 190466338Seric connection. 190566338Seric Fix problem where split envelopes aren't instantiated in the queue. 190666338Seric This is quite a serious bug. 190766338Seric Owner- aliases had problems with leading spaces causing a 190866338Seric premature delimitation. 190966338Seric 191066338Seric6.40/6.18 93/03/18 191166338Seric Have ending 250 (after DATA) include the id; suggested by 191266338Seric Brian Kantor of UC San Diego. 191366338Seric Add logging on envelope splitting. 191466338Seric Change queue ids to have one more letter encoding the hour of 191566338Seric the day so that during a single day there is a greater 191666338Seric likelihood of uniqueness; requested by Brian Kantor. 191766338Seric 191866338Seric6.39/6.18 93/03/18 191966338Seric Fix minor compile problem if LOCKF is defined. 192066338Seric Define size of tobuf in conf.h. Observed by Toshinari Takahashi 192166338Seric of Toshiba. 192266338Seric Restore e_sender -- this is equivalent to e_from.q_paddr without 192366338Seric decorations such as angle brackets and comments. 192466338Seric OSF/1 on Alpha changes from Allan E Johannesen of WPI. 192566338Seric CONFIG: fix typo in S3 for list syntax (;: => :;). Thanks to 192666338Seric Christopher Hoover for noting the problem. 192766338Seric 192866338Seric6.38/6.17 93/03/17 192966338Seric Pass envelope to disconnect to avoid another use of CurEnv, which 193066338Seric can apparently end up being null at inopportune times. 193166338Seric Log "received from" as "relay=" for consistency (suggested by 193266338Seric John Gardiner Myers). 193366338Seric Fix major bug in header handling: if no From: line existed in 193466338Seric the header (so sendmail inserts one), and the sender is 193566338Seric an alias that has an owner, the From: line shows the 193666338Seric owner (as well as the envelope). Fixed by early binding 193766338Seric the headers (which will change debugging output). 193866338Seric HPUX portability patches from Michael J. Corrigan of UC San Diego. 193966338Seric Some attempts to adapt better to out of open file conditions. 194066338Seric Some changes to ctladdr handling in queue files. 194166338Seric 194266338Seric6.37/6.17 93/03/16 194366338Seric MAJOR CHANGE: delete e_sender and e_returnpath (why are these 194466338Seric different from e_from?) and $< macro. 194566338Seric Log correct IP address in relay= field even if the connection 194666338Seric times out. 194766338Seric Log "received from [RESPONSE]" on EF_RESPONSE messages (from 194866338Seric John Gardiner Myers). 194966338Seric Fixes to SysExMsg logging (sometimes just got "message: %s" 195066338Seric instead of "message: error message"), noted by Eric 195166338Seric Wassenaar. Also reported by Motonori Nakamura. 195266338Seric Improvements to MX piggybacking code, from Motonori Nakamura. 195366338Seric Fix case where CurHostName points to an auto variable that has 195466338Seric been deallocated (from Motonori Nakamura). 195566338Seric Fix bug causing newlines to be included in aliases if option 195666338Seric "n" (check alias RHS) is set; bug noted by David Muir 195766338Seric Sharnoff. 195866338Seric Fix problem causing user names that should be mapped to lower 195966338Seric case to not be mapped if they are sent during a queue 196066338Seric run. This greatly simplifies the case mapping code. 196166338Seric Problem noted by Allan E Johannesen of WPI. 196266338Seric Don't do recipient address rewriting in buildaddr. This 196366338Seric improperly did recipient rewriting on sender addresses, 196466338Seric and just seems bogus in general -- but the change could 196566338Seric break some .cf files. 196666338Seric Pass TZ envariable to child processes for System V. 196766338Seric CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to 196866338Seric define those rulesets. 196966338Seric KNOWN PROBLEM: I have seen some problems on SunOS that causes 197066338Seric the User Data Base to give errors on some addresses. I 197166338Seric have tracked the problem back at least as far as 93.02.15 197266338Seric (version 6.22). Running with debugging on makes it 197366338Seric go away, so I conclude that it is referencing uninitialized 197466338Seric stack data. I haven't been able to track this down yet. 197566338Seric 197666338Seric6.36/6.16 93/03/08 197766338Seric Allow local mailer to specify $@host -- this lets you assign the 197866338Seric "foo" part of jgm+foo to $h for passing in to the local 197966338Seric mailer. 198066338Seric Additional debug printing in getcanonname (show query type). 198166338Seric Don't add the e_fromdomain on sender addresses -- this interacts 198266338Seric wierdly with the owner- code. 198366338Seric Improve delivery logging to not log obvious or meaningless stuff. 198466338Seric Include numeric IP address in Received: lines per RFC 1123 section 198566338Seric 5.2.8. 198666338Seric Fixed a bug in checking stat() return value if restrictmailq is 198766338Seric set. Also, check the entire group set instead of just the 198866338Seric primary group. Both from John Gardiner Myers. 198966338Seric Don't have usrerr automatically print errno, since this is often 199066338Seric misleading. 199166338Seric Use transienterror() in makeconnection after connect() fails and 199266338Seric in openmailer after execve() fails (from Eric Wassenaar). 199366338Seric Also moved transienterror() from util.c to conf.c. 199466338Seric Clean up from= logging on response messages. 199566338Seric Undo patch allowing prescan to return a null vector -- it breaks 199666338Seric too many things. 199766338Seric Config: FEATURE(notsticky) lets you use UDB for everything coming 199866338Seric in to the machine, even if it is specifically targetted 199966338Seric to this machine. Without it, UDB is bypassed if the user 200066338Seric name is fully qualified. 200166338Seric Config: fix another minor botch with <> (local mailer wasn't 200266338Seric mapping them properly). 200366338Seric 200466338Seric6.35/6.15 93/03/05 200566338Seric Fix getrealhostname to return null if sinlen <= 0 -- this can 200666338Seric occur if stdin is a pipe. 200766338Seric Avoid infinite loop in getcanonname if name server return 200866338Seric NO_DATA (for example). 200966338Seric Config: avoid having C flag qualify list syntax and error syntax. 201066338Seric 201166338Seric6.34/6.14 93/03/05 201266338Seric Fix logging in deliver to not pass too many parameters to Ultrix 201366338Seric versions of syslog. 201466338Seric Don't write the pid file until after the daemon has actually 201566338Seric opened and conditioned the connection. 201666338Seric Consider addresses "different" if their q_uids differ (so that 201766338Seric two users forwarding to the same program will be seen 201866338Seric as different, rather than the same). 201966338Seric Fix problem with bad parameters in main() -- they set ExitStat 202066338Seric but don't exit. 202166338Seric Fix null pointer references through RealHostName -- painfully 202266338Seric discovered by Allan E Johannesen of WPI. 202366338Seric Fix bug causing user@@localhost to core dump (yuch). 202466338Seric Config: don't put two @host.dom.ain on users in $=E in SMTP 202566338Seric mailer. Also, catch user@ (no host) in ruleset 0. 202666338Seric 202766338Seric6.33/6.13 93/03/03 202866338Seric Config: add confCW_FILE as the name of the cw configuration file 202966338Seric (defaults to /etc/sendmail.cw). From P{r Emanuelsson. 203066338Seric Allow prescan to return a pointer to an empty list -- this is 203166338Seric not an error. Also, clean up error reporting to avoid 203266338Seric double errors (prescan reports once, then the caller 203366338Seric reports again). 203466338Seric Changes to avoid trusting T_ANY queries -- run them, but if you 203566338Seric don't get the info you expected, do T_A and T_MX queries 203666338Seric anyhow. This also fixes an oversight where _res.options 203766338Seric bits were being ignored. 203866338Seric If PRIV_NOVRFY is set, use 252 response code instead of 502 per 203966338Seric RFC 1123 section 5.2.3. It's not 100% clear that this 204066338Seric is correct, but it probably works better with stupid 204166338Seric mailers that do a VRFY and only check the first digit. 204266338Seric 204366338Seric6.32/6.12 93/03/02 204466338Seric Fix uninitialized variable "protocol" in smtp code. 204566338Seric Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI. 204666338Seric Additional hooks for RFC 1427 (ESMTP SIZE extension). This 204766338Seric includes requiring that enoughspace() know the system 204866338Seric block size, which will undoubtedly break most ports. 204966338Seric Trace flag 19 in use for srvrsmtp.c. 205066338Seric Additional logging -- notably the sending mailer name. This 205166338Seric also changes the delivery logging to strict field=value 205266338Seric syntax. 205366338Seric Fix some problems with messages getting sent even to addresses 205466338Seric that had been marked bad -- from Eric Wassenaar. 205566338Seric More WIDE changes: accept host name inside [...] as non-MXed 205666338Seric host. This is intended ONLY for use inside firewalled 205766338Seric environments, where the MX points at the gateway. 205866338Seric Change .cf file conventions so that mapping for <> addresses 205966338Seric don't have an @ in them (to avoid confusing the C mailer 206066338Seric flag). Pointed out by Neil Rickert. 206166338Seric Config extensions for Sam Leffler's FlexFAX software. 206266338Seric 206366338Seric6.31/6.10 93/02/28 206466338Seric Fix some more bugs in alias owner code -- there were some wierd 206566338Seric cases where an error in a non-aliased name would override 206666338Seric the return info in an aliased name with an owner. 206766338Seric Changes from WIDE Project, forwarded to me by Motonori Nakamura: 206866338Seric Log actual delivery host (after MX et al); from 206966338Seric yasuhiro@dcl.co.jp. 207066338Seric Log daemon startup. 207166338Seric Deliver Postmaster copies without a body. 207266338Seric Better logging of SMTP senders. 207366338Seric Send all program email as daemon even when local. 207466338Seric As requested in various forms from many people, accept -qIstring 207566338Seric to limit queue runs to jobs with queue-id matching string. 207666338Seric Similarly for -qRstring for recipients, -qSstring for 207766338Seric senders. 207866338Seric Initial hooks for ESMTP support (see RFC 1425). 207966338Seric Fixed a syntax error in the UUCP mailer specification that caused 208066338Seric core dumps on startup. 208166338Seric Check for missing A= or P= arguments in mailer definitions. 208266338Seric 208366338Seric6.30/6.10 93/02/27 208466338Seric Require FROZENCONFIG compilation flag to include frozen 208566338Seric configuration code. Frozen configuration is really 208666338Seric not a very good idea any more, particularly in shared 208766338Seric library environments. 208866338Seric Do better checking of errno after opens of :include: and .forward 208966338Seric files to defer delivery on network and other transient 209066338Seric errors. Suggestion from Craig Everhart. 209166338Seric Fix minor botch in read timeout macro processing. 209266338Seric Add FEATURE(nouucp) to config files for sites that know absolutely 209366338Seric nothing about UUCP. 209466338Seric Add built cf files to distribution tape and clarify how to build 209566338Seric them if you don't have the Berkeley make. 209666338Seric Some sizeof(long) portability changes for the Alpha, from Allan 209766338Seric E Johannesen. 209866338Seric Add "restrictmailq" privacy flag -- if set, only people in the same 209966338Seric group as your queue directory can print the queue. If you 210066338Seric set this, be sure you also restrict access to log files.... 210166338Seric Fix another bug in owner-list stuff that can cause data files to 210266338Seric be "lost". 210366338Seric Fix a bug with queue runs that cause forwards to yourself to go 210466338Seric into alias/forwarding loops. I'm still iffy about this 210566338Seric fix. 210666338Seric Fix from Eric Wassenaar for suppression of return message code. 210766338Seric 210866338Seric6.29/6.9 93/02/24 210966338Seric Fix yet another problem in alias owner code -- put the wrong return 211066338Seric address on the enclosed return-to-sender letter. 211166338Seric 211266338Seric6.28/6.9 93/02/24 211366338Seric Fix botch in alias owner code that caused it to not operate if the 211466338Seric error was detected locally. 211566338Seric 211666338Seric6.27/6.9 93/02/24 211766338Seric M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include 211866338Seric file <sys/mount.h>. 211966338Seric Miscellaneous bug fixes from Eric Wassenaar: 212066338Seric sendmail -bv -t logs the from line even though in verify 212166338Seric mode only. 212266338Seric sendmail -v can go into queue mode if shouldqueue returns 212366338Seric TRUE. 212466338Seric Add route-addr pruning per RFC 1123 section 5.3.3. This can be 212566338Seric disabled using the "R" option. 212666338Seric Delete (always undocumented) -R flag (save original recipients); 212766338Seric there are ways to syslog(3) these now. 212866338Seric Clean up SMTP reply codes -- specify them as needed in the code, 212966338Seric instead of in conf.c -- this was needed during the NCP to 213066338Seric TCP transition, but seems silly now. This also changes 213166338Seric parameters to message and nmessage. 213266338Seric Have mailstats read the .cf file to find the sendmail.st file and 213366338Seric get text versions of mailer names. An initial version of 213466338Seric this code was provided by Tuominen Keijo (although the 213566338Seric comments indicate the good bits were written by "E.V."). 213666338Seric Add yet more System V compatibility hacks. 213766338Seric Fix bug in VRFY code (assumes everything must be a local user). 213866338Seric Allow specification of any of the hard-wired pathnames in the 213966338Seric Makefile. 214066338Seric Delete concept of "trusted users" -- this really didn't provide 214166338Seric any security anyway, and caused some problems. 214266338Seric Delete last vestige of support for the word "at" as an equivalent 214366338Seric to the character "@". 214466338Seric Propagate owner-foo alias information into the envelope sender. 214566338Seric Based on code from John Gardiner Myers. This is a major 214666338Seric semantic change -- beware! 214766338Seric Allow $@ on LHS to indicate "match zero" -- this is used to match 214866338Seric the null expression. 214966338Seric 215066338Seric6.26/6.8 93/02/21 215166338Seric Don't "lose" queue runs. Very important fix from (who else?) 215266338Seric Eric Wassenaar. 215366338Seric Completely reset state on RSET command -- from Eric Wassenaar. 215466338Seric Send error messages and return receipts using an envelope sender 215566338Seric of <> regardless of the setting of $n. Rewriting rules 215666338Seric can undo this if they feel the necessity, as might be 215766338Seric needed for networks that don't understand the syntax. 215866338Seric This is permitted by RFC 821 section 3.6 and required by 215966338Seric RFC 1123 section 5.3.3. THIS REQUIRES VERSION 4 CONFIG 216066338Seric FILES because the rulesets must be able to parse <> 216166338Seric properly. 216266338Seric Don't ever send error messages to "<>" -- they will get sent to 216366338Seric the local postmaster or dumped in /usr/tmp/dead.letter 216466338Seric instead. Per RFC 1123 section 5.3.3. 216566338Seric Explicitly check for email to yourself as a dotted quad. You 216666338Seric have to call $[ [ ... ] $] to get this. 216766338Seric Up the message timeout to five days per RFC 1123 section 5.3.1.1. 216866338Seric Make all read timeouts individually configurable, as strongly 216966338Seric recommended by RFC 1123 section 5.3.2. 217066338Seric Use f_bavail (blocks available to regular users) instead of f_bfree 217166338Seric (blocks available to superuser) in free block checks. 217266338Seric Change $d macro to be the current time, not the origination time, 217366338Seric since this is consistent with how it is used now. 217466338Seric Generalization of enoughspace from Eric Wassenaar covering 217566338Seric SGI, Apollo, HPUX, Ultrix, and SunOS. 217666338Seric Ignore process group signals -- some front ends can do this if 217766338Seric you kill a window too quickly. From Eric Wassenaar. 217866338Seric Change umask to 022. 217966338Seric 218066338Seric6.25/6.8 93/02/20 218166338Seric Close all cached connections before calling mailers and after 218266338Seric forking for delivery (caused double closes which resulted 218366338Seric in false errors). 218466338Seric Add FEATURE(redirect) in config files -- this allows you to alias 218566338Seric old addresses to a pointer to the new address that will 218666338Seric give a 551 error message, but not deliver the mail. 218766338Seric Some code changes to make the 551 errors look pretty. 218866338Seric Names of M4 program paths in config files have changed -- they 218966338Seric are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS. 219066338Seric Fix a bug in the QSELFREF code having to do with empty .forward 219166338Seric files, reported by Eric Wassenaar. 219266338Seric Add option "p" (privacy flags); this allows you to tune how 219366338Seric picky the SMTP server will be. This also adds the 219466338Seric confPRIVACY_FLAGS M4 macro in the config files. 219566338Seric Add option "b" (minimum blocks free). If there are fewer than 219666338Seric this number of blocks free on the filesystem containing 219766338Seric the queue directory, the SMTP MAIL command will return 219866338Seric a 452 response and ask you to try again later. This 219966338Seric also adds the confMIN_FREE_BLOCKS M4 macro in the config 220066338Seric files. 220166338Seric Made VRFY just verify (doesn't expand aliases and .forward files); 220266338Seric EXPN does full expansion. RCPT in queue-only mode also 220366338Seric doesn't chase aliases and .forward. 220466338Seric 220566338Seric6.24/6.7 93/02/19 220666338Seric Increase the number of domain search entries in domain.c to allow 220766338Seric for the extra "" entry indicating the root domain. 220866338Seric Reported by Motonori Nakamura of Kyoto U. 220966338Seric Add a "SMART_HOST" in the configs for UUCP-connected sites that 221066338Seric want to forward all mail with extra "@"s to that site. 221166338Seric Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to 221266338Seric be specified as ``mailer:hostname'' to use an alternate 221366338Seric mailer. 221466338Seric Clarified and updated some wording in the Operations Guide. 221566338Seric Add the "c" mailer flag -- this suppresses all comment parts of 221666338Seric addresses (requested by John Curran of NEARnet). 221766338Seric Have -v print prompts in -bt mode even if stdin is not a terminal 221866338Seric (default behaviour is to be silent if not reading from 221966338Seric a terminal). Suggested by Bryan Costales, ICSI. 222066338Seric Move the metacharacters from C0 space (\001-\037) into C1 space 222166338Seric (\201-\237). This also fixes a bunch of potential bugs 222266338Seric with G1 characters (\240-\276) in headers relating to 222366338Seric negative numbers passed to isspace() et al. 222466338Seric Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias 222566338Seric database if YPCOMPAT is #defined. Enhancement from 222666338Seric Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd. 222766338Seric Add "list" Precedence (-30); this can be used with old sendmails 222866338Seric which will map to precedence 0 (which will return error 222966338Seric messages). Suggested by Stephen R. van den Berg. 223066338Seric Many bug fixes from Eric Wassenaar of the National Institute for 223166338Seric Nuclear and High-Energy Physics, Amsterdam: 223266338Seric Clear timeouts properly on open failures in include(). 223366338Seric Don't dereference through NULL if no home directory found. 223466338Seric Re-establish SIGCHLD signal on System 5 in reapchild(). 223566338Seric Avoid NULL pointer reference on -pFOO flag. 223666338Seric Properly handle backslash escapes in comments. 223766338Seric Correctly check reply status on SMTP NOOP command. 223866338Seric Properly save SMTP error message if peer gives 223966338Seric "Service Shutting Down" message. 224066338Seric Avoid writing to the transcript if it couldn't be opened. 224166338Seric Signal errors in SMTP children to parent properly. 224266338Seric Handle self references in a list more globally (include a 224366338Seric QSELFREF bit in the address flags). This enhancement 224466338Seric was suggested by Eric Wassenaar. 224566338Seric Use initgroups() in hpux, even though it's System-V based. The 224666338Seric HASINITGROUPS compile flag can set this on other systems. 224766338Seric This HPUX behaviour was pointed out by Eric Wassenaar. 224866338Seric 224966338Seric6.23/6.6 93/02/16 225066338Seric Clean up handling of LogLevel to make it easier to figure out 225166338Seric what's on what level. 225266338Seric Change log levels to have some consistency: 225366338Seric 1 serious system failures, security problems 225466338Seric 2 lost communications, protocol failures 225566338Seric 3 other serious failures 225666338Seric 4 minor errors 225766338Seric 5 message collection 225866338Seric 6 vrfy logging, creation of return-to-sender 225966338Seric 7 delivery failures 226066338Seric 8 delivery successes 226166338Seric 9 delivery tempfails (queue ups) 226266338Seric 10 database expansion 226366338Seric >64 debugging 226466338Seric Allow IDA-style separated processing on S= and R= in Mailer 226566338Seric definition lines. Note that rulesets 1 and 2 are 226666338Seric still used for both addresses as before. Bruce Lilly 226766338Seric gave a convincing argument that RFC976 insists on 226866338Seric this behaviour. 226966338Seric Added some time zones to arpatounix -- they may not be in the 227066338Seric standards, but they are in use. However, I may delete 227166338Seric arpatounix entirely -- there appears to be no reason 227266338Seric for it to exist. 227366338Seric Change to UUCP mailer (in cf directory) to try to do a saner job. 227466338Seric I'm still not certain about this mailer in general. 227566338Seric 227666338Seric6.22/6.5 93/02/15 227766338Seric Fix bug that prevents saving letters in ~/dead.letter. 227866338Seric Don't add angle brackets in VRFY command if angle brackets already 227966338Seric exist in the address. 228066338Seric Fix bogus error message in udbexpand. 228166338Seric Null terminate host buffers in buildaddr (broken in 6.21) -- 228266338Seric IMPORTANT FIX!! 228366338Seric 228466338Seric6.21/6.5 93/02/15 228566338Seric Fix another incorrect error message in alias.c, found by Azuma 228666338Seric Okamoto. 228766338Seric Fix a couple of problems in the more-configurable config files, 228866338Seric found by Tom Ivar Helbekkmo. 228966338Seric Fix problem with quoted :include: entries. 229066338Seric Don't duplicate the filename on verbose printing of .forward and 229166338Seric :include: contents. 229266338Seric Extend size of prescan buffer (to allow bigger addresses). Also, 229366338Seric detect some buffer overflows. 229466338Seric Log user SMTP protocol errors (log level 4). 229566338Seric 229666338Seric6.20/6.4 93/02/14 229766338Seric Fix another problem in the MCI state machine caused when there 229866338Seric were errors generated from the other end to commands 229966338Seric other than RCPT. 230066338Seric 230166338Seric6.19/6.4 93/02/14 230266338Seric Include load average support for DEC Alpha running OSF/1. 230366338Seric Fix multiple-response problem with errors in MAIL From: line. 230466338Seric Fix SMTP reply codes for invalid address syntaxes (give 501; 230566338Seric never give multiple error messages for a single message). 230666338Seric Fix problem where a cached connection timeout rejects all 230766338Seric later connects to that host. 230866338Seric Fix incorrect error message if alias.c is compiled with DBM only. 230966338Seric Additional changes to fix nested conditionals (from Bruce Lilly). 231066338Seric Recover more gracefully from operating system failures, particularly 231166338Seric NULL returns from openmailer (from Noritoshi Demizu, 231266338Seric OMRON Corporation). 231366338Seric Log forward, alias, and userdb expand operations on log level 10; 231466338Seric concept suggested by P{r (Pell) Emanuelsson. 231566338Seric Changes for HPUX 8.07 compatibility. 231666338Seric 231766338Seric6.18/6.4 93/02/12 231866338Seric Allow any config option to be set using an M4 define. 231966338Seric Change UNAME compile flag to HASUNAME for IDA compatibility 232066338Seric (besides, it's a better name). 232166338Seric Note in README that on SunOS it must be linked -Bstatic. 232266338Seric Fairly major change in domain.c to handle wildcard MX records 232366338Seric more rationally. NOTE: the "w" option (no wildcard MX 232466338Seric records match local domain) has been eliminated. 232566338Seric Fix some unset variable references pointed out by Bruce Lilly. 232666338Seric Fix host name in process titles when using cached connection. 232766338Seric 232866338Seric6.17/6.3 93/01/28 232966338Seric Fix System 5 compatibility changes to be compatible with the rest 233066338Seric of the world. 233166338Seric 233266338Seric6.16/6.3 93/01/28 233366338Seric Experimental fix for problem handling errors in the SMTP 233466338Seric protocol in conjunction with connection caching. 233566338Seric System 5 compatibility changes. 233666338Seric 233766338Seric6.15/6.3 93/01/26 233866338Seric Fix a bug that causes local mail delivered using -odq to be 233966338Seric eliminated as a duplicate (because it matched the 234066338Seric ctladdr, now passed in as a C line). These changes 234166338Seric are pretty tricky...... 234266338Seric 234366338Seric6.14/6.3 93/01/25 234466338Seric Add debugging for some MCI errors. 234566338Seric 234666338Seric6.13/6.3 93/01/22 234766338Seric Fix -e compatibility flag to take a value. 234866338Seric Fix a couple of minor compilation warnings on Sun cc. 234966338Seric Improve error messages in a few cases to be more self-explanatory. 235066338Seric 235166338Seric6.12/6.3 93/01/21 235266338Seric Fix yet-another problem with environment handling, pointed out 235366338Seric by Yoshitaka Tokugawa and Tom Ivar Helbekkmo. 235466338Seric Some heuristics to try to limit resource exhaustion problems 235566338Seric if a downstream host has been down for a long time. 235666338Seric Fix problem with incorrect host name being logged in "Connection 235766338Seric timed out" messages (from Tom Ivar Helbekkmo). 235866338Seric Fix some ANSI C problems (from Takahiro Kanbe). 235966338Seric Properly log message sender on returned mail during queue run. 236066338Seric Count number of recipients properly. 236166338Seric Fix a problem in yp map code. 236266338Seric Diagnose "message timed out" (from Motonori Nakamura). 236366338Seric 236466338Seric6.11/6.3 93/01/20 236566338Seric Fix problem with address delimitor inside quotes. 236666338Seric Define $k and $=k to be the UUCP name (from the uname call) 236766338Seric based on code from Bruce Lilly. 236866338Seric 236966338Seric6.10/6.2 93/01/18 237066338Seric Implement arpatounix (largely code from Bruce Lilly). 237166338Seric Log more info (suggested by John Myers). 237266338Seric Allow nested $?...$|...$. (inspired by code from Bruce Lilly of 237366338Seric Sony US). 237466338Seric POSIX compatibility (noted by Keith Bostic). 237566338Seric Handle SMTP MAIL command errors properly (urged by several people, 237666338Seric notably John Myers of CMU). 237766338Seric Do early diagnosis of .cf errors (notably referencing a RHS 237866338Seric substitution that isn't on the LHS). 237966338Seric Adjust checkpointing to better handle batched recipients, suggested 238066338Seric by John Myers. 238166338Seric Fix miscellaneous bugs. 238266338Seric (config files:) Implement MAIL_HUB for all local mail (to handle 238366338Seric NFS-mounted directories) as urged by Tom Ivar Helbekkmo 238466338Seric of the Norwegian School of Economics. 238566338Seric 238666338Seric6.9/6.1 93/01/13 238766338Seric Environment handling simplification/bug fix -- child processes 238866338Seric get a minimal, fixed environment. This avoids different 238966338Seric behaviour in queue runs. 239066338Seric Handle commas inside comments properly. 239166338Seric Properly limit large messages submitted in -obq mode. 239266338Seric 239366338Seric6.8/6.1 93/01/10 239466338Seric Check mtime of thaw file against .cf and sendmail binary, based on 239566338Seric code from John Myers. 239666338Seric 239766338Seric6.7/6.1 93/01/10 239866338Seric MX piggybacking, based on code from John Myers@CMU. 239966338Seric Allow checkcompat to return -1 to mean tempfail. 240066338Seric Bug fix in m_mno computation. 240166338Seric 240266338Seric6.6/6.1 93/01/09 240366338Seric Tuning of queueing functions as recommended by John Gardiner Myers. 240466338Seric Return mail headers (no body) on messages with negative precedence. 240566338Seric Minor other bug fixes. 240666338Seric 240766338Seric6.5/6.1 93/01/03 240866338Seric Fix botch causing queued headers to have ?XX? prefixes. 240966338Seric 241066338Seric6.4/6.1 93/01/02 241166338Seric Changes to recognize special mailer types (e.g., file) early. 241266338Seric 241366338Seric6.3/6.1 93/01/01 241466338Seric Pass timeouts to sfgets. 241566338Seric Check for control characters in addresses. 241666338Seric Fixed deferred error reporting. 241766338Seric Report duplicate aliases. 241866338Seric Handle mixed case recursive aliases. 241966338Seric Misc bug fixes. 242066338Seric 242166338Seric6.2/6.1 92/12/30 242266338Seric Put return-receipt-to on a conf.c flag (but don't set it). 242366338Seric Fix minor syslog problem. 2424