166352Seric SENDMAIL RELEASE NOTES 2*68503Seric @(#)RELEASE_NOTES 8.6.11.1 (Berkeley) 03/08/95 366352Seric 466352SericThis listing shows the version of the sendmail binary, the version 566352Sericof the sendmail configuration files, the date of release, and a 666352Sericsummary of the changes in that release. 766352Seric 8*68503Seric8.6.11/8.6.11 95/03/08 9*68503Seric The ``possible attack'' message would be logged more often 10*68503Seric than necessary if you are using Pine as a user agent. 11*68503Seric The wrong host would be reported in the ``possible attack'' 12*68503Seric message when attempted from IDENT. 13*68503Seric In some cases the syslog buffer could be overflowed when 14*68503Seric reporting the ``possible attack'' message. This can 15*68503Seric cause denial of service attacks. Truncate the message 16*68503Seric to 80 characters to prevent this problem. 17*68503Seric When reading the IDENT response a loop is needed around the 18*68503Seric read from the network to ensure that you don't get 19*68503Seric partial lines. 20*68503Seric Password entries without any shell listed (that is, a null 21*68503Seric shell) wouldn't match as "ok". Problem noted by 22*68503Seric Rob McMahon. 23*68503Seric When running BIND 4.9.x a problem could occur because the 24*68503Seric _res.options field is initialized differently than it 25*68503Seric was historically -- this requires that sendmail call 26*68503Seric res_init before it tweaks any bits. 27*68503Seric Fix an incompatibility in openxscript() between the file open mode 28*68503Seric and the stdio mode passed to fdopen. This caused UnixWare 29*68503Seric 2.0 to have conniptions. Fix from Martin Sohnius of 30*68503Seric Novell Labs Europe. 31*68503Seric Fix problem with static linking of local getopt routine when 32*68503Seric using GNU's ld command. Fix from John Kennedy of 33*68503Seric Cal State Chico. 34*68503Seric It was possible to turn off privacy flags. Problem noted by 35*68503Seric *Hobbit*. 36*68503Seric Be more paranoid about writing files. Suggestions by *Hobbit* 37*68503Seric and Liudvikas Bukys. 38*68503Seric MAKEMAP: fixes for 64 bit machines (DEC Alphas in particular) 39*68503Seric from Spider Boardman. 40*68503Seric CONFIG: No changes (version number only, to keep it in sync 41*68503Seric with the binaries). 42*68503Seric 4368280Seric8.6.10/8.6.10 95/02/10 4468274Seric SECURITY: Diagnose bogus values to some command line flags that 4568274Seric could allow trash to get into headers and qf files. 4668274Seric Validate the name of the user returned by the IDENT protocol. 4768274Seric Some systems that really dislike IDENT send intentionally 4868274Seric bogus information. Problem pointed out by Michael Bushnell 4968274Seric of the Free Software Foundation. Has some security 5068274Seric implications. 5168274Seric Fix a problem causing error messages about DNS problems when 5268274Seric the host name contained a percent sign to act oddly 5368274Seric because it was passed as a printf-style format string. 5468274Seric In some cases this could cause core dumps. 5568274Seric Avoid possible buffer overrun in returntosender() if error 5668274Seric message is quite ling. From Fletcher Mattox of the 5768274Seric University of Texas. 5868274Seric Fix a problem that would silently drop "too many hops" error 5968274Seric messages if and only if you were sending to an alias. 6068274Seric From Jon Giltner of the University of Colorado and 6168274Seric Dan Harton of Oak Ridge National Laboratory. 6268274Seric Fix a bug that caused core dumps on some systems if -d11.2 was 6368274Seric set and e->e_message was null. Fix from Bruce Nagel of 6468274Seric Data General. 6568274Seric Fix problem that can still cause df files to be left around 6668274Seric after "hop count exceeded" messages. Fix from Andrew 6768274Seric Chang and Shau-Ping Lo of SunSoft. 6868274Seric Fix a problem that can cause buffer overflows on very long 6968274Seric user names (as might occur if you piped to a program 7068274Seric with a lot of arguments). 7168274Seric Avoid returning an error and re-queueing if the host signature 7268274Seric is null; this can occur on addresses like ``user@.''. 7368274Seric Problem noted by Wesley Craig and the University of 7468274Seric Michigan. 7568274Seric Avoid possible calls to malloc(0) if MCI caching is turned 7668274Seric off. Bug fix from Pierre David of the Laboratoire 7768274Seric Parallelisme, Reseaux, Systemes et Modelisation (PRiSM), 7868274Seric Universite de Versailles - St Quentin, and Jacky 7968274Seric Thibault. 8068274Seric Make a local copy of the line being sent via senttolist() -- in 8168274Seric some cases, buffers could get trashed by map lookups 8268274Seric causing it to do unexpected things. This also simplifies 8368274Seric some of the map code. 84*68503Seric CONFIG: No changes (version number only, to keep it in sync 85*68503Seric with the binaries). 8668274Seric 8766956Seric8.6.9/8.6.9 94/04/19 8866920Seric Do all mail delivery completely disconnected from any terminal. 8966920Seric This provides consistency with daemon delivery and 9066920Seric may have some security implications. 9166920Seric Make sure that malloc doesn't get called with zero size, 9266920Seric since that fails on some systems. Reported by Ed 9366920Seric Hill of the University of Iowa. 9466920Seric Fix multi-line values for $e (SMTP greeting message). Reported 9566920Seric by Mike O'Connor of Ford Motor Company. 9666920Seric Avoid syserr if no NIS domain name is defined, but the map it 9766920Seric is trying to open is optional. From Win Bent of USC. 9866920Seric Changes for picky compilers from Ed Gould of Digital Equipment. 9966920Seric Hesiod support for UDB from Todd Miller of the University of 10066920Seric Colorado. Use "hesiod" as the service name in the U 10166920Seric option. 10266920Seric Fix a problem that failed to set the "authentic" host name (that 10366920Seric is, the one derived from the socket info) if you called 10466920Seric sendmail -bs from inetd. Based on code contributed by 10566920Seric Todd Miller (this problem was also reported by Guy Helmer 10666920Seric of Dakota State University). This also fixes a related 10766996Seric problem reported by Liudvikas Bukys of the University of 10866996Seric Rochester. 10966920Seric Parameterize "nroff -h" in all the Makefiles so people with 11066920Seric variant versions can use them easily. Suggested by 11166920Seric Peter Collinson of Hillside Systems. 11266920Seric SMTP "MAIL" commands with multiple ESMTP parameters required two 11366920Seric spaces between parameters instead of one. Reported by 11466920Seric Valdis Kletnieks of Virginia Tech. 11566920Seric Reduce the number of system calls during message collection by 11666920Seric using global timeouts around the collect() loop. This 11766920Seric code was contributed by Eric Wassenaar. 11866920Seric If the initial hostname name gathering results in a name 11966920Seric without a dot (usually caused by NIS misconfiguration) 12066920Seric and BIND is compiled in, directly access DNS to get 12166920Seric the canonical name. This should make life easier for 12266920Seric Solaris systems. If it still can't be resolved, and 12366920Seric if the name server is listed as "required", try again 12466920Seric in 30 seconds. If that also fails, exit immediately to 12566920Seric avoid bogus "config error: mail loops back to myself" 12666920Seric messages. 12766920Seric Improve the "MAIL DELETED BECAUSE OF LACK OF DISK SPACE" error 12866920Seric message to explain how much space was available and 12966920Seric sound a bit less threatening. Suggested by Stan Janet 13066920Seric of the National Institute of Standards and Technology. 13166920Seric If mail is delivered to an alias that has an owner, deliver any 13266920Seric requested return-receipt immediately, and strip the 13366920Seric Return-Receipt-To: header from the subsequent message. 13466920Seric This prevents a certain class of denial of service 13566920Seric attack, arguably gives more reasonable semantics, and 13666920Seric moves things more towards what will probably become a 13766920Seric network standard. Suggested by Christopher Davis of 13866920Seric Kapor Enterprises. 13966920Seric Add a "noreceipts" privacy flag to turn off all return receipts 14066920Seric without recompiling. 14166920Seric Avoid printing ESMTP parameters as part of the error message 14266920Seric if there are errors during parsing. This change is 14366920Seric purely cosmetic. 14466920Seric Avoid sending out error messages during the collect phase of 14566920Seric SMTP; there is an MVS mailer from UCLA that gets 14666920Seric confused by this. Of course, I think it's their bug.... 14766920Seric Check for the $j macro getting undefined, losing a dot, or getting 14866920Seric lost from $=w in the daemon before accepting a connection; 14966920Seric if it is, it dumps state, prints a LOG_ALERT message, 15066920Seric and drops core for debugging. This is an attempt to 15166920Seric track down a bug that I thought was long since gone. 15266920Seric If you see this, please forward the log fragment to 15366920Seric sendmail@CS.Berkeley.EDU. 15466920Seric Change OLD_NEWDB from a #ifdef to a #if so it can be turned off 15566920Seric with -DOLD_NEWDB=0 on the command line. From Christophe 15666920Seric Wolfhugel. 15766920Seric Instead of trying to truncate the listen queue for the server 15866920Seric SMTP port when the load average is too high, just close 15966920Seric the port completely and reopen it later as needed. 16066920Seric This ensures that the other end gets a quick "connection 16166920Seric refused" response, and that the connection can be 16266920Seric recovered later. In particular, some socket emulations 16366920Seric seem to get confused if you tweak the listen queue 16466920Seric size around and can never start listening to connections 16566920Seric again. The down side is that someone could start up 16666920Seric another daemon process in the interim, so you could 16766920Seric have multiple daemons all not listening to connections; 16866920Seric this could in turn cause the sendmail.pid file to be 16966920Seric incorrect. A better approach might be to accept the 17066920Seric connection and give a 421 code, but that could break 17166920Seric other mailers in mysterious ways and have paging behaviour 17266920Seric implications. 17366920Seric Fix a glitch in TCP-level debugging that caused flag 16.101 to 17466920Seric set debugging on the wrong socket. From Eric Wassenaar. 17566920Seric When creating a df* temporary file, be sure you truncate any 17666920Seric existing data in the file -- otherwise system crashes 17766920Seric and the like could result in extra data being sent. 17866920Seric DOC: Replace the CHANGES-R5-R8 readme file with a paper in the 17966920Seric doc directory. This includes some additional 18066920Seric information. 18166920Seric CONFIG: change UUCP rules to never add $U! or $k! on the front 18266920Seric of recipient envelope addresses. This should have been 18366920Seric handled by the $&h trick, but broke if people were 18466920Seric mixing domainized and UUCP addresses. They should 18566920Seric probably have converted all the way over to uucp-uudom 18666920Seric instead of uucp-{new,old}, but the failure mode was to 18766920Seric loop the mail, which was bad news. 18866920Seric Portability fixes: 18966920Seric Newer BSDI systems (several people). 19066920Seric Older BSDI systems from Christophe Wolfhugel. 19166920Seric Intergraph CLIX, from Paul Southworth of CICNet. 19266920Seric UnixWare, from Evan Champion. 19366920Seric NetBSD from Adam Glass. 19466920Seric Solaris from Quentin Campbell of the University of 19566920Seric Newcastle upon Tyne. 19666920Seric IRIX from Dean Cookson and Bill Driscoll of Mitre 19766920Seric Corporation. 19866920Seric NCR 3000 from Kevin Darcy of Chrysler Corporation. 19966920Seric SunOS (it has setsid() and setvbuf() calls) from 20066920Seric Jonathan Kamens of OpenVision Technologies. 20166920Seric HP-UX from Tor Lillqvist. 20266920Seric New Files: 20366920Seric src/Makefile.CLIX 20466920Seric src/Makefile.NCR3000 20566920Seric doc/changes/Makefile 20666920Seric doc/changes/changes.me 20766920Seric doc/changes/changes.ps 20866920Seric 20966432Seric8.6.8/8.6.6 94/03/21 21066432Seric SECURITY: it was possible to read any file as root using the 21166432Seric E (error message) option. Reported by Richard Jones; 21266432Seric fixed by Michael Corrigan and Christophe Wolfhugel. 21366432Seric 21466356Seric8.6.7/8.6.6 94/03/14 21566356Seric SECURITY: it was possible to get root access by using wierd 21666356Seric values to the -d flag. Thanks to Alain Durand of 21766356Seric INRIA for forwarding me the notice from the bugtraq 21866356Seric list. 21966356Seric 22066352Seric8.6.6/8.6.6 94/03/13 22166352Seric SECURITY: the ability to give files away on System V-based 22266352Seric systems proved dangerous -- don't run as the owner 22366352Seric of a :include: file on a system that allows giveaways. 22466352Seric Unfortunately, this also applies to determining a 22566352Seric valid shell. 22666352Seric IMPORTANT: Previous versions weren't expiring old connections 22766352Seric in the connection cache for a long time under some 22866352Seric circumstances. This could result in resource exhaustion, 22966352Seric both at your end and at the other end. This checks the 23066352Seric connections for timeouts much more frequently. From 23166352Seric Doug Anderson of NCSC. 23266352Seric Fix a glitch that snuck in that caused programs to be run as 23366352Seric the sender instead of the recipient if the mail was 23466352Seric from a local user to another local user. From 23566352Seric Motonori Nakamura of Kyoto University. 23666352Seric Fix "wildcard" on /etc/shell matching -- instead of looking 23766352Seric for "*", look for "/SENDMAIL/ANY/SHELL/". From 23866352Seric Bryan Costales of ICSI. 23966352Seric Change the method used to declare the "statfs" availability; 24066352Seric instead of HASSTATFS and/or HASUSTAT with a ton of 24166352Seric tweaking in conf.c, there is a single #define called 24266352Seric SFS_TYPE which takes on one of six values (SFS_NONE 24366352Seric for no statfs availability, SFS_USTAT for the ustat(2) 24466352Seric syscall, SFS_4ARGS for a four argument statfs(2) call, 24566352Seric and SFS_VFS, SFS_MOUNT, or SFS_STATFS for a two argument 24666352Seric statfs(2) call with the declarations in <sys/vfs.h>, 24766352Seric <sys/mount.h>, or <sys/statfs.h> respectively). 24866352Seric Fix glitch in NetInfo support that could return garbage if 24966352Seric there was no "/locations/sendmail" property. From 25066352Seric David Meyer of the University of Virginia. 25166352Seric Change HASFLOCK from defined/not-defined to a 0/1 definition 25266352Seric to allow Linux to turn it off even though it is a 25366352Seric BSD-like system. 25466352Seric Allow setting of "ident" timeout to zero to turn off the ident 25566352Seric protocol entirely. 25666352Seric Make 7-bit stripping local to a connection (instead of to a 25766352Seric mailer); this allows you to specify that SMTP is a 25866352Seric 7-bit channel, but revert to 8-bit should it advertise 25966352Seric that it supports 8BITMIME. You still have to specify 26066352Seric mailer flag 7 to get this stripping at all. 26166352Seric Improve makesendmail script so it handles more cases automatically. 26266352Seric Tighten up restrictions on taking ownership of :include: files 26366352Seric to avoid problems on systems that allow you to give away 26466352Seric files. 26566352Seric Fix a problem that made it impossible to rebuild the alias 26666352Seric file if it was on a read-only file system. From 26766352Seric Harry Edmon of the University of Washington. 26866352Seric Improve MX randomization function. From John Gardiner Myers 26966352Seric of CMU. 27066352Seric Fix a minor glitch causing a bogus message to be printed (used 27166352Seric %s instead of %d in a printf string for the line number) 27266352Seric when a bad queue file was read. From Harry Edmon. 27366352Seric Allow $s to remain NULL on locally generated mail. I'm not 27466352Seric sure this is necessary, but a lot of people have complained 27566352Seric about it, and there is a legitimate question as to whether 27666352Seric "localhost" is legal as an 822-style domain. 27766352Seric Fix a problem with very short line lengths (mailer L= flag) in 27866352Seric headers. This causes a leading space to be added onto 27966352Seric continuation lines (including in the body!), and also 28066352Seric tries to wrap headers containing addresses (From:, To:, 28166352Seric etc) intelligently at the shorter line lengths. Problem 28266352Seric Reported by Lars-Johan Liman of SUNET Operations Center. 28366352Seric Log the real user name when logging syserrs, since these can have 28466352Seric security implications. Suggested by several people. 28566352Seric Fix address logging of cached connections -- it used to always 28666352Seric log the numeric address as zero. This is a somewhat 28766352Seric bogus implementation in that it does an extra system 28866352Seric call, but it should be an inexpensive one. Fix from 28966352Seric Motonori Nakamura. 29066352Seric Tighten up handling of short syslog buffers even more -- there 29166352Seric were cases where the outgoing relay= name was too long 29266352Seric to share a line with delay= and mailer= logging. 29366352Seric Limit the overhead on split envelopes to one open file descriptor 29466352Seric per envelope -- previously the overhead was three 29566352Seric descriptors. This was in response to a problem reported 29666352Seric by P{r (Pell) Emanuelsson. 29766352Seric Fixes to better handle the case of unexpected connection closes; 29866352Seric this redirects the output to the transcript so the info 29966352Seric is not lost. From Eric Wassenaar. 30066352Seric Fix potential string overrun if you macro evaluate a string that 30166352Seric has a naked $ at the end. Problem noted by James Matheson 30266352Seric <jmrm@eng.cam.ac.uk>. 30366352Seric Make default error number on $#error messages 553 (``Requested 30466352Seric action not taken: mailbox name not allowed'') instead of 30566352Seric 501 (``Syntax error in parameters or arguments'') to 30666352Seric avoid bogus "protocol error" messages. 30766352Seric Strip off any existing trailing dot on names during $[ ... $] 30866352Seric lookup. This prevents it from ending up with two dots 30966352Seric on the end of dot terminated names. From Wesley Craig 31066352Seric of the University of Michigan and Bryan Costales of ICSI. 31166352Seric Clean up file class reading so that the debugging information is 31266352Seric more informative. It hadn't been using setclass, so you 31366352Seric didn't see the class items being added. 31466352Seric Avoid core dump if you are running a version of sendmail where 31566352Seric NIS is compiled in, and you specify an NIS map, but 31666352Seric NIS is not running. Fix from John Oleynick of 31766352Seric Rutgers. 31866352Seric Diagnose bizarre case where res_search returns a failure value, 31966352Seric but sets h_errno to a success value. 32066352Seric Make sure that "too many hops" messages are considered important 32166352Seric enough to send an error to the Postmaster (that is, the 32266352Seric address specified in the P option). This fix should 32366352Seric help problems that cause the df file to be left around 32466352Seric sometimes -- unfortunately, I can't seem to reproduce 32566352Seric the problem myself. 32666352Seric Avoid core dump (null pointer reference) on EXPN command; this 32766352Seric only occurred if your log level was set to 10 or higher 32866352Seric and the target account was an alias or had a .forward file. 32966352Seric Problem noted by Janne Himanka. 33066352Seric Avoid "denial of service" attacks by someone who is flooding your 33166352Seric SMTP port with bad commands by shutting the connection 33266352Seric after 25 bad commands are issued. From Kyle Jones of 33366352Seric UUNET. 33466352Seric Fix core dump on error messages with very long "to" buffers; 33566352Seric fmtmsg overflows the message buffer. Fixed by trimming 33666352Seric the to address to 203 characters. Problem reported by 33766352Seric John Oleynick. 33866352Seric Fix configuration for HASFLOCK -- there were some spots where 33966352Seric a #ifndef was incorrectly #ifdef. Pointed out by 34066352Seric George Baltz of the University of Maryland. 34166352Seric Fix a typo in savemail() that could cause the error message To: 34266352Seric lists to be incorrect in some places. From Motonori 34366352Seric Nakamura. 34466352Seric Fix a glitch that can cause duplicate error messages on split 34566352Seric envelopes where an address on one of the lists has a 34666352Seric name server failure. Fix from Voradesh Yenbut of the 34766352Seric University of Washington. 34866352Seric Fix possible bogus pointer reference on ESMTP parameters that 34966352Seric don't have an ``=value'' part. 35066352Seric CNAME loops caused an error message to be generated, but also 35166352Seric re-queued the message. Changed to just re-queue the 35266352Seric message (it's really hard to just bounce it because 35366352Seric of the wierd way the name server works in the presence 35466352Seric of CNAME loops). Problem noted by James M.R.Matheson 35566352Seric of Cambridge University. 35666352Seric Avoid giving ``warning: foo owned process doing -bs'' messages 35766352Seric if they use ``MAIL FROM:<foo>'' where foo is their true 35866352Seric user name. Suggested by Andreas Stolcke of ICSI. 35966352Seric Change the NAMED_BIND compile flag to be a 0/1 flag so you can 36066352Seric override it easily in the Makefile -- that is, you can 36166352Seric turn it off using -DNAMED_BIND=0. 36266352Seric If a gethostbyname(...) of an address with a trailing dot fails, 36366352Seric try it without the trailing dot. This is because if 36466352Seric you have a version of gethostbyname() that falls back 36566352Seric to NIS or the /etc/hosts file it will fail to find 36666352Seric perfectly reasonable names that just don't happen to 36766352Seric be dot terminated in the hosts file. You don't want to 36866352Seric strip the dot first though because we're trying to ensure 36966352Seric that country names that match one of your subdomains get 37066352Seric a chance. 37166352Seric PRALIASES: fix bogus output on non-null-terminated strings. 37266352Seric From Bill Gianopoulos of Raytheon. 37366352Seric CONFIG: Avoid rewriting anything that matches $w to be $j. 37466352Seric This was in code intended to only catch the self-literal 37566352Seric address (that is, [1.2.3.4], where 1.2.3.4 is your 37666352Seric IP address), but the code was broken. However, it will 37766352Seric still do this if $M is defined; this is necessary to 37866352Seric get client configurations to work (sigh). Note that this 37966352Seric means that $M overrides :mailname entries in the user 38066352Seric database! Problem noted by Paul Southworth. 38166352Seric CONFIG: Fix definition of Solaris help file location. From 38266352Seric Steve Cliffe <steve@gorgon.cs.uow.edu.au>. 38366352Seric CONFIG: Fix bug that broke news.group.USENET mappings. 38466352Seric CONFIG: Allow declaration of SMTP_MAILER_MAX, FAX_MAILER_MAX, 38566352Seric and USENET_MAILER_MAX to tweak the maximum message 38666352Seric size for various mailers. 38766352Seric CONFIG: Change definition of USENET_MAILER_ARGS to include argv[0] 38866352Seric instead of assuming that it is "inews" for consistency 38966352Seric with other mailers. From Michael Corrigan of UC San Diego. 39066352Seric CONFIG: When mail is forwarded to a LOCAL_RELAY or a MAIL_HUB, 39166352Seric qualify the address in the SMTP envelope as user@{relay|hub} 39266352Seric instead of user@$j. From Bill Wisner of The Well. 39366352Seric CONFIG: Fix route-addr syntax in nullrelay configuration set. 39466352Seric CONFIG: Don't turn off case mapping of user names in the local 39566352Seric mailer for IRIX. This was different than most every other 39666352Seric system. 39766352Seric CONFIG: Avoid infinite loops on certainly list:; syntaxes in 39866352Seric envelope. Noted by Thierry Besancon 39966352Seric <besancon@excalibur.ens.fr>. 40066352Seric CONFIG: Don't include -z by default on uux line -- most systems 40166352Seric don't want it set by default. Pointed out by Philippe 40266352Seric Michel of Thomson CSF. 40366352Seric CONFIG: Fix some bugs with mailertables -- for example, if your 40466352Seric host name was foo.bar.ray.com and you matched against 40566352Seric ".ray.com", the old implementation bound %1 to "bar" 40666352Seric instead of "foo.bar". Also, allow "." in the mailertable 40766352Seric to match anything -- essentially, take over SMART_HOST. 40866352Seric This also moves matching of explicit local host names 40966352Seric before the mailertable so they don't have to be special 41066352Seric cased in the mailertable data. Reported by Bill 41166352Seric Gianopoulos of Raytheon; the fix for the %1 binding 41266352Seric problem was contributed by Nicholas Comanos of the 41366352Seric University of Sydney. 41466352Seric CONFIG: Don't include "root" in class $=L (users to deliver 41566352Seric locally, even if a hub or relay exists) by default. 41666352Seric This is because of the known bug where definition of 41766352Seric both a LOCAL_RELAY and a MAIL_HUB causes $=L to ignore 41866352Seric both and deliver into the local mailbox. 41966352Seric CONFIG: Move up bitdomain and uudomain handling so that they 42066352Seric are done before .UUCP class matching; uudomain was 42166352Seric reported as ineffective before. This also frees up 42266352Seric diversion 8 for future use. Problem reported by Kimmo 42366352Seric Suominen. 42466352Seric CONFIG: Don't try to convert dotted IP address (e.g., [1.2.3.4]) 42566352Seric into host names. As pointed out by Jonathan Kamens, 42666352Seric these are often used because either the forward or reverse 42766352Seric mapping is broken; this translation makes it broken again. 42866352Seric DOC: Clarify $@ and $: in the Install & Op Guide. From Kimmo 42966352Seric Suominen. 43066352Seric Portability fixes: 43166352Seric Unicos from David L. Kensiski of Sterling Sofware. 43266352Seric DomainOS from Don Lewis of Silicon Systems. 43366352Seric GNU m4 1.0.3 from Karst Koymans of Utrecht University. 43466352Seric Convex from Kimmo Suominen <kim@tac.nyc.ny.us>. 43566352Seric NetBSD from Adam Glass <glass@sun-lamp.cs.berkeley.edu>. 43666352Seric BSD/386 from Tony Sanders of BSDI. 43766352Seric Apollo from Eric Wassenaar. 43866352Seric DGUX from Doug Anderson. 43966352Seric Sequent DYNIX/ptx 2.0 from Tim Wright of Sequent. 44066352Seric NEW FILES: 44166352Seric src/Makefile.DomainOS 44266352Seric src/Makefile.PTX 44366352Seric src/Makefile.SunOS.5.1 44466352Seric src/Makefile.SunOS.5.2 44566352Seric src/Makefile.SunOS.5.x 44666352Seric src/mailq.1 44766352Seric cf/ostype/domainos.m4 44866352Seric doc/op/Makefile 44966352Seric doc/intro/Makefile 45066352Seric doc/usenix/Makefile 45166352Seric 45266348Seric8.6.5/8.6.5 94/01/13 45366348Seric Security fix: /.forward could be owned by anyone (the test 45466348Seric to allow root to own any file was backwards). From 45566348Seric Bob Campbell at U.C. Berkeley. 45666348Seric Security fix: group ids were not completely set when programs 45766348Seric were invoked. This caused programs to have group 45866348Seric permissions they should not have had (usually group 45966348Seric daemon instead of their own group). In particular, 46066348Seric Perl scripts would refuse to run. 46166348Seric Security: check to make sure files that are written are not 46266348Seric symbolic links (at least under some circumstances). 46366348Seric Although this does not respond to a specific known 46466348Seric attack, it's just a good idea. Suggested by 46566348Seric Christian Wettergren. 46666348Seric Security fix: if a user had an NFS mounted home directory on 46766348Seric a system with a restricted shell listed in their 46866348Seric /etc/passwd entry, they could still execute any 46966348Seric program by putting that in their .forward file. 47066348Seric This fix prevents that by insisting that their shell 47166348Seric appear in /etc/shells before allowing a .forward to 47266348Seric execute a program or write a file. You can disable 47366348Seric this by putting "*" in /etc/shells. It also won't 47466348Seric permit world-writable :include: files to reference 47566348Seric programs or files (there's no way to disable this). 47666348Seric These behaviours are only one level deep -- for 47766348Seric example, it is legal for a world-writable :include: 47866348Seric file to reference an alias that writes a file, on 47966348Seric the assumption that the alias file is well controlled. 48066348Seric Security fix: root was not treated suspiciously enough when 48166348Seric looking into subdirectories. This would potentially 48266348Seric allow a cracker to examine files that were publically 48366348Seric readable but in a non-publically searchable directory. 48466348Seric Fix a problem that causes an error on QUIT on a cached 48566348Seric connection to create problems on the current job. 48666348Seric These are typically unrelated, so errors occur in 48766348Seric the wrong place. 48866348Seric Reset CurrentLA in sendall() -- this makes sendmail queue 48966348Seric runs more responsive to load average, and fixes a 49066348Seric problem that ignored the load average in locally 49166348Seric generated mail. From Eric Wassenaar. 49266348Seric Fix possible core dump on aliases with null LHS. From 49366348Seric John Orthoefer of BB&N. 49466348Seric Revert to using flock() whenever possible -- there are just 49566348Seric too many bugs in fcntl() locking, particularly over 49666348Seric NFS, that cause sendmail to fail in perverse ways. 49766348Seric Fix a bug that causes the connection cache to get confused 49866348Seric when sending error messages. This resulted in 49966348Seric "unexpected close" messages. It should fix itself 50066348Seric on the following queue run. Problem noted by 50166996Seric Liudvikas Bukys of the University of Rochester. 50266348Seric Include $k in $=k as documented in the Install & Op Guide. 50366348Seric This seems odd, but it was documented.... From 50466348Seric Michael Corrigan of UCSD. 50566348Seric Fix problem that caused :include:s from alias files to be 50666348Seric forced to be owned by root instead of daemon 50766348Seric (actually DefUid). From Tim Irvin. 50866348Seric Diagnose unrecognized I option values -- from Mortin Forssen 50966348Seric of the Chalmers University of Technology. 51066348Seric Make "error" mailer work consistently when there is no error 51166348Seric code associated with it -- previously it returned OK 51266348Seric even though there was a real problem. Now it assumes 51366348Seric EX_UNAVAILABLE. 51466348Seric Fix bug that caused the last header line of messages that had 51566348Seric no body and which were terminated with EOF instead of 51666348Seric "." to be discarded. Problem noted by Liudvikas Bukys. 51766348Seric Fix core dump on SMTP mail to programs that failed -- it tried 51866348Seric to go to a "next MX host" when none existed, causing 51966348Seric a core dump. From der Mouse at McGill University. 52066348Seric Change IDENTPROTO from a defined/not defined to a 0/1 switch; 52166348Seric this makes it easier to turn it off (using 52266348Seric -DIDENTPROTO=0 in the Makefile). From der Mouse. 52366348Seric Fix YP_MASTER_NAME store to use the unupdated result of 52466348Seric gethostname() (instead of myhostname(), which tries 52566348Seric to fully qualify the name) to be consistent with 52666348Seric SunOS. If your hostname is unqualified, this fixes 52766348Seric transfers to slave servers. Bug noted by Keith 52866348Seric McMillan of Ameritech Services, Inc. 52966348Seric Fix Ultrix problem: gethostbyname() can return a very large 53066348Seric (> 500) h_length field, which causes the sockaddr 53166348Seric to be trashed. Use the size of the sockaddr instead. 53266348Seric Fix from Bob Manson of Ohio State. 53366348Seric Don't assume "-a." on host lookups if NAMED_BIND is not 53466348Seric defined -- this confuses gethostbyname on hosts 53566348Seric file lookups, which doesn't understand the trailing 53666348Seric dot convention. 53766348Seric Log SMTP server subprocesses that die with a signal instead 53866348Seric of from a clean exit. 53966348Seric If you don't have option "I" set, don't assume that a DNS 54066348Seric "host unknown" message is authoritative -- it 54166348Seric might still be found in /etc/hosts. 54266348Seric Fix a problem that would cause Deferred: messages to be sent 54366348Seric as the subject of an error message, even though the 54466348Seric actual cause of a message was more severe than that. 54566348Seric Problem noted by Chris Seabrook of OSSI. 54666348Seric Fix race condition in DBM alias file locking. From Kyle 54766348Seric Jones of UUNET. 54866348Seric Limit delivery syslog line length to avoid bugs in some 54966348Seric versions of syslog(3). This adds a new compile time 55066348Seric variable SYSLOG_BUFSIZE. From Jay Plett of Princeton 55166348Seric University, which is in turn derived from IDA. 55266348Seric Fix quotes inside of comments in addresses -- previously 55366348Seric it insisted that they be balanced, but the 822 spec 55466348Seric says that they should be ignored. 55566348Seric Dump open file state to syslog upon receiving SIGUSR1 (for 55666348Seric debugging). This also evaluates ruleset 89, if set 55766348Seric (with the null input), and logs the result. This 55866348Seric should be used sparingly, since the rewrite process 55966348Seric is not reentrant. 56066348Seric Change -qI, -qR, and -qS flags to be case-insensitive as 56166348Seric documented in the Bat Book. 56266348Seric If the mailer returned EX_IOERR or EX_OSERR, sendmail did not 56366348Seric return an error message and did not requeue the message. 56466348Seric Fix based on code from Roland Dirlewanger of 56566348Seric Reseau Regional Aquarel, Bordeaux, France. 56666348Seric Fix a problem that caused a seg fault if you got a 421 error 56766348Seric code during some parts of connection initialization. 56866348Seric I've only seen this when talking to buggy mailers on 56966348Seric the other end, but it shouldn't give a seg fault in 57066348Seric any case. From Amir Plivatsky. 57166348Seric Fix core dump caused by a ruleset call that returns null. 57266348Seric Fix from Bryan Costales of ICSI. 57366348Seric Full-Name: field was being ignored. Fix from Motonori Nakamura 57466348Seric of Kyoto University. 57566348Seric Fix a possible problem with very long input lines in setproctitle. 57666348Seric From P{r Emanuelsson. 57766348Seric Avoid putting "This is a warning message" out on return receipts. 57866348Seric Suggested by Douglas Anderson. 57966348Seric Detect loops caused by recursive ruleset calls. Suggested by 58066348Seric Bryan Costales. 58166348Seric Initialize non-alias maps during alias rebuilds -- they may be 58266348Seric needed for parsing. Problem noted by Douglas Anderson. 58366348Seric Log sender address even if no message was collected in SMTP 58466348Seric (e.g., if all RCPTs failed). Suggested by Motonori 58566348Seric Nakamura. 58666348Seric Don't reflect the owner-list contents into the envelope sender 58766348Seric address if the value contains ", :, /, or | (to avoid 58866348Seric illegal addresses appearing there). 58966348Seric Efficiency hack for toktype macro -- from Craig Partridge of 59066348Seric BB&N. 59166348Seric Clean up DNS error printing so that a host name is always 59266348Seric included. 59366348Seric Remember to set $i during queue runs. Reported by Stephen 59466348Seric Campbell of Dartmouth University. 59566348Seric If ${HOSTALIASES} is set, use it during canonification so that 59666348Seric headers are properly mapped. Reported by Anne Bennett 59766348Seric of Concordia University. 59866348Seric Avoid printing misleading error message if SMTP mailer (not 59966348Seric using [IPC]) should die on a core dump. 60066348Seric Avoid incorrect diagnosis of "file 1 closed" when it is caused 60166348Seric by the other end closing the connection. From 60266348Seric Dave Morrison of Oracle. 60366348Seric Improve several of the error messages printed by "mailq" 60466348Seric to include a host name or other useful information. 60566348Seric Add NetInfo preliminary support for NeXT systems. From Vince 60666348Seric DeMarco. 60766348Seric Fix a glitch that sometimes caused :include:s that pointed to 60866348Seric NFS filesystems that were down to give an "aliasing/ 60966348Seric forwarding loop broken" message instead of queueing 61066348Seric the message for retry. Noted by William C Fenner of 61166348Seric the NRL Connection Machine Facility. 61266348Seric Fix a problem that could cause a core dump if the input sequence 61366348Seric had (or somehow acquired) a \231 character. 61466348Seric Make sure that route-addrs always have <angle brackets> around 61566348Seric them in non-SMTP envelopes (SMTP envelopes already do 61666348Seric this properly). 61766348Seric Avoid wierd headers on unbalanced punctuation of the form: 61866348Seric ``Joe User <user)'' -- this caused reference to the 61966348Seric null macro. Fix from Rick McCarty of IO.COM. 62066348Seric Fix a problem that caused an alias "user: user@local.host" to 62166348Seric not have the QNOTREMOTE bit set; this caused configs 62266348Seric to act as if FEATURE(notsticky) was defined even when 62366348Seric it was not. The effect of the problem was to make it 62466348Seric very hard to to set up satellite sites that had a few 62566348Seric local accounts, with everything else forwarded to a 62666348Seric corporate hub. Reported by Detlef Drewanz of the 62766348Seric University of Rostock and Mark Frost of NCD. 62866348Seric Change queuing to not call rulesets 3, {1 or 2}, 4 on header 62966348Seric addresses. This is more efficient (fewer name server 63066348Seric calls) and fixes certain unusual configurations, such 63166348Seric as those that have ruleset 4 do something that is 63266348Seric non-idempotent unless a mailer-specific ruleset did 63366348Seric something else. Problem reported by Brian J. Coan 63466348Seric of the Institute for Global Communications. 63566348Seric Fix the "obsolete argument" routine in main to better understand 63666348Seric new arguments. For example, if you used ``sendmail 63766348Seric -C config -v -q'' it would choke on the -q because 63866348Seric the -C would stop looking for old-format arguments. 63966348Seric Fix the code that was intended to allow two users to forward their 64066348Seric mail to the same program and have them appear unique. 64166348Seric Portability fixes for: 64266348Seric SCO UNIX from Murray Kucherawy. 64366348Seric SCO Open Server 3.2v4 from Philippe Brand. 64466348Seric System V Release 4 from Rick Ellis and others. 64566348Seric OSF/1 from Steve Campbell. 64666348Seric DG/UX from Ben Mesander of the USGS and Bryan Curnutt 64766348Seric of Stoner Associates. 64866348Seric Motorola SysV88 from Kevin Johnson of Motorola. 64966348Seric Solaris 2.3 from Casper H.S. Dik of the University 65066348Seric of Amsterdam and John Caruso of University 65166348Seric of Maryland. 65266348Seric FreeBSD from Ollivier Robert. 65366348Seric NetBSD from Adam Glass. 65466348Seric TitanOS from Kate Hedstrom of Rutgers University. 65566348Seric Irix from Bryan Curnutt. 65666348Seric Dynix from Jim Davis of the University of Arizona. 65766348Seric RISC/os. 65866348Seric Linux from John Kennedy of California State University 65966348Seric at Chico. 66066348Seric Solaris 2.x from Tony Boner of the U.S. Air Force. 66166348Seric NEXTSTEP 3.x from Vince DeMarco. 66266348Seric HP-UX from various people. NOTA BENE: the location 66366348Seric of the config file has moved to /usr/lib 66466348Seric to match the HP-UX version of sendmail. 66566348Seric CONFIG: Don't do any recipient rewriting on relay mailer; 66666348Seric since this is intended only for internal use, the 66766348Seric usual RFC 821/822/1123 rules can be relaxed. The 66866348Seric main point of this is to avoid munging (ugh) UUCP 66966348Seric addresses when relaying internally. 67066348Seric CONFIG: fix typo in mailer/uucp.m4 that mutilates list:; 67166348Seric syntax addresses delivered via UUCP. Solution 67266348Seric provided by Peter Wemm. 67366348Seric CONFIG: fix thumb-fumble in default UUCP relaying in ruleset 67466348Seric zero; it caused double @ signs in addresses. From 67566348Seric Irving Reid of the University of Toronto. 67666348Seric CONFIG: Portability fixes for SCO Unix 3.2 with TCP/IP 1.2.1 67766348Seric from Markku Toijala of ICL Personal Systems Oy. 67866348Seric CONFIG: Add trailing "." on pseudo-domains for consistency; 67966348Seric this fixes a problem (noted by Al Whaley of Sunnyside) 68066348Seric that made it hard to recognize your own pseudodomain 68166348Seric names. 68266348Seric CONFIG: catch "@host" syntax errors (i.e., null local-parts) 68366348Seric rather than letting them get "local configuration 68466348Seric error"s. Problem noted by John Gardiner Myers. 68566348Seric CONFIG: add uucp-uudom mailer variant, based on code posted 68666348Seric by Spider Boardman <spider@Orb.Nashua.NH.US>; this 68766348Seric has uucp-dom semantics but old UUCP syntax. This 68866348Seric also permits "uucp-old" as an alias for "uucp" and 68966348Seric "uucp-new" as a synonym for "suucp" for consistency. 69066348Seric CONFIG: add POP mailer support (from Kimmo Suominen 69166348Seric <kim@grendel.lut.fi>). 69266348Seric CONFIG: drop CSNET_RELAY support -- CSNET is long gone. 69366348Seric CONFIG: fix bug caused with domain literal addresses (e.g., 69466348Seric ``[128.32.131.12]'') when FEATURE(allmasquerade) 69566348Seric was set; it would get an additional @masquerade.host 69666348Seric added to the address. Problem noted by Peter Wan 69766348Seric of Georgia Tech. 69866348Seric CONFIG: make sure that the local UUCP name is in $=w. From 69966348Seric Jim Murray of Stratus. 70066348Seric CONFIG: changes to UUCP rewriting to simulate IDA-style "V" 70166348Seric mailer flag. Briefly, if you are sending to host 70266348Seric "foo", then it rewrites "foo!...!baz" to "...!baz", 70366348Seric "foo!baz" remains "foo!baz", and anything else has 70466348Seric the local name prepended. 70566348Seric CONFIG: portability fixes for HP-UX. 70666348Seric DOC: several minor problems fixed in the Install & Op Guide. 70766348Seric MAKEMAP: fix core dump problem on lines that are too long or 70866348Seric which lack newline. From Mark Delany. 70966348Seric MAILSTATS: print sums of columns (total messages & kbytes 71066348Seric in and out of the system). From Tom Ferrin of UC 71166348Seric San Francisco Computer Graphics Lab. 71266348Seric SIGNIFICANT USER- OR SYSAD-VISIBLE CHANGES: 71366348Seric On HP-UX, /etc/sendmail.cf has been moved to 71466348Seric /usr/lib/sendmail.cf to match HP sendmail. 71566348Seric Permissions have been tightened up on world-writable 71666348Seric :include: files and accounts that have shells 71766348Seric that are not listed in /etc/shells. This may 71866348Seric cause some .forward files that have worked 71966348Seric before to start failing. 72066348Seric SIGUSR1 dumps some state to the log. 72166348Seric NEW FILES: 72266348Seric src/Makefile.DGUX 72366348Seric src/Makefile.Dynix 72466348Seric src/Makefile.FreeBSD 72566348Seric src/Makefile.Mach386 72666348Seric src/Makefile.NetBSD 72766348Seric src/Makefile.RISCos 72866348Seric src/Makefile.SCO 72966348Seric src/Makefile.SVR4 73066348Seric src/Makefile.Titan 73166348Seric cf/mailer/pop.m4 73266348Seric cf/ostype/bsdi1.0.m4 73366348Seric cf/ostype/dgux.m4 73466348Seric cf/ostype/dynix3.2.m4 73566348Seric cf/ostype/sco3.2.m4 73666348Seric makemap/Makefile.dist 73766348Seric praliases/Makefile.dist 73866348Seric 73966347Seric8.6.4/8.6.4 93/10/31 74066347Seric Repair core-dump problem (write to read-only memory segment) 74166347Seric if you fall back to the return-to-Postmaster case in 74266347Seric savemail. Problem reported by Richard Liu. 74366347Seric Immediately diagnose bogus sender addresses in SMTP. This 74466347Seric makes quite certain that crackers can't use this 74566347Seric class of attack. 74666347Seric Reliability Fix: check return value from fclose() and fsync() 74766347Seric in a few critical places. 74866347Seric Minor problem in initsys() that reversed a condition for 74966347Seric redirecting the output channel on queue runs. It's 75066347Seric not clear this code even does anything. From Eric 75166347Seric Wassenaar of the Dutch National Institute for Nuclear 75266347Seric and High-Energy Physics. 75366347Seric Fix some problems that caused queue runs to do "too much work", 75466347Seric such as double-reading the Errors-To: header. From 75566347Seric Eric Wassenaar. 75666347Seric Error messages on writing the temporary file (including the 75766347Seric data file) were getting suppressed in SMTP -- this 75866347Seric fix causes them to be properly reported. From Eric 75966347Seric Wassenaar. 76066347Seric Some changes to support AF_UNIX sockets -- this will only 76166347Seric really become relevant in the next release, but some 76266347Seric people need it for local patches. From Michael 76366347Seric Corrigan of UC San Diego. 76466347Seric Use dynamically allocated memory (instead of static buffers) 76566347Seric for macros defined in initsys() and settime(); since 76666347Seric these can have different values depending on which 76766347Seric envelope they are in. From Eric Wassenaar. 76866347Seric Improve logging to show ctladdr on to= logging; this tells you 76966347Seric what uid/gid processes ran as. 77066347Seric Fix a problem that caused error messages to be discarded if 77166347Seric the sender address was unparseable for some reason; 77266347Seric this was supposed to fall back to the "return to 77366347Seric postmaster" case. 77466347Seric Improve aliaswait backoff algorithm. 77566347Seric Portability patches for Linux (8.6.3 required another header 77666347Seric file) (from Karl London) and SCO UNIX. 77766347Seric CONFIG: patch prog mailer to not strip host name off of envelope 77866347Seric addresses (so that it matches local again). From 77966347Seric Christopher Davis. 78066347Seric CONFIG: change uucp-dom mailer so that "<>" translates to $n; 78166347Seric this prevents uux from seeing lines with null names like 78266347Seric ``From Sat Oct 30 14:55:31 1993''. From Motonori 78366347Seric Nakamura of Kyoto University. 78466347Seric CONFIG: handle <list:;> syntax correctly. This isn't legal, but 78566347Seric it shouldn't fail miserably. From Motonori Nakamura. 78666347Seric 78766346Seric8.6.3/8.6.3 93/10/24 78866346Seric IMPORTANT FIX: Fix several problems that caused open files to 78966346Seric be "lost" during queue runs; this overflowed the open 79066346Seric file table on large runs. An assumption that fdopen 79166346Seric always succeeds sometimes resulted in core dumps when 79266346Seric this happens; sometimes the message is delivered twice, 79366346Seric sometimes (probably) infinite times. This problem in 79466346Seric various form was reported by P{r (Pell) Emanuelsson and 79566346Seric Robert Campbell of U.C. Berkeley. 79666346Seric Special diagnosis of EMFILE error conditions -- it now prints 79766346Seric the known open file descriptors so you can figure out 79866346Seric what is consuming so much resources. 79966346Seric Fix a couple of problems caused by early address parsing 80066346Seric errors -- one caused it to return a "this is only a 80166346Seric warning" when it really wasn't, and the other started 80266346Seric parsing through a random pointer. The first was 80366346Seric noted by Eric Wassenaar. 80466346Seric Fix an infinite loop problem caused by null components in the 80566346Seric host signature. Problem noted by Jan Sorensen. 80666346Seric Be sure to reset the "current date" when sending an error 80766346Seric message -- PostMasterCopy messages were being sent 80866346Seric with an old Date: header. 80966346Seric Fix a problem that caused duplicated mail when sendmail was 81066346Seric (1) compiled without HASFLOCK, (2) you are sending to 81166346Seric an alias that has an owner-* alias, (3) you execute 81266346Seric sendmail with -t flag, (4) you run in -odb mode, and 81366346Seric (5) the sender specifies both the alias name and 81466346Seric another alias [i.e., the envelope is split], then 81566346Seric duplicate messages are sent. The problem description 81666346Seric and one-line fix are from Motonori Nakamura of Kyoto 81766346Seric University. 81866346Seric Avoid a problem that causes error messages to be discarded 81966346Seric in some cases -- this was the result of a "fix" to 82066346Seric avoid duplicate error messages, but two are better 82166346Seric than zero. Reported by Tim Rylance. 82266346Seric Fix a minor botch in checkfd012() -- fix from Dave Hill of 82366346Seric Computervision R&D Ltd. 82466346Seric Remove "X-Authentication-Warning: <user> set sender to <address> 82566346Seric using -f" entirely -- it is far too eager to include 82666346Seric this, and it is confusing folks. I'll try to make it 82766346Seric work "right" in 8.7. Problem noted by Yoshitaka 82866346Seric Tokugawa of dit Co., Ltd. 82966346Seric Fix a race condition with the errno value in tick() and 83066346Seric reapchild() -- this caused occasional misdiagnosis 83166346Seric of problems. Kyle Jones of UUNET helped this along. 83266346Seric Repair rule loop-detection code. From Michael Corrigan of 83366346Seric U.C. San Diego. 83466346Seric Fix a problem that caused sender domain addition (C mailer 83566346Seric flag to be ignored if you use -odq or use -odb with 83666346Seric a high load average. Problem reported by Jim Murray 83766346Seric of Stratus. 83866346Seric Fix ident protocol on multi-homed machines. It was not 83966346Seric always using the correct interface. Fix from J.R. 84066346Seric Oldroyd of Opal. 84166346Seric Previously, sendmail assumed that any SMTP greeting message 84266346Seric that wasn't 2xx was a temporary failure -- it should 84366346Seric only take 4xx as a temporary failure, and return a 84466346Seric solid error message on anything else -- for example, 84566346Seric to allow you to reject connections on a workstation 84666346Seric that is MXed to a mail server. 84766346Seric Portability enhancements for 386BSD/FreeBSD/NetBSD from 84866346Seric Ollivier Robert. 84966346Seric CONFIG: FEATURE(always_add_domain) didn't always add the domain; 85066346Seric in particular, on local mail it modified the header sender 85166346Seric but not the header recipient address(es). Reported by 85266346Seric Jeffrey Honig of Cornell University. Also, strip 85366346Seric any host from envelope recipient address(es), since 85466346Seric local mailers don't understand host names -- this is 85566346Seric to help mailertable entries. From Christopher Davis. 85666346Seric CONFIG: masquerading didn't apply to addresses that already 85766346Seric had a domain. This change replaces a local hostname 85866346Seric by the masquerade name in the SMTP mailer (previously 85966346Seric it only added the masquerade name if it didn't already 86066346Seric have a domain name). Several people complained about 86166346Seric this. 86266346Seric 86366345Seric8.6.2/8.6.2 93/10/15 86466345Seric Put a "successful delivery" message in the transcript for 86566345Seric addresses that get return-receipts. 86666345Seric Put a prominent "this is only a warning" message in warning 86766345Seric messages -- some people don't read carefully enough 86866345Seric and end up sending the message several times. 86966345Seric Include reason for temporary failure in the "warning" return 87066345Seric message. Currently, it just says "cannot send for 87166345Seric four hours". 87266345Seric Fix the "Original message received" time generated for 87366345Seric returntosender messages. It was previously listed as 87466345Seric the current time. Bug reported by Eric Hagberg of 87566345Seric Cornell University Medical College. 87666345Seric If there is an error when writing the body of a message, 87766345Seric don't send the trailing dot and wait for a response 87866345Seric in sender SMTP, as this could cause the connection to 87966345Seric hang up under some bizarre circumstances. From Eric 88066345Seric Wassenaar. 88166345Seric Fix some server SMTP synchronization problems caused when 88266345Seric connections fail during message collection. From 88366345Seric Eric Wassenaar. 88466345Seric Fix a problem that can cause srvrsmtp to reject mail if the 88566345Seric name server is down -- it accepts the RCPT but rejects 88666345Seric the DATA command. Problem reported by Jim Murray of 88766345Seric Stratus. 88866345Seric Fix a problem that can cause core dumps if the config file 88966345Seric incorrectly resolves to a null hostname. Reported by 89066345Seric Allan Johannesen of WPI. 89166345Seric Non-root use of -C flag, dangerous -f flags, and use of -oQ 89266345Seric by non-root users were not put into 89366345Seric X-Authentication-Warning:s as intended because the 89466345Seric config file hadn't set the PrivacyFlags yet. Fix 89566345Seric from Sven-Ove Westberg of the University of Lulea. 89666345Seric Under very odd circumstances, the alias file rebuild code 89766345Seric could get confused as to whether a database was 89866345Seric open or not. 89966345Seric Check "vendor code" on the end of V lines -- this is 90066345Seric intended to provide a hook for vendor-specific 90166345Seric configuration syntax. (This is a "new feature", 90266345Seric but I've made an exception to my rule in a belief 90366345Seric that this is a highly exceptional case.) 90466345Seric Portability fixes for DG/UX (from Douglas Anderson of NCSC), 90566345Seric SCO Unix (from Murray Kucherawy), A/UX, and OSF/1 90666345Seric (from Jon Forrest of UC Berkeley) 90766345Seric CONFIG: fix ``mailer:host'' form of UUCP relay naming. 90866345Seric 90966344Seric8.6.1/8.6 93/10/08 91066344Seric Portability fixes for A/UX and Encore UMAX V. 91166344Seric Fix error message handling -- if you had a name server down 91266344Seric causing an error during parsing, that message was never 91366344Seric propogated to the queue file. 91466344Seric 91566343Seric8.6/8.6 93/10/05 91666343Seric Configuration cleanup: make it easier to undo IDENTPROTO in 91766343Seric conf.h (other systems have the same bug). 91866343Seric If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume 91966343Seric getdtablesize() instead of sysconf(); a disturbingly 92066343Seric large number of systems defined _SC_OPEN_MAX in the 92166343Seric header files but don't have the syscall. 92266343Seric Another patch to really truly ignore MX records in getcanonname 92366343Seric if trymx == FALSE. 92466343Seric Fix problem that caused the "250 IAA25499 Message accepted for 92566343Seric delivery" message to be omitted if there was an error 92666343Seric in the header of the message (e.g., a bad Errors-To: 92766343Seric line). Pointed out by Michael Corrigan of UCSD. 92866343Seric Announce name of host we are chatting when we get errors; this 92966343Seric is an IDA-ism suggested by Christophe Wolfhugel. 93066343Seric Portability fixes for Alpha OSF/1 (from Anthony Baxter of the 93166343Seric Australian Artificial Intelligence Institute), SCO Unix 93266343Seric (from Murray Kucherawy of Hookup Communication Corp.), 93366343Seric NeXT (from Vince DeMarco and myself), Linux (from 93466343Seric Karl London <karl@borg.demon.co.uk>), BSDI (from 93566343Seric Christophe Wolfhugel, and SVR4 on Dell (from Kimmo 93666343Seric Suominen), AUX 3.0 on Macintosh, and ANSI C compilers. 93766343Seric Some changes to get around gcc optimizer bugs. From Takahiro 93866343Seric Kanbe. 93966343Seric Fix error recovery in queueup if another tf file of the same 94066343Seric name already exists. Problem stumbled over by Bill 94166343Seric Wisner of The Well. 94266343Seric Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes. 94366343Seric Problem noted by Keith McMillan of Ameritech Services. 94466343Seric Deal with group permissions properly when opening .forward and 94566343Seric :include: files. This relaxes the 8.1C restrictions 94666343Seric slightly more. This includes proper setting of groups 94766343Seric when reading :include: files, allowing you to read some 94866343Seric files that you should be able to read but have previously 94966343Seric been denied unless you owned them or they had "other" 95066343Seric read permission. 95166343Seric Make certain that $j is in $=w (after the .cf is read) so that 95266343Seric if the user is forced to override some silly system, 95366343Seric MX suppression will still work. 95466343Seric Fix a couple of efficiency problems where newstr was double- 95566343Seric calling expensive routines. In at least one case, it 95666343Seric wasn't guaranteed that they would always return the 95766343Seric same result. Problem noted by Christophe Wolfhugel. 95866343Seric Fix null pointer dereference in putoutmsg -- only on an error 95966343Seric condition from a non-SMTP mailer. From Motonori 96066343Seric Nakamura. 96166343Seric Macro expand "C" line class definitions before scanning so that 96266343Seric "CX $Z" works. 96366343Seric Fix problem that caused error message to be sent while still 96466343Seric trying to send the original message if the connection 96566343Seric is closed during a DATA command after getting an error 96666343Seric on an RCPT command (pretty obscure). Problem reported 96766343Seric by John Myers of CMU. 96866343Seric Fix reply to NOOP to be 250 instead of 200 -- this is a long 96966343Seric term bug. 97066343Seric Fix a nasty bug causing core dumps when returning the "warning: 97166343Seric cannot deliver for N hours -- will keep trying" message; 97266343Seric it only occurred if you had PostMasterCopy set and 97366343Seric only on some architectures. Although sendmail would 97466343Seric keep trying, it would send error messages on each 97566343Seric queue interval. This is an important fix. 97666343Seric Allow u and g options to take user and group names respectively. 97766343Seric Don't do a chdir into the queue directory in -bt mode to make 97866343Seric ruleset testing a bit easier. 97966343Seric Don't allow users to turn off logging (using -oL) on the command 98066343Seric line -- command line can only raise, not lower, logging 98166343Seric level. 98266343Seric Set $u to the original recipient on the SMTP transaction or on 98366343Seric the command line. This is only done if there is exactly 98466343Seric one recipient. Technically, this does not meet the 98566343Seric specs, because it does not guarantee a domain on the 98666343Seric address. 98766343Seric Fix a problem that dumped error messages on bad addresses if 98866343Seric you used the -t flag. Problem noted by Josh Smith of 98966343Seric Harvey Mudd College. 99066343Seric Given an address such as ``<foo> <bar>'', auto-quote the first 99166343Seric ``<foo>'' part, giving ``"<foo>" <bar>''. This is to 99266343Seric avoid the problem of people who use angle brackets in 99366343Seric their full name information. 99466343Seric Fix a null pointer dereference if you set option "l", have 99566343Seric an Errors-To: header in the message, and have Errors-To: 99666343Seric defined in the config file H lines. From J.R. Oldroyd. 99766343Seric Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get 99866343Seric wrong when compiling. Suggested by Rick McCarty of TI. 99966343Seric Fix a problem that could pass negative SIZE parameter if the 100066343Seric df file got lost; this would cause servers to always 100166343Seric give a temporary failure, making the problem even worse. 100266343Seric Problem noted by Allan Johannesen of WPI. 100366343Seric Add "ident" timeout (one of the "r" option selectors) for IDENT 100466343Seric protocol timeouts (30s default). Requested by Murray 100566343Seric Kucherawy of HookUp Communication Corp. to handle bogus 100666343Seric PC TCP/IP implementations. 100766343Seric Change $w default definition to be just the first component of 100866343Seric the domain name on config level 5. The $j macro defaults 100966343Seric to the FQDN; $m remains as before. This lets well-behaved 101066343Seric config files use any of the short, long, or subdomain 101166343Seric names. 101266343Seric Add makesendmail script in src to try to automate multi-architecture 101366343Seric builds. I know, this is sub-optimal, but it is still 101466343Seric helpful. 101566343Seric Fix very obscure race condition that can cause a queue run to 101666343Seric get a queue file for an already completed job. This 101766343Seric problem has existed for years. Problem noted by the 101866343Seric long suffering Allan Johannesen of WPI. 101966343Seric Fix a problem that caused the raw sender name to be passed to 102066343Seric udbsender instead of the canonified name -- this caused 102166343Seric it to sometimes miss records that it should have found. 102266343Seric Relax check of name on HELO packet so that a program using -bs 102366343Seric that claims to be itself works properly. 102466343Seric Restore rewriting of $: part of address through 2, R, 4 in 102566343Seric buildaddr -- this requires passing a lot of flags to get 102666343Seric it right. Unlike old versions, this ONLY rewrites 102766343Seric recipient addresses, not sender addresses. 102866343Seric Fix a bug that caused core dumps in config files that cannot 102966343Seric resolve /file/name style addresses. Fix from Jonathan 103066343Seric Kamens of OpenVision Technologies. 103166343Seric Fix problem with fcntl locking that can cause error returns to 103266343Seric be lost if the lock is lost; this required fully 103366343Seric queueing everything, dropping the envelope (so errors 103466343Seric would get returned), and then re-reading the queue from 103566343Seric scratch. 103666343Seric Fix a problem that caused aliases that redefine an otherwise 103766343Seric true address to still send to the original address 103866343Seric if and only if the alias failed in certain bizarre 103966343Seric ways (e.g, if they pointed at a list:; syntax address). 104066343Seric Problem pointed out by Jonathan Kamens. 104166343Seric Remove support for frozen configuration files. They caused 104266343Seric more trouble than it was worth. 104366343Seric Fix problem that can cause error messages to get ignored when 104466343Seric using both -odb and -t flags. Problem noted by Rob 104566343Seric McNicholas at U.C. Berkeley. 104666343Seric Include all "normal" variations on hostname in $=w. For example, 104766343Seric if the host name is vangogh.cs.berkeley.edu, $=w will 104866343Seric contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu. 104966343Seric Add "restrictqrun" privacy flag -- without this, anyone can run 105066343Seric the queue. 105166343Seric Reset SmtpPhase global on initial connection creation so that 105266343Seric messages don't come out with stale information. 105366343Seric Pass an "ext" argument to lockfile so that error/log messages 105466343Seric will properly reflect the true filename being locked. 105566343Seric Put all [...] address forms into $=w -- this eliminates the need 105666343Seric for MAXIPADDR in conf.h. Suggested by John Gardiner 105766343Seric Myers of CMU. 105866343Seric Fix a bug that can cause qf files to be left around even after 105966343Seric an SMTP RSET command. Problem and fix from Michael 106066343Seric Corrigan. 106166343Seric Don't send a PostMasterCopy to errors when the Precedence: is 106266343Seric negative. Error reports still go to the envelope 106366343Seric sender address. 106466343Seric Add LA_SHORT for load averages. 106566343Seric Lock sendmail.st file when posting statistics. 106666343Seric Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to 106766343Seric set the size of the TCP send and receive buffers; if you 106866343Seric run over a slow slip line you may need to set these down 106966343Seric (although it would be better to fix the SLIP implementation 107066343Seric so that it's not necessary to recompile every program 107166343Seric that does bulk data transfer). 107266343Seric Allow null defaults on $( ... $) lookups. Problem reported by 107366343Seric Amir Plivatsky. 107466343Seric Diagnose crufty S and V config lines. This resulted from an 107566343Seric observation that some people were using the SITE macro 107666343Seric without the SITECONFIG macro first, which was causing 107766343Seric bogus config files that were not caught. 107866343Seric Fix makemap -f flag to turn off case folding (it was turning it 107966343Seric on instead). THIS IS A USER VISIBLE CHANGE!!! 108066343Seric Fix a problem that caused multiple error messages to be sent if 108166343Seric you used "sendmail -t -oem -odb", your system uses fcntl 108266343Seric locking, and one of the recipient addresses is unknown. 108366343Seric Reset uid earlier in include() so that recursive .forwards or 108466343Seric :include:s don't use the wrong uid. 108566343Seric If file descriptor 0, 1, or 2 was closed when sendmail was 108666343Seric called, the code to recover the descriptor was broken. 108766343Seric This sometimes (only sometimes) caused problems with the 108866343Seric alias file. Fix from Motonori Nakamura. 108966343Seric Fix a problem that caused aliaswait to go into infinite recursion 109066343Seric if the @:@ metasymbol wasn't found in the alias file. 109166343Seric Improve error message on newaliases if database files cannot be 109266343Seric opened or if running with no database format defined. 109366343Seric Do a better estimation of the size of error messages when NoReturn 109466343Seric is set. Problem noted by P{r (Pell) Emanuelsson. 109566343Seric Fix a problem causing the "c" option (don't connect to expensive 109666343Seric mailers) to be ignored in SMTP. Problem noted and the 109766343Seric solution suggested by Robert Elz of Munnari University. 109866343Seric Improve connection caching algorithm by passing "[host]" to 109966343Seric hostsignature, which strips the square brackets and 110066343Seric returns the real name. This allows mailertable entries 110166343Seric to match regular entries. 110266343Seric Re-enable Return-Receipt-To: -- people seem to want this stupid 110366343Seric feature, even if it doesn't work right. 110466343Seric Catch and log attempts to try the "wiz" command in server SMTP. 110566343Seric This also ups the log level from LOG_NOTICE to LOG_CRIT. 110666343Seric Be more generous at assigning $z to the home directory -- do this 110766343Seric for programs that are specified through a .forward file. 110866343Seric Fix from Andrew Chang of Sun Microsystems. 110966343Seric Always save a fatal error message in preference to a non-fatal 111066343Seric error message so that the "subject" line of return 111166343Seric messages is the best possible. 111266343Seric CONFIG: reduce the number of quotes needed to quote configuration 111366343Seric parameters with commas: two quotes should work now, e.g., 111466343Seric define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local''). 111566343Seric CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom 111666343Seric connections (domain-ized UUCP). 111766343Seric CONFIG: fix bug in default maps (-o must be before database file 111866343Seric name). Pointed out by Christophe Wolfhugel. 111966343Seric CONFIG: add FEATURE(nodns) to state that we are not relying on 112066343Seric DNS. This would presumably be used in UUCP islands. 112166343Seric CONFIG: add OSTYPE(nextstep) and OSTYPE(linux). 112266343Seric CONFIG: log $u in Received: line. This is in technical violation 112366343Seric of the standards, since it doesn't guarantee a domain 112466343Seric on the address. 112566343Seric CONFIG: don't assume "m" in local mailer flags -- this means that 112666343Seric if you redefine LOCAL_MAILER_FLAGS you will have to include 112766343Seric the "m" flag should you want it. Apparently some Solaris 2.2 112866343Seric installations can't handle multiple local recipients. 112966343Seric Problem noted by Josh Smith. 113066343Seric CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults). 113166343Seric CONFIG: change default version level from 4 to 5. 113266343Seric CONFIG: add FEATURE(nullclient) to create a config file that 113366343Seric forwards all mail to a hub without ever looking at the 113466343Seric addresses in any detail. 113566343Seric CONFIG: properly strip mailer: information off of relays when 113666343Seric used to change .BITNET form into %-hack form. 113766343Seric CONFIG: fix a problem that caused infinite loops if presented 113866343Seric with an address such as "!foo". 113966343Seric CONFIG: check for self literal (e.g., [128.32.131.12]) even if 114066343Seric the reverse "PTR" mapping is broken. There's a better 114166343Seric way to do this, but the change is fairly major and I 114266343Seric want to hold it for another release. Problem noted by 114366343Seric Bret Marquis. 114466343Seric 114566342Seric8.5/8.5 93/07/23 114666342Seric Serious bug: if you used a command line recipient that was unknown 114766342Seric sendmail would not send a return message (it was treating 114866342Seric everything as though it had an SMTP-style client that 114966342Seric would do the return itself). Problem noted by Josh Smith. 115066342Seric Change "trymx" option in getcanonname() to ignore all MX data, 115166342Seric even during a T_ANY query. This actually didn't break 115266342Seric anything, because the only time you called getcanonname 115366342Seric with !trymx was if you already knew there were no MX 115466342Seric records, but it is somewhat cleaner. From Motonori 115566342Seric Nakamura. 115666342Seric Don't call getcanonname from getmxrr if you already know there 115766342Seric are no DNS records matching the name. 115866342Seric Fix a problem causing error messages to always include "The 115966342Seric original message was received ... from localhost". 116066342Seric The correct original host information is now included. 116166342Seric Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their 116266342Seric version of "test" doesn't have the -x flag). Change it 116366342Seric to use -f instead. From John Myers. 116466342Seric CONFIG: 8.4 mistakenly set the default SMTP-style mailer to 116566342Seric esmtp -- it should be smtp. 116666342Seric CONFIG: send all relayed mail using confRELAY_MAILER (defaults 116766342Seric to "relay" (a variant of "smtp") if MAILER(smtp) is used, 116866342Seric else "suucp" if MAILER(uucp) is used, else "unknown"); 116966342Seric this cleans up the configs somewhat. This fixes a serious 117066342Seric problem that caused route-addrs to get mistaken as relays, 117166342Seric pointed out by John Myers. WARNING: this also causes 117266342Seric the default on SMART_HOST to change from "suucp" to 117366342Seric "relay" if you have MAILER(smtp) specified. 117466342Seric 117566341Seric8.4/8.4 93/07/22 117666341Seric Add option `w'. If you receive a message that comes to you because 117766341Seric you are the best (lowest preference) target of an MX, and 117866341Seric you haven't explicitly recognized the source MX host in 117966341Seric your .cf file, this option will cause you to try the target 118066341Seric host directly (as if there were no MX for it at all). If 118166341Seric `w' is not set, this case is a configuration error. 118266341Seric Beware: if `w' is set, senders may get bogus errors like 118366341Seric "message timed out" or "host unknown" for problems that 118466341Seric are really configuration errors. This option is 118566341Seric disrecommended, provided only for compatibility with 118666341Seric UIUC sendmail. 118766341Seric Fix a problem that caused the incoming socket to be left open 118866341Seric when sendmail forks after the DATA command. This caused 118966341Seric calling systems to wait in FIN_WAIT_2 state until the 119066341Seric entire list was processed and the child closed -- a 119166341Seric potentially prodigious amount of time. Problem noted 119266341Seric by Neil Rickert. 119366341Seric Fix problem (created in 6.64) that caused mail sent to multiple 119466341Seric addresses, one of which was a bad address, to completely 119566341Seric suppress the sending of the message. This changes 119666341Seric handling of EF_FATALERRS somewhat, and adds an 119766341Seric EF_GLOBALERRS flag. This also fixes a potential problem 119866341Seric with duplicate error messages if there is a syntax error 119966341Seric in the header of a message that isn't noticed until late 120066341Seric in processing. Original problem pointed out by Josh Smith 120166341Seric of Harvey Mudd College. This release includes quite a bit 120266341Seric of dickering with error handling (see below). 120366341Seric Back out SMTP transaction if MAIL gets nested 501 error. This 120466341Seric will only hurt already-broken software and should help 120566341Seric humans. 120666341Seric Fix a problem that broke aliases when neither NDBM nor NEWDB were 120766341Seric compiled in. It would never read the alias file. 120866341Seric Repair unbalanced `)' and `>' (the "open" versions are already 120966341Seric repaired). 121066341Seric Logging of "done" in dropenvelope() was incorrect: it would 121166341Seric log this even when the queue file still existed. Change 121266341Seric this to only log "done" (at log level 11) when the 121366341Seric queue file is actually removed. From John Myers. 121466341Seric Log "lost connection" in server SMTP at log level 20 if there 121566341Seric is no pending transaction. Some senders just close the 121666341Seric connection rather than sending QUIT. 121766341Seric Fix a bug causing getmxrr to add a dot to the end of unqualified 121866341Seric domains that do not have MX records -- this would cause 121966341Seric the subsequent host name lookup to fail. The problem 122066341Seric only occurred if you had FEATURE(nocanonify) set. 122166341Seric Problem noted by Rick McCarty of Texas Instruments. 122266341Seric Fix invocation of setvbuf when passed a -X flag -- I had 122366341Seric unwittingly used an ANSI C extension, and this caused 122466341Seric core dumps on some machines. 122566341Seric Diagnose self-destructive alias loops on RCPT as well as EXPN. 122666341Seric Previously it just gave an empty send queue, which 122766341Seric then gave either "Need RCPT (recipient)" at the DATA 122866341Seric (confusing, since you had given an RCPT command which 122966341Seric returned 250) or just dropped the email, depending on 123066341Seric whether you were running VERBose mode. Now it usually 123166341Seric diagnoses this case as "aliasing/forwarding loop broken". 123266341Seric Unfortunately, it still doesn't adequately diagnose 123366341Seric some true error conditions. 123466341Seric Add internal concept of "warning messages" using 6xx codes. 123566341Seric These are not reported only to Postmaster. Unbalanced 123666341Seric parens, brackets, and quotes are printed as 653 codes. 123766341Seric They are always mapped to 5xx codes before use in SMTP. 123866341Seric Clean up error messages to tell both the actual address that 123966341Seric failed and the alias they arose from. This makes it 124066341Seric somewhat easier to diagnose problems. Difficulty noted 124166341Seric by Motonori Nakamura. 124266341Seric Fix a problem that inappropriately added a ctladdr to addresses 124366341Seric that shouldn't have had one during a queue run. This 124466341Seric caused error messages to be handled differently during 124566341Seric a queue run than a direct run. 124666341Seric Don't print the qf name and line number if you get errors during 124766341Seric the direct run of the queue from srvrsmtp -- this was 124866341Seric just extra stuff for users to crawl through. 124966341Seric Put command line flags on second line of pid file so you can 125066341Seric auto-restart the daemon with all appropriate arguments. 125166341Seric Use "kill `head -1 /etc/sendmail.pid`" to stop the 125266341Seric daemon, and "eval `tail -1 /etc/sendmail.pid`" to 125366341Seric restart it. 125466341Seric Remove the ``setuid(getuid())'' in main -- this caused the 125566341Seric IDENT daemon to screw up. This required that I change 125666341Seric HASSETEUID to HASSETREUID and complicate the mode 125766341Seric changing somewhat because both Ultrix and SunOS seem 125866341Seric to have a bug causing seteuid() to set the saved uid 125966341Seric as well as the effective. The program test/t_setreuid.c 126066341Seric will test to see if your implementation of setreuid(2) 126166341Seric is appropriately functional. 126266341Seric The FallBackMX (option V) handling failed to properly identify 126366341Seric fallback to yourself -- most of the code was there, 126466341Seric but it wasn't being enabled. Problem noted by Murray 126566341Seric Kucherawy of the University of Waterloo. 126666341Seric Change :include: open timeout from ETIMEDOUT to an internal 126766341Seric code EOPENTIMEOUT; this avoids adding "during SmtpPhase 126866341Seric with CurHostName" in error messages, which can be 126966341Seric confusing. Reported by Jonathan Kamens of OpenVision 127066341Seric Technologies. 127166341Seric Back out setpgrp (setpgid on POSIX systems) call to reset the 127266341Seric process group id. The original fix was to get around 127366341Seric some problems with recalcitrant MUAs, but it breaks 127466341Seric any call from a shell that creates a process group id 127566341Seric different from the process id. I could try to fix 127666341Seric this by diddling the tty owner (using tcsetpgrp or 127766341Seric equivalent) but this is too likely to break other 127866341Seric things. 127966341Seric Portability changes: 128066341Seric Support -M as equivalent to -oM on Ultrix -- apparently 128166341Seric DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs 128266341Seric instead of using standard flags. Oh joy. This 128366341Seric behaviour reported by Jon Giltner of University 128466341Seric of Colorado. 128566341Seric SGI IRIX -- this includes several changes that should 128666341Seric help other strict ANSI compilers. 128766341Seric SCO Unix -- from Murray Kucherawy of HookUp Communication 128866341Seric Corporation. 128966341Seric Solaris running the Sun C compiler (which despite the 129066341Seric documentation apparently doesn't define 129166341Seric __STDC__ by default). 129266341Seric ConvexOS from Eric Schnoebelen of Convex. 129366341Seric Sony NEWS workstations and Omron LUNA workstations from 129466341Seric Motonori Nakamura. 129566341Seric CONFIG: add confTRY_NULL_MX_LIST to set option `w'. 129666341Seric CONFIG: delete `C' and `e' from default SMTP mailers flags; 129766341Seric several people have made a good argument that this 129866341Seric creates more problems than it solves (although this 129966341Seric may prove painful in the short run). 130066341Seric CONFIG: generalize all the relays to accept a "mailer:host" 130166341Seric format. 130266341Seric CONFIG: move local processing in ruleset 0 into a new ruleset 130366341Seric 98 (8 on old sendmail). Domain literal [a.b.c.d] 130466341Seric addresses are also passed through this ruleset. 130566341Seric CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined, 130666341Seric internet-style addresses would "fall off the end" of 130766341Seric ruleset zero and be interpreted as local -- however, 130866341Seric the angle brackets confused the recursive call. 130966341Seric These are now diagnosed as "Unrecognized host name". 131066341Seric CONFIG: USENET rules weren't included in S0 because of a mistaken 131166341Seric ifdef(`_MAILER_USENET_') instead of 131266341Seric ifdef(`_MAILER_usenet_'). Problem found by Rein Tollevik 131366341Seric of SINTEF RUNIT, Oslo. 131466341Seric CONFIG: move up LOCAL_RULE_0 processing so that it happens very 131566341Seric early in ruleset 0; this allows .mc authors to bypass 131666341Seric things like the "short circuit" code for local addresses. 131766341Seric Prompted by a comment by Bill Wisner of The Well. 131866341Seric CONFIG: add confSMTP_MAILER to define the mailer used (smtp or 131966341Seric esmtp) to send SMTP mail. This allows you to default 132066341Seric to esmtp but use a mailertable or other override to 132166341Seric deal with broken servers. This logic was pointed out 132266341Seric to me by Bill Wisner. Ditto for confLOCAL_MAILER. 132366341Seric Changes to cf/sh/makeinfo.sh to make it portable to SVR4 132466341Seric environments. Ugly as sin. 132566341Seric 132666340Seric8.3/8.3 93/07/13 132766340Seric Fix setuid problems introduced in 8.2 that caused messages 132866340Seric like "Cannot create qfXXXXXX: Invalid argument" 132966340Seric or "Cannot reopen dfXXXXXX: Permission denied". This 133066340Seric involved a new compile flag "HASSETEUID" that takes 133166340Seric the place of the old _POSIX_SAVED_IDS -- it turns out 133266340Seric that the POSIX interface is broken enough to break 133366340Seric some systems badly. This includes some fixes for 133466340Seric HP-UX. Also fixes problems where the real uid is 133566340Seric not reset properly on startup (from Neil Rickert). 133666340Seric Fix a problem that caused timed out messages to not report the 133766340Seric addresses that timed out. Error messages are also more 133866340Seric "user friendly". 133966340Seric Drop required bandwidth on connections from 64 bytes/sec to 134066340Seric 16 bytes/sec. 134166340Seric Further Solaris portability changes -- doesn't require the BSD 134266340Seric compatibility library. This also adds a new 134366340Seric "HASGETDTABLESIZE" compile flag which can be used if 134466340Seric you want to use getdtablesize(2) instead of sysconf(2). 134566340Seric These are loosely based on changes from David Meyer at 134666340Seric University of Oregon. This now seems to work, at least 134766340Seric for quick test cases. 134866340Seric Fix a problem that can cause duplicate error messages to be 134966340Seric sent if you are in SMTP, you send to multiple addresses, 135066340Seric and at least one of those addresses is good and points 135166340Seric to an account that has a .forward file (whew!). 135266340Seric Fix a problem causing messages to be discarded if checkcompat() 135366340Seric returned EX_TEMPFAIL (because it didn't properly mark 135466340Seric the "to" address). Problem noted by John Myers. 135566340Seric Fix dfopen to return NULL if the open failed; I was depending 135666340Seric on fdopen(-1) returning NULL, which isn't the case. This 135766340Seric isn't serious, but does result in wierd error diagnoses. 135866340Seric From Michael Corrigan. 135966340Seric CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of 136066340Seric messages sent through UUCP-family mailers. Suggested 136166340Seric by Bill Wisner of The Well. 136266340Seric CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified, 136366340Seric include a "uucp-dom" mailer that uses domain-style 136466340Seric addressing. Suggested by Bill Wisner. 136566340Seric CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match 136666340Seric LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS. Suggested by 136766340Seric Christophe Wolfhugel. 136866340Seric CONFIG: Add OSTYPE(aix3). From Christophe Wolfhugel. 136966340Seric 137066339Seric8.2/8.2 93/07/11 137166339Seric Don't drop out on config file parse errors in -bt mode. 137266339Seric On older configuration files, assume option "l" (use Errors-To 137366339Seric header) for back compatibility. NOTE: this DOES NOT 137466339Seric imply an endorsement of the Errors-To: header in any way. 137566339Seric Accept -x flag on AIX-3 as well as OSF/1. Why, why, why??? 137666339Seric Don't log errors on EHLO -- it isn't a "real" error for an old 137766339Seric SMTP server to give an error on this command, and 137866339Seric logging it in the transcript can be confusing. Fix 137966339Seric from Bill Wisner. 138066339Seric IRIX compatibility changes provided by Dan Rich 138166339Seric <drich@sandman.lerc.nasa.gov>. 138266339Seric Solaris 2 compatibility changes. Provided by Bob Cunningham 138366339Seric <bob@kahala.soest.hawaii.edu>, John Oleynick 138466339Seric <juo@klinzhai.rutgers.edu> 138566339Seric Debugging: -d17 was overloaded (hostsignature and usersmtp.c); 138666339Seric move usersmtp (smtpinit and smtpmailfrom) to -d18 to 138766339Seric match the other flags in that file. 138866339Seric Flush transcript before fork in mailfile(). From Eric Wassenaar. 138966339Seric Save h_errno in mci struct and improve error message display. 139066339Seric Changes from Eric Wassenaar. 139166339Seric Open /dev/null for the transcript if the create of the xf file 139266339Seric failed; this avoids at least one possible null pointer 139366339Seric reference in very wierd cases. From Eric Wassenaar. 139466339Seric Clean up statistics gathering; it was over-reporting because of 139566339Seric forks. From Eric Wassenaar. 139666339Seric Fix problem that causes old Return-Path: line to override new 139766339Seric Return-Path: line (conf.c needs H_FORCE to avoid 139866339Seric re-using old value). From Motonori Nakamura. 139966339Seric Fix broken -m flag in K definition -- even if -m (match only) 140066339Seric was specified, it would still replace the key with the 140166339Seric value. Noted by Rick McCarty of Texas Instruments. 140266339Seric If the name server timed out over several days, no "timed out" 140366339Seric message would ever be sent back. The timeout code 140466339Seric has been moved from markfailure() to dropenvelope() 140566339Seric so that all such failures should be diagnosted. Pointed 140666339Seric out by Christophe Wolfhugel and others. 140766339Seric Relax safefile() constraints: directories in an include or 140866339Seric forward path must be readable by self if the controlling 140966339Seric user owns the entry, readable by all otherwise (e.g., 141066339Seric when reading your .forward file, you have to own and 141166339Seric have X permssion in it; everyone needs X permission in 141266339Seric the root and directories leading up to your home); 141366339Seric include files must be readable by anyone, but need not 141466339Seric be owned by you. 141566339Seric If _POSIX_SAVED_IDS is defined, setuid to the owner before 141666339Seric reading a .forward file; this gets around some problems 141766339Seric on NFS mounts if root permission is not exported and 141866339Seric the user's home directory isn't x'able. 141966339Seric Additional NeXT portability enhancements from Axel Zinser. 142066339Seric Additional HP-UX portability enhancements from Brian Bullen. 142166339Seric Add a timeout around SMTP message writes; this assumes you can 142266339Seric get throughput of at least 64 bytes/second. Note that 142366339Seric this does not impact the "datafinal" default, which 142466339Seric is separate; this is just intended to work around 142566339Seric network clogs that will occur before the final dot 142666339Seric is sent. From Eric Wassenaar. 142766339Seric Change map code to set the "include null" flag adaptively -- 142866339Seric it initially tries both, but if it finds anything 142966339Seric matching without a null it never tries again with a 143066339Seric null and vice versa. If -N is specified, it never 143166339Seric tries without the null and creates new maps with a 143266339Seric null byte. If -O is specified, it never tries with 143366339Seric the null (for efficiency). If -N and -O are specified, 143466339Seric you get -NO (get it?) lookup at all, so this would 143566339Seric be a bad idea. If you don't specify either -N or -O, 143666339Seric it adapts. 143766339Seric Fix recognition of "same from address" so that MH submissions 143866339Seric will insert the appropriate full name information; 143966339Seric this used to work and got broken somewhere along the 144066339Seric way. 144166339Seric Some changes to eliminate some unnecessary SYSERRs in the 144266339Seric log. For example, if you lost a connection, don't 144366339Seric bother reporting that fact on the connection you lost. 144466339Seric Add some "extended debugging" flags to try to track down 144566339Seric why we get occassional problems with file descriptor 144666339Seric one being closed when execing a mailer; it seems to 144766339Seric only happen when there has been another error in the 144866339Seric same transaction. This requires XDEBUG, defined 144966339Seric by default in conf.h. 145066339Seric Add "-X filename" command line flag, which logs both sides of 145166339Seric all SMTP transactions. This is intended ONLY for 145266339Seric debugging bad implementations of other mailers; start 145366339Seric it up, send a message from a mailer that is failing, 145466339Seric and then kill it off and examine the indicated log. 145566339Seric This output is not intended to be particularly human 145666339Seric readable. This also adds the HASSETVBUF compile 145766339Seric flag, defaulted on if your compiler defines __STDC__. 145866339Seric CONFIG: change SMART_HOST to override an SMTP mailer. If you 145966339Seric have a local net that should get direct connects, you 146066339Seric will need to use LOCAL_NET_CONFIG to catch these hosts. 146166339Seric See cf/README for an example. 146266339Seric CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle 146366339Seric sites that don't use the -d flag. 146466339Seric CONFIG: hide recipient addresses as well as sender addresses 146566339Seric behind $M if FEATURE(allmasquerade) is specified; this 146666339Seric has been requested by several people, but can break 146766339Seric local aliases. For example, if you mail to "localalias" 146866339Seric this will be rewritten as "localalias@masqueradehost"; 146966339Seric although initial delivery will work, replies will be 147066339Seric broken. Use it sparingly. 147166339Seric CONFIG: add FEATURE(domaintable). This maps unqualified domains 147266339Seric to qualified domains in headers. I believe this is 147366339Seric largely equivalent to the IDA feature of the same name. 147466339Seric CONFIG: use $U as UUCP name instead of $k. This permits you 147566339Seric to override the "system name" as your UUCP name -- 147666339Seric in particular, to use domain-ized UUCP names. From 147766339Seric Bill Wisner of The Well. 147866339Seric CONFIG: create new mailer "esmtp" that always tries EHLO 147966339Seric first. This is currently unused in the config files, 148066339Seric but could be used in a mailertable entry. 148166339Seric 148266338Seric8.1C/8.1B 93/06/27 148366338Seric Serious security bug fix: it was possible to read any file on 148466338Seric the system, regardless of ownership and permissions. 148566338Seric If a subroutine returns a fully qualified address, return it 148666338Seric immediately instead of feeding it back into rewriting. 148766338Seric This fixes a problem with mailertable lookups. 148866338Seric CONFIG: fix some M4 frotz (concat => CONCAT) 148966338Seric 149066338Seric8.1B/8.1A 93/06/12 149166338Seric Serious bug fix: pattern matching backup algorithm stepped by 149266338Seric two tokens in classes instead of one. Found by Claus 149366338Seric Assmann at University of Kiel, Germany. 149466338Seric 149566338Seric8.1A/8.1A 93/06/08 149666338Seric Another mailertable fix.... 149766338Seric 149866338Seric8.1/8.1 93/06/07 149966338Seric 4.4BSD freeze. No semantic changes. 150066338Seric 150166338Seric6.65/6.34 93/06/06 150266338Seric Fix some lintish problems. 150366338Seric Fix some cases where server SMTP behaved poorly when handed bogus 150466338Seric input, pointed out by Eric Wassenaar. 150566338Seric CONFIG: fix some more (sigh) mailertable bugs -- thanks to 150666338Seric Motonori Nakamura of Kyoto University (again). 150766338Seric 150866338Seric6.64/6.33 93/06/05 150966338Seric Don't send 050 (-v) information after the 250 response to a QUIT 151066338Seric command in srvrsmtp -- clients usually close the connection 151166338Seric at this point, and it causes bogus error messages. 151266338Seric Don't send messages that have errors on input (such as unbalanced 151366338Seric parentheses) during SMTP transactions, since a return 151466338Seric message has (probably) already been sent. 151566338Seric Give better diagnostics on timeouts during network reads, including 151666338Seric information similar to the SMTP phase. 151766338Seric Fix bug that caused SMTP messages to deliver synchronously; this 151866338Seric happened after the DATA 250, and hence caused reading the 151966338Seric next command to be delayed. 152066338Seric Ignore Errors-To: header unless 'l' (lower case el) header is 152166338Seric specified. The Errors-To: header violates RFC 1123. 152266338Seric Errors-To: was only needed to take the place of the 152366338Seric envelope sender in the days when most Unix mailers 152466338Seric didn't understand about the two kinds of senders. 152566338Seric Don't send warning messages in response to automatically generated 152666338Seric messages (that is, those From:<>). 152766338Seric CONFIG: fix some rather stupid typos in the mailertable code 152866338Seric pointed out by Motonori Nakamura of Kyoto University. 152966338Seric CONFIG: add confUSE_ERRORS_TO configuration option. 153066338Seric CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M 153166338Seric (masquerade name) instead of $j. 153266338Seric CONFIG: don't add dots to relay names (added in 6.29); it breaks 153366338Seric several things, and can be simulated by dot terminating 153466338Seric the names of relays. For example, use: 153566338Seric DBbit.net.relay. 153666338Seric (note the trailing dot). 153766338Seric 153866338Seric6.63/6.32 93/06/01 153966338Seric Fix prototypes to eliminate chars in argument lists -- some 154066338Seric compilers are pissy about this. 154166338Seric Log protocol ($r) and body type if set so we can determine if 154266338Seric the adaptive algorithms are working. 154366338Seric Pessimize on locking of database files (particularly for NEWDB 154466338Seric databases) during opens. There were problems with 154566338Seric processes opening the file while it was rebuilt; since 154666338Seric NEWDB caches heavily, the reader opened an empty file, 154766338Seric which is an error. If your system has the ability to 154866338Seric lock atomically on open, this works properly; otherwise, 154966338Seric there are race conditions. 155066338Seric Check mod time on .pag file instead of .dir in NDBM aliases 155166338Seric because the .dir file doesn't get updated for small 155266338Seric alias files. From John Gardiner Myers of CMU. 155366338Seric More Solaris portability -- it now compiles on Solaris, but 155466338Seric hangs up in gethostbyname(). 155566338Seric Move setting of RES_DEBUG flag before first myhostname() call 155666338Seric so we can see name server traffic on that call. 155766338Seric Fsync() queue files. 155866338Seric Fix a problem that causes -bi to try to rebuild maps other than 155966338Seric the alias file(s). 156066338Seric Fix a problem that caused udb to reject entries from any but 156166338Seric the first database listed. 156266338Seric Rearrange doc subdirectory for 4.4BSD release tape. 156366338Seric CONFIG: put $r into the Received line. This was an oversight. 156466338Seric CONFIG: fix typo (call to ruleset 99 should have been rulset 90). 156566338Seric CONFIG: move "auxiliary" subroutines to be in ruleset 90-99 156666338Seric range -- in the long run, single digit rulesets may 156766338Seric become reserved for builtin use by sendmail. 156866338Seric CONFIG: fix major problem that causes host aliases (that is, 156966338Seric anything in $=w != $j) to not be recognized. This has 157066338Seric been around since 6.30. 157166338Seric 157266338Seric6.62/6.31 93/05/28 157366338Seric BETA RELEASE 157466338Seric Fix recursive syserr (if there is an error printing a syserr 157566338Seric message). This makes the code much less eager to consider 157666338Seric a write error as serious. This also includes some 157766338Seric heuristics to be clever about closed connections. 157866338Seric Lock NEWDB files during gets. This requires version 1.5 or later 157966338Seric of the db library. If you have an older version, you 158066338Seric can use -DOLD_NEWDB. This will go away in a few weeks. 158166338Seric Fix problem causing aliases that use host maps to get overwritten. 158266338Seric Do appropriate byte swapping on port numbers in ident protocol 158366338Seric code. Fix from Allan Johannesen of WPI. 158466338Seric Defer opening of map files to the same time as alias files so that 158566338Seric the daemon will tend to pick up new versions more promptly. 158666338Seric Prototype a bunch more functions. 158766338Seric Some Solaris 2.1 changes (still doesn't link though). 158866338Seric Try to simplify Makefiles by including more subordinate #defines 158966338Seric in conf.h (based on OS type). 159066338Seric CONFIG: check for domains if FEATURE(mailertable) is defined. 159166338Seric For example, if the host name is "knecht.cs.berkeley.edu" 159266338Seric it will search the following mailertable keys: 159366338Seric knecht.cs.berkeley.edu 159466338Seric .cs.berkeley.edu 159566338Seric .berkeley.edu 159666338Seric .edu 159766338Seric This could be used to replace the special relays for bitnet 159866338Seric and similar nets. 159966338Seric 160066338Seric6.61/6.30 93/05/24 160166338Seric Fix problem that prevented appending dots on canonified host 160266338Seric names. This breaks tons of config files -- very 160366338Seric important fix. 160466338Seric Fix improper pointer dereference in response to HELO command. 160566338Seric Fix core dump if debugging set in map_rewrite. 160666338Seric CONFIG: add FEATURE(always_add_domain) to always attach the 160766338Seric local domain (only impacts local mail). 160866338Seric CONFIG: try to avoid turning names into $j -- although 160966338Seric technically a host can only have one "canonical name", 161066338Seric it seems to be common practice to have several. 161166338Seric 161266338Seric6.60/6.29 93/05/22 161366338Seric Major change: merge alias databases with maps. This expands and 161466338Seric changes the map class interface but fixes a bunch of bugs. 161566338Seric The important user-visible change is that the file name 161666338Seric in a K line now does not include the ".db" extension; this 161766338Seric is added automatically. Also, the -d (NIS domain) flag is 161866338Seric missing from the K config line; use @domain instead. 161966338Seric When compiling, the *_MAP names are gone -- just compile 162066338Seric in NDBM, NEWDB, and/or NIS support. 162166338Seric Announce mailer/host/user triple on -bv flag -- from Brian 162266338Seric Bullen of Stirling University. 162366338Seric Don't send more than one line in response to HELO -- it confuses 162466338Seric Pony Express, which then behaves very badly. However, 162566338Seric this change does send two line 220 greetings, with the 162666338Seric second line reading "ESMTP spoken here". The usersmtp 162766338Seric module recognizes this and goes into ESMTP mode regardless 162866338Seric of the setting of the "a" mailer flag. Thus, "a" means 162966338Seric "always try EHLO". 163066338Seric AIX portability changes (thanks to Christophe Wolfhugel of 163166338Seric Herve Schauer Consultants (Paris) for providing me with 163266338Seric an INSA account for this purpose). Lightly tested. Use 163366338Seric -D_AIX3. This probably breaks compatibility with some 163466338Seric older systems (e.g., 4.2bsd) but still works on SunOS 163566338Seric 4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3. 163666338Seric Fix a problem causing an error message loop if the output channel 163766338Seric is hosed. 163866338Seric Add the Makefiles that I use for various environments -- some are 163966338Seric Berkeley make versions and some are old make versions. 164066338Seric My makefile for the NeXT box has gotten lost, alas! 164166338Seric PRALIASES: support for printing NEWDB databases. From 164266338Seric Michael J. Corrigan of U.C. San Diego. 164366338Seric CONFIG: don't pass pseudo-domains to $[ ... $] (if you have 164466338Seric a wildcard MX it can have wierd results). From 164566338Seric Christophe Wolfhugel. 164666338Seric CONFIG: dot terminate relay hostnames in S0. From Christophe 164766338Seric Wolfhugel. 164866338Seric 164966338Seric6.59/6.28 93/05/13 165066338Seric Log version with SMTP daemon startup message. 165166338Seric Adjust setproctitle to work on NetBSD and BSD/386. 165266338Seric Fix null pointer reference in MX fallback code. 165366338Seric A bunch of minor fixes from Eric Wassenaar: 165466338Seric If deliver cannot execv the mailer, return EX_OSERR 165566338Seric instead of EX_TEMPFAIL (to give better 165666338Seric error messages). 165766338Seric Consistently malloc e_message. 165866338Seric Catch degenerate case of calling returntosender() 165966338Seric with an empty returnq. 166066338Seric MIME reformatting. 166166338Seric 166266338Seric6.58/6.28 93/05/13 166366338Seric Fix bug that can cause incorrect verbose display of user smtp 166466338Seric messages. 166566338Seric Disable SMTP VERB command if PRIV_NOEXPN is set (since this 166666338Seric could reveal the same information. 166766338Seric Allow failure when reading SMTP greeting message to go on to 166866338Seric next MX host. 166966338Seric Add "MIME-Version: 1.0" header if using MIME (this was NOT 167066338Seric included in RFC 1344, but Bill King of Allan-Bradley 167166338Seric Company forwarded me email from Nathaniel Borenstein 167266338Seric claiming that it was an inadvertent omission). 167366338Seric Don't use Content-Type: X-message-header. According to John 167466338Seric Myers of CMU, many MIME readers will completely ignore 167566338Seric the data if they don't recognize it. Instead, just 167666338Seric add a blank line to make it a legal (empty) message. 167766338Seric Fix problem causing dots to keep getting appended to cached 167866338Seric hostnames. This can cause buffer overrun conditions. 167966338Seric The problem was found by Erik Forsberg of Retix, 168066338Seric although I used a different bug fix than he provided. 168166338Seric Fix parsing of split header/envelope rewriting specs -- from 168266338Seric Eric Forsberg. 168366338Seric Fix from Eric Wassenaar to correct To: lists in error messages. 168466338Seric 168566338Seric6.57/6.28 93/05/11 168666338Seric Fix minor glitch causing extra ctladdrs to be output to queue 168766338Seric file. Just an annoyance. 168866338Seric Cache results of name server canonification lookups to avoid 168966338Seric backed up queue runs. 169066338Seric Major rewrite of alias.c: considerable cleanup, plus sample 169166338Seric (untested) support for NIS aliases. The "A" option 169266338Seric can now be a comma separated list (or be repeated) -- 169366338Seric that is, you can have multiple alias databases. Each 169466338Seric database can have the syntax ``class:file''; if no class 169566338Seric is specified, the "implicit" class is assumed. Implicit 169666338Seric searches through a list of compiled in types -- hash, 169766338Seric dbm, nis, and stab. Alias files are searched in the 169866338Seric order they are listed. For example: 169966338Seric OAhash:/etc/aliases.local,/etc/aliases 170066338Seric OAnis:mail.aliases@my.nis.domain 170166338Seric first searches the hash database /etc/aliases.local, 170266338Seric then the regular /etc/aliases database, then the NIS 170366338Seric map "mail.aliases" in the NIS domain "my.nis.domain". 170466338Seric If in Verbose mode (probably from VERB command) run SMTP job 170566338Seric in foreground and don't do RCPT optimizations. 170666338Seric Add udb :mailsender as equivalent to owner- for regular aliases. 170766338Seric Delete option 8; add option 7 that means the opposite. That is, 170866338Seric default to 8-bit mode; a special option is needed to 170966338Seric force sendmail into 7 bit mode. 171066338Seric Send error messages in encapsulated MIME format. 171166338Seric New compile flag "NIS" that turns on NIS alias and NIS map 171266338Seric support. 171366338Seric Add "j" option to send error messages in MIME (RFC 1341) 171466338Seric encapsulated message format per RFC 1344. The 171566338Seric syntax is pretty ugly if you don't have MIME-aware 171666338Seric user agents. 171766338Seric Clean up message handling (for display in mailq output). 171866338Seric New setproctitle implementation for 4.4bsd. 171966338Seric Create files (such as ~/dead.letter) using mode FileMode (the 172066338Seric F option value) instead of 0666. 172166338Seric Fix bug causing output of EXPN command to not be fully qualified. 172266338Seric This may cause some problems with UUCP addresses that 172366338Seric will require some config file assistance -- specifically, 172466338Seric the $: part has to include the host name for this output 172566338Seric to make sense. 172666338Seric Fix a problem that sometimes diagnosed errors and still sent the 172766338Seric message if the header syntax was bad. 172866338Seric Fix a bug that caused an error message to be emailed when sendmail 172966338Seric was operating in -bv mode. 173066338Seric Add "ListenQueueSize" keyword to daemon options option (OO) to 173166338Seric set the queue size parameter passed to listen(). You 173266338Seric will normally have to tweak your kernel to up this. 173366338Seric Strip spaces off of beginning of message-id before logging (in 173466338Seric case it was folded across lines). 173566338Seric Tweak compile flags in daemon.c -- there were some cases where 173666338Seric it wouldn't work without NETINET. 173766338Seric Change *file* mailer to output all the usual default headers 173866338Seric (From, Date, Message-Id). It gets used when sending 173966338Seric back error messages. 174066338Seric CONFIG: explicitly catch and diagnose list:; syntax in ruleset 174166338Seric zero -- this is not a valid recipient syntax according 174266338Seric to RFC 821. 174366338Seric CONFIG: add confMIME_FORMAT_ERRORS to send error messages in 174466338Seric MIME format. Defaults to on. 174566338Seric CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment 174666338Seric the flags for those mailers. 174766338Seric 174866338Seric6.56/6.27 93/05/01 174966338Seric Fix problem that causes the fallback mail to postmaster 175066338Seric (case ESM_POSTMASTER in savemail()) to not look at 175166338Seric aliases (ugh). 175266338Seric Some more HPUX tweaking (compile flag hpux => __hpux so it 175366338Seric still works in ANSI mode). 175466338Seric Don't try to flock non-regular files when mailing to a file. 175566338Seric In particular, this was a problem if you tried to 175666338Seric send to /dev/null. 175766338Seric Fix a wierd bug that can cause senders to be queued as 175866338Seric recipients if the name server is down when the mail 175966338Seric is initially sent. This hack just ignores sender 176066338Seric deletion (essentially, it sets the MeToo flag) if there 176166338Seric is a TEMPFAIL during processing of the sender address. 176266338Seric Obscure. 176366338Seric Fix a dangling else problem -- from Brian Bullen from University 176466338Seric of Stirling, UK. 176566338Seric Add the "b" mailer flag to force a blank line on the end of 176666338Seric messages. Some brilliant versions of /bin/mail insist 176766338Seric on this but do not add it themselves. 176866338Seric Add the "g" mailer flag to prevent user SMTP from sending 176966338Seric "MAIL From:<>". This is only intended to be a 177066338Seric transitional gesture, and should not be used if at 177166338Seric all possible. It appears that Berkeley and IDA 177266338Seric config files have always handled this properly; the 177366338Seric UK config kit apparently does not. 177466338Seric Don't lowercase and then capitalize header field names -- leave 177566338Seric them with original capitalization. Fixes from Bill 177666338Seric King of Allen-Bradley Company. 177766338Seric Further cleanup and improved reporting of error messages, 177866338Seric particularly conditions that cause messages to be 177966338Seric requeued for future delivery. 178066338Seric Tweak syslog priorities in some cases. 178166338Seric CONFIG: clean up route-addr on UUCP addresses. 178266338Seric 178366338Seric6.55/6.25 93/04/27 178466338Seric HPUX 8.07 compatibility changes in getla() -- I had to make 178566338Seric these changes to get it to work at Berkeley, although 178666338Seric others seem to have been working before (???). 178766338Seric Various patches to XLA code. 178866338Seric Fix problem that causes setuid bit on files to be ignored from 178966338Seric SMTP or in queue runs. Problem noted by Jason Ornstein 179066338Seric of Under The Wire, Inc. 179166338Seric Fix problem that can cause CNAMEs to be ignored. 179266338Seric Generalize getmxrr to match local host in $=w instead of a 179366338Seric single name passed in. 179466338Seric Some cleanup from Eric Wassenaar: 179566338Seric Use FileMailer instead of ProgMailer in two places. 179666338Seric Eliminate duplicate 8th-bit stripping in commaize. 179766338Seric Fix a problem with mis-parsing of backslash escapes 179866338Seric under some circumstances. 179966338Seric NIS map fix (was always including trailing null character) 180066338Seric from Mike Glendinning of Ingres UK. 180166338Seric Add "a" mailer flag to try using ESMTP. It tries the EHLO 180266338Seric command and if that fails falls back to regular SMTP. 180366338Seric Also parses EHLO option keywords. If host supports 180466338Seric SIZE extension, this is added to the MAIL FROM: 180566338Seric command. 180666338Seric Extend "b" option to include a second value which is the 180766338Seric maximum message size this server is willing to accept. 180866338Seric For example, a value of "10/1000000" says that there 180966338Seric must be ten blocks free, and sendmail will reject 181066338Seric any message larger than one megabyte. 181166338Seric Some portability hooks for NeXT (this could be applicable 181266338Seric to Mach in general). You have to create an empty 181366338Seric file called "unistd.h" to get it to compile. 181466338Seric Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to 181566338Seric be more generous. 181666338Seric Add X400-Received: to the list of headers tagged with H_TRACE 181766338Seric in conf.c. From Bill King, Allen-Bradley Co. 181866338Seric 181966338Seric6.54/6.25 93/04/19 182066338Seric Fix problem that caused redefinition of SMTP and QUEUE compile 182166338Seric flags. Pointed out by Jon Forrest of the Sequoia 2000 182266338Seric project at Berkeley. 182366338Seric Properly handle \! hack -- it was treating host\!user as one 182466338Seric token (host!user) instead of three (host, !, user). 182566338Seric Fix from Eric Wassenaar of NIKHEF-H. 182666338Seric Fix compilation problem in getauthinfo() if IDENTPROTO is off. 182766338Seric Turn off DEFNAMES and DNSRCH when getting the hostsignature 182866338Seric (i.e., MX records) in level 1 configuration files; this 182966338Seric matches the old behaviour. From Motonori Nakamura of 183066338Seric Kyoto University. 183166338Seric Improve error message printing -- if sent through an alias, 183266338Seric error messages include the name of the alias in the 183366338Seric message. Unfortunately, in order to make this work 183466338Seric properly in queue runs, this changes the format of the 183566338Seric C line in the qf file. The relatively uselessness of 183666338Seric the previous information was pointed out to me by 183766338Seric Allan E Johannesen of WPI. 183866338Seric Add XLA compile flag to add hooks to Christophe Wolfhugel's 183966338Seric extended load average code. This is still in very early 184066338Seric form. For information regarding the guts of the xla 184166338Seric code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr. 184266338Seric Additional hooks for detecting tempfails in rewriting rules 184366338Seric (that is, in map lookups). 184466338Seric 184566338Seric6.53/6.25 93/04/15 184666338Seric Properly diagnose ruleset zero returning null (instead of a mailer 184766338Seric triple). From Motonori Nakamura of Kyoto University. 184866338Seric More generalization of socket code for other protocols. 184966338Seric Shorten timeouts on reverse name lookups -- since they are done 185066338Seric during connection establishment, long timeouts here can 185166338Seric cause higher level timeouts. This mainly serves to accept 185266338Seric mail from hosts that do not have proper reverse (PTR) DNS 185366338Seric records set up. 185466338Seric Reset e_statmsg before each mailer invocation to avoid bogus 185566338Seric messages in the log. 185666338Seric Redefine $r, $s, and $_ in error envelopes so you don't get 185766338Seric incorrect cruft in the error message. Problem noted by 185866338Seric Motonori Nakamura of Kyoto University. 185966338Seric Fix a problem that can cause failure to return errors to Postmaster 186066338Seric in certain cases. From Motonori Nakamura. 186166338Seric Fix a problem that can cause some systems to give duplicate error 186266338Seric messages when a bad syntax address such as "<a" is presented 186366338Seric to an SMTP server. It doesn't seem to occur on all 186466338Seric machines. From Motonori Nakamura. 186566338Seric Default IDENTPROTO off for Ultrix and HPUX, which apparently have 186666338Seric the interesting "feature" that when they receive a "Host 186766338Seric unreachable" message they closes all open connections to 186866338Seric that host. However, some firewall gateways send this message 186966338Seric if you try to connect to an unauthorized port, such as the 187066338Seric IDENT port (113). Thus, no email can be received from such 187166338Seric hosts. There is some evidence that versions of Ultrix before 187266338Seric 4.3 do not have this problem. Thanks to Tom Ivar Helbekkmo 187366338Seric for pointing out this behaviour to me and to Michael Corrigan 187466338Seric of U.C. San Diego for informing me about the HPUX problem. 187566338Seric Allow IPC mailers to return a colon-separated list of hosts in the 187666338Seric $@ clause; these are searched in order as though they were 187766338Seric MX records. 187866338Seric When sending an error report, print the list of addresses tagged 187966338Seric as bad. Requested by Allan E Johannesen of WPI. 188066338Seric Change map function calls to return a status code. This gets 188166338Seric passed back as the result of rewrite. Parseaddr marks 188266338Seric the address as a QUEUEUP address if the return code is 188366338Seric EX_TEMPFAIL. All this to queue properly if the name 188466338Seric server is down. This code is not well tested. This code 188566338Seric changes the interface to map lookup functions (a fifth 188666338Seric parameter, int *statp, is added). Feature requested by 188766338Seric Dan Oscarsson. 188866338Seric Don't delete quotes (in the dequote map) if there are spaces in 188966338Seric the string, since this would cause them to be replaced by 189066338Seric the SpaceSub character. 189166338Seric Accept BODY=8BITMIME on SMTP MAIL command. This isn't advertised 189266338Seric because the 8BIT to 7BIT translation doesn't exist yet. 189366338Seric This does add a "bodytype" field to both envelope and 189466338Seric queue file and a -B command line flag to pass the type in 189566338Seric during direct invocations. 189666338Seric Discard return error messages only on responses to responses to 189766338Seric responses, not on responses to responses. That is, the 189866338Seric algorithm is to try return to sender, then return to 189966338Seric postmaster, then discard. Previously it discarded 190066338Seric immediately if the return to sender pass failed. 190166338Seric CONFIG: back out change to hide unqualified hostnames behind %-hack. 190266338Seric This screws up local aliases and .forward files. 190366338Seric CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $]; 190466338Seric some sites only handle completely canonified names. 190566338Seric Requested by John Gardiner Myers of CMU. 190666338Seric CONFIG: some UUCP code was still included even if FEATURE(nouucp) 190766338Seric was specified. 190866338Seric 190966338Seric6.52/6.24 93/04/10 191066338Seric Clean up some minor glitches on error return messages pointed out 191166338Seric by Motonori Nakamura of Kyoto University. 191266338Seric Fix reply() to not reset SmtpReplyBuffer on fatal errors; this 191366338Seric was supposed to reset SmtpMsg Buffer. This makes the 191466338Seric client side code virtually useless. Reported by Allan 191566338Seric E Johannesen of WPI and Phil Brandenberger of Swarthmore. 191666338Seric Better debug messages if fuzzy is disabled, suggested by Allan 191766338Seric E Johannesen of WPI. 191866338Seric Offset SmtpReplyBuffer by four in usersmtp when checking for 191966338Seric loopback. From Eric Wassenaar. 192066338Seric Don't set $s until after runinchild in srvrsmtp -- otherwise 192166338Seric it gets cleared. From Eric Wassenaar. 192266338Seric Implement IDA-style $&x for deferred macro expansion. 192366338Seric More POSIX compatibility. 192466338Seric CONFIG: Hide unqualified hostnames behind %-hack using $s as the 192566338Seric actual sender. This is only done if $r is non-null, that 192666338Seric is, if this is not locally submitted mail. 192766338Seric CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host 192866338Seric names to internet domains. A program contributed by 192966338Seric John Gardiner Myers of CMU to create the maps is included 193066338Seric in the contrib directory (in the "misc" tar file). 193166338Seric CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP 193266338Seric hosts. There is currently no tool to create this map. 193366338Seric 193466338Seric6.51/6.23 93/04/04 193566338Seric Add D= mailer flag to specify a path of possible working directories 193666338Seric in which to execute the mailer. This is intended for the 193766338Seric prog mailer; some shells can get upset if they don't have 193866338Seric access to the current directory. 193966338Seric Add RFC 1413 (IDENT) protocol support. This is only very loosely 194066338Seric tested. This adds a $_ macro to be the authenticated 194166338Seric info (in ``user@domain [address]'' form) and debug flag 194266338Seric 9 to trace the protocol. 194366338Seric Check for loopbacks in usersmtp instead of srvrsmtp -- there is no 194466338Seric reason for a local agent to not be talking to the localhost 194566338Seric (although the inverse is not true). 194666338Seric Add a few hooks for automated map rebuilding. This is certainly 194766338Seric not done yet. 194866338Seric CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is, 194966338Seric user's home directory then the root. 195066338Seric CONFIG: Log RFC 1413 identification in Received: line. 195166338Seric 195266338Seric6.50/6.22 93/04/01 195366338Seric Fixes to requeueing code to make it compute priority, nrcpts, 195466338Seric and the like properly. 195566338Seric 195666338Seric6.49/6.22 93/04/01 195766338Seric Diagnose incorrect privacy flags. Suggested by Bryan Costales 195866338Seric of ICSI. 195966338Seric Some ANSI C fixes. 196066338Seric Arrange to quote backslashes as well as other special characters 196166338Seric in the phrase part of a route-addr. 196266338Seric Some fixes to FallBackMX code suggested by Motonori Nakamura of 196366338Seric Kyoto University. 196466338Seric More vigorous zeroing of CurHostAddr to avoid logging of bogus 196566338Seric host addresses when you are actually just printing 196666338Seric information from the MCI structure; problem noted by 196766338Seric Michael Corrigan of U.C. San Diego. 196866338Seric Don't ignore rest of queue if any job is not runnable. This can 196966338Seric also cause an incorrect job to be lost. Fix from 197066338Seric Eric Wassenaar. 197166338Seric Always respond "quickly" to RCPT command; do alias expansion and 197266338Seric the like later. This also means that mail for lists that 197366338Seric have errors will be acccepted, and an error sent back 197466338Seric later. This is done by instantiating the queue file 197566338Seric and then immediately running and requeueing it. 197666338Seric 197766338Seric6.48/6.22 93/03/30 197866338Seric Fix incorrect diagnosis of infinite loop in ruleset. Problem noted 197966338Seric by several people. 198066338Seric Improve information printed when infinite loops are discovered. 198166338Seric Zero CurHostAddr to fix erroneous internet addresses in log when no 198266338Seric addresses can be bound. Pointed out by Motonori Nakamura 198366338Seric of Kyoto University. 198466338Seric "Probe" SMTP connections using RSET instead of NOOP "just in case". 198566338Seric Suggested by John Gardiner Myers of CMU. 198666338Seric Don't warn about -f if you are setting sender to yourself. 198766338Seric 198866338Seric6.47/6.22 93/03/29 198966338Seric Fix incompatible call to endmailer in smtpquit which causes core 199066338Seric dumps. Noted by Allan E Johannesen of WPI. 199166338Seric HPUX portability changes from Michael J. Corrigan of UC San Diego. 199266338Seric Require MAIL before RCPT command in srvrsmtp.c. This had been 199366338Seric intentional from the 821 draft days when the order wasn't 199466338Seric clear, but is silly now. 199566338Seric Fix bug in nis_magic routine that was initializing parameters 199666338Seric incorrectly. Fix from Takahiro Kanbe of Fuji Xerox 199766338Seric Information Systems Co., Ltd. 199866338Seric Change default for PrivacyFlags in conf.c to 0 -- since it always 199966338Seric "or"s in new values, there was no way to turn off the 200066338Seric AuthWarning stuff. 200166338Seric Add O option to set SMTP daemon options. 200266338Seric Add V option to set fallback MX host. This always sorts at lower 200366338Seric priority than anything it gets from the name server. It 200466338Seric should only be used for environments with very bad network 200566338Seric connectivity. Requested by several people. 200666338Seric Log sending info. It's not clear this is a good idea. 200766338Seric CONFIG: fix typo in mailertable code. Noted by Phil Brandenberger 200866338Seric of Swarthmore. 200966338Seric CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options 201066338Seric O and V, respectively. 201166338Seric 201266338Seric6.46/6.21 93/03/26 201366338Seric Fix botch in server SMTP that broke transactions that did not 201466338Seric use HELO first (like MH). Fix from Michael Corrigan 201566338Seric of U.C. San Diego. 201666338Seric Fall back to other MX records if there is an error anywhere 201766338Seric in delivery (actually on MAIL or DATA -- RCPT is harder). 201866338Seric Suggested by John Gardiner Myers and Motonori Nakamura. 201966338Seric Revert to non-prototypes -- it turns out that our ANSI C 202066338Seric compiler is more forgiving than most others about 202166338Seric mixing prototyped extern declarations with non-prototyped 202266338Seric function definitions. 202366338Seric Fix a problem with multi-word class matching pointed out by 202466338Seric Neil Rickert. Given: 202566338Seric CX b a.b.c 202666338Seric R$+ $=X $+ $: $1 < $2 > $3 202766338Seric the input "user@a.b.c" failed instead of being properly 202866338Seric rewritten as "user@a.<b>.c". 202966338Seric Neil also convinced me that it was correct that $~ should match 203066338Seric only one token -- the problem is that it's always possible 203166338Seric to add another token, so $~ matches far too eagerly. 203266338Seric 203366338Seric6.45/6.21 93/03/25 203466338Seric Implement multi-word classes (properly!). 203566338Seric 203666338Seric6.44/6.21 93/03/25 203766338Seric Add X-Authentication-Warning: headers to clue users into possible 203866338Seric attempts to forge mail. This is on the authwarnings 203966338Seric privacy flag, but is the default. Suggested by Bryan 204066338Seric Costales of ICSI. 204166338Seric Pass default units for convtime in so they can be more reasonable. 204266338Seric Allow config files to always add a new Comments: header (i.e., 204366338Seric they will be added even if an old one already exists). 204466338Seric Suggested by Bryan Costales of ICSI. 204566338Seric Allow config files to delete an existing Return-Path: header. 204666338Seric These should only be added at final delivery. Suggested 204766338Seric by Bryan Costales of ICSI. 204866338Seric Some debugging additions. Suggested by Bryan Costales of ICSI. 204966338Seric Clean up logging of Family 0 addresses. Noted by David Muir 205066338Seric Sharnoff and others. 205166338Seric Add a "dequote" map class. This allows config files to strip 205266338Seric quotes off of addresses. Note that this is not a builtin 205366338Seric map, just a class -- so you have to define the map 205466338Seric using the K line. 205566338Seric Fix a bug in the queueup() loop getting a locked tf where in 205666338Seric very odd cases it can fall off the bottom and core dump. 205766338Seric Of course, it was P{r Emanuelsson who found it.... 205866338Seric Open a new transcript when splitting an envelope. Problem found 205966338Seric by Allan E Johannesen of WPI. 206066338Seric Improved error output in endmailer if the mailer core dumps. 206166338Seric CONFIG: Fix typo in UUCP mailer definition. 206266338Seric CONFIG: Default several of the new options on: eight bit input, 206366338Seric privacy flags set to "authwarnings", and message warning 206466338Seric set to 4h. 206566338Seric CONFIG: Use dequote map. 206666338Seric 206766338Seric6.43/6.20 93/03/23 206866338Seric Fix problem with assumption of an sa_len field in a generic 206966338Seric sockaddr -- it turns out that most vendors haven't 207066338Seric picked up this (very important) fix. 207166338Seric Change compilation flags for daemon code -- select one or both 207266338Seric of NETINET or NETISO, but don't ever set DAEMON manually. 207366338Seric CONFIG: add FEATURE(mailertable) to do IDA-style mailertables. 207466338Seric 207566338Seric6.42/6.19 93/03/19 207666338Seric Use Postmaster as default fallback return address, not root. 207766338Seric POSIX changes for file descriptor handling. 207866338Seric Diagnose errors writing new queue file. 207966338Seric If you change the owner using an owner- alias, also change the 208066338Seric error mode to EM_MAIL so that errors don't get dropped 208166338Seric into an inappropriate directory. Problem noted by 208266338Seric Allan E Johannesen of WPI. 208366338Seric If you are su'ed to root, send email as who you really are, not 208466338Seric as root. From Brian Kantor of U.C. San Diego. 208566338Seric Allow warning messages to be sent after a configurable interval 208666338Seric has passed without delivery. The message is sent only 208766338Seric once per envelope. This changes the format of the qf 208866338Seric file to have an F line, and the format of the T option 208966338Seric to accept take the format "return/warn" (both intervals). 209066338Seric Don't force all local names to lower case -- this was left over 209166338Seric from the wierd handling of case mapping on aliases. It 209266338Seric is now driven (as expected) by the "u" mailer flag. 209366338Seric Problem noted by P{r Emanuelsson. 209466338Seric Fix problem that caused headers on returned email to be trashed; 209566338Seric they were getting freed, but are still accessible via 209666338Seric BlankEnvelope. 209766338Seric Fix problem that caused bogus ids to be created on returned 209866338Seric mail. 209966338Seric Add support for ISO and other non-INET networking. This is by 210066338Seric no means finished yet. This does assume a lot of other 210166338Seric system support, like a version of gethostbyname that 210266338Seric returns non-AF_INET addresses. 210366338Seric CONFIG: change default on prog mailer to keep upper case in 210466338Seric user names (i.e., in the program command line). 210566338Seric CONFIG: strip trailing dots off of hosts in uucp mailer before 210666338Seric convert to bang format. 210766338Seric CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H 210866338Seric (MAIL_HUB) delivery that doesn't add local domain. Note 210966338Seric that this violates 821, but is probably "more correct" 211066338Seric for what we are trying to do. Problem pointed out by 211166338Seric Michael Graff of Iowa State. 211266338Seric 211366338Seric6.41/6.18 93/03/18 211466338Seric Clean up unnecessary creates of queue ids (i.e., empty qf files) 211566338Seric when not needed, such as when starting up an SMTP 211666338Seric connection. 211766338Seric Fix problem where split envelopes aren't instantiated in the queue. 211866338Seric This is quite a serious bug. 211966338Seric Owner- aliases had problems with leading spaces causing a 212066338Seric premature delimitation. 212166338Seric 212266338Seric6.40/6.18 93/03/18 212366338Seric Have ending 250 (after DATA) include the id; suggested by 212466338Seric Brian Kantor of UC San Diego. 212566338Seric Add logging on envelope splitting. 212666338Seric Change queue ids to have one more letter encoding the hour of 212766338Seric the day so that during a single day there is a greater 212866338Seric likelihood of uniqueness; requested by Brian Kantor. 212966338Seric 213066338Seric6.39/6.18 93/03/18 213166338Seric Fix minor compile problem if LOCKF is defined. 213266338Seric Define size of tobuf in conf.h. Observed by Toshinari Takahashi 213366338Seric of Toshiba. 213466338Seric Restore e_sender -- this is equivalent to e_from.q_paddr without 213566338Seric decorations such as angle brackets and comments. 213666338Seric OSF/1 on Alpha changes from Allan E Johannesen of WPI. 213766338Seric CONFIG: fix typo in S3 for list syntax (;: => :;). Thanks to 213866338Seric Christopher Hoover for noting the problem. 213966338Seric 214066338Seric6.38/6.17 93/03/17 214166338Seric Pass envelope to disconnect to avoid another use of CurEnv, which 214266338Seric can apparently end up being null at inopportune times. 214366338Seric Log "received from" as "relay=" for consistency (suggested by 214466338Seric John Gardiner Myers). 214566338Seric Fix major bug in header handling: if no From: line existed in 214666338Seric the header (so sendmail inserts one), and the sender is 214766338Seric an alias that has an owner, the From: line shows the 214866338Seric owner (as well as the envelope). Fixed by early binding 214966338Seric the headers (which will change debugging output). 215066338Seric HPUX portability patches from Michael J. Corrigan of UC San Diego. 215166338Seric Some attempts to adapt better to out of open file conditions. 215266338Seric Some changes to ctladdr handling in queue files. 215366338Seric 215466338Seric6.37/6.17 93/03/16 215566338Seric MAJOR CHANGE: delete e_sender and e_returnpath (why are these 215666338Seric different from e_from?) and $< macro. 215766338Seric Log correct IP address in relay= field even if the connection 215866338Seric times out. 215966338Seric Log "received from [RESPONSE]" on EF_RESPONSE messages (from 216066338Seric John Gardiner Myers). 216166338Seric Fixes to SysExMsg logging (sometimes just got "message: %s" 216266338Seric instead of "message: error message"), noted by Eric 216366338Seric Wassenaar. Also reported by Motonori Nakamura. 216466338Seric Improvements to MX piggybacking code, from Motonori Nakamura. 216566338Seric Fix case where CurHostName points to an auto variable that has 216666338Seric been deallocated (from Motonori Nakamura). 216766338Seric Fix bug causing newlines to be included in aliases if option 216866338Seric "n" (check alias RHS) is set; bug noted by David Muir 216966338Seric Sharnoff. 217066338Seric Fix problem causing user names that should be mapped to lower 217166338Seric case to not be mapped if they are sent during a queue 217266338Seric run. This greatly simplifies the case mapping code. 217366338Seric Problem noted by Allan E Johannesen of WPI. 217466338Seric Don't do recipient address rewriting in buildaddr. This 217566338Seric improperly did recipient rewriting on sender addresses, 217666338Seric and just seems bogus in general -- but the change could 217766338Seric break some .cf files. 217866338Seric Pass TZ envariable to child processes for System V. 217966338Seric CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to 218066338Seric define those rulesets. 218166338Seric KNOWN PROBLEM: I have seen some problems on SunOS that causes 218266338Seric the User Data Base to give errors on some addresses. I 218366338Seric have tracked the problem back at least as far as 93.02.15 218466338Seric (version 6.22). Running with debugging on makes it 218566338Seric go away, so I conclude that it is referencing uninitialized 218666338Seric stack data. I haven't been able to track this down yet. 218766338Seric 218866338Seric6.36/6.16 93/03/08 218966338Seric Allow local mailer to specify $@host -- this lets you assign the 219066338Seric "foo" part of jgm+foo to $h for passing in to the local 219166338Seric mailer. 219266338Seric Additional debug printing in getcanonname (show query type). 219366338Seric Don't add the e_fromdomain on sender addresses -- this interacts 219466338Seric wierdly with the owner- code. 219566338Seric Improve delivery logging to not log obvious or meaningless stuff. 219666338Seric Include numeric IP address in Received: lines per RFC 1123 section 219766338Seric 5.2.8. 219866338Seric Fixed a bug in checking stat() return value if restrictmailq is 219966338Seric set. Also, check the entire group set instead of just the 220066338Seric primary group. Both from John Gardiner Myers. 220166338Seric Don't have usrerr automatically print errno, since this is often 220266338Seric misleading. 220366338Seric Use transienterror() in makeconnection after connect() fails and 220466338Seric in openmailer after execve() fails (from Eric Wassenaar). 220566338Seric Also moved transienterror() from util.c to conf.c. 220666338Seric Clean up from= logging on response messages. 220766338Seric Undo patch allowing prescan to return a null vector -- it breaks 220866338Seric too many things. 220966338Seric Config: FEATURE(notsticky) lets you use UDB for everything coming 221066338Seric in to the machine, even if it is specifically targetted 221166338Seric to this machine. Without it, UDB is bypassed if the user 221266338Seric name is fully qualified. 221366338Seric Config: fix another minor botch with <> (local mailer wasn't 221466338Seric mapping them properly). 221566338Seric 221666338Seric6.35/6.15 93/03/05 221766338Seric Fix getrealhostname to return null if sinlen <= 0 -- this can 221866338Seric occur if stdin is a pipe. 221966338Seric Avoid infinite loop in getcanonname if name server return 222066338Seric NO_DATA (for example). 222166338Seric Config: avoid having C flag qualify list syntax and error syntax. 222266338Seric 222366338Seric6.34/6.14 93/03/05 222466338Seric Fix logging in deliver to not pass too many parameters to Ultrix 222566338Seric versions of syslog. 222666338Seric Don't write the pid file until after the daemon has actually 222766338Seric opened and conditioned the connection. 222866338Seric Consider addresses "different" if their q_uids differ (so that 222966338Seric two users forwarding to the same program will be seen 223066338Seric as different, rather than the same). 223166338Seric Fix problem with bad parameters in main() -- they set ExitStat 223266338Seric but don't exit. 223366338Seric Fix null pointer references through RealHostName -- painfully 223466338Seric discovered by Allan E Johannesen of WPI. 223566338Seric Fix bug causing user@@localhost to core dump (yuch). 223666338Seric Config: don't put two @host.dom.ain on users in $=E in SMTP 223766338Seric mailer. Also, catch user@ (no host) in ruleset 0. 223866338Seric 223966338Seric6.33/6.13 93/03/03 224066338Seric Config: add confCW_FILE as the name of the cw configuration file 224166338Seric (defaults to /etc/sendmail.cw). From P{r Emanuelsson. 224266338Seric Allow prescan to return a pointer to an empty list -- this is 224366338Seric not an error. Also, clean up error reporting to avoid 224466338Seric double errors (prescan reports once, then the caller 224566338Seric reports again). 224666338Seric Changes to avoid trusting T_ANY queries -- run them, but if you 224766338Seric don't get the info you expected, do T_A and T_MX queries 224866338Seric anyhow. This also fixes an oversight where _res.options 224966338Seric bits were being ignored. 225066338Seric If PRIV_NOVRFY is set, use 252 response code instead of 502 per 225166338Seric RFC 1123 section 5.2.3. It's not 100% clear that this 225266338Seric is correct, but it probably works better with stupid 225366338Seric mailers that do a VRFY and only check the first digit. 225466338Seric 225566338Seric6.32/6.12 93/03/02 225666338Seric Fix uninitialized variable "protocol" in smtp code. 225766338Seric Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI. 225866338Seric Additional hooks for RFC 1427 (ESMTP SIZE extension). This 225966338Seric includes requiring that enoughspace() know the system 226066338Seric block size, which will undoubtedly break most ports. 226166338Seric Trace flag 19 in use for srvrsmtp.c. 226266338Seric Additional logging -- notably the sending mailer name. This 226366338Seric also changes the delivery logging to strict field=value 226466338Seric syntax. 226566338Seric Fix some problems with messages getting sent even to addresses 226666338Seric that had been marked bad -- from Eric Wassenaar. 226766338Seric More WIDE changes: accept host name inside [...] as non-MXed 226866338Seric host. This is intended ONLY for use inside firewalled 226966338Seric environments, where the MX points at the gateway. 227066338Seric Change .cf file conventions so that mapping for <> addresses 227166338Seric don't have an @ in them (to avoid confusing the C mailer 227266338Seric flag). Pointed out by Neil Rickert. 227366338Seric Config extensions for Sam Leffler's FlexFAX software. 227466338Seric 227566338Seric6.31/6.10 93/02/28 227666338Seric Fix some more bugs in alias owner code -- there were some wierd 227766338Seric cases where an error in a non-aliased name would override 227866338Seric the return info in an aliased name with an owner. 227966338Seric Changes from WIDE Project, forwarded to me by Motonori Nakamura: 228066338Seric Log actual delivery host (after MX et al); from 228166338Seric yasuhiro@dcl.co.jp. 228266338Seric Log daemon startup. 228366338Seric Deliver Postmaster copies without a body. 228466338Seric Better logging of SMTP senders. 228566338Seric Send all program email as daemon even when local. 228666338Seric As requested in various forms from many people, accept -qIstring 228766338Seric to limit queue runs to jobs with queue-id matching string. 228866338Seric Similarly for -qRstring for recipients, -qSstring for 228966338Seric senders. 229066338Seric Initial hooks for ESMTP support (see RFC 1425). 229166338Seric Fixed a syntax error in the UUCP mailer specification that caused 229266338Seric core dumps on startup. 229366338Seric Check for missing A= or P= arguments in mailer definitions. 229466338Seric 229566338Seric6.30/6.10 93/02/27 229666338Seric Require FROZENCONFIG compilation flag to include frozen 229766338Seric configuration code. Frozen configuration is really 229866338Seric not a very good idea any more, particularly in shared 229966338Seric library environments. 230066338Seric Do better checking of errno after opens of :include: and .forward 230166338Seric files to defer delivery on network and other transient 230266338Seric errors. Suggestion from Craig Everhart. 230366338Seric Fix minor botch in read timeout macro processing. 230466338Seric Add FEATURE(nouucp) to config files for sites that know absolutely 230566338Seric nothing about UUCP. 230666338Seric Add built cf files to distribution tape and clarify how to build 230766338Seric them if you don't have the Berkeley make. 230866338Seric Some sizeof(long) portability changes for the Alpha, from Allan 230966338Seric E Johannesen. 231066338Seric Add "restrictmailq" privacy flag -- if set, only people in the same 231166338Seric group as your queue directory can print the queue. If you 231266338Seric set this, be sure you also restrict access to log files.... 231366338Seric Fix another bug in owner-list stuff that can cause data files to 231466338Seric be "lost". 231566338Seric Fix a bug with queue runs that cause forwards to yourself to go 231666338Seric into alias/forwarding loops. I'm still iffy about this 231766338Seric fix. 231866338Seric Fix from Eric Wassenaar for suppression of return message code. 231966338Seric 232066338Seric6.29/6.9 93/02/24 232166338Seric Fix yet another problem in alias owner code -- put the wrong return 232266338Seric address on the enclosed return-to-sender letter. 232366338Seric 232466338Seric6.28/6.9 93/02/24 232566338Seric Fix botch in alias owner code that caused it to not operate if the 232666338Seric error was detected locally. 232766338Seric 232866338Seric6.27/6.9 93/02/24 232966338Seric M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include 233066338Seric file <sys/mount.h>. 233166338Seric Miscellaneous bug fixes from Eric Wassenaar: 233266338Seric sendmail -bv -t logs the from line even though in verify 233366338Seric mode only. 233466338Seric sendmail -v can go into queue mode if shouldqueue returns 233566338Seric TRUE. 233666338Seric Add route-addr pruning per RFC 1123 section 5.3.3. This can be 233766338Seric disabled using the "R" option. 233866338Seric Delete (always undocumented) -R flag (save original recipients); 233966338Seric there are ways to syslog(3) these now. 234066338Seric Clean up SMTP reply codes -- specify them as needed in the code, 234166338Seric instead of in conf.c -- this was needed during the NCP to 234266338Seric TCP transition, but seems silly now. This also changes 234366338Seric parameters to message and nmessage. 234466338Seric Have mailstats read the .cf file to find the sendmail.st file and 234566338Seric get text versions of mailer names. An initial version of 234666338Seric this code was provided by Tuominen Keijo (although the 234766338Seric comments indicate the good bits were written by "E.V."). 234866338Seric Add yet more System V compatibility hacks. 234966338Seric Fix bug in VRFY code (assumes everything must be a local user). 235066338Seric Allow specification of any of the hard-wired pathnames in the 235166338Seric Makefile. 235266338Seric Delete concept of "trusted users" -- this really didn't provide 235366338Seric any security anyway, and caused some problems. 235466338Seric Delete last vestige of support for the word "at" as an equivalent 235566338Seric to the character "@". 235666338Seric Propagate owner-foo alias information into the envelope sender. 235766338Seric Based on code from John Gardiner Myers. This is a major 235866338Seric semantic change -- beware! 235966338Seric Allow $@ on LHS to indicate "match zero" -- this is used to match 236066338Seric the null expression. 236166338Seric 236266338Seric6.26/6.8 93/02/21 236366338Seric Don't "lose" queue runs. Very important fix from (who else?) 236466338Seric Eric Wassenaar. 236566338Seric Completely reset state on RSET command -- from Eric Wassenaar. 236666338Seric Send error messages and return receipts using an envelope sender 236766338Seric of <> regardless of the setting of $n. Rewriting rules 236866338Seric can undo this if they feel the necessity, as might be 236966338Seric needed for networks that don't understand the syntax. 237066338Seric This is permitted by RFC 821 section 3.6 and required by 237166338Seric RFC 1123 section 5.3.3. THIS REQUIRES VERSION 4 CONFIG 237266338Seric FILES because the rulesets must be able to parse <> 237366338Seric properly. 237466338Seric Don't ever send error messages to "<>" -- they will get sent to 237566338Seric the local postmaster or dumped in /usr/tmp/dead.letter 237666338Seric instead. Per RFC 1123 section 5.3.3. 237766338Seric Explicitly check for email to yourself as a dotted quad. You 237866338Seric have to call $[ [ ... ] $] to get this. 237966338Seric Up the message timeout to five days per RFC 1123 section 5.3.1.1. 238066338Seric Make all read timeouts individually configurable, as strongly 238166338Seric recommended by RFC 1123 section 5.3.2. 238266338Seric Use f_bavail (blocks available to regular users) instead of f_bfree 238366338Seric (blocks available to superuser) in free block checks. 238466338Seric Change $d macro to be the current time, not the origination time, 238566338Seric since this is consistent with how it is used now. 238666338Seric Generalization of enoughspace from Eric Wassenaar covering 238766338Seric SGI, Apollo, HPUX, Ultrix, and SunOS. 238866338Seric Ignore process group signals -- some front ends can do this if 238966338Seric you kill a window too quickly. From Eric Wassenaar. 239066338Seric Change umask to 022. 239166338Seric 239266338Seric6.25/6.8 93/02/20 239366338Seric Close all cached connections before calling mailers and after 239466338Seric forking for delivery (caused double closes which resulted 239566338Seric in false errors). 239666338Seric Add FEATURE(redirect) in config files -- this allows you to alias 239766338Seric old addresses to a pointer to the new address that will 239866338Seric give a 551 error message, but not deliver the mail. 239966338Seric Some code changes to make the 551 errors look pretty. 240066338Seric Names of M4 program paths in config files have changed -- they 240166338Seric are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS. 240266338Seric Fix a bug in the QSELFREF code having to do with empty .forward 240366338Seric files, reported by Eric Wassenaar. 240466338Seric Add option "p" (privacy flags); this allows you to tune how 240566338Seric picky the SMTP server will be. This also adds the 240666338Seric confPRIVACY_FLAGS M4 macro in the config files. 240766338Seric Add option "b" (minimum blocks free). If there are fewer than 240866338Seric this number of blocks free on the filesystem containing 240966338Seric the queue directory, the SMTP MAIL command will return 241066338Seric a 452 response and ask you to try again later. This 241166338Seric also adds the confMIN_FREE_BLOCKS M4 macro in the config 241266338Seric files. 241366338Seric Made VRFY just verify (doesn't expand aliases and .forward files); 241466338Seric EXPN does full expansion. RCPT in queue-only mode also 241566338Seric doesn't chase aliases and .forward. 241666338Seric 241766338Seric6.24/6.7 93/02/19 241866338Seric Increase the number of domain search entries in domain.c to allow 241966338Seric for the extra "" entry indicating the root domain. 242066338Seric Reported by Motonori Nakamura of Kyoto U. 242166338Seric Add a "SMART_HOST" in the configs for UUCP-connected sites that 242266338Seric want to forward all mail with extra "@"s to that site. 242366338Seric Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to 242466338Seric be specified as ``mailer:hostname'' to use an alternate 242566338Seric mailer. 242666338Seric Clarified and updated some wording in the Operations Guide. 242766338Seric Add the "c" mailer flag -- this suppresses all comment parts of 242866338Seric addresses (requested by John Curran of NEARnet). 242966338Seric Have -v print prompts in -bt mode even if stdin is not a terminal 243066338Seric (default behaviour is to be silent if not reading from 243166338Seric a terminal). Suggested by Bryan Costales, ICSI. 243266338Seric Move the metacharacters from C0 space (\001-\037) into C1 space 243366338Seric (\201-\237). This also fixes a bunch of potential bugs 243466338Seric with G1 characters (\240-\276) in headers relating to 243566338Seric negative numbers passed to isspace() et al. 243666338Seric Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias 243766338Seric database if YPCOMPAT is #defined. Enhancement from 243866338Seric Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd. 243966338Seric Add "list" Precedence (-30); this can be used with old sendmails 244066338Seric which will map to precedence 0 (which will return error 244166338Seric messages). Suggested by Stephen R. van den Berg. 244266338Seric Many bug fixes from Eric Wassenaar of the National Institute for 244366338Seric Nuclear and High-Energy Physics, Amsterdam: 244466338Seric Clear timeouts properly on open failures in include(). 244566338Seric Don't dereference through NULL if no home directory found. 244666338Seric Re-establish SIGCHLD signal on System 5 in reapchild(). 244766338Seric Avoid NULL pointer reference on -pFOO flag. 244866338Seric Properly handle backslash escapes in comments. 244966338Seric Correctly check reply status on SMTP NOOP command. 245066338Seric Properly save SMTP error message if peer gives 245166338Seric "Service Shutting Down" message. 245266338Seric Avoid writing to the transcript if it couldn't be opened. 245366338Seric Signal errors in SMTP children to parent properly. 245466338Seric Handle self references in a list more globally (include a 245566338Seric QSELFREF bit in the address flags). This enhancement 245666338Seric was suggested by Eric Wassenaar. 245766338Seric Use initgroups() in hpux, even though it's System-V based. The 245866338Seric HASINITGROUPS compile flag can set this on other systems. 245966338Seric This HPUX behaviour was pointed out by Eric Wassenaar. 246066338Seric 246166338Seric6.23/6.6 93/02/16 246266338Seric Clean up handling of LogLevel to make it easier to figure out 246366338Seric what's on what level. 246466338Seric Change log levels to have some consistency: 246566338Seric 1 serious system failures, security problems 246666338Seric 2 lost communications, protocol failures 246766338Seric 3 other serious failures 246866338Seric 4 minor errors 246966338Seric 5 message collection 247066338Seric 6 vrfy logging, creation of return-to-sender 247166338Seric 7 delivery failures 247266338Seric 8 delivery successes 247366338Seric 9 delivery tempfails (queue ups) 247466338Seric 10 database expansion 247566338Seric >64 debugging 247666338Seric Allow IDA-style separated processing on S= and R= in Mailer 247766338Seric definition lines. Note that rulesets 1 and 2 are 247866338Seric still used for both addresses as before. Bruce Lilly 247966338Seric gave a convincing argument that RFC976 insists on 248066338Seric this behaviour. 248166338Seric Added some time zones to arpatounix -- they may not be in the 248266338Seric standards, but they are in use. However, I may delete 248366338Seric arpatounix entirely -- there appears to be no reason 248466338Seric for it to exist. 248566338Seric Change to UUCP mailer (in cf directory) to try to do a saner job. 248666338Seric I'm still not certain about this mailer in general. 248766338Seric 248866338Seric6.22/6.5 93/02/15 248966338Seric Fix bug that prevents saving letters in ~/dead.letter. 249066338Seric Don't add angle brackets in VRFY command if angle brackets already 249166338Seric exist in the address. 249266338Seric Fix bogus error message in udbexpand. 249366338Seric Null terminate host buffers in buildaddr (broken in 6.21) -- 249466338Seric IMPORTANT FIX!! 249566338Seric 249666338Seric6.21/6.5 93/02/15 249766338Seric Fix another incorrect error message in alias.c, found by Azuma 249866338Seric Okamoto. 249966338Seric Fix a couple of problems in the more-configurable config files, 250066338Seric found by Tom Ivar Helbekkmo. 250166338Seric Fix problem with quoted :include: entries. 250266338Seric Don't duplicate the filename on verbose printing of .forward and 250366338Seric :include: contents. 250466338Seric Extend size of prescan buffer (to allow bigger addresses). Also, 250566338Seric detect some buffer overflows. 250666338Seric Log user SMTP protocol errors (log level 4). 250766338Seric 250866338Seric6.20/6.4 93/02/14 250966338Seric Fix another problem in the MCI state machine caused when there 251066338Seric were errors generated from the other end to commands 251166338Seric other than RCPT. 251266338Seric 251366338Seric6.19/6.4 93/02/14 251466338Seric Include load average support for DEC Alpha running OSF/1. 251566338Seric Fix multiple-response problem with errors in MAIL From: line. 251666338Seric Fix SMTP reply codes for invalid address syntaxes (give 501; 251766338Seric never give multiple error messages for a single message). 251866338Seric Fix problem where a cached connection timeout rejects all 251966338Seric later connects to that host. 252066338Seric Fix incorrect error message if alias.c is compiled with DBM only. 252166338Seric Additional changes to fix nested conditionals (from Bruce Lilly). 252266338Seric Recover more gracefully from operating system failures, particularly 252366338Seric NULL returns from openmailer (from Noritoshi Demizu, 252466338Seric OMRON Corporation). 252566338Seric Log forward, alias, and userdb expand operations on log level 10; 252666338Seric concept suggested by P{r (Pell) Emanuelsson. 252766338Seric Changes for HPUX 8.07 compatibility. 252866338Seric 252966338Seric6.18/6.4 93/02/12 253066338Seric Allow any config option to be set using an M4 define. 253166338Seric Change UNAME compile flag to HASUNAME for IDA compatibility 253266338Seric (besides, it's a better name). 253366338Seric Note in README that on SunOS it must be linked -Bstatic. 253466338Seric Fairly major change in domain.c to handle wildcard MX records 253566338Seric more rationally. NOTE: the "w" option (no wildcard MX 253666338Seric records match local domain) has been eliminated. 253766338Seric Fix some unset variable references pointed out by Bruce Lilly. 253866338Seric Fix host name in process titles when using cached connection. 253966338Seric 254066338Seric6.17/6.3 93/01/28 254166338Seric Fix System 5 compatibility changes to be compatible with the rest 254266338Seric of the world. 254366338Seric 254466338Seric6.16/6.3 93/01/28 254566338Seric Experimental fix for problem handling errors in the SMTP 254666338Seric protocol in conjunction with connection caching. 254766338Seric System 5 compatibility changes. 254866338Seric 254966338Seric6.15/6.3 93/01/26 255066338Seric Fix a bug that causes local mail delivered using -odq to be 255166338Seric eliminated as a duplicate (because it matched the 255266338Seric ctladdr, now passed in as a C line). These changes 255366338Seric are pretty tricky...... 255466338Seric 255566338Seric6.14/6.3 93/01/25 255666338Seric Add debugging for some MCI errors. 255766338Seric 255866338Seric6.13/6.3 93/01/22 255966338Seric Fix -e compatibility flag to take a value. 256066338Seric Fix a couple of minor compilation warnings on Sun cc. 256166338Seric Improve error messages in a few cases to be more self-explanatory. 256266338Seric 256366338Seric6.12/6.3 93/01/21 256466338Seric Fix yet-another problem with environment handling, pointed out 256566338Seric by Yoshitaka Tokugawa and Tom Ivar Helbekkmo. 256666338Seric Some heuristics to try to limit resource exhaustion problems 256766338Seric if a downstream host has been down for a long time. 256866338Seric Fix problem with incorrect host name being logged in "Connection 256966338Seric timed out" messages (from Tom Ivar Helbekkmo). 257066338Seric Fix some ANSI C problems (from Takahiro Kanbe). 257166338Seric Properly log message sender on returned mail during queue run. 257266338Seric Count number of recipients properly. 257366338Seric Fix a problem in yp map code. 257466338Seric Diagnose "message timed out" (from Motonori Nakamura). 257566338Seric 257666338Seric6.11/6.3 93/01/20 257766338Seric Fix problem with address delimitor inside quotes. 257866338Seric Define $k and $=k to be the UUCP name (from the uname call) 257966338Seric based on code from Bruce Lilly. 258066338Seric 258166338Seric6.10/6.2 93/01/18 258266338Seric Implement arpatounix (largely code from Bruce Lilly). 258366338Seric Log more info (suggested by John Myers). 258466338Seric Allow nested $?...$|...$. (inspired by code from Bruce Lilly of 258566338Seric Sony US). 258666338Seric POSIX compatibility (noted by Keith Bostic). 258766338Seric Handle SMTP MAIL command errors properly (urged by several people, 258866338Seric notably John Myers of CMU). 258966338Seric Do early diagnosis of .cf errors (notably referencing a RHS 259066338Seric substitution that isn't on the LHS). 259166338Seric Adjust checkpointing to better handle batched recipients, suggested 259266338Seric by John Myers. 259366338Seric Fix miscellaneous bugs. 259466338Seric (config files:) Implement MAIL_HUB for all local mail (to handle 259566338Seric NFS-mounted directories) as urged by Tom Ivar Helbekkmo 259666338Seric of the Norwegian School of Economics. 259766338Seric 259866338Seric6.9/6.1 93/01/13 259966338Seric Environment handling simplification/bug fix -- child processes 260066338Seric get a minimal, fixed environment. This avoids different 260166338Seric behaviour in queue runs. 260266338Seric Handle commas inside comments properly. 260366338Seric Properly limit large messages submitted in -obq mode. 260466338Seric 260566338Seric6.8/6.1 93/01/10 260666338Seric Check mtime of thaw file against .cf and sendmail binary, based on 260766338Seric code from John Myers. 260866338Seric 260966338Seric6.7/6.1 93/01/10 261066338Seric MX piggybacking, based on code from John Myers@CMU. 261166338Seric Allow checkcompat to return -1 to mean tempfail. 261266338Seric Bug fix in m_mno computation. 261366338Seric 261466338Seric6.6/6.1 93/01/09 261566338Seric Tuning of queueing functions as recommended by John Gardiner Myers. 261666338Seric Return mail headers (no body) on messages with negative precedence. 261766338Seric Minor other bug fixes. 261866338Seric 261966338Seric6.5/6.1 93/01/03 262066338Seric Fix botch causing queued headers to have ?XX? prefixes. 262166338Seric 262266338Seric6.4/6.1 93/01/02 262366338Seric Changes to recognize special mailer types (e.g., file) early. 262466338Seric 262566338Seric6.3/6.1 93/01/01 262666338Seric Pass timeouts to sfgets. 262766338Seric Check for control characters in addresses. 262866338Seric Fixed deferred error reporting. 262966338Seric Report duplicate aliases. 263066338Seric Handle mixed case recursive aliases. 263166338Seric Misc bug fixes. 263266338Seric 263366338Seric6.2/6.1 92/12/30 263466338Seric Put return-receipt-to on a conf.c flag (but don't set it). 263566338Seric Fix minor syslog problem. 2636