1*66346Seric8.6.3/8.6.3 93/10/24 2*66346Seric IMPORTANT FIX: Fix several problems that caused open files to 3*66346Seric be "lost" during queue runs; this overflowed the open 4*66346Seric file table on large runs. An assumption that fdopen 5*66346Seric always succeeds sometimes resulted in core dumps when 6*66346Seric this happens; sometimes the message is delivered twice, 7*66346Seric sometimes (probably) infinite times. This problem in 8*66346Seric various form was reported by P{r (Pell) Emanuelsson and 9*66346Seric Robert Campbell of U.C. Berkeley. 10*66346Seric Special diagnosis of EMFILE error conditions -- it now prints 11*66346Seric the known open file descriptors so you can figure out 12*66346Seric what is consuming so much resources. 13*66346Seric Fix a couple of problems caused by early address parsing 14*66346Seric errors -- one caused it to return a "this is only a 15*66346Seric warning" when it really wasn't, and the other started 16*66346Seric parsing through a random pointer. The first was 17*66346Seric noted by Eric Wassenaar. 18*66346Seric Fix an infinite loop problem caused by null components in the 19*66346Seric host signature. Problem noted by Jan Sorensen. 20*66346Seric Be sure to reset the "current date" when sending an error 21*66346Seric message -- PostMasterCopy messages were being sent 22*66346Seric with an old Date: header. 23*66346Seric Fix a problem that caused duplicated mail when sendmail was 24*66346Seric (1) compiled without HASFLOCK, (2) you are sending to 25*66346Seric an alias that has an owner-* alias, (3) you execute 26*66346Seric sendmail with -t flag, (4) you run in -odb mode, and 27*66346Seric (5) the sender specifies both the alias name and 28*66346Seric another alias [i.e., the envelope is split], then 29*66346Seric duplicate messages are sent. The problem description 30*66346Seric and one-line fix are from Motonori Nakamura of Kyoto 31*66346Seric University. 32*66346Seric Avoid a problem that causes error messages to be discarded 33*66346Seric in some cases -- this was the result of a "fix" to 34*66346Seric avoid duplicate error messages, but two are better 35*66346Seric than zero. Reported by Tim Rylance. 36*66346Seric Fix a minor botch in checkfd012() -- fix from Dave Hill of 37*66346Seric Computervision R&D Ltd. 38*66346Seric Remove "X-Authentication-Warning: <user> set sender to <address> 39*66346Seric using -f" entirely -- it is far too eager to include 40*66346Seric this, and it is confusing folks. I'll try to make it 41*66346Seric work "right" in 8.7. Problem noted by Yoshitaka 42*66346Seric Tokugawa of dit Co., Ltd. 43*66346Seric Fix a race condition with the errno value in tick() and 44*66346Seric reapchild() -- this caused occasional misdiagnosis 45*66346Seric of problems. Kyle Jones of UUNET helped this along. 46*66346Seric Repair rule loop-detection code. From Michael Corrigan of 47*66346Seric U.C. San Diego. 48*66346Seric Fix a problem that caused sender domain addition (C mailer 49*66346Seric flag to be ignored if you use -odq or use -odb with 50*66346Seric a high load average. Problem reported by Jim Murray 51*66346Seric of Stratus. 52*66346Seric Fix ident protocol on multi-homed machines. It was not 53*66346Seric always using the correct interface. Fix from J.R. 54*66346Seric Oldroyd of Opal. 55*66346Seric Previously, sendmail assumed that any SMTP greeting message 56*66346Seric that wasn't 2xx was a temporary failure -- it should 57*66346Seric only take 4xx as a temporary failure, and return a 58*66346Seric solid error message on anything else -- for example, 59*66346Seric to allow you to reject connections on a workstation 60*66346Seric that is MXed to a mail server. 61*66346Seric Portability enhancements for 386BSD/FreeBSD/NetBSD from 62*66346Seric Ollivier Robert. 63*66346Seric CONFIG: FEATURE(always_add_domain) didn't always add the domain; 64*66346Seric in particular, on local mail it modified the header sender 65*66346Seric but not the header recipient address(es). Reported by 66*66346Seric Jeffrey Honig of Cornell University. Also, strip 67*66346Seric any host from envelope recipient address(es), since 68*66346Seric local mailers don't understand host names -- this is 69*66346Seric to help mailertable entries. From Christopher Davis. 70*66346Seric CONFIG: masquerading didn't apply to addresses that already 71*66346Seric had a domain. This change replaces a local hostname 72*66346Seric by the masquerade name in the SMTP mailer (previously 73*66346Seric it only added the masquerade name if it didn't already 74*66346Seric have a domain name). Several people complained about 75*66346Seric this. 76*66346Seric 7766345Seric8.6.2/8.6.2 93/10/15 7866345Seric Put a "successful delivery" message in the transcript for 7966345Seric addresses that get return-receipts. 8066345Seric Put a prominent "this is only a warning" message in warning 8166345Seric messages -- some people don't read carefully enough 8266345Seric and end up sending the message several times. 8366345Seric Include reason for temporary failure in the "warning" return 8466345Seric message. Currently, it just says "cannot send for 8566345Seric four hours". 8666345Seric Fix the "Original message received" time generated for 8766345Seric returntosender messages. It was previously listed as 8866345Seric the current time. Bug reported by Eric Hagberg of 8966345Seric Cornell University Medical College. 9066345Seric If there is an error when writing the body of a message, 9166345Seric don't send the trailing dot and wait for a response 9266345Seric in sender SMTP, as this could cause the connection to 9366345Seric hang up under some bizarre circumstances. From Eric 9466345Seric Wassenaar. 9566345Seric Fix some server SMTP synchronization problems caused when 9666345Seric connections fail during message collection. From 9766345Seric Eric Wassenaar. 9866345Seric Fix a problem that can cause srvrsmtp to reject mail if the 9966345Seric name server is down -- it accepts the RCPT but rejects 10066345Seric the DATA command. Problem reported by Jim Murray of 10166345Seric Stratus. 10266345Seric Fix a problem that can cause core dumps if the config file 10366345Seric incorrectly resolves to a null hostname. Reported by 10466345Seric Allan Johannesen of WPI. 10566345Seric Non-root use of -C flag, dangerous -f flags, and use of -oQ 10666345Seric by non-root users were not put into 10766345Seric X-Authentication-Warning:s as intended because the 10866345Seric config file hadn't set the PrivacyFlags yet. Fix 10966345Seric from Sven-Ove Westberg of the University of Lulea. 11066345Seric Under very odd circumstances, the alias file rebuild code 11166345Seric could get confused as to whether a database was 11266345Seric open or not. 11366345Seric Check "vendor code" on the end of V lines -- this is 11466345Seric intended to provide a hook for vendor-specific 11566345Seric configuration syntax. (This is a "new feature", 11666345Seric but I've made an exception to my rule in a belief 11766345Seric that this is a highly exceptional case.) 11866345Seric Portability fixes for DG/UX (from Douglas Anderson of NCSC), 11966345Seric SCO Unix (from Murray Kucherawy), A/UX, and OSF/1 12066345Seric (from Jon Forrest of UC Berkeley) 12166345Seric CONFIG: fix ``mailer:host'' form of UUCP relay naming. 12266345Seric 12366344Seric8.6.1/8.6 93/10/08 12466344Seric Portability fixes for A/UX and Encore UMAX V. 12566344Seric Fix error message handling -- if you had a name server down 12666344Seric causing an error during parsing, that message was never 12766344Seric propogated to the queue file. 12866344Seric 12966343Seric8.6/8.6 93/10/05 13066343Seric Configuration cleanup: make it easier to undo IDENTPROTO in 13166343Seric conf.h (other systems have the same bug). 13266343Seric If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume 13366343Seric getdtablesize() instead of sysconf(); a disturbingly 13466343Seric large number of systems defined _SC_OPEN_MAX in the 13566343Seric header files but don't have the syscall. 13666343Seric Another patch to really truly ignore MX records in getcanonname 13766343Seric if trymx == FALSE. 13866343Seric Fix problem that caused the "250 IAA25499 Message accepted for 13966343Seric delivery" message to be omitted if there was an error 14066343Seric in the header of the message (e.g., a bad Errors-To: 14166343Seric line). Pointed out by Michael Corrigan of UCSD. 14266343Seric Announce name of host we are chatting when we get errors; this 14366343Seric is an IDA-ism suggested by Christophe Wolfhugel. 14466343Seric Portability fixes for Alpha OSF/1 (from Anthony Baxter of the 14566343Seric Australian Artificial Intelligence Institute), SCO Unix 14666343Seric (from Murray Kucherawy of Hookup Communication Corp.), 14766343Seric NeXT (from Vince DeMarco and myself), Linux (from 14866343Seric Karl London <karl@borg.demon.co.uk>), BSDI (from 14966343Seric Christophe Wolfhugel, and SVR4 on Dell (from Kimmo 15066343Seric Suominen), AUX 3.0 on Macintosh, and ANSI C compilers. 15166343Seric Some changes to get around gcc optimizer bugs. From Takahiro 15266343Seric Kanbe. 15366343Seric Fix error recovery in queueup if another tf file of the same 15466343Seric name already exists. Problem stumbled over by Bill 15566343Seric Wisner of The Well. 15666343Seric Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes. 15766343Seric Problem noted by Keith McMillan of Ameritech Services. 15866343Seric Deal with group permissions properly when opening .forward and 15966343Seric :include: files. This relaxes the 8.1C restrictions 16066343Seric slightly more. This includes proper setting of groups 16166343Seric when reading :include: files, allowing you to read some 16266343Seric files that you should be able to read but have previously 16366343Seric been denied unless you owned them or they had "other" 16466343Seric read permission. 16566343Seric Make certain that $j is in $=w (after the .cf is read) so that 16666343Seric if the user is forced to override some silly system, 16766343Seric MX suppression will still work. 16866343Seric Fix a couple of efficiency problems where newstr was double- 16966343Seric calling expensive routines. In at least one case, it 17066343Seric wasn't guaranteed that they would always return the 17166343Seric same result. Problem noted by Christophe Wolfhugel. 17266343Seric Fix null pointer dereference in putoutmsg -- only on an error 17366343Seric condition from a non-SMTP mailer. From Motonori 17466343Seric Nakamura. 17566343Seric Macro expand "C" line class definitions before scanning so that 17666343Seric "CX $Z" works. 17766343Seric Fix problem that caused error message to be sent while still 17866343Seric trying to send the original message if the connection 17966343Seric is closed during a DATA command after getting an error 18066343Seric on an RCPT command (pretty obscure). Problem reported 18166343Seric by John Myers of CMU. 18266343Seric Fix reply to NOOP to be 250 instead of 200 -- this is a long 18366343Seric term bug. 18466343Seric Fix a nasty bug causing core dumps when returning the "warning: 18566343Seric cannot deliver for N hours -- will keep trying" message; 18666343Seric it only occurred if you had PostMasterCopy set and 18766343Seric only on some architectures. Although sendmail would 18866343Seric keep trying, it would send error messages on each 18966343Seric queue interval. This is an important fix. 19066343Seric Allow u and g options to take user and group names respectively. 19166343Seric Don't do a chdir into the queue directory in -bt mode to make 19266343Seric ruleset testing a bit easier. 19366343Seric Don't allow users to turn off logging (using -oL) on the command 19466343Seric line -- command line can only raise, not lower, logging 19566343Seric level. 19666343Seric Set $u to the original recipient on the SMTP transaction or on 19766343Seric the command line. This is only done if there is exactly 19866343Seric one recipient. Technically, this does not meet the 19966343Seric specs, because it does not guarantee a domain on the 20066343Seric address. 20166343Seric Fix a problem that dumped error messages on bad addresses if 20266343Seric you used the -t flag. Problem noted by Josh Smith of 20366343Seric Harvey Mudd College. 20466343Seric Given an address such as ``<foo> <bar>'', auto-quote the first 20566343Seric ``<foo>'' part, giving ``"<foo>" <bar>''. This is to 20666343Seric avoid the problem of people who use angle brackets in 20766343Seric their full name information. 20866343Seric Fix a null pointer dereference if you set option "l", have 20966343Seric an Errors-To: header in the message, and have Errors-To: 21066343Seric defined in the config file H lines. From J.R. Oldroyd. 21166343Seric Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get 21266343Seric wrong when compiling. Suggested by Rick McCarty of TI. 21366343Seric Fix a problem that could pass negative SIZE parameter if the 21466343Seric df file got lost; this would cause servers to always 21566343Seric give a temporary failure, making the problem even worse. 21666343Seric Problem noted by Allan Johannesen of WPI. 21766343Seric Add "ident" timeout (one of the "r" option selectors) for IDENT 21866343Seric protocol timeouts (30s default). Requested by Murray 21966343Seric Kucherawy of HookUp Communication Corp. to handle bogus 22066343Seric PC TCP/IP implementations. 22166343Seric Change $w default definition to be just the first component of 22266343Seric the domain name on config level 5. The $j macro defaults 22366343Seric to the FQDN; $m remains as before. This lets well-behaved 22466343Seric config files use any of the short, long, or subdomain 22566343Seric names. 22666343Seric Add makesendmail script in src to try to automate multi-architecture 22766343Seric builds. I know, this is sub-optimal, but it is still 22866343Seric helpful. 22966343Seric Fix very obscure race condition that can cause a queue run to 23066343Seric get a queue file for an already completed job. This 23166343Seric problem has existed for years. Problem noted by the 23266343Seric long suffering Allan Johannesen of WPI. 23366343Seric Fix a problem that caused the raw sender name to be passed to 23466343Seric udbsender instead of the canonified name -- this caused 23566343Seric it to sometimes miss records that it should have found. 23666343Seric Relax check of name on HELO packet so that a program using -bs 23766343Seric that claims to be itself works properly. 23866343Seric Restore rewriting of $: part of address through 2, R, 4 in 23966343Seric buildaddr -- this requires passing a lot of flags to get 24066343Seric it right. Unlike old versions, this ONLY rewrites 24166343Seric recipient addresses, not sender addresses. 24266343Seric Fix a bug that caused core dumps in config files that cannot 24366343Seric resolve /file/name style addresses. Fix from Jonathan 24466343Seric Kamens of OpenVision Technologies. 24566343Seric Fix problem with fcntl locking that can cause error returns to 24666343Seric be lost if the lock is lost; this required fully 24766343Seric queueing everything, dropping the envelope (so errors 24866343Seric would get returned), and then re-reading the queue from 24966343Seric scratch. 25066343Seric Fix a problem that caused aliases that redefine an otherwise 25166343Seric true address to still send to the original address 25266343Seric if and only if the alias failed in certain bizarre 25366343Seric ways (e.g, if they pointed at a list:; syntax address). 25466343Seric Problem pointed out by Jonathan Kamens. 25566343Seric Remove support for frozen configuration files. They caused 25666343Seric more trouble than it was worth. 25766343Seric Fix problem that can cause error messages to get ignored when 25866343Seric using both -odb and -t flags. Problem noted by Rob 25966343Seric McNicholas at U.C. Berkeley. 26066343Seric Include all "normal" variations on hostname in $=w. For example, 26166343Seric if the host name is vangogh.cs.berkeley.edu, $=w will 26266343Seric contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu. 26366343Seric Add "restrictqrun" privacy flag -- without this, anyone can run 26466343Seric the queue. 26566343Seric Reset SmtpPhase global on initial connection creation so that 26666343Seric messages don't come out with stale information. 26766343Seric Pass an "ext" argument to lockfile so that error/log messages 26866343Seric will properly reflect the true filename being locked. 26966343Seric Put all [...] address forms into $=w -- this eliminates the need 27066343Seric for MAXIPADDR in conf.h. Suggested by John Gardiner 27166343Seric Myers of CMU. 27266343Seric Fix a bug that can cause qf files to be left around even after 27366343Seric an SMTP RSET command. Problem and fix from Michael 27466343Seric Corrigan. 27566343Seric Don't send a PostMasterCopy to errors when the Precedence: is 27666343Seric negative. Error reports still go to the envelope 27766343Seric sender address. 27866343Seric Add LA_SHORT for load averages. 27966343Seric Lock sendmail.st file when posting statistics. 28066343Seric Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to 28166343Seric set the size of the TCP send and receive buffers; if you 28266343Seric run over a slow slip line you may need to set these down 28366343Seric (although it would be better to fix the SLIP implementation 28466343Seric so that it's not necessary to recompile every program 28566343Seric that does bulk data transfer). 28666343Seric Allow null defaults on $( ... $) lookups. Problem reported by 28766343Seric Amir Plivatsky. 28866343Seric Diagnose crufty S and V config lines. This resulted from an 28966343Seric observation that some people were using the SITE macro 29066343Seric without the SITECONFIG macro first, which was causing 29166343Seric bogus config files that were not caught. 29266343Seric Fix makemap -f flag to turn off case folding (it was turning it 29366343Seric on instead). THIS IS A USER VISIBLE CHANGE!!! 29466343Seric Fix a problem that caused multiple error messages to be sent if 29566343Seric you used "sendmail -t -oem -odb", your system uses fcntl 29666343Seric locking, and one of the recipient addresses is unknown. 29766343Seric Reset uid earlier in include() so that recursive .forwards or 29866343Seric :include:s don't use the wrong uid. 29966343Seric If file descriptor 0, 1, or 2 was closed when sendmail was 30066343Seric called, the code to recover the descriptor was broken. 30166343Seric This sometimes (only sometimes) caused problems with the 30266343Seric alias file. Fix from Motonori Nakamura. 30366343Seric Fix a problem that caused aliaswait to go into infinite recursion 30466343Seric if the @:@ metasymbol wasn't found in the alias file. 30566343Seric Improve error message on newaliases if database files cannot be 30666343Seric opened or if running with no database format defined. 30766343Seric Do a better estimation of the size of error messages when NoReturn 30866343Seric is set. Problem noted by P{r (Pell) Emanuelsson. 30966343Seric Fix a problem causing the "c" option (don't connect to expensive 31066343Seric mailers) to be ignored in SMTP. Problem noted and the 31166343Seric solution suggested by Robert Elz of Munnari University. 31266343Seric Improve connection caching algorithm by passing "[host]" to 31366343Seric hostsignature, which strips the square brackets and 31466343Seric returns the real name. This allows mailertable entries 31566343Seric to match regular entries. 31666343Seric Re-enable Return-Receipt-To: -- people seem to want this stupid 31766343Seric feature, even if it doesn't work right. 31866343Seric Catch and log attempts to try the "wiz" command in server SMTP. 31966343Seric This also ups the log level from LOG_NOTICE to LOG_CRIT. 32066343Seric Be more generous at assigning $z to the home directory -- do this 32166343Seric for programs that are specified through a .forward file. 32266343Seric Fix from Andrew Chang of Sun Microsystems. 32366343Seric Always save a fatal error message in preference to a non-fatal 32466343Seric error message so that the "subject" line of return 32566343Seric messages is the best possible. 32666343Seric CONFIG: reduce the number of quotes needed to quote configuration 32766343Seric parameters with commas: two quotes should work now, e.g., 32866343Seric define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local''). 32966343Seric CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom 33066343Seric connections (domain-ized UUCP). 33166343Seric CONFIG: fix bug in default maps (-o must be before database file 33266343Seric name). Pointed out by Christophe Wolfhugel. 33366343Seric CONFIG: add FEATURE(nodns) to state that we are not relying on 33466343Seric DNS. This would presumably be used in UUCP islands. 33566343Seric CONFIG: add OSTYPE(nextstep) and OSTYPE(linux). 33666343Seric CONFIG: log $u in Received: line. This is in technical violation 33766343Seric of the standards, since it doesn't guarantee a domain 33866343Seric on the address. 33966343Seric CONFIG: don't assume "m" in local mailer flags -- this means that 34066343Seric if you redefine LOCAL_MAILER_FLAGS you will have to include 34166343Seric the "m" flag should you want it. Apparently some Solaris 2.2 34266343Seric installations can't handle multiple local recipients. 34366343Seric Problem noted by Josh Smith. 34466343Seric CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults). 34566343Seric CONFIG: change default version level from 4 to 5. 34666343Seric CONFIG: add FEATURE(nullclient) to create a config file that 34766343Seric forwards all mail to a hub without ever looking at the 34866343Seric addresses in any detail. 34966343Seric CONFIG: properly strip mailer: information off of relays when 35066343Seric used to change .BITNET form into %-hack form. 35166343Seric CONFIG: fix a problem that caused infinite loops if presented 35266343Seric with an address such as "!foo". 35366343Seric CONFIG: check for self literal (e.g., [128.32.131.12]) even if 35466343Seric the reverse "PTR" mapping is broken. There's a better 35566343Seric way to do this, but the change is fairly major and I 35666343Seric want to hold it for another release. Problem noted by 35766343Seric Bret Marquis. 35866343Seric 35966342Seric8.5/8.5 93/07/23 36066342Seric Serious bug: if you used a command line recipient that was unknown 36166342Seric sendmail would not send a return message (it was treating 36266342Seric everything as though it had an SMTP-style client that 36366342Seric would do the return itself). Problem noted by Josh Smith. 36466342Seric Change "trymx" option in getcanonname() to ignore all MX data, 36566342Seric even during a T_ANY query. This actually didn't break 36666342Seric anything, because the only time you called getcanonname 36766342Seric with !trymx was if you already knew there were no MX 36866342Seric records, but it is somewhat cleaner. From Motonori 36966342Seric Nakamura. 37066342Seric Don't call getcanonname from getmxrr if you already know there 37166342Seric are no DNS records matching the name. 37266342Seric Fix a problem causing error messages to always include "The 37366342Seric original message was received ... from localhost". 37466342Seric The correct original host information is now included. 37566342Seric Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their 37666342Seric version of "test" doesn't have the -x flag). Change it 37766342Seric to use -f instead. From John Myers. 37866342Seric CONFIG: 8.4 mistakenly set the default SMTP-style mailer to 37966342Seric esmtp -- it should be smtp. 38066342Seric CONFIG: send all relayed mail using confRELAY_MAILER (defaults 38166342Seric to "relay" (a variant of "smtp") if MAILER(smtp) is used, 38266342Seric else "suucp" if MAILER(uucp) is used, else "unknown"); 38366342Seric this cleans up the configs somewhat. This fixes a serious 38466342Seric problem that caused route-addrs to get mistaken as relays, 38566342Seric pointed out by John Myers. WARNING: this also causes 38666342Seric the default on SMART_HOST to change from "suucp" to 38766342Seric "relay" if you have MAILER(smtp) specified. 38866342Seric 38966341Seric8.4/8.4 93/07/22 39066341Seric Add option `w'. If you receive a message that comes to you because 39166341Seric you are the best (lowest preference) target of an MX, and 39266341Seric you haven't explicitly recognized the source MX host in 39366341Seric your .cf file, this option will cause you to try the target 39466341Seric host directly (as if there were no MX for it at all). If 39566341Seric `w' is not set, this case is a configuration error. 39666341Seric Beware: if `w' is set, senders may get bogus errors like 39766341Seric "message timed out" or "host unknown" for problems that 39866341Seric are really configuration errors. This option is 39966341Seric disrecommended, provided only for compatibility with 40066341Seric UIUC sendmail. 40166341Seric Fix a problem that caused the incoming socket to be left open 40266341Seric when sendmail forks after the DATA command. This caused 40366341Seric calling systems to wait in FIN_WAIT_2 state until the 40466341Seric entire list was processed and the child closed -- a 40566341Seric potentially prodigious amount of time. Problem noted 40666341Seric by Neil Rickert. 40766341Seric Fix problem (created in 6.64) that caused mail sent to multiple 40866341Seric addresses, one of which was a bad address, to completely 40966341Seric suppress the sending of the message. This changes 41066341Seric handling of EF_FATALERRS somewhat, and adds an 41166341Seric EF_GLOBALERRS flag. This also fixes a potential problem 41266341Seric with duplicate error messages if there is a syntax error 41366341Seric in the header of a message that isn't noticed until late 41466341Seric in processing. Original problem pointed out by Josh Smith 41566341Seric of Harvey Mudd College. This release includes quite a bit 41666341Seric of dickering with error handling (see below). 41766341Seric Back out SMTP transaction if MAIL gets nested 501 error. This 41866341Seric will only hurt already-broken software and should help 41966341Seric humans. 42066341Seric Fix a problem that broke aliases when neither NDBM nor NEWDB were 42166341Seric compiled in. It would never read the alias file. 42266341Seric Repair unbalanced `)' and `>' (the "open" versions are already 42366341Seric repaired). 42466341Seric Logging of "done" in dropenvelope() was incorrect: it would 42566341Seric log this even when the queue file still existed. Change 42666341Seric this to only log "done" (at log level 11) when the 42766341Seric queue file is actually removed. From John Myers. 42866341Seric Log "lost connection" in server SMTP at log level 20 if there 42966341Seric is no pending transaction. Some senders just close the 43066341Seric connection rather than sending QUIT. 43166341Seric Fix a bug causing getmxrr to add a dot to the end of unqualified 43266341Seric domains that do not have MX records -- this would cause 43366341Seric the subsequent host name lookup to fail. The problem 43466341Seric only occurred if you had FEATURE(nocanonify) set. 43566341Seric Problem noted by Rick McCarty of Texas Instruments. 43666341Seric Fix invocation of setvbuf when passed a -X flag -- I had 43766341Seric unwittingly used an ANSI C extension, and this caused 43866341Seric core dumps on some machines. 43966341Seric Diagnose self-destructive alias loops on RCPT as well as EXPN. 44066341Seric Previously it just gave an empty send queue, which 44166341Seric then gave either "Need RCPT (recipient)" at the DATA 44266341Seric (confusing, since you had given an RCPT command which 44366341Seric returned 250) or just dropped the email, depending on 44466341Seric whether you were running VERBose mode. Now it usually 44566341Seric diagnoses this case as "aliasing/forwarding loop broken". 44666341Seric Unfortunately, it still doesn't adequately diagnose 44766341Seric some true error conditions. 44866341Seric Add internal concept of "warning messages" using 6xx codes. 44966341Seric These are not reported only to Postmaster. Unbalanced 45066341Seric parens, brackets, and quotes are printed as 653 codes. 45166341Seric They are always mapped to 5xx codes before use in SMTP. 45266341Seric Clean up error messages to tell both the actual address that 45366341Seric failed and the alias they arose from. This makes it 45466341Seric somewhat easier to diagnose problems. Difficulty noted 45566341Seric by Motonori Nakamura. 45666341Seric Fix a problem that inappropriately added a ctladdr to addresses 45766341Seric that shouldn't have had one during a queue run. This 45866341Seric caused error messages to be handled differently during 45966341Seric a queue run than a direct run. 46066341Seric Don't print the qf name and line number if you get errors during 46166341Seric the direct run of the queue from srvrsmtp -- this was 46266341Seric just extra stuff for users to crawl through. 46366341Seric Put command line flags on second line of pid file so you can 46466341Seric auto-restart the daemon with all appropriate arguments. 46566341Seric Use "kill `head -1 /etc/sendmail.pid`" to stop the 46666341Seric daemon, and "eval `tail -1 /etc/sendmail.pid`" to 46766341Seric restart it. 46866341Seric Remove the ``setuid(getuid())'' in main -- this caused the 46966341Seric IDENT daemon to screw up. This required that I change 47066341Seric HASSETEUID to HASSETREUID and complicate the mode 47166341Seric changing somewhat because both Ultrix and SunOS seem 47266341Seric to have a bug causing seteuid() to set the saved uid 47366341Seric as well as the effective. The program test/t_setreuid.c 47466341Seric will test to see if your implementation of setreuid(2) 47566341Seric is appropriately functional. 47666341Seric The FallBackMX (option V) handling failed to properly identify 47766341Seric fallback to yourself -- most of the code was there, 47866341Seric but it wasn't being enabled. Problem noted by Murray 47966341Seric Kucherawy of the University of Waterloo. 48066341Seric Change :include: open timeout from ETIMEDOUT to an internal 48166341Seric code EOPENTIMEOUT; this avoids adding "during SmtpPhase 48266341Seric with CurHostName" in error messages, which can be 48366341Seric confusing. Reported by Jonathan Kamens of OpenVision 48466341Seric Technologies. 48566341Seric Back out setpgrp (setpgid on POSIX systems) call to reset the 48666341Seric process group id. The original fix was to get around 48766341Seric some problems with recalcitrant MUAs, but it breaks 48866341Seric any call from a shell that creates a process group id 48966341Seric different from the process id. I could try to fix 49066341Seric this by diddling the tty owner (using tcsetpgrp or 49166341Seric equivalent) but this is too likely to break other 49266341Seric things. 49366341Seric Portability changes: 49466341Seric Support -M as equivalent to -oM on Ultrix -- apparently 49566341Seric DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs 49666341Seric instead of using standard flags. Oh joy. This 49766341Seric behaviour reported by Jon Giltner of University 49866341Seric of Colorado. 49966341Seric SGI IRIX -- this includes several changes that should 50066341Seric help other strict ANSI compilers. 50166341Seric SCO Unix -- from Murray Kucherawy of HookUp Communication 50266341Seric Corporation. 50366341Seric Solaris running the Sun C compiler (which despite the 50466341Seric documentation apparently doesn't define 50566341Seric __STDC__ by default). 50666341Seric ConvexOS from Eric Schnoebelen of Convex. 50766341Seric Sony NEWS workstations and Omron LUNA workstations from 50866341Seric Motonori Nakamura. 50966341Seric CONFIG: add confTRY_NULL_MX_LIST to set option `w'. 51066341Seric CONFIG: delete `C' and `e' from default SMTP mailers flags; 51166341Seric several people have made a good argument that this 51266341Seric creates more problems than it solves (although this 51366341Seric may prove painful in the short run). 51466341Seric CONFIG: generalize all the relays to accept a "mailer:host" 51566341Seric format. 51666341Seric CONFIG: move local processing in ruleset 0 into a new ruleset 51766341Seric 98 (8 on old sendmail). Domain literal [a.b.c.d] 51866341Seric addresses are also passed through this ruleset. 51966341Seric CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined, 52066341Seric internet-style addresses would "fall off the end" of 52166341Seric ruleset zero and be interpreted as local -- however, 52266341Seric the angle brackets confused the recursive call. 52366341Seric These are now diagnosed as "Unrecognized host name". 52466341Seric CONFIG: USENET rules weren't included in S0 because of a mistaken 52566341Seric ifdef(`_MAILER_USENET_') instead of 52666341Seric ifdef(`_MAILER_usenet_'). Problem found by Rein Tollevik 52766341Seric of SINTEF RUNIT, Oslo. 52866341Seric CONFIG: move up LOCAL_RULE_0 processing so that it happens very 52966341Seric early in ruleset 0; this allows .mc authors to bypass 53066341Seric things like the "short circuit" code for local addresses. 53166341Seric Prompted by a comment by Bill Wisner of The Well. 53266341Seric CONFIG: add confSMTP_MAILER to define the mailer used (smtp or 53366341Seric esmtp) to send SMTP mail. This allows you to default 53466341Seric to esmtp but use a mailertable or other override to 53566341Seric deal with broken servers. This logic was pointed out 53666341Seric to me by Bill Wisner. Ditto for confLOCAL_MAILER. 53766341Seric Changes to cf/sh/makeinfo.sh to make it portable to SVR4 53866341Seric environments. Ugly as sin. 53966341Seric 54066340Seric8.3/8.3 93/07/13 54166340Seric Fix setuid problems introduced in 8.2 that caused messages 54266340Seric like "Cannot create qfXXXXXX: Invalid argument" 54366340Seric or "Cannot reopen dfXXXXXX: Permission denied". This 54466340Seric involved a new compile flag "HASSETEUID" that takes 54566340Seric the place of the old _POSIX_SAVED_IDS -- it turns out 54666340Seric that the POSIX interface is broken enough to break 54766340Seric some systems badly. This includes some fixes for 54866340Seric HP-UX. Also fixes problems where the real uid is 54966340Seric not reset properly on startup (from Neil Rickert). 55066340Seric Fix a problem that caused timed out messages to not report the 55166340Seric addresses that timed out. Error messages are also more 55266340Seric "user friendly". 55366340Seric Drop required bandwidth on connections from 64 bytes/sec to 55466340Seric 16 bytes/sec. 55566340Seric Further Solaris portability changes -- doesn't require the BSD 55666340Seric compatibility library. This also adds a new 55766340Seric "HASGETDTABLESIZE" compile flag which can be used if 55866340Seric you want to use getdtablesize(2) instead of sysconf(2). 55966340Seric These are loosely based on changes from David Meyer at 56066340Seric University of Oregon. This now seems to work, at least 56166340Seric for quick test cases. 56266340Seric Fix a problem that can cause duplicate error messages to be 56366340Seric sent if you are in SMTP, you send to multiple addresses, 56466340Seric and at least one of those addresses is good and points 56566340Seric to an account that has a .forward file (whew!). 56666340Seric Fix a problem causing messages to be discarded if checkcompat() 56766340Seric returned EX_TEMPFAIL (because it didn't properly mark 56866340Seric the "to" address). Problem noted by John Myers. 56966340Seric Fix dfopen to return NULL if the open failed; I was depending 57066340Seric on fdopen(-1) returning NULL, which isn't the case. This 57166340Seric isn't serious, but does result in wierd error diagnoses. 57266340Seric From Michael Corrigan. 57366340Seric CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of 57466340Seric messages sent through UUCP-family mailers. Suggested 57566340Seric by Bill Wisner of The Well. 57666340Seric CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified, 57766340Seric include a "uucp-dom" mailer that uses domain-style 57866340Seric addressing. Suggested by Bill Wisner. 57966340Seric CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match 58066340Seric LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS. Suggested by 58166340Seric Christophe Wolfhugel. 58266340Seric CONFIG: Add OSTYPE(aix3). From Christophe Wolfhugel. 58366340Seric 58466339Seric8.2/8.2 93/07/11 58566339Seric Don't drop out on config file parse errors in -bt mode. 58666339Seric On older configuration files, assume option "l" (use Errors-To 58766339Seric header) for back compatibility. NOTE: this DOES NOT 58866339Seric imply an endorsement of the Errors-To: header in any way. 58966339Seric Accept -x flag on AIX-3 as well as OSF/1. Why, why, why??? 59066339Seric Don't log errors on EHLO -- it isn't a "real" error for an old 59166339Seric SMTP server to give an error on this command, and 59266339Seric logging it in the transcript can be confusing. Fix 59366339Seric from Bill Wisner. 59466339Seric IRIX compatibility changes provided by Dan Rich 59566339Seric <drich@sandman.lerc.nasa.gov>. 59666339Seric Solaris 2 compatibility changes. Provided by Bob Cunningham 59766339Seric <bob@kahala.soest.hawaii.edu>, John Oleynick 59866339Seric <juo@klinzhai.rutgers.edu> 59966339Seric Debugging: -d17 was overloaded (hostsignature and usersmtp.c); 60066339Seric move usersmtp (smtpinit and smtpmailfrom) to -d18 to 60166339Seric match the other flags in that file. 60266339Seric Flush transcript before fork in mailfile(). From Eric Wassenaar. 60366339Seric Save h_errno in mci struct and improve error message display. 60466339Seric Changes from Eric Wassenaar. 60566339Seric Open /dev/null for the transcript if the create of the xf file 60666339Seric failed; this avoids at least one possible null pointer 60766339Seric reference in very wierd cases. From Eric Wassenaar. 60866339Seric Clean up statistics gathering; it was over-reporting because of 60966339Seric forks. From Eric Wassenaar. 61066339Seric Fix problem that causes old Return-Path: line to override new 61166339Seric Return-Path: line (conf.c needs H_FORCE to avoid 61266339Seric re-using old value). From Motonori Nakamura. 61366339Seric Fix broken -m flag in K definition -- even if -m (match only) 61466339Seric was specified, it would still replace the key with the 61566339Seric value. Noted by Rick McCarty of Texas Instruments. 61666339Seric If the name server timed out over several days, no "timed out" 61766339Seric message would ever be sent back. The timeout code 61866339Seric has been moved from markfailure() to dropenvelope() 61966339Seric so that all such failures should be diagnosted. Pointed 62066339Seric out by Christophe Wolfhugel and others. 62166339Seric Relax safefile() constraints: directories in an include or 62266339Seric forward path must be readable by self if the controlling 62366339Seric user owns the entry, readable by all otherwise (e.g., 62466339Seric when reading your .forward file, you have to own and 62566339Seric have X permssion in it; everyone needs X permission in 62666339Seric the root and directories leading up to your home); 62766339Seric include files must be readable by anyone, but need not 62866339Seric be owned by you. 62966339Seric If _POSIX_SAVED_IDS is defined, setuid to the owner before 63066339Seric reading a .forward file; this gets around some problems 63166339Seric on NFS mounts if root permission is not exported and 63266339Seric the user's home directory isn't x'able. 63366339Seric Additional NeXT portability enhancements from Axel Zinser. 63466339Seric Additional HP-UX portability enhancements from Brian Bullen. 63566339Seric Add a timeout around SMTP message writes; this assumes you can 63666339Seric get throughput of at least 64 bytes/second. Note that 63766339Seric this does not impact the "datafinal" default, which 63866339Seric is separate; this is just intended to work around 63966339Seric network clogs that will occur before the final dot 64066339Seric is sent. From Eric Wassenaar. 64166339Seric Change map code to set the "include null" flag adaptively -- 64266339Seric it initially tries both, but if it finds anything 64366339Seric matching without a null it never tries again with a 64466339Seric null and vice versa. If -N is specified, it never 64566339Seric tries without the null and creates new maps with a 64666339Seric null byte. If -O is specified, it never tries with 64766339Seric the null (for efficiency). If -N and -O are specified, 64866339Seric you get -NO (get it?) lookup at all, so this would 64966339Seric be a bad idea. If you don't specify either -N or -O, 65066339Seric it adapts. 65166339Seric Fix recognition of "same from address" so that MH submissions 65266339Seric will insert the appropriate full name information; 65366339Seric this used to work and got broken somewhere along the 65466339Seric way. 65566339Seric Some changes to eliminate some unnecessary SYSERRs in the 65666339Seric log. For example, if you lost a connection, don't 65766339Seric bother reporting that fact on the connection you lost. 65866339Seric Add some "extended debugging" flags to try to track down 65966339Seric why we get occassional problems with file descriptor 66066339Seric one being closed when execing a mailer; it seems to 66166339Seric only happen when there has been another error in the 66266339Seric same transaction. This requires XDEBUG, defined 66366339Seric by default in conf.h. 66466339Seric Add "-X filename" command line flag, which logs both sides of 66566339Seric all SMTP transactions. This is intended ONLY for 66666339Seric debugging bad implementations of other mailers; start 66766339Seric it up, send a message from a mailer that is failing, 66866339Seric and then kill it off and examine the indicated log. 66966339Seric This output is not intended to be particularly human 67066339Seric readable. This also adds the HASSETVBUF compile 67166339Seric flag, defaulted on if your compiler defines __STDC__. 67266339Seric CONFIG: change SMART_HOST to override an SMTP mailer. If you 67366339Seric have a local net that should get direct connects, you 67466339Seric will need to use LOCAL_NET_CONFIG to catch these hosts. 67566339Seric See cf/README for an example. 67666339Seric CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle 67766339Seric sites that don't use the -d flag. 67866339Seric CONFIG: hide recipient addresses as well as sender addresses 67966339Seric behind $M if FEATURE(allmasquerade) is specified; this 68066339Seric has been requested by several people, but can break 68166339Seric local aliases. For example, if you mail to "localalias" 68266339Seric this will be rewritten as "localalias@masqueradehost"; 68366339Seric although initial delivery will work, replies will be 68466339Seric broken. Use it sparingly. 68566339Seric CONFIG: add FEATURE(domaintable). This maps unqualified domains 68666339Seric to qualified domains in headers. I believe this is 68766339Seric largely equivalent to the IDA feature of the same name. 68866339Seric CONFIG: use $U as UUCP name instead of $k. This permits you 68966339Seric to override the "system name" as your UUCP name -- 69066339Seric in particular, to use domain-ized UUCP names. From 69166339Seric Bill Wisner of The Well. 69266339Seric CONFIG: create new mailer "esmtp" that always tries EHLO 69366339Seric first. This is currently unused in the config files, 69466339Seric but could be used in a mailertable entry. 69566339Seric 69666338Seric8.1C/8.1B 93/06/27 69766338Seric Serious security bug fix: it was possible to read any file on 69866338Seric the system, regardless of ownership and permissions. 69966338Seric If a subroutine returns a fully qualified address, return it 70066338Seric immediately instead of feeding it back into rewriting. 70166338Seric This fixes a problem with mailertable lookups. 70266338Seric CONFIG: fix some M4 frotz (concat => CONCAT) 70366338Seric 70466338Seric8.1B/8.1A 93/06/12 70566338Seric Serious bug fix: pattern matching backup algorithm stepped by 70666338Seric two tokens in classes instead of one. Found by Claus 70766338Seric Assmann at University of Kiel, Germany. 70866338Seric 70966338Seric8.1A/8.1A 93/06/08 71066338Seric Another mailertable fix.... 71166338Seric 71266338Seric8.1/8.1 93/06/07 71366338Seric 4.4BSD freeze. No semantic changes. 71466338Seric 71566338Seric6.65/6.34 93/06/06 71666338Seric Fix some lintish problems. 71766338Seric Fix some cases where server SMTP behaved poorly when handed bogus 71866338Seric input, pointed out by Eric Wassenaar. 71966338Seric CONFIG: fix some more (sigh) mailertable bugs -- thanks to 72066338Seric Motonori Nakamura of Kyoto University (again). 72166338Seric 72266338Seric6.64/6.33 93/06/05 72366338Seric Don't send 050 (-v) information after the 250 response to a QUIT 72466338Seric command in srvrsmtp -- clients usually close the connection 72566338Seric at this point, and it causes bogus error messages. 72666338Seric Don't send messages that have errors on input (such as unbalanced 72766338Seric parentheses) during SMTP transactions, since a return 72866338Seric message has (probably) already been sent. 72966338Seric Give better diagnostics on timeouts during network reads, including 73066338Seric information similar to the SMTP phase. 73166338Seric Fix bug that caused SMTP messages to deliver synchronously; this 73266338Seric happened after the DATA 250, and hence caused reading the 73366338Seric next command to be delayed. 73466338Seric Ignore Errors-To: header unless 'l' (lower case el) header is 73566338Seric specified. The Errors-To: header violates RFC 1123. 73666338Seric Errors-To: was only needed to take the place of the 73766338Seric envelope sender in the days when most Unix mailers 73866338Seric didn't understand about the two kinds of senders. 73966338Seric Don't send warning messages in response to automatically generated 74066338Seric messages (that is, those From:<>). 74166338Seric CONFIG: fix some rather stupid typos in the mailertable code 74266338Seric pointed out by Motonori Nakamura of Kyoto University. 74366338Seric CONFIG: add confUSE_ERRORS_TO configuration option. 74466338Seric CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M 74566338Seric (masquerade name) instead of $j. 74666338Seric CONFIG: don't add dots to relay names (added in 6.29); it breaks 74766338Seric several things, and can be simulated by dot terminating 74866338Seric the names of relays. For example, use: 74966338Seric DBbit.net.relay. 75066338Seric (note the trailing dot). 75166338Seric 75266338Seric6.63/6.32 93/06/01 75366338Seric Fix prototypes to eliminate chars in argument lists -- some 75466338Seric compilers are pissy about this. 75566338Seric Log protocol ($r) and body type if set so we can determine if 75666338Seric the adaptive algorithms are working. 75766338Seric Pessimize on locking of database files (particularly for NEWDB 75866338Seric databases) during opens. There were problems with 75966338Seric processes opening the file while it was rebuilt; since 76066338Seric NEWDB caches heavily, the reader opened an empty file, 76166338Seric which is an error. If your system has the ability to 76266338Seric lock atomically on open, this works properly; otherwise, 76366338Seric there are race conditions. 76466338Seric Check mod time on .pag file instead of .dir in NDBM aliases 76566338Seric because the .dir file doesn't get updated for small 76666338Seric alias files. From John Gardiner Myers of CMU. 76766338Seric More Solaris portability -- it now compiles on Solaris, but 76866338Seric hangs up in gethostbyname(). 76966338Seric Move setting of RES_DEBUG flag before first myhostname() call 77066338Seric so we can see name server traffic on that call. 77166338Seric Fsync() queue files. 77266338Seric Fix a problem that causes -bi to try to rebuild maps other than 77366338Seric the alias file(s). 77466338Seric Fix a problem that caused udb to reject entries from any but 77566338Seric the first database listed. 77666338Seric Rearrange doc subdirectory for 4.4BSD release tape. 77766338Seric CONFIG: put $r into the Received line. This was an oversight. 77866338Seric CONFIG: fix typo (call to ruleset 99 should have been rulset 90). 77966338Seric CONFIG: move "auxiliary" subroutines to be in ruleset 90-99 78066338Seric range -- in the long run, single digit rulesets may 78166338Seric become reserved for builtin use by sendmail. 78266338Seric CONFIG: fix major problem that causes host aliases (that is, 78366338Seric anything in $=w != $j) to not be recognized. This has 78466338Seric been around since 6.30. 78566338Seric 78666338Seric6.62/6.31 93/05/28 78766338Seric BETA RELEASE 78866338Seric Fix recursive syserr (if there is an error printing a syserr 78966338Seric message). This makes the code much less eager to consider 79066338Seric a write error as serious. This also includes some 79166338Seric heuristics to be clever about closed connections. 79266338Seric Lock NEWDB files during gets. This requires version 1.5 or later 79366338Seric of the db library. If you have an older version, you 79466338Seric can use -DOLD_NEWDB. This will go away in a few weeks. 79566338Seric Fix problem causing aliases that use host maps to get overwritten. 79666338Seric Do appropriate byte swapping on port numbers in ident protocol 79766338Seric code. Fix from Allan Johannesen of WPI. 79866338Seric Defer opening of map files to the same time as alias files so that 79966338Seric the daemon will tend to pick up new versions more promptly. 80066338Seric Prototype a bunch more functions. 80166338Seric Some Solaris 2.1 changes (still doesn't link though). 80266338Seric Try to simplify Makefiles by including more subordinate #defines 80366338Seric in conf.h (based on OS type). 80466338Seric CONFIG: check for domains if FEATURE(mailertable) is defined. 80566338Seric For example, if the host name is "knecht.cs.berkeley.edu" 80666338Seric it will search the following mailertable keys: 80766338Seric knecht.cs.berkeley.edu 80866338Seric .cs.berkeley.edu 80966338Seric .berkeley.edu 81066338Seric .edu 81166338Seric This could be used to replace the special relays for bitnet 81266338Seric and similar nets. 81366338Seric 81466338Seric6.61/6.30 93/05/24 81566338Seric Fix problem that prevented appending dots on canonified host 81666338Seric names. This breaks tons of config files -- very 81766338Seric important fix. 81866338Seric Fix improper pointer dereference in response to HELO command. 81966338Seric Fix core dump if debugging set in map_rewrite. 82066338Seric CONFIG: add FEATURE(always_add_domain) to always attach the 82166338Seric local domain (only impacts local mail). 82266338Seric CONFIG: try to avoid turning names into $j -- although 82366338Seric technically a host can only have one "canonical name", 82466338Seric it seems to be common practice to have several. 82566338Seric 82666338Seric6.60/6.29 93/05/22 82766338Seric Major change: merge alias databases with maps. This expands and 82866338Seric changes the map class interface but fixes a bunch of bugs. 82966338Seric The important user-visible change is that the file name 83066338Seric in a K line now does not include the ".db" extension; this 83166338Seric is added automatically. Also, the -d (NIS domain) flag is 83266338Seric missing from the K config line; use @domain instead. 83366338Seric When compiling, the *_MAP names are gone -- just compile 83466338Seric in NDBM, NEWDB, and/or NIS support. 83566338Seric Announce mailer/host/user triple on -bv flag -- from Brian 83666338Seric Bullen of Stirling University. 83766338Seric Don't send more than one line in response to HELO -- it confuses 83866338Seric Pony Express, which then behaves very badly. However, 83966338Seric this change does send two line 220 greetings, with the 84066338Seric second line reading "ESMTP spoken here". The usersmtp 84166338Seric module recognizes this and goes into ESMTP mode regardless 84266338Seric of the setting of the "a" mailer flag. Thus, "a" means 84366338Seric "always try EHLO". 84466338Seric AIX portability changes (thanks to Christophe Wolfhugel of 84566338Seric Herve Schauer Consultants (Paris) for providing me with 84666338Seric an INSA account for this purpose). Lightly tested. Use 84766338Seric -D_AIX3. This probably breaks compatibility with some 84866338Seric older systems (e.g., 4.2bsd) but still works on SunOS 84966338Seric 4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3. 85066338Seric Fix a problem causing an error message loop if the output channel 85166338Seric is hosed. 85266338Seric Add the Makefiles that I use for various environments -- some are 85366338Seric Berkeley make versions and some are old make versions. 85466338Seric My makefile for the NeXT box has gotten lost, alas! 85566338Seric PRALIASES: support for printing NEWDB databases. From 85666338Seric Michael J. Corrigan of U.C. San Diego. 85766338Seric CONFIG: don't pass pseudo-domains to $[ ... $] (if you have 85866338Seric a wildcard MX it can have wierd results). From 85966338Seric Christophe Wolfhugel. 86066338Seric CONFIG: dot terminate relay hostnames in S0. From Christophe 86166338Seric Wolfhugel. 86266338Seric 86366338Seric6.59/6.28 93/05/13 86466338Seric Log version with SMTP daemon startup message. 86566338Seric Adjust setproctitle to work on NetBSD and BSD/386. 86666338Seric Fix null pointer reference in MX fallback code. 86766338Seric A bunch of minor fixes from Eric Wassenaar: 86866338Seric If deliver cannot execv the mailer, return EX_OSERR 86966338Seric instead of EX_TEMPFAIL (to give better 87066338Seric error messages). 87166338Seric Consistently malloc e_message. 87266338Seric Catch degenerate case of calling returntosender() 87366338Seric with an empty returnq. 87466338Seric MIME reformatting. 87566338Seric 87666338Seric6.58/6.28 93/05/13 87766338Seric Fix bug that can cause incorrect verbose display of user smtp 87866338Seric messages. 87966338Seric Disable SMTP VERB command if PRIV_NOEXPN is set (since this 88066338Seric could reveal the same information. 88166338Seric Allow failure when reading SMTP greeting message to go on to 88266338Seric next MX host. 88366338Seric Add "MIME-Version: 1.0" header if using MIME (this was NOT 88466338Seric included in RFC 1344, but Bill King of Allan-Bradley 88566338Seric Company forwarded me email from Nathaniel Borenstein 88666338Seric claiming that it was an inadvertent omission). 88766338Seric Don't use Content-Type: X-message-header. According to John 88866338Seric Myers of CMU, many MIME readers will completely ignore 88966338Seric the data if they don't recognize it. Instead, just 89066338Seric add a blank line to make it a legal (empty) message. 89166338Seric Fix problem causing dots to keep getting appended to cached 89266338Seric hostnames. This can cause buffer overrun conditions. 89366338Seric The problem was found by Erik Forsberg of Retix, 89466338Seric although I used a different bug fix than he provided. 89566338Seric Fix parsing of split header/envelope rewriting specs -- from 89666338Seric Eric Forsberg. 89766338Seric Fix from Eric Wassenaar to correct To: lists in error messages. 89866338Seric 89966338Seric6.57/6.28 93/05/11 90066338Seric Fix minor glitch causing extra ctladdrs to be output to queue 90166338Seric file. Just an annoyance. 90266338Seric Cache results of name server canonification lookups to avoid 90366338Seric backed up queue runs. 90466338Seric Major rewrite of alias.c: considerable cleanup, plus sample 90566338Seric (untested) support for NIS aliases. The "A" option 90666338Seric can now be a comma separated list (or be repeated) -- 90766338Seric that is, you can have multiple alias databases. Each 90866338Seric database can have the syntax ``class:file''; if no class 90966338Seric is specified, the "implicit" class is assumed. Implicit 91066338Seric searches through a list of compiled in types -- hash, 91166338Seric dbm, nis, and stab. Alias files are searched in the 91266338Seric order they are listed. For example: 91366338Seric OAhash:/etc/aliases.local,/etc/aliases 91466338Seric OAnis:mail.aliases@my.nis.domain 91566338Seric first searches the hash database /etc/aliases.local, 91666338Seric then the regular /etc/aliases database, then the NIS 91766338Seric map "mail.aliases" in the NIS domain "my.nis.domain". 91866338Seric If in Verbose mode (probably from VERB command) run SMTP job 91966338Seric in foreground and don't do RCPT optimizations. 92066338Seric Add udb :mailsender as equivalent to owner- for regular aliases. 92166338Seric Delete option 8; add option 7 that means the opposite. That is, 92266338Seric default to 8-bit mode; a special option is needed to 92366338Seric force sendmail into 7 bit mode. 92466338Seric Send error messages in encapsulated MIME format. 92566338Seric New compile flag "NIS" that turns on NIS alias and NIS map 92666338Seric support. 92766338Seric Add "j" option to send error messages in MIME (RFC 1341) 92866338Seric encapsulated message format per RFC 1344. The 92966338Seric syntax is pretty ugly if you don't have MIME-aware 93066338Seric user agents. 93166338Seric Clean up message handling (for display in mailq output). 93266338Seric New setproctitle implementation for 4.4bsd. 93366338Seric Create files (such as ~/dead.letter) using mode FileMode (the 93466338Seric F option value) instead of 0666. 93566338Seric Fix bug causing output of EXPN command to not be fully qualified. 93666338Seric This may cause some problems with UUCP addresses that 93766338Seric will require some config file assistance -- specifically, 93866338Seric the $: part has to include the host name for this output 93966338Seric to make sense. 94066338Seric Fix a problem that sometimes diagnosed errors and still sent the 94166338Seric message if the header syntax was bad. 94266338Seric Fix a bug that caused an error message to be emailed when sendmail 94366338Seric was operating in -bv mode. 94466338Seric Add "ListenQueueSize" keyword to daemon options option (OO) to 94566338Seric set the queue size parameter passed to listen(). You 94666338Seric will normally have to tweak your kernel to up this. 94766338Seric Strip spaces off of beginning of message-id before logging (in 94866338Seric case it was folded across lines). 94966338Seric Tweak compile flags in daemon.c -- there were some cases where 95066338Seric it wouldn't work without NETINET. 95166338Seric Change *file* mailer to output all the usual default headers 95266338Seric (From, Date, Message-Id). It gets used when sending 95366338Seric back error messages. 95466338Seric CONFIG: explicitly catch and diagnose list:; syntax in ruleset 95566338Seric zero -- this is not a valid recipient syntax according 95666338Seric to RFC 821. 95766338Seric CONFIG: add confMIME_FORMAT_ERRORS to send error messages in 95866338Seric MIME format. Defaults to on. 95966338Seric CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment 96066338Seric the flags for those mailers. 96166338Seric 96266338Seric6.56/6.27 93/05/01 96366338Seric Fix problem that causes the fallback mail to postmaster 96466338Seric (case ESM_POSTMASTER in savemail()) to not look at 96566338Seric aliases (ugh). 96666338Seric Some more HPUX tweaking (compile flag hpux => __hpux so it 96766338Seric still works in ANSI mode). 96866338Seric Don't try to flock non-regular files when mailing to a file. 96966338Seric In particular, this was a problem if you tried to 97066338Seric send to /dev/null. 97166338Seric Fix a wierd bug that can cause senders to be queued as 97266338Seric recipients if the name server is down when the mail 97366338Seric is initially sent. This hack just ignores sender 97466338Seric deletion (essentially, it sets the MeToo flag) if there 97566338Seric is a TEMPFAIL during processing of the sender address. 97666338Seric Obscure. 97766338Seric Fix a dangling else problem -- from Brian Bullen from University 97866338Seric of Stirling, UK. 97966338Seric Add the "b" mailer flag to force a blank line on the end of 98066338Seric messages. Some brilliant versions of /bin/mail insist 98166338Seric on this but do not add it themselves. 98266338Seric Add the "g" mailer flag to prevent user SMTP from sending 98366338Seric "MAIL From:<>". This is only intended to be a 98466338Seric transitional gesture, and should not be used if at 98566338Seric all possible. It appears that Berkeley and IDA 98666338Seric config files have always handled this properly; the 98766338Seric UK config kit apparently does not. 98866338Seric Don't lowercase and then capitalize header field names -- leave 98966338Seric them with original capitalization. Fixes from Bill 99066338Seric King of Allen-Bradley Company. 99166338Seric Further cleanup and improved reporting of error messages, 99266338Seric particularly conditions that cause messages to be 99366338Seric requeued for future delivery. 99466338Seric Tweak syslog priorities in some cases. 99566338Seric CONFIG: clean up route-addr on UUCP addresses. 99666338Seric 99766338Seric6.55/6.25 93/04/27 99866338Seric HPUX 8.07 compatibility changes in getla() -- I had to make 99966338Seric these changes to get it to work at Berkeley, although 100066338Seric others seem to have been working before (???). 100166338Seric Various patches to XLA code. 100266338Seric Fix problem that causes setuid bit on files to be ignored from 100366338Seric SMTP or in queue runs. Problem noted by Jason Ornstein 100466338Seric of Under The Wire, Inc. 100566338Seric Fix problem that can cause CNAMEs to be ignored. 100666338Seric Generalize getmxrr to match local host in $=w instead of a 100766338Seric single name passed in. 100866338Seric Some cleanup from Eric Wassenaar: 100966338Seric Use FileMailer instead of ProgMailer in two places. 101066338Seric Eliminate duplicate 8th-bit stripping in commaize. 101166338Seric Fix a problem with mis-parsing of backslash escapes 101266338Seric under some circumstances. 101366338Seric NIS map fix (was always including trailing null character) 101466338Seric from Mike Glendinning of Ingres UK. 101566338Seric Add "a" mailer flag to try using ESMTP. It tries the EHLO 101666338Seric command and if that fails falls back to regular SMTP. 101766338Seric Also parses EHLO option keywords. If host supports 101866338Seric SIZE extension, this is added to the MAIL FROM: 101966338Seric command. 102066338Seric Extend "b" option to include a second value which is the 102166338Seric maximum message size this server is willing to accept. 102266338Seric For example, a value of "10/1000000" says that there 102366338Seric must be ten blocks free, and sendmail will reject 102466338Seric any message larger than one megabyte. 102566338Seric Some portability hooks for NeXT (this could be applicable 102666338Seric to Mach in general). You have to create an empty 102766338Seric file called "unistd.h" to get it to compile. 102866338Seric Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to 102966338Seric be more generous. 103066338Seric Add X400-Received: to the list of headers tagged with H_TRACE 103166338Seric in conf.c. From Bill King, Allen-Bradley Co. 103266338Seric 103366338Seric6.54/6.25 93/04/19 103466338Seric Fix problem that caused redefinition of SMTP and QUEUE compile 103566338Seric flags. Pointed out by Jon Forrest of the Sequoia 2000 103666338Seric project at Berkeley. 103766338Seric Properly handle \! hack -- it was treating host\!user as one 103866338Seric token (host!user) instead of three (host, !, user). 103966338Seric Fix from Eric Wassenaar of NIKHEF-H. 104066338Seric Fix compilation problem in getauthinfo() if IDENTPROTO is off. 104166338Seric Turn off DEFNAMES and DNSRCH when getting the hostsignature 104266338Seric (i.e., MX records) in level 1 configuration files; this 104366338Seric matches the old behaviour. From Motonori Nakamura of 104466338Seric Kyoto University. 104566338Seric Improve error message printing -- if sent through an alias, 104666338Seric error messages include the name of the alias in the 104766338Seric message. Unfortunately, in order to make this work 104866338Seric properly in queue runs, this changes the format of the 104966338Seric C line in the qf file. The relatively uselessness of 105066338Seric the previous information was pointed out to me by 105166338Seric Allan E Johannesen of WPI. 105266338Seric Add XLA compile flag to add hooks to Christophe Wolfhugel's 105366338Seric extended load average code. This is still in very early 105466338Seric form. For information regarding the guts of the xla 105566338Seric code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr. 105666338Seric Additional hooks for detecting tempfails in rewriting rules 105766338Seric (that is, in map lookups). 105866338Seric 105966338Seric6.53/6.25 93/04/15 106066338Seric Properly diagnose ruleset zero returning null (instead of a mailer 106166338Seric triple). From Motonori Nakamura of Kyoto University. 106266338Seric More generalization of socket code for other protocols. 106366338Seric Shorten timeouts on reverse name lookups -- since they are done 106466338Seric during connection establishment, long timeouts here can 106566338Seric cause higher level timeouts. This mainly serves to accept 106666338Seric mail from hosts that do not have proper reverse (PTR) DNS 106766338Seric records set up. 106866338Seric Reset e_statmsg before each mailer invocation to avoid bogus 106966338Seric messages in the log. 107066338Seric Redefine $r, $s, and $_ in error envelopes so you don't get 107166338Seric incorrect cruft in the error message. Problem noted by 107266338Seric Motonori Nakamura of Kyoto University. 107366338Seric Fix a problem that can cause failure to return errors to Postmaster 107466338Seric in certain cases. From Motonori Nakamura. 107566338Seric Fix a problem that can cause some systems to give duplicate error 107666338Seric messages when a bad syntax address such as "<a" is presented 107766338Seric to an SMTP server. It doesn't seem to occur on all 107866338Seric machines. From Motonori Nakamura. 107966338Seric Default IDENTPROTO off for Ultrix and HPUX, which apparently have 108066338Seric the interesting "feature" that when they receive a "Host 108166338Seric unreachable" message they closes all open connections to 108266338Seric that host. However, some firewall gateways send this message 108366338Seric if you try to connect to an unauthorized port, such as the 108466338Seric IDENT port (113). Thus, no email can be received from such 108566338Seric hosts. There is some evidence that versions of Ultrix before 108666338Seric 4.3 do not have this problem. Thanks to Tom Ivar Helbekkmo 108766338Seric for pointing out this behaviour to me and to Michael Corrigan 108866338Seric of U.C. San Diego for informing me about the HPUX problem. 108966338Seric Allow IPC mailers to return a colon-separated list of hosts in the 109066338Seric $@ clause; these are searched in order as though they were 109166338Seric MX records. 109266338Seric When sending an error report, print the list of addresses tagged 109366338Seric as bad. Requested by Allan E Johannesen of WPI. 109466338Seric Change map function calls to return a status code. This gets 109566338Seric passed back as the result of rewrite. Parseaddr marks 109666338Seric the address as a QUEUEUP address if the return code is 109766338Seric EX_TEMPFAIL. All this to queue properly if the name 109866338Seric server is down. This code is not well tested. This code 109966338Seric changes the interface to map lookup functions (a fifth 110066338Seric parameter, int *statp, is added). Feature requested by 110166338Seric Dan Oscarsson. 110266338Seric Don't delete quotes (in the dequote map) if there are spaces in 110366338Seric the string, since this would cause them to be replaced by 110466338Seric the SpaceSub character. 110566338Seric Accept BODY=8BITMIME on SMTP MAIL command. This isn't advertised 110666338Seric because the 8BIT to 7BIT translation doesn't exist yet. 110766338Seric This does add a "bodytype" field to both envelope and 110866338Seric queue file and a -B command line flag to pass the type in 110966338Seric during direct invocations. 111066338Seric Discard return error messages only on responses to responses to 111166338Seric responses, not on responses to responses. That is, the 111266338Seric algorithm is to try return to sender, then return to 111366338Seric postmaster, then discard. Previously it discarded 111466338Seric immediately if the return to sender pass failed. 111566338Seric CONFIG: back out change to hide unqualified hostnames behind %-hack. 111666338Seric This screws up local aliases and .forward files. 111766338Seric CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $]; 111866338Seric some sites only handle completely canonified names. 111966338Seric Requested by John Gardiner Myers of CMU. 112066338Seric CONFIG: some UUCP code was still included even if FEATURE(nouucp) 112166338Seric was specified. 112266338Seric 112366338Seric6.52/6.24 93/04/10 112466338Seric Clean up some minor glitches on error return messages pointed out 112566338Seric by Motonori Nakamura of Kyoto University. 112666338Seric Fix reply() to not reset SmtpReplyBuffer on fatal errors; this 112766338Seric was supposed to reset SmtpMsg Buffer. This makes the 112866338Seric client side code virtually useless. Reported by Allan 112966338Seric E Johannesen of WPI and Phil Brandenberger of Swarthmore. 113066338Seric Better debug messages if fuzzy is disabled, suggested by Allan 113166338Seric E Johannesen of WPI. 113266338Seric Offset SmtpReplyBuffer by four in usersmtp when checking for 113366338Seric loopback. From Eric Wassenaar. 113466338Seric Don't set $s until after runinchild in srvrsmtp -- otherwise 113566338Seric it gets cleared. From Eric Wassenaar. 113666338Seric Implement IDA-style $&x for deferred macro expansion. 113766338Seric More POSIX compatibility. 113866338Seric CONFIG: Hide unqualified hostnames behind %-hack using $s as the 113966338Seric actual sender. This is only done if $r is non-null, that 114066338Seric is, if this is not locally submitted mail. 114166338Seric CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host 114266338Seric names to internet domains. A program contributed by 114366338Seric John Gardiner Myers of CMU to create the maps is included 114466338Seric in the contrib directory (in the "misc" tar file). 114566338Seric CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP 114666338Seric hosts. There is currently no tool to create this map. 114766338Seric 114866338Seric6.51/6.23 93/04/04 114966338Seric Add D= mailer flag to specify a path of possible working directories 115066338Seric in which to execute the mailer. This is intended for the 115166338Seric prog mailer; some shells can get upset if they don't have 115266338Seric access to the current directory. 115366338Seric Add RFC 1413 (IDENT) protocol support. This is only very loosely 115466338Seric tested. This adds a $_ macro to be the authenticated 115566338Seric info (in ``user@domain [address]'' form) and debug flag 115666338Seric 9 to trace the protocol. 115766338Seric Check for loopbacks in usersmtp instead of srvrsmtp -- there is no 115866338Seric reason for a local agent to not be talking to the localhost 115966338Seric (although the inverse is not true). 116066338Seric Add a few hooks for automated map rebuilding. This is certainly 116166338Seric not done yet. 116266338Seric CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is, 116366338Seric user's home directory then the root. 116466338Seric CONFIG: Log RFC 1413 identification in Received: line. 116566338Seric 116666338Seric6.50/6.22 93/04/01 116766338Seric Fixes to requeueing code to make it compute priority, nrcpts, 116866338Seric and the like properly. 116966338Seric 117066338Seric6.49/6.22 93/04/01 117166338Seric Diagnose incorrect privacy flags. Suggested by Bryan Costales 117266338Seric of ICSI. 117366338Seric Some ANSI C fixes. 117466338Seric Arrange to quote backslashes as well as other special characters 117566338Seric in the phrase part of a route-addr. 117666338Seric Some fixes to FallBackMX code suggested by Motonori Nakamura of 117766338Seric Kyoto University. 117866338Seric More vigorous zeroing of CurHostAddr to avoid logging of bogus 117966338Seric host addresses when you are actually just printing 118066338Seric information from the MCI structure; problem noted by 118166338Seric Michael Corrigan of U.C. San Diego. 118266338Seric Don't ignore rest of queue if any job is not runnable. This can 118366338Seric also cause an incorrect job to be lost. Fix from 118466338Seric Eric Wassenaar. 118566338Seric Always respond "quickly" to RCPT command; do alias expansion and 118666338Seric the like later. This also means that mail for lists that 118766338Seric have errors will be acccepted, and an error sent back 118866338Seric later. This is done by instantiating the queue file 118966338Seric and then immediately running and requeueing it. 119066338Seric 119166338Seric6.48/6.22 93/03/30 119266338Seric Fix incorrect diagnosis of infinite loop in ruleset. Problem noted 119366338Seric by several people. 119466338Seric Improve information printed when infinite loops are discovered. 119566338Seric Zero CurHostAddr to fix erroneous internet addresses in log when no 119666338Seric addresses can be bound. Pointed out by Motonori Nakamura 119766338Seric of Kyoto University. 119866338Seric "Probe" SMTP connections using RSET instead of NOOP "just in case". 119966338Seric Suggested by John Gardiner Myers of CMU. 120066338Seric Don't warn about -f if you are setting sender to yourself. 120166338Seric 120266338Seric6.47/6.22 93/03/29 120366338Seric Fix incompatible call to endmailer in smtpquit which causes core 120466338Seric dumps. Noted by Allan E Johannesen of WPI. 120566338Seric HPUX portability changes from Michael J. Corrigan of UC San Diego. 120666338Seric Require MAIL before RCPT command in srvrsmtp.c. This had been 120766338Seric intentional from the 821 draft days when the order wasn't 120866338Seric clear, but is silly now. 120966338Seric Fix bug in nis_magic routine that was initializing parameters 121066338Seric incorrectly. Fix from Takahiro Kanbe of Fuji Xerox 121166338Seric Information Systems Co., Ltd. 121266338Seric Change default for PrivacyFlags in conf.c to 0 -- since it always 121366338Seric "or"s in new values, there was no way to turn off the 121466338Seric AuthWarning stuff. 121566338Seric Add O option to set SMTP daemon options. 121666338Seric Add V option to set fallback MX host. This always sorts at lower 121766338Seric priority than anything it gets from the name server. It 121866338Seric should only be used for environments with very bad network 121966338Seric connectivity. Requested by several people. 122066338Seric Log sending info. It's not clear this is a good idea. 122166338Seric CONFIG: fix typo in mailertable code. Noted by Phil Brandenberger 122266338Seric of Swarthmore. 122366338Seric CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options 122466338Seric O and V, respectively. 122566338Seric 122666338Seric6.46/6.21 93/03/26 122766338Seric Fix botch in server SMTP that broke transactions that did not 122866338Seric use HELO first (like MH). Fix from Michael Corrigan 122966338Seric of U.C. San Diego. 123066338Seric Fall back to other MX records if there is an error anywhere 123166338Seric in delivery (actually on MAIL or DATA -- RCPT is harder). 123266338Seric Suggested by John Gardiner Myers and Motonori Nakamura. 123366338Seric Revert to non-prototypes -- it turns out that our ANSI C 123466338Seric compiler is more forgiving than most others about 123566338Seric mixing prototyped extern declarations with non-prototyped 123666338Seric function definitions. 123766338Seric Fix a problem with multi-word class matching pointed out by 123866338Seric Neil Rickert. Given: 123966338Seric CX b a.b.c 124066338Seric R$+ $=X $+ $: $1 < $2 > $3 124166338Seric the input "user@a.b.c" failed instead of being properly 124266338Seric rewritten as "user@a.<b>.c". 124366338Seric Neil also convinced me that it was correct that $~ should match 124466338Seric only one token -- the problem is that it's always possible 124566338Seric to add another token, so $~ matches far too eagerly. 124666338Seric 124766338Seric6.45/6.21 93/03/25 124866338Seric Implement multi-word classes (properly!). 124966338Seric 125066338Seric6.44/6.21 93/03/25 125166338Seric Add X-Authentication-Warning: headers to clue users into possible 125266338Seric attempts to forge mail. This is on the authwarnings 125366338Seric privacy flag, but is the default. Suggested by Bryan 125466338Seric Costales of ICSI. 125566338Seric Pass default units for convtime in so they can be more reasonable. 125666338Seric Allow config files to always add a new Comments: header (i.e., 125766338Seric they will be added even if an old one already exists). 125866338Seric Suggested by Bryan Costales of ICSI. 125966338Seric Allow config files to delete an existing Return-Path: header. 126066338Seric These should only be added at final delivery. Suggested 126166338Seric by Bryan Costales of ICSI. 126266338Seric Some debugging additions. Suggested by Bryan Costales of ICSI. 126366338Seric Clean up logging of Family 0 addresses. Noted by David Muir 126466338Seric Sharnoff and others. 126566338Seric Add a "dequote" map class. This allows config files to strip 126666338Seric quotes off of addresses. Note that this is not a builtin 126766338Seric map, just a class -- so you have to define the map 126866338Seric using the K line. 126966338Seric Fix a bug in the queueup() loop getting a locked tf where in 127066338Seric very odd cases it can fall off the bottom and core dump. 127166338Seric Of course, it was P{r Emanuelsson who found it.... 127266338Seric Open a new transcript when splitting an envelope. Problem found 127366338Seric by Allan E Johannesen of WPI. 127466338Seric Improved error output in endmailer if the mailer core dumps. 127566338Seric CONFIG: Fix typo in UUCP mailer definition. 127666338Seric CONFIG: Default several of the new options on: eight bit input, 127766338Seric privacy flags set to "authwarnings", and message warning 127866338Seric set to 4h. 127966338Seric CONFIG: Use dequote map. 128066338Seric 128166338Seric6.43/6.20 93/03/23 128266338Seric Fix problem with assumption of an sa_len field in a generic 128366338Seric sockaddr -- it turns out that most vendors haven't 128466338Seric picked up this (very important) fix. 128566338Seric Change compilation flags for daemon code -- select one or both 128666338Seric of NETINET or NETISO, but don't ever set DAEMON manually. 128766338Seric CONFIG: add FEATURE(mailertable) to do IDA-style mailertables. 128866338Seric 128966338Seric6.42/6.19 93/03/19 129066338Seric Use Postmaster as default fallback return address, not root. 129166338Seric POSIX changes for file descriptor handling. 129266338Seric Diagnose errors writing new queue file. 129366338Seric If you change the owner using an owner- alias, also change the 129466338Seric error mode to EM_MAIL so that errors don't get dropped 129566338Seric into an inappropriate directory. Problem noted by 129666338Seric Allan E Johannesen of WPI. 129766338Seric If you are su'ed to root, send email as who you really are, not 129866338Seric as root. From Brian Kantor of U.C. San Diego. 129966338Seric Allow warning messages to be sent after a configurable interval 130066338Seric has passed without delivery. The message is sent only 130166338Seric once per envelope. This changes the format of the qf 130266338Seric file to have an F line, and the format of the T option 130366338Seric to accept take the format "return/warn" (both intervals). 130466338Seric Don't force all local names to lower case -- this was left over 130566338Seric from the wierd handling of case mapping on aliases. It 130666338Seric is now driven (as expected) by the "u" mailer flag. 130766338Seric Problem noted by P{r Emanuelsson. 130866338Seric Fix problem that caused headers on returned email to be trashed; 130966338Seric they were getting freed, but are still accessible via 131066338Seric BlankEnvelope. 131166338Seric Fix problem that caused bogus ids to be created on returned 131266338Seric mail. 131366338Seric Add support for ISO and other non-INET networking. This is by 131466338Seric no means finished yet. This does assume a lot of other 131566338Seric system support, like a version of gethostbyname that 131666338Seric returns non-AF_INET addresses. 131766338Seric CONFIG: change default on prog mailer to keep upper case in 131866338Seric user names (i.e., in the program command line). 131966338Seric CONFIG: strip trailing dots off of hosts in uucp mailer before 132066338Seric convert to bang format. 132166338Seric CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H 132266338Seric (MAIL_HUB) delivery that doesn't add local domain. Note 132366338Seric that this violates 821, but is probably "more correct" 132466338Seric for what we are trying to do. Problem pointed out by 132566338Seric Michael Graff of Iowa State. 132666338Seric 132766338Seric6.41/6.18 93/03/18 132866338Seric Clean up unnecessary creates of queue ids (i.e., empty qf files) 132966338Seric when not needed, such as when starting up an SMTP 133066338Seric connection. 133166338Seric Fix problem where split envelopes aren't instantiated in the queue. 133266338Seric This is quite a serious bug. 133366338Seric Owner- aliases had problems with leading spaces causing a 133466338Seric premature delimitation. 133566338Seric 133666338Seric6.40/6.18 93/03/18 133766338Seric Have ending 250 (after DATA) include the id; suggested by 133866338Seric Brian Kantor of UC San Diego. 133966338Seric Add logging on envelope splitting. 134066338Seric Change queue ids to have one more letter encoding the hour of 134166338Seric the day so that during a single day there is a greater 134266338Seric likelihood of uniqueness; requested by Brian Kantor. 134366338Seric 134466338Seric6.39/6.18 93/03/18 134566338Seric Fix minor compile problem if LOCKF is defined. 134666338Seric Define size of tobuf in conf.h. Observed by Toshinari Takahashi 134766338Seric of Toshiba. 134866338Seric Restore e_sender -- this is equivalent to e_from.q_paddr without 134966338Seric decorations such as angle brackets and comments. 135066338Seric OSF/1 on Alpha changes from Allan E Johannesen of WPI. 135166338Seric CONFIG: fix typo in S3 for list syntax (;: => :;). Thanks to 135266338Seric Christopher Hoover for noting the problem. 135366338Seric 135466338Seric6.38/6.17 93/03/17 135566338Seric Pass envelope to disconnect to avoid another use of CurEnv, which 135666338Seric can apparently end up being null at inopportune times. 135766338Seric Log "received from" as "relay=" for consistency (suggested by 135866338Seric John Gardiner Myers). 135966338Seric Fix major bug in header handling: if no From: line existed in 136066338Seric the header (so sendmail inserts one), and the sender is 136166338Seric an alias that has an owner, the From: line shows the 136266338Seric owner (as well as the envelope). Fixed by early binding 136366338Seric the headers (which will change debugging output). 136466338Seric HPUX portability patches from Michael J. Corrigan of UC San Diego. 136566338Seric Some attempts to adapt better to out of open file conditions. 136666338Seric Some changes to ctladdr handling in queue files. 136766338Seric 136866338Seric6.37/6.17 93/03/16 136966338Seric MAJOR CHANGE: delete e_sender and e_returnpath (why are these 137066338Seric different from e_from?) and $< macro. 137166338Seric Log correct IP address in relay= field even if the connection 137266338Seric times out. 137366338Seric Log "received from [RESPONSE]" on EF_RESPONSE messages (from 137466338Seric John Gardiner Myers). 137566338Seric Fixes to SysExMsg logging (sometimes just got "message: %s" 137666338Seric instead of "message: error message"), noted by Eric 137766338Seric Wassenaar. Also reported by Motonori Nakamura. 137866338Seric Improvements to MX piggybacking code, from Motonori Nakamura. 137966338Seric Fix case where CurHostName points to an auto variable that has 138066338Seric been deallocated (from Motonori Nakamura). 138166338Seric Fix bug causing newlines to be included in aliases if option 138266338Seric "n" (check alias RHS) is set; bug noted by David Muir 138366338Seric Sharnoff. 138466338Seric Fix problem causing user names that should be mapped to lower 138566338Seric case to not be mapped if they are sent during a queue 138666338Seric run. This greatly simplifies the case mapping code. 138766338Seric Problem noted by Allan E Johannesen of WPI. 138866338Seric Don't do recipient address rewriting in buildaddr. This 138966338Seric improperly did recipient rewriting on sender addresses, 139066338Seric and just seems bogus in general -- but the change could 139166338Seric break some .cf files. 139266338Seric Pass TZ envariable to child processes for System V. 139366338Seric CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to 139466338Seric define those rulesets. 139566338Seric KNOWN PROBLEM: I have seen some problems on SunOS that causes 139666338Seric the User Data Base to give errors on some addresses. I 139766338Seric have tracked the problem back at least as far as 93.02.15 139866338Seric (version 6.22). Running with debugging on makes it 139966338Seric go away, so I conclude that it is referencing uninitialized 140066338Seric stack data. I haven't been able to track this down yet. 140166338Seric 140266338Seric6.36/6.16 93/03/08 140366338Seric Allow local mailer to specify $@host -- this lets you assign the 140466338Seric "foo" part of jgm+foo to $h for passing in to the local 140566338Seric mailer. 140666338Seric Additional debug printing in getcanonname (show query type). 140766338Seric Don't add the e_fromdomain on sender addresses -- this interacts 140866338Seric wierdly with the owner- code. 140966338Seric Improve delivery logging to not log obvious or meaningless stuff. 141066338Seric Include numeric IP address in Received: lines per RFC 1123 section 141166338Seric 5.2.8. 141266338Seric Fixed a bug in checking stat() return value if restrictmailq is 141366338Seric set. Also, check the entire group set instead of just the 141466338Seric primary group. Both from John Gardiner Myers. 141566338Seric Don't have usrerr automatically print errno, since this is often 141666338Seric misleading. 141766338Seric Use transienterror() in makeconnection after connect() fails and 141866338Seric in openmailer after execve() fails (from Eric Wassenaar). 141966338Seric Also moved transienterror() from util.c to conf.c. 142066338Seric Clean up from= logging on response messages. 142166338Seric Undo patch allowing prescan to return a null vector -- it breaks 142266338Seric too many things. 142366338Seric Config: FEATURE(notsticky) lets you use UDB for everything coming 142466338Seric in to the machine, even if it is specifically targetted 142566338Seric to this machine. Without it, UDB is bypassed if the user 142666338Seric name is fully qualified. 142766338Seric Config: fix another minor botch with <> (local mailer wasn't 142866338Seric mapping them properly). 142966338Seric 143066338Seric6.35/6.15 93/03/05 143166338Seric Fix getrealhostname to return null if sinlen <= 0 -- this can 143266338Seric occur if stdin is a pipe. 143366338Seric Avoid infinite loop in getcanonname if name server return 143466338Seric NO_DATA (for example). 143566338Seric Config: avoid having C flag qualify list syntax and error syntax. 143666338Seric 143766338Seric6.34/6.14 93/03/05 143866338Seric Fix logging in deliver to not pass too many parameters to Ultrix 143966338Seric versions of syslog. 144066338Seric Don't write the pid file until after the daemon has actually 144166338Seric opened and conditioned the connection. 144266338Seric Consider addresses "different" if their q_uids differ (so that 144366338Seric two users forwarding to the same program will be seen 144466338Seric as different, rather than the same). 144566338Seric Fix problem with bad parameters in main() -- they set ExitStat 144666338Seric but don't exit. 144766338Seric Fix null pointer references through RealHostName -- painfully 144866338Seric discovered by Allan E Johannesen of WPI. 144966338Seric Fix bug causing user@@localhost to core dump (yuch). 145066338Seric Config: don't put two @host.dom.ain on users in $=E in SMTP 145166338Seric mailer. Also, catch user@ (no host) in ruleset 0. 145266338Seric 145366338Seric6.33/6.13 93/03/03 145466338Seric Config: add confCW_FILE as the name of the cw configuration file 145566338Seric (defaults to /etc/sendmail.cw). From P{r Emanuelsson. 145666338Seric Allow prescan to return a pointer to an empty list -- this is 145766338Seric not an error. Also, clean up error reporting to avoid 145866338Seric double errors (prescan reports once, then the caller 145966338Seric reports again). 146066338Seric Changes to avoid trusting T_ANY queries -- run them, but if you 146166338Seric don't get the info you expected, do T_A and T_MX queries 146266338Seric anyhow. This also fixes an oversight where _res.options 146366338Seric bits were being ignored. 146466338Seric If PRIV_NOVRFY is set, use 252 response code instead of 502 per 146566338Seric RFC 1123 section 5.2.3. It's not 100% clear that this 146666338Seric is correct, but it probably works better with stupid 146766338Seric mailers that do a VRFY and only check the first digit. 146866338Seric 146966338Seric6.32/6.12 93/03/02 147066338Seric Fix uninitialized variable "protocol" in smtp code. 147166338Seric Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI. 147266338Seric Additional hooks for RFC 1427 (ESMTP SIZE extension). This 147366338Seric includes requiring that enoughspace() know the system 147466338Seric block size, which will undoubtedly break most ports. 147566338Seric Trace flag 19 in use for srvrsmtp.c. 147666338Seric Additional logging -- notably the sending mailer name. This 147766338Seric also changes the delivery logging to strict field=value 147866338Seric syntax. 147966338Seric Fix some problems with messages getting sent even to addresses 148066338Seric that had been marked bad -- from Eric Wassenaar. 148166338Seric More WIDE changes: accept host name inside [...] as non-MXed 148266338Seric host. This is intended ONLY for use inside firewalled 148366338Seric environments, where the MX points at the gateway. 148466338Seric Change .cf file conventions so that mapping for <> addresses 148566338Seric don't have an @ in them (to avoid confusing the C mailer 148666338Seric flag). Pointed out by Neil Rickert. 148766338Seric Config extensions for Sam Leffler's FlexFAX software. 148866338Seric 148966338Seric6.31/6.10 93/02/28 149066338Seric Fix some more bugs in alias owner code -- there were some wierd 149166338Seric cases where an error in a non-aliased name would override 149266338Seric the return info in an aliased name with an owner. 149366338Seric Changes from WIDE Project, forwarded to me by Motonori Nakamura: 149466338Seric Log actual delivery host (after MX et al); from 149566338Seric yasuhiro@dcl.co.jp. 149666338Seric Log daemon startup. 149766338Seric Deliver Postmaster copies without a body. 149866338Seric Better logging of SMTP senders. 149966338Seric Send all program email as daemon even when local. 150066338Seric As requested in various forms from many people, accept -qIstring 150166338Seric to limit queue runs to jobs with queue-id matching string. 150266338Seric Similarly for -qRstring for recipients, -qSstring for 150366338Seric senders. 150466338Seric Initial hooks for ESMTP support (see RFC 1425). 150566338Seric Fixed a syntax error in the UUCP mailer specification that caused 150666338Seric core dumps on startup. 150766338Seric Check for missing A= or P= arguments in mailer definitions. 150866338Seric 150966338Seric6.30/6.10 93/02/27 151066338Seric Require FROZENCONFIG compilation flag to include frozen 151166338Seric configuration code. Frozen configuration is really 151266338Seric not a very good idea any more, particularly in shared 151366338Seric library environments. 151466338Seric Do better checking of errno after opens of :include: and .forward 151566338Seric files to defer delivery on network and other transient 151666338Seric errors. Suggestion from Craig Everhart. 151766338Seric Fix minor botch in read timeout macro processing. 151866338Seric Add FEATURE(nouucp) to config files for sites that know absolutely 151966338Seric nothing about UUCP. 152066338Seric Add built cf files to distribution tape and clarify how to build 152166338Seric them if you don't have the Berkeley make. 152266338Seric Some sizeof(long) portability changes for the Alpha, from Allan 152366338Seric E Johannesen. 152466338Seric Add "restrictmailq" privacy flag -- if set, only people in the same 152566338Seric group as your queue directory can print the queue. If you 152666338Seric set this, be sure you also restrict access to log files.... 152766338Seric Fix another bug in owner-list stuff that can cause data files to 152866338Seric be "lost". 152966338Seric Fix a bug with queue runs that cause forwards to yourself to go 153066338Seric into alias/forwarding loops. I'm still iffy about this 153166338Seric fix. 153266338Seric Fix from Eric Wassenaar for suppression of return message code. 153366338Seric 153466338Seric6.29/6.9 93/02/24 153566338Seric Fix yet another problem in alias owner code -- put the wrong return 153666338Seric address on the enclosed return-to-sender letter. 153766338Seric 153866338Seric6.28/6.9 93/02/24 153966338Seric Fix botch in alias owner code that caused it to not operate if the 154066338Seric error was detected locally. 154166338Seric 154266338Seric6.27/6.9 93/02/24 154366338Seric M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include 154466338Seric file <sys/mount.h>. 154566338Seric Miscellaneous bug fixes from Eric Wassenaar: 154666338Seric sendmail -bv -t logs the from line even though in verify 154766338Seric mode only. 154866338Seric sendmail -v can go into queue mode if shouldqueue returns 154966338Seric TRUE. 155066338Seric Add route-addr pruning per RFC 1123 section 5.3.3. This can be 155166338Seric disabled using the "R" option. 155266338Seric Delete (always undocumented) -R flag (save original recipients); 155366338Seric there are ways to syslog(3) these now. 155466338Seric Clean up SMTP reply codes -- specify them as needed in the code, 155566338Seric instead of in conf.c -- this was needed during the NCP to 155666338Seric TCP transition, but seems silly now. This also changes 155766338Seric parameters to message and nmessage. 155866338Seric Have mailstats read the .cf file to find the sendmail.st file and 155966338Seric get text versions of mailer names. An initial version of 156066338Seric this code was provided by Tuominen Keijo (although the 156166338Seric comments indicate the good bits were written by "E.V."). 156266338Seric Add yet more System V compatibility hacks. 156366338Seric Fix bug in VRFY code (assumes everything must be a local user). 156466338Seric Allow specification of any of the hard-wired pathnames in the 156566338Seric Makefile. 156666338Seric Delete concept of "trusted users" -- this really didn't provide 156766338Seric any security anyway, and caused some problems. 156866338Seric Delete last vestige of support for the word "at" as an equivalent 156966338Seric to the character "@". 157066338Seric Propagate owner-foo alias information into the envelope sender. 157166338Seric Based on code from John Gardiner Myers. This is a major 157266338Seric semantic change -- beware! 157366338Seric Allow $@ on LHS to indicate "match zero" -- this is used to match 157466338Seric the null expression. 157566338Seric 157666338Seric6.26/6.8 93/02/21 157766338Seric Don't "lose" queue runs. Very important fix from (who else?) 157866338Seric Eric Wassenaar. 157966338Seric Completely reset state on RSET command -- from Eric Wassenaar. 158066338Seric Send error messages and return receipts using an envelope sender 158166338Seric of <> regardless of the setting of $n. Rewriting rules 158266338Seric can undo this if they feel the necessity, as might be 158366338Seric needed for networks that don't understand the syntax. 158466338Seric This is permitted by RFC 821 section 3.6 and required by 158566338Seric RFC 1123 section 5.3.3. THIS REQUIRES VERSION 4 CONFIG 158666338Seric FILES because the rulesets must be able to parse <> 158766338Seric properly. 158866338Seric Don't ever send error messages to "<>" -- they will get sent to 158966338Seric the local postmaster or dumped in /usr/tmp/dead.letter 159066338Seric instead. Per RFC 1123 section 5.3.3. 159166338Seric Explicitly check for email to yourself as a dotted quad. You 159266338Seric have to call $[ [ ... ] $] to get this. 159366338Seric Up the message timeout to five days per RFC 1123 section 5.3.1.1. 159466338Seric Make all read timeouts individually configurable, as strongly 159566338Seric recommended by RFC 1123 section 5.3.2. 159666338Seric Use f_bavail (blocks available to regular users) instead of f_bfree 159766338Seric (blocks available to superuser) in free block checks. 159866338Seric Change $d macro to be the current time, not the origination time, 159966338Seric since this is consistent with how it is used now. 160066338Seric Generalization of enoughspace from Eric Wassenaar covering 160166338Seric SGI, Apollo, HPUX, Ultrix, and SunOS. 160266338Seric Ignore process group signals -- some front ends can do this if 160366338Seric you kill a window too quickly. From Eric Wassenaar. 160466338Seric Change umask to 022. 160566338Seric 160666338Seric6.25/6.8 93/02/20 160766338Seric Close all cached connections before calling mailers and after 160866338Seric forking for delivery (caused double closes which resulted 160966338Seric in false errors). 161066338Seric Add FEATURE(redirect) in config files -- this allows you to alias 161166338Seric old addresses to a pointer to the new address that will 161266338Seric give a 551 error message, but not deliver the mail. 161366338Seric Some code changes to make the 551 errors look pretty. 161466338Seric Names of M4 program paths in config files have changed -- they 161566338Seric are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS. 161666338Seric Fix a bug in the QSELFREF code having to do with empty .forward 161766338Seric files, reported by Eric Wassenaar. 161866338Seric Add option "p" (privacy flags); this allows you to tune how 161966338Seric picky the SMTP server will be. This also adds the 162066338Seric confPRIVACY_FLAGS M4 macro in the config files. 162166338Seric Add option "b" (minimum blocks free). If there are fewer than 162266338Seric this number of blocks free on the filesystem containing 162366338Seric the queue directory, the SMTP MAIL command will return 162466338Seric a 452 response and ask you to try again later. This 162566338Seric also adds the confMIN_FREE_BLOCKS M4 macro in the config 162666338Seric files. 162766338Seric Made VRFY just verify (doesn't expand aliases and .forward files); 162866338Seric EXPN does full expansion. RCPT in queue-only mode also 162966338Seric doesn't chase aliases and .forward. 163066338Seric 163166338Seric6.24/6.7 93/02/19 163266338Seric Increase the number of domain search entries in domain.c to allow 163366338Seric for the extra "" entry indicating the root domain. 163466338Seric Reported by Motonori Nakamura of Kyoto U. 163566338Seric Add a "SMART_HOST" in the configs for UUCP-connected sites that 163666338Seric want to forward all mail with extra "@"s to that site. 163766338Seric Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to 163866338Seric be specified as ``mailer:hostname'' to use an alternate 163966338Seric mailer. 164066338Seric Clarified and updated some wording in the Operations Guide. 164166338Seric Add the "c" mailer flag -- this suppresses all comment parts of 164266338Seric addresses (requested by John Curran of NEARnet). 164366338Seric Have -v print prompts in -bt mode even if stdin is not a terminal 164466338Seric (default behaviour is to be silent if not reading from 164566338Seric a terminal). Suggested by Bryan Costales, ICSI. 164666338Seric Move the metacharacters from C0 space (\001-\037) into C1 space 164766338Seric (\201-\237). This also fixes a bunch of potential bugs 164866338Seric with G1 characters (\240-\276) in headers relating to 164966338Seric negative numbers passed to isspace() et al. 165066338Seric Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias 165166338Seric database if YPCOMPAT is #defined. Enhancement from 165266338Seric Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd. 165366338Seric Add "list" Precedence (-30); this can be used with old sendmails 165466338Seric which will map to precedence 0 (which will return error 165566338Seric messages). Suggested by Stephen R. van den Berg. 165666338Seric Many bug fixes from Eric Wassenaar of the National Institute for 165766338Seric Nuclear and High-Energy Physics, Amsterdam: 165866338Seric Clear timeouts properly on open failures in include(). 165966338Seric Don't dereference through NULL if no home directory found. 166066338Seric Re-establish SIGCHLD signal on System 5 in reapchild(). 166166338Seric Avoid NULL pointer reference on -pFOO flag. 166266338Seric Properly handle backslash escapes in comments. 166366338Seric Correctly check reply status on SMTP NOOP command. 166466338Seric Properly save SMTP error message if peer gives 166566338Seric "Service Shutting Down" message. 166666338Seric Avoid writing to the transcript if it couldn't be opened. 166766338Seric Signal errors in SMTP children to parent properly. 166866338Seric Handle self references in a list more globally (include a 166966338Seric QSELFREF bit in the address flags). This enhancement 167066338Seric was suggested by Eric Wassenaar. 167166338Seric Use initgroups() in hpux, even though it's System-V based. The 167266338Seric HASINITGROUPS compile flag can set this on other systems. 167366338Seric This HPUX behaviour was pointed out by Eric Wassenaar. 167466338Seric 167566338Seric6.23/6.6 93/02/16 167666338Seric Clean up handling of LogLevel to make it easier to figure out 167766338Seric what's on what level. 167866338Seric Change log levels to have some consistency: 167966338Seric 1 serious system failures, security problems 168066338Seric 2 lost communications, protocol failures 168166338Seric 3 other serious failures 168266338Seric 4 minor errors 168366338Seric 5 message collection 168466338Seric 6 vrfy logging, creation of return-to-sender 168566338Seric 7 delivery failures 168666338Seric 8 delivery successes 168766338Seric 9 delivery tempfails (queue ups) 168866338Seric 10 database expansion 168966338Seric >64 debugging 169066338Seric Allow IDA-style separated processing on S= and R= in Mailer 169166338Seric definition lines. Note that rulesets 1 and 2 are 169266338Seric still used for both addresses as before. Bruce Lilly 169366338Seric gave a convincing argument that RFC976 insists on 169466338Seric this behaviour. 169566338Seric Added some time zones to arpatounix -- they may not be in the 169666338Seric standards, but they are in use. However, I may delete 169766338Seric arpatounix entirely -- there appears to be no reason 169866338Seric for it to exist. 169966338Seric Change to UUCP mailer (in cf directory) to try to do a saner job. 170066338Seric I'm still not certain about this mailer in general. 170166338Seric 170266338Seric6.22/6.5 93/02/15 170366338Seric Fix bug that prevents saving letters in ~/dead.letter. 170466338Seric Don't add angle brackets in VRFY command if angle brackets already 170566338Seric exist in the address. 170666338Seric Fix bogus error message in udbexpand. 170766338Seric Null terminate host buffers in buildaddr (broken in 6.21) -- 170866338Seric IMPORTANT FIX!! 170966338Seric 171066338Seric6.21/6.5 93/02/15 171166338Seric Fix another incorrect error message in alias.c, found by Azuma 171266338Seric Okamoto. 171366338Seric Fix a couple of problems in the more-configurable config files, 171466338Seric found by Tom Ivar Helbekkmo. 171566338Seric Fix problem with quoted :include: entries. 171666338Seric Don't duplicate the filename on verbose printing of .forward and 171766338Seric :include: contents. 171866338Seric Extend size of prescan buffer (to allow bigger addresses). Also, 171966338Seric detect some buffer overflows. 172066338Seric Log user SMTP protocol errors (log level 4). 172166338Seric 172266338Seric6.20/6.4 93/02/14 172366338Seric Fix another problem in the MCI state machine caused when there 172466338Seric were errors generated from the other end to commands 172566338Seric other than RCPT. 172666338Seric 172766338Seric6.19/6.4 93/02/14 172866338Seric Include load average support for DEC Alpha running OSF/1. 172966338Seric Fix multiple-response problem with errors in MAIL From: line. 173066338Seric Fix SMTP reply codes for invalid address syntaxes (give 501; 173166338Seric never give multiple error messages for a single message). 173266338Seric Fix problem where a cached connection timeout rejects all 173366338Seric later connects to that host. 173466338Seric Fix incorrect error message if alias.c is compiled with DBM only. 173566338Seric Additional changes to fix nested conditionals (from Bruce Lilly). 173666338Seric Recover more gracefully from operating system failures, particularly 173766338Seric NULL returns from openmailer (from Noritoshi Demizu, 173866338Seric OMRON Corporation). 173966338Seric Log forward, alias, and userdb expand operations on log level 10; 174066338Seric concept suggested by P{r (Pell) Emanuelsson. 174166338Seric Changes for HPUX 8.07 compatibility. 174266338Seric 174366338Seric6.18/6.4 93/02/12 174466338Seric Allow any config option to be set using an M4 define. 174566338Seric Change UNAME compile flag to HASUNAME for IDA compatibility 174666338Seric (besides, it's a better name). 174766338Seric Note in README that on SunOS it must be linked -Bstatic. 174866338Seric Fairly major change in domain.c to handle wildcard MX records 174966338Seric more rationally. NOTE: the "w" option (no wildcard MX 175066338Seric records match local domain) has been eliminated. 175166338Seric Fix some unset variable references pointed out by Bruce Lilly. 175266338Seric Fix host name in process titles when using cached connection. 175366338Seric 175466338Seric6.17/6.3 93/01/28 175566338Seric Fix System 5 compatibility changes to be compatible with the rest 175666338Seric of the world. 175766338Seric 175866338Seric6.16/6.3 93/01/28 175966338Seric Experimental fix for problem handling errors in the SMTP 176066338Seric protocol in conjunction with connection caching. 176166338Seric System 5 compatibility changes. 176266338Seric 176366338Seric6.15/6.3 93/01/26 176466338Seric Fix a bug that causes local mail delivered using -odq to be 176566338Seric eliminated as a duplicate (because it matched the 176666338Seric ctladdr, now passed in as a C line). These changes 176766338Seric are pretty tricky...... 176866338Seric 176966338Seric6.14/6.3 93/01/25 177066338Seric Add debugging for some MCI errors. 177166338Seric 177266338Seric6.13/6.3 93/01/22 177366338Seric Fix -e compatibility flag to take a value. 177466338Seric Fix a couple of minor compilation warnings on Sun cc. 177566338Seric Improve error messages in a few cases to be more self-explanatory. 177666338Seric 177766338Seric6.12/6.3 93/01/21 177866338Seric Fix yet-another problem with environment handling, pointed out 177966338Seric by Yoshitaka Tokugawa and Tom Ivar Helbekkmo. 178066338Seric Some heuristics to try to limit resource exhaustion problems 178166338Seric if a downstream host has been down for a long time. 178266338Seric Fix problem with incorrect host name being logged in "Connection 178366338Seric timed out" messages (from Tom Ivar Helbekkmo). 178466338Seric Fix some ANSI C problems (from Takahiro Kanbe). 178566338Seric Properly log message sender on returned mail during queue run. 178666338Seric Count number of recipients properly. 178766338Seric Fix a problem in yp map code. 178866338Seric Diagnose "message timed out" (from Motonori Nakamura). 178966338Seric 179066338Seric6.11/6.3 93/01/20 179166338Seric Fix problem with address delimitor inside quotes. 179266338Seric Define $k and $=k to be the UUCP name (from the uname call) 179366338Seric based on code from Bruce Lilly. 179466338Seric 179566338Seric6.10/6.2 93/01/18 179666338Seric Implement arpatounix (largely code from Bruce Lilly). 179766338Seric Log more info (suggested by John Myers). 179866338Seric Allow nested $?...$|...$. (inspired by code from Bruce Lilly of 179966338Seric Sony US). 180066338Seric POSIX compatibility (noted by Keith Bostic). 180166338Seric Handle SMTP MAIL command errors properly (urged by several people, 180266338Seric notably John Myers of CMU). 180366338Seric Do early diagnosis of .cf errors (notably referencing a RHS 180466338Seric substitution that isn't on the LHS). 180566338Seric Adjust checkpointing to better handle batched recipients, suggested 180666338Seric by John Myers. 180766338Seric Fix miscellaneous bugs. 180866338Seric (config files:) Implement MAIL_HUB for all local mail (to handle 180966338Seric NFS-mounted directories) as urged by Tom Ivar Helbekkmo 181066338Seric of the Norwegian School of Economics. 181166338Seric 181266338Seric6.9/6.1 93/01/13 181366338Seric Environment handling simplification/bug fix -- child processes 181466338Seric get a minimal, fixed environment. This avoids different 181566338Seric behaviour in queue runs. 181666338Seric Handle commas inside comments properly. 181766338Seric Properly limit large messages submitted in -obq mode. 181866338Seric 181966338Seric6.8/6.1 93/01/10 182066338Seric Check mtime of thaw file against .cf and sendmail binary, based on 182166338Seric code from John Myers. 182266338Seric 182366338Seric6.7/6.1 93/01/10 182466338Seric MX piggybacking, based on code from John Myers@CMU. 182566338Seric Allow checkcompat to return -1 to mean tempfail. 182666338Seric Bug fix in m_mno computation. 182766338Seric 182866338Seric6.6/6.1 93/01/09 182966338Seric Tuning of queueing functions as recommended by John Gardiner Myers. 183066338Seric Return mail headers (no body) on messages with negative precedence. 183166338Seric Minor other bug fixes. 183266338Seric 183366338Seric6.5/6.1 93/01/03 183466338Seric Fix botch causing queued headers to have ?XX? prefixes. 183566338Seric 183666338Seric6.4/6.1 93/01/02 183766338Seric Changes to recognize special mailer types (e.g., file) early. 183866338Seric 183966338Seric6.3/6.1 93/01/01 184066338Seric Pass timeouts to sfgets. 184166338Seric Check for control characters in addresses. 184266338Seric Fixed deferred error reporting. 184366338Seric Report duplicate aliases. 184466338Seric Handle mixed case recursive aliases. 184566338Seric Misc bug fixes. 184666338Seric 184766338Seric6.2/6.1 92/12/30 184866338Seric Put return-receipt-to on a conf.c flag (but don't set it). 184966338Seric Fix minor syslog problem. 1850