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