8.6.4
[unix-history] / usr / src / usr.sbin / sendmail / RELEASE_NOTES
CommitLineData
fe9d9e06
EA
18.6.4/8.6.4 93/10/31
2 Repair core-dump problem (write to read-only memory segment)
3 if you fall back to the return-to-Postmaster case in
4 savemail. Problem reported by Richard Liu.
5 Immediately diagnose bogus sender addresses in SMTP. This
6 makes quite certain that crackers can't use this
7 class of attack.
8 Reliability Fix: check return value from fclose() and fsync()
9 in a few critical places.
10 Minor problem in initsys() that reversed a condition for
11 redirecting the output channel on queue runs. It's
12 not clear this code even does anything. From Eric
13 Wassenaar of the Dutch National Institute for Nuclear
14 and High-Energy Physics.
15 Fix some problems that caused queue runs to do "too much work",
16 such as double-reading the Errors-To: header. From
17 Eric Wassenaar.
18 Error messages on writing the temporary file (including the
19 data file) were getting suppressed in SMTP -- this
20 fix causes them to be properly reported. From Eric
21 Wassenaar.
22 Some changes to support AF_UNIX sockets -- this will only
23 really become relevant in the next release, but some
24 people need it for local patches. From Michael
25 Corrigan of UC San Diego.
26 Use dynamically allocated memory (instead of static buffers)
27 for macros defined in initsys() and settime(); since
28 these can have different values depending on which
29 envelope they are in. From Eric Wassenaar.
30 Improve logging to show ctladdr on to= logging; this tells you
31 what uid/gid processes ran as.
32 Fix a problem that caused error messages to be discarded if
33 the sender address was unparseable for some reason;
34 this was supposed to fall back to the "return to
35 postmaster" case.
36 Improve aliaswait backoff algorithm.
37 Portability patches for Linux (8.6.3 required another header
38 file) (from Karl London) and SCO UNIX.
39 CONFIG: patch prog mailer to not strip host name off of envelope
40 addresses (so that it matches local again). From
41 Christopher Davis.
42 CONFIG: change uucp-dom mailer so that "<>" translates to $n;
43 this prevents uux from seeing lines with null names like
44 ``From Sat Oct 30 14:55:31 1993''. From Motonori
45 Nakamura of Kyoto University.
46 CONFIG: handle <list:;> syntax correctly. This isn't legal, but
47 it shouldn't fail miserably. From Motonori Nakamura.
48
cff7cd2b
EA
498.6.3/8.6.3 93/10/24
50 IMPORTANT FIX: Fix several problems that caused open files to
51 be "lost" during queue runs; this overflowed the open
52 file table on large runs. An assumption that fdopen
53 always succeeds sometimes resulted in core dumps when
54 this happens; sometimes the message is delivered twice,
55 sometimes (probably) infinite times. This problem in
56 various form was reported by P{r (Pell) Emanuelsson and
57 Robert Campbell of U.C. Berkeley.
58 Special diagnosis of EMFILE error conditions -- it now prints
59 the known open file descriptors so you can figure out
60 what is consuming so much resources.
61 Fix a couple of problems caused by early address parsing
62 errors -- one caused it to return a "this is only a
63 warning" when it really wasn't, and the other started
64 parsing through a random pointer. The first was
65 noted by Eric Wassenaar.
66 Fix an infinite loop problem caused by null components in the
67 host signature. Problem noted by Jan Sorensen.
68 Be sure to reset the "current date" when sending an error
69 message -- PostMasterCopy messages were being sent
70 with an old Date: header.
71 Fix a problem that caused duplicated mail when sendmail was
72 (1) compiled without HASFLOCK, (2) you are sending to
73 an alias that has an owner-* alias, (3) you execute
74 sendmail with -t flag, (4) you run in -odb mode, and
75 (5) the sender specifies both the alias name and
76 another alias [i.e., the envelope is split], then
77 duplicate messages are sent. The problem description
78 and one-line fix are from Motonori Nakamura of Kyoto
79 University.
80 Avoid a problem that causes error messages to be discarded
81 in some cases -- this was the result of a "fix" to
82 avoid duplicate error messages, but two are better
83 than zero. Reported by Tim Rylance.
84 Fix a minor botch in checkfd012() -- fix from Dave Hill of
85 Computervision R&D Ltd.
86 Remove "X-Authentication-Warning: <user> set sender to <address>
87 using -f" entirely -- it is far too eager to include
88 this, and it is confusing folks. I'll try to make it
89 work "right" in 8.7. Problem noted by Yoshitaka
90 Tokugawa of dit Co., Ltd.
91 Fix a race condition with the errno value in tick() and
92 reapchild() -- this caused occasional misdiagnosis
93 of problems. Kyle Jones of UUNET helped this along.
94 Repair rule loop-detection code. From Michael Corrigan of
95 U.C. San Diego.
96 Fix a problem that caused sender domain addition (C mailer
97 flag to be ignored if you use -odq or use -odb with
98 a high load average. Problem reported by Jim Murray
99 of Stratus.
100 Fix ident protocol on multi-homed machines. It was not
101 always using the correct interface. Fix from J.R.
102 Oldroyd of Opal.
103 Previously, sendmail assumed that any SMTP greeting message
104 that wasn't 2xx was a temporary failure -- it should
105 only take 4xx as a temporary failure, and return a
106 solid error message on anything else -- for example,
107 to allow you to reject connections on a workstation
108 that is MXed to a mail server.
109 Portability enhancements for 386BSD/FreeBSD/NetBSD from
110 Ollivier Robert.
111 CONFIG: FEATURE(always_add_domain) didn't always add the domain;
112 in particular, on local mail it modified the header sender
113 but not the header recipient address(es). Reported by
114 Jeffrey Honig of Cornell University. Also, strip
115 any host from envelope recipient address(es), since
116 local mailers don't understand host names -- this is
117 to help mailertable entries. From Christopher Davis.
118 CONFIG: masquerading didn't apply to addresses that already
119 had a domain. This change replaces a local hostname
120 by the masquerade name in the SMTP mailer (previously
121 it only added the masquerade name if it didn't already
122 have a domain name). Several people complained about
123 this.
124
1f1a0c7e
EA
1258.6.2/8.6.2 93/10/15
126 Put a "successful delivery" message in the transcript for
127 addresses that get return-receipts.
128 Put a prominent "this is only a warning" message in warning
129 messages -- some people don't read carefully enough
130 and end up sending the message several times.
131 Include reason for temporary failure in the "warning" return
132 message. Currently, it just says "cannot send for
133 four hours".
134 Fix the "Original message received" time generated for
135 returntosender messages. It was previously listed as
136 the current time. Bug reported by Eric Hagberg of
137 Cornell University Medical College.
138 If there is an error when writing the body of a message,
139 don't send the trailing dot and wait for a response
140 in sender SMTP, as this could cause the connection to
141 hang up under some bizarre circumstances. From Eric
142 Wassenaar.
143 Fix some server SMTP synchronization problems caused when
144 connections fail during message collection. From
145 Eric Wassenaar.
146 Fix a problem that can cause srvrsmtp to reject mail if the
147 name server is down -- it accepts the RCPT but rejects
148 the DATA command. Problem reported by Jim Murray of
149 Stratus.
150 Fix a problem that can cause core dumps if the config file
151 incorrectly resolves to a null hostname. Reported by
152 Allan Johannesen of WPI.
153 Non-root use of -C flag, dangerous -f flags, and use of -oQ
154 by non-root users were not put into
155 X-Authentication-Warning:s as intended because the
156 config file hadn't set the PrivacyFlags yet. Fix
157 from Sven-Ove Westberg of the University of Lulea.
158 Under very odd circumstances, the alias file rebuild code
159 could get confused as to whether a database was
160 open or not.
161 Check "vendor code" on the end of V lines -- this is
162 intended to provide a hook for vendor-specific
163 configuration syntax. (This is a "new feature",
164 but I've made an exception to my rule in a belief
165 that this is a highly exceptional case.)
166 Portability fixes for DG/UX (from Douglas Anderson of NCSC),
167 SCO Unix (from Murray Kucherawy), A/UX, and OSF/1
168 (from Jon Forrest of UC Berkeley)
169 CONFIG: fix ``mailer:host'' form of UUCP relay naming.
170
df8cc2e6
EA
1718.6.1/8.6 93/10/08
172 Portability fixes for A/UX and Encore UMAX V.
173 Fix error message handling -- if you had a name server down
174 causing an error during parsing, that message was never
175 propogated to the queue file.
176
cb2e7bc6
EA
1778.6/8.6 93/10/05
178 Configuration cleanup: make it easier to undo IDENTPROTO in
179 conf.h (other systems have the same bug).
180 If HASGETDTABLESIZE and _SC_OPEN_MAX are both defined, assume
181 getdtablesize() instead of sysconf(); a disturbingly
182 large number of systems defined _SC_OPEN_MAX in the
183 header files but don't have the syscall.
184 Another patch to really truly ignore MX records in getcanonname
185 if trymx == FALSE.
186 Fix problem that caused the "250 IAA25499 Message accepted for
187 delivery" message to be omitted if there was an error
188 in the header of the message (e.g., a bad Errors-To:
189 line). Pointed out by Michael Corrigan of UCSD.
190 Announce name of host we are chatting when we get errors; this
191 is an IDA-ism suggested by Christophe Wolfhugel.
192 Portability fixes for Alpha OSF/1 (from Anthony Baxter of the
193 Australian Artificial Intelligence Institute), SCO Unix
194 (from Murray Kucherawy of Hookup Communication Corp.),
195 NeXT (from Vince DeMarco and myself), Linux (from
196 Karl London <karl@borg.demon.co.uk>), BSDI (from
197 Christophe Wolfhugel, and SVR4 on Dell (from Kimmo
198 Suominen), AUX 3.0 on Macintosh, and ANSI C compilers.
199 Some changes to get around gcc optimizer bugs. From Takahiro
200 Kanbe.
201 Fix error recovery in queueup if another tf file of the same
202 name already exists. Problem stumbled over by Bill
203 Wisner of The Well.
204 Output YP_MASTER_NAME and YP_LAST_MODIFIED without null bytes.
205 Problem noted by Keith McMillan of Ameritech Services.
206 Deal with group permissions properly when opening .forward and
207 :include: files. This relaxes the 8.1C restrictions
208 slightly more. This includes proper setting of groups
209 when reading :include: files, allowing you to read some
210 files that you should be able to read but have previously
211 been denied unless you owned them or they had "other"
212 read permission.
213 Make certain that $j is in $=w (after the .cf is read) so that
214 if the user is forced to override some silly system,
215 MX suppression will still work.
216 Fix a couple of efficiency problems where newstr was double-
217 calling expensive routines. In at least one case, it
218 wasn't guaranteed that they would always return the
219 same result. Problem noted by Christophe Wolfhugel.
220 Fix null pointer dereference in putoutmsg -- only on an error
221 condition from a non-SMTP mailer. From Motonori
222 Nakamura.
223 Macro expand "C" line class definitions before scanning so that
224 "CX $Z" works.
225 Fix problem that caused error message to be sent while still
226 trying to send the original message if the connection
227 is closed during a DATA command after getting an error
228 on an RCPT command (pretty obscure). Problem reported
229 by John Myers of CMU.
230 Fix reply to NOOP to be 250 instead of 200 -- this is a long
231 term bug.
232 Fix a nasty bug causing core dumps when returning the "warning:
233 cannot deliver for N hours -- will keep trying" message;
234 it only occurred if you had PostMasterCopy set and
235 only on some architectures. Although sendmail would
236 keep trying, it would send error messages on each
237 queue interval. This is an important fix.
238 Allow u and g options to take user and group names respectively.
239 Don't do a chdir into the queue directory in -bt mode to make
240 ruleset testing a bit easier.
241 Don't allow users to turn off logging (using -oL) on the command
242 line -- command line can only raise, not lower, logging
243 level.
244 Set $u to the original recipient on the SMTP transaction or on
245 the command line. This is only done if there is exactly
246 one recipient. Technically, this does not meet the
247 specs, because it does not guarantee a domain on the
248 address.
249 Fix a problem that dumped error messages on bad addresses if
250 you used the -t flag. Problem noted by Josh Smith of
251 Harvey Mudd College.
252 Given an address such as ``<foo> <bar>'', auto-quote the first
253 ``<foo>'' part, giving ``"<foo>" <bar>''. This is to
254 avoid the problem of people who use angle brackets in
255 their full name information.
256 Fix a null pointer dereference if you set option "l", have
257 an Errors-To: header in the message, and have Errors-To:
258 defined in the config file H lines. From J.R. Oldroyd.
259 Put YPCOMPAT on #ifdef NIS instead -- it's one less thing to get
260 wrong when compiling. Suggested by Rick McCarty of TI.
261 Fix a problem that could pass negative SIZE parameter if the
262 df file got lost; this would cause servers to always
263 give a temporary failure, making the problem even worse.
264 Problem noted by Allan Johannesen of WPI.
265 Add "ident" timeout (one of the "r" option selectors) for IDENT
266 protocol timeouts (30s default). Requested by Murray
267 Kucherawy of HookUp Communication Corp. to handle bogus
268 PC TCP/IP implementations.
269 Change $w default definition to be just the first component of
270 the domain name on config level 5. The $j macro defaults
271 to the FQDN; $m remains as before. This lets well-behaved
272 config files use any of the short, long, or subdomain
273 names.
274 Add makesendmail script in src to try to automate multi-architecture
275 builds. I know, this is sub-optimal, but it is still
276 helpful.
277 Fix very obscure race condition that can cause a queue run to
278 get a queue file for an already completed job. This
279 problem has existed for years. Problem noted by the
280 long suffering Allan Johannesen of WPI.
281 Fix a problem that caused the raw sender name to be passed to
282 udbsender instead of the canonified name -- this caused
283 it to sometimes miss records that it should have found.
284 Relax check of name on HELO packet so that a program using -bs
285 that claims to be itself works properly.
286 Restore rewriting of $: part of address through 2, R, 4 in
287 buildaddr -- this requires passing a lot of flags to get
288 it right. Unlike old versions, this ONLY rewrites
289 recipient addresses, not sender addresses.
290 Fix a bug that caused core dumps in config files that cannot
291 resolve /file/name style addresses. Fix from Jonathan
292 Kamens of OpenVision Technologies.
293 Fix problem with fcntl locking that can cause error returns to
294 be lost if the lock is lost; this required fully
295 queueing everything, dropping the envelope (so errors
296 would get returned), and then re-reading the queue from
297 scratch.
298 Fix a problem that caused aliases that redefine an otherwise
299 true address to still send to the original address
300 if and only if the alias failed in certain bizarre
301 ways (e.g, if they pointed at a list:; syntax address).
302 Problem pointed out by Jonathan Kamens.
303 Remove support for frozen configuration files. They caused
304 more trouble than it was worth.
305 Fix problem that can cause error messages to get ignored when
306 using both -odb and -t flags. Problem noted by Rob
307 McNicholas at U.C. Berkeley.
308 Include all "normal" variations on hostname in $=w. For example,
309 if the host name is vangogh.cs.berkeley.edu, $=w will
310 contain vangogh, vangogh.cs, and vangogh.cs.berkeley.edu.
311 Add "restrictqrun" privacy flag -- without this, anyone can run
312 the queue.
313 Reset SmtpPhase global on initial connection creation so that
314 messages don't come out with stale information.
315 Pass an "ext" argument to lockfile so that error/log messages
316 will properly reflect the true filename being locked.
317 Put all [...] address forms into $=w -- this eliminates the need
318 for MAXIPADDR in conf.h. Suggested by John Gardiner
319 Myers of CMU.
320 Fix a bug that can cause qf files to be left around even after
321 an SMTP RSET command. Problem and fix from Michael
322 Corrigan.
323 Don't send a PostMasterCopy to errors when the Precedence: is
324 negative. Error reports still go to the envelope
325 sender address.
326 Add LA_SHORT for load averages.
327 Lock sendmail.st file when posting statistics.
328 Add "SendBufSize" and "RcvBufSize" suboptions to "O" option to
329 set the size of the TCP send and receive buffers; if you
330 run over a slow slip line you may need to set these down
331 (although it would be better to fix the SLIP implementation
332 so that it's not necessary to recompile every program
333 that does bulk data transfer).
334 Allow null defaults on $( ... $) lookups. Problem reported by
335 Amir Plivatsky.
336 Diagnose crufty S and V config lines. This resulted from an
337 observation that some people were using the SITE macro
338 without the SITECONFIG macro first, which was causing
339 bogus config files that were not caught.
340 Fix makemap -f flag to turn off case folding (it was turning it
341 on instead). THIS IS A USER VISIBLE CHANGE!!!
342 Fix a problem that caused multiple error messages to be sent if
343 you used "sendmail -t -oem -odb", your system uses fcntl
344 locking, and one of the recipient addresses is unknown.
345 Reset uid earlier in include() so that recursive .forwards or
346 :include:s don't use the wrong uid.
347 If file descriptor 0, 1, or 2 was closed when sendmail was
348 called, the code to recover the descriptor was broken.
349 This sometimes (only sometimes) caused problems with the
350 alias file. Fix from Motonori Nakamura.
351 Fix a problem that caused aliaswait to go into infinite recursion
352 if the @:@ metasymbol wasn't found in the alias file.
353 Improve error message on newaliases if database files cannot be
354 opened or if running with no database format defined.
355 Do a better estimation of the size of error messages when NoReturn
356 is set. Problem noted by P{r (Pell) Emanuelsson.
357 Fix a problem causing the "c" option (don't connect to expensive
358 mailers) to be ignored in SMTP. Problem noted and the
359 solution suggested by Robert Elz of Munnari University.
360 Improve connection caching algorithm by passing "[host]" to
361 hostsignature, which strips the square brackets and
362 returns the real name. This allows mailertable entries
363 to match regular entries.
364 Re-enable Return-Receipt-To: -- people seem to want this stupid
365 feature, even if it doesn't work right.
366 Catch and log attempts to try the "wiz" command in server SMTP.
367 This also ups the log level from LOG_NOTICE to LOG_CRIT.
368 Be more generous at assigning $z to the home directory -- do this
369 for programs that are specified through a .forward file.
370 Fix from Andrew Chang of Sun Microsystems.
371 Always save a fatal error message in preference to a non-fatal
372 error message so that the "subject" line of return
373 messages is the best possible.
374 CONFIG: reduce the number of quotes needed to quote configuration
375 parameters with commas: two quotes should work now, e.g.,
376 define(ALIAS_FILE, ``/etc/aliases,/etc/aliases.local'').
377 CONFIG: class $=Z is a set of UUCP hosts that use uucp-dom
378 connections (domain-ized UUCP).
379 CONFIG: fix bug in default maps (-o must be before database file
380 name). Pointed out by Christophe Wolfhugel.
381 CONFIG: add FEATURE(nodns) to state that we are not relying on
382 DNS. This would presumably be used in UUCP islands.
383 CONFIG: add OSTYPE(nextstep) and OSTYPE(linux).
384 CONFIG: log $u in Received: line. This is in technical violation
385 of the standards, since it doesn't guarantee a domain
386 on the address.
387 CONFIG: don't assume "m" in local mailer flags -- this means that
388 if you redefine LOCAL_MAILER_FLAGS you will have to include
389 the "m" flag should you want it. Apparently some Solaris 2.2
390 installations can't handle multiple local recipients.
391 Problem noted by Josh Smith.
392 CONFIG: add confDOMAIN_NAME to set $j (if undefined, $j defaults).
393 CONFIG: change default version level from 4 to 5.
394 CONFIG: add FEATURE(nullclient) to create a config file that
395 forwards all mail to a hub without ever looking at the
396 addresses in any detail.
397 CONFIG: properly strip mailer: information off of relays when
398 used to change .BITNET form into %-hack form.
399 CONFIG: fix a problem that caused infinite loops if presented
400 with an address such as "!foo".
401 CONFIG: check for self literal (e.g., [128.32.131.12]) even if
402 the reverse "PTR" mapping is broken. There's a better
403 way to do this, but the change is fairly major and I
404 want to hold it for another release. Problem noted by
405 Bret Marquis.
406
4078.5/8.5 93/07/23
408 Serious bug: if you used a command line recipient that was unknown
409 sendmail would not send a return message (it was treating
410 everything as though it had an SMTP-style client that
411 would do the return itself). Problem noted by Josh Smith.
412 Change "trymx" option in getcanonname() to ignore all MX data,
413 even during a T_ANY query. This actually didn't break
414 anything, because the only time you called getcanonname
415 with !trymx was if you already knew there were no MX
416 records, but it is somewhat cleaner. From Motonori
417 Nakamura.
418 Don't call getcanonname from getmxrr if you already know there
419 are no DNS records matching the name.
420 Fix a problem causing error messages to always include "The
421 original message was received ... from localhost".
422 The correct original host information is now included.
423 Previous change to cf/sh/makeinfo.sh doesn't port to Ultrix (their
424 version of "test" doesn't have the -x flag). Change it
425 to use -f instead. From John Myers.
426 CONFIG: 8.4 mistakenly set the default SMTP-style mailer to
427 esmtp -- it should be smtp.
428 CONFIG: send all relayed mail using confRELAY_MAILER (defaults
429 to "relay" (a variant of "smtp") if MAILER(smtp) is used,
430 else "suucp" if MAILER(uucp) is used, else "unknown");
431 this cleans up the configs somewhat. This fixes a serious
432 problem that caused route-addrs to get mistaken as relays,
433 pointed out by John Myers. WARNING: this also causes
434 the default on SMART_HOST to change from "suucp" to
435 "relay" if you have MAILER(smtp) specified.
436
33265b86
EA
4378.4/8.4 93/07/22
438 Add option `w'. If you receive a message that comes to you because
439 you are the best (lowest preference) target of an MX, and
440 you haven't explicitly recognized the source MX host in
441 your .cf file, this option will cause you to try the target
442 host directly (as if there were no MX for it at all). If
443 `w' is not set, this case is a configuration error.
444 Beware: if `w' is set, senders may get bogus errors like
445 "message timed out" or "host unknown" for problems that
446 are really configuration errors. This option is
447 disrecommended, provided only for compatibility with
448 UIUC sendmail.
449 Fix a problem that caused the incoming socket to be left open
450 when sendmail forks after the DATA command. This caused
451 calling systems to wait in FIN_WAIT_2 state until the
452 entire list was processed and the child closed -- a
453 potentially prodigious amount of time. Problem noted
454 by Neil Rickert.
455 Fix problem (created in 6.64) that caused mail sent to multiple
456 addresses, one of which was a bad address, to completely
457 suppress the sending of the message. This changes
458 handling of EF_FATALERRS somewhat, and adds an
459 EF_GLOBALERRS flag. This also fixes a potential problem
460 with duplicate error messages if there is a syntax error
461 in the header of a message that isn't noticed until late
462 in processing. Original problem pointed out by Josh Smith
463 of Harvey Mudd College. This release includes quite a bit
464 of dickering with error handling (see below).
465 Back out SMTP transaction if MAIL gets nested 501 error. This
466 will only hurt already-broken software and should help
467 humans.
468 Fix a problem that broke aliases when neither NDBM nor NEWDB were
469 compiled in. It would never read the alias file.
470 Repair unbalanced `)' and `>' (the "open" versions are already
471 repaired).
472 Logging of "done" in dropenvelope() was incorrect: it would
473 log this even when the queue file still existed. Change
474 this to only log "done" (at log level 11) when the
475 queue file is actually removed. From John Myers.
476 Log "lost connection" in server SMTP at log level 20 if there
477 is no pending transaction. Some senders just close the
478 connection rather than sending QUIT.
479 Fix a bug causing getmxrr to add a dot to the end of unqualified
480 domains that do not have MX records -- this would cause
481 the subsequent host name lookup to fail. The problem
482 only occurred if you had FEATURE(nocanonify) set.
483 Problem noted by Rick McCarty of Texas Instruments.
484 Fix invocation of setvbuf when passed a -X flag -- I had
485 unwittingly used an ANSI C extension, and this caused
486 core dumps on some machines.
487 Diagnose self-destructive alias loops on RCPT as well as EXPN.
488 Previously it just gave an empty send queue, which
489 then gave either "Need RCPT (recipient)" at the DATA
490 (confusing, since you had given an RCPT command which
491 returned 250) or just dropped the email, depending on
492 whether you were running VERBose mode. Now it usually
493 diagnoses this case as "aliasing/forwarding loop broken".
494 Unfortunately, it still doesn't adequately diagnose
495 some true error conditions.
496 Add internal concept of "warning messages" using 6xx codes.
497 These are not reported only to Postmaster. Unbalanced
498 parens, brackets, and quotes are printed as 653 codes.
499 They are always mapped to 5xx codes before use in SMTP.
500 Clean up error messages to tell both the actual address that
501 failed and the alias they arose from. This makes it
502 somewhat easier to diagnose problems. Difficulty noted
503 by Motonori Nakamura.
504 Fix a problem that inappropriately added a ctladdr to addresses
505 that shouldn't have had one during a queue run. This
506 caused error messages to be handled differently during
507 a queue run than a direct run.
508 Don't print the qf name and line number if you get errors during
509 the direct run of the queue from srvrsmtp -- this was
510 just extra stuff for users to crawl through.
511 Put command line flags on second line of pid file so you can
512 auto-restart the daemon with all appropriate arguments.
513 Use "kill `head -1 /etc/sendmail.pid`" to stop the
514 daemon, and "eval `tail -1 /etc/sendmail.pid`" to
515 restart it.
516 Remove the ``setuid(getuid())'' in main -- this caused the
517 IDENT daemon to screw up. This required that I change
518 HASSETEUID to HASSETREUID and complicate the mode
519 changing somewhat because both Ultrix and SunOS seem
520 to have a bug causing seteuid() to set the saved uid
521 as well as the effective. The program test/t_setreuid.c
522 will test to see if your implementation of setreuid(2)
523 is appropriately functional.
524 The FallBackMX (option V) handling failed to properly identify
525 fallback to yourself -- most of the code was there,
526 but it wasn't being enabled. Problem noted by Murray
527 Kucherawy of the University of Waterloo.
528 Change :include: open timeout from ETIMEDOUT to an internal
529 code EOPENTIMEOUT; this avoids adding "during SmtpPhase
530 with CurHostName" in error messages, which can be
531 confusing. Reported by Jonathan Kamens of OpenVision
532 Technologies.
533 Back out setpgrp (setpgid on POSIX systems) call to reset the
534 process group id. The original fix was to get around
535 some problems with recalcitrant MUAs, but it breaks
536 any call from a shell that creates a process group id
537 different from the process id. I could try to fix
538 this by diddling the tty owner (using tcsetpgrp or
539 equivalent) but this is too likely to break other
540 things.
541 Portability changes:
542 Support -M as equivalent to -oM on Ultrix -- apparently
543 DECnet calls sendmail with -MrDECnet -Ms<HOST> -bs
544 instead of using standard flags. Oh joy. This
545 behaviour reported by Jon Giltner of University
546 of Colorado.
547 SGI IRIX -- this includes several changes that should
548 help other strict ANSI compilers.
549 SCO Unix -- from Murray Kucherawy of HookUp Communication
550 Corporation.
551 Solaris running the Sun C compiler (which despite the
552 documentation apparently doesn't define
553 __STDC__ by default).
554 ConvexOS from Eric Schnoebelen of Convex.
555 Sony NEWS workstations and Omron LUNA workstations from
556 Motonori Nakamura.
557 CONFIG: add confTRY_NULL_MX_LIST to set option `w'.
558 CONFIG: delete `C' and `e' from default SMTP mailers flags;
559 several people have made a good argument that this
560 creates more problems than it solves (although this
561 may prove painful in the short run).
562 CONFIG: generalize all the relays to accept a "mailer:host"
563 format.
564 CONFIG: move local processing in ruleset 0 into a new ruleset
565 98 (8 on old sendmail). Domain literal [a.b.c.d]
566 addresses are also passed through this ruleset.
567 CONFIG: if neither SMART_HOST nor MAILER(smtp) were defined,
568 internet-style addresses would "fall off the end" of
569 ruleset zero and be interpreted as local -- however,
570 the angle brackets confused the recursive call.
571 These are now diagnosed as "Unrecognized host name".
572 CONFIG: USENET rules weren't included in S0 because of a mistaken
573 ifdef(`_MAILER_USENET_') instead of
574 ifdef(`_MAILER_usenet_'). Problem found by Rein Tollevik
575 of SINTEF RUNIT, Oslo.
576 CONFIG: move up LOCAL_RULE_0 processing so that it happens very
577 early in ruleset 0; this allows .mc authors to bypass
578 things like the "short circuit" code for local addresses.
579 Prompted by a comment by Bill Wisner of The Well.
580 CONFIG: add confSMTP_MAILER to define the mailer used (smtp or
581 esmtp) to send SMTP mail. This allows you to default
582 to esmtp but use a mailertable or other override to
583 deal with broken servers. This logic was pointed out
584 to me by Bill Wisner. Ditto for confLOCAL_MAILER.
585 Changes to cf/sh/makeinfo.sh to make it portable to SVR4
586 environments. Ugly as sin.
587
a938aa3d
EA
5888.3/8.3 93/07/13
589 Fix setuid problems introduced in 8.2 that caused messages
590 like "Cannot create qfXXXXXX: Invalid argument"
591 or "Cannot reopen dfXXXXXX: Permission denied". This
592 involved a new compile flag "HASSETEUID" that takes
593 the place of the old _POSIX_SAVED_IDS -- it turns out
594 that the POSIX interface is broken enough to break
595 some systems badly. This includes some fixes for
596 HP-UX. Also fixes problems where the real uid is
597 not reset properly on startup (from Neil Rickert).
598 Fix a problem that caused timed out messages to not report the
599 addresses that timed out. Error messages are also more
600 "user friendly".
601 Drop required bandwidth on connections from 64 bytes/sec to
602 16 bytes/sec.
603 Further Solaris portability changes -- doesn't require the BSD
604 compatibility library. This also adds a new
605 "HASGETDTABLESIZE" compile flag which can be used if
606 you want to use getdtablesize(2) instead of sysconf(2).
607 These are loosely based on changes from David Meyer at
608 University of Oregon. This now seems to work, at least
609 for quick test cases.
610 Fix a problem that can cause duplicate error messages to be
611 sent if you are in SMTP, you send to multiple addresses,
612 and at least one of those addresses is good and points
613 to an account that has a .forward file (whew!).
614 Fix a problem causing messages to be discarded if checkcompat()
615 returned EX_TEMPFAIL (because it didn't properly mark
616 the "to" address). Problem noted by John Myers.
617 Fix dfopen to return NULL if the open failed; I was depending
618 on fdopen(-1) returning NULL, which isn't the case. This
619 isn't serious, but does result in wierd error diagnoses.
620 From Michael Corrigan.
621 CONFIG: add UUCP_MAX_SIZE M4 macro to set the maximum size of
622 messages sent through UUCP-family mailers. Suggested
623 by Bill Wisner of The Well.
624 CONFIG: if both MAILER(uucp) and MAILER(smtp) are specified,
625 include a "uucp-dom" mailer that uses domain-style
626 addressing. Suggested by Bill Wisner.
627 CONFIG: Add LOCAL_SHELL_FLAGS and LOCAL_SHELL_ARGS to match
628 LOCAL_MAILER_FLAGS and LOCAL_MAILER_ARGS. Suggested by
629 Christophe Wolfhugel.
630 CONFIG: Add OSTYPE(aix3). From Christophe Wolfhugel.
631
bfe08ec1
EA
6328.2/8.2 93/07/11
633 Don't drop out on config file parse errors in -bt mode.
634 On older configuration files, assume option "l" (use Errors-To
635 header) for back compatibility. NOTE: this DOES NOT
636 imply an endorsement of the Errors-To: header in any way.
637 Accept -x flag on AIX-3 as well as OSF/1. Why, why, why???
638 Don't log errors on EHLO -- it isn't a "real" error for an old
639 SMTP server to give an error on this command, and
640 logging it in the transcript can be confusing. Fix
641 from Bill Wisner.
642 IRIX compatibility changes provided by Dan Rich
643 <drich@sandman.lerc.nasa.gov>.
644 Solaris 2 compatibility changes. Provided by Bob Cunningham
645 <bob@kahala.soest.hawaii.edu>, John Oleynick
646 <juo@klinzhai.rutgers.edu>
647 Debugging: -d17 was overloaded (hostsignature and usersmtp.c);
648 move usersmtp (smtpinit and smtpmailfrom) to -d18 to
649 match the other flags in that file.
650 Flush transcript before fork in mailfile(). From Eric Wassenaar.
651 Save h_errno in mci struct and improve error message display.
652 Changes from Eric Wassenaar.
653 Open /dev/null for the transcript if the create of the xf file
654 failed; this avoids at least one possible null pointer
655 reference in very wierd cases. From Eric Wassenaar.
656 Clean up statistics gathering; it was over-reporting because of
657 forks. From Eric Wassenaar.
658 Fix problem that causes old Return-Path: line to override new
659 Return-Path: line (conf.c needs H_FORCE to avoid
660 re-using old value). From Motonori Nakamura.
661 Fix broken -m flag in K definition -- even if -m (match only)
662 was specified, it would still replace the key with the
663 value. Noted by Rick McCarty of Texas Instruments.
664 If the name server timed out over several days, no "timed out"
665 message would ever be sent back. The timeout code
666 has been moved from markfailure() to dropenvelope()
667 so that all such failures should be diagnosted. Pointed
668 out by Christophe Wolfhugel and others.
669 Relax safefile() constraints: directories in an include or
670 forward path must be readable by self if the controlling
671 user owns the entry, readable by all otherwise (e.g.,
672 when reading your .forward file, you have to own and
673 have X permssion in it; everyone needs X permission in
674 the root and directories leading up to your home);
675 include files must be readable by anyone, but need not
676 be owned by you.
677 If _POSIX_SAVED_IDS is defined, setuid to the owner before
678 reading a .forward file; this gets around some problems
679 on NFS mounts if root permission is not exported and
680 the user's home directory isn't x'able.
681 Additional NeXT portability enhancements from Axel Zinser.
682 Additional HP-UX portability enhancements from Brian Bullen.
683 Add a timeout around SMTP message writes; this assumes you can
684 get throughput of at least 64 bytes/second. Note that
685 this does not impact the "datafinal" default, which
686 is separate; this is just intended to work around
687 network clogs that will occur before the final dot
688 is sent. From Eric Wassenaar.
689 Change map code to set the "include null" flag adaptively --
690 it initially tries both, but if it finds anything
691 matching without a null it never tries again with a
692 null and vice versa. If -N is specified, it never
693 tries without the null and creates new maps with a
694 null byte. If -O is specified, it never tries with
695 the null (for efficiency). If -N and -O are specified,
696 you get -NO (get it?) lookup at all, so this would
697 be a bad idea. If you don't specify either -N or -O,
698 it adapts.
699 Fix recognition of "same from address" so that MH submissions
700 will insert the appropriate full name information;
701 this used to work and got broken somewhere along the
702 way.
703 Some changes to eliminate some unnecessary SYSERRs in the
704 log. For example, if you lost a connection, don't
705 bother reporting that fact on the connection you lost.
706 Add some "extended debugging" flags to try to track down
707 why we get occassional problems with file descriptor
708 one being closed when execing a mailer; it seems to
709 only happen when there has been another error in the
710 same transaction. This requires XDEBUG, defined
711 by default in conf.h.
712 Add "-X filename" command line flag, which logs both sides of
713 all SMTP transactions. This is intended ONLY for
714 debugging bad implementations of other mailers; start
715 it up, send a message from a mailer that is failing,
716 and then kill it off and examine the indicated log.
717 This output is not intended to be particularly human
718 readable. This also adds the HASSETVBUF compile
719 flag, defaulted on if your compiler defines __STDC__.
720 CONFIG: change SMART_HOST to override an SMTP mailer. If you
721 have a local net that should get direct connects, you
722 will need to use LOCAL_NET_CONFIG to catch these hosts.
723 See cf/README for an example.
724 CONFIG: add LOCAL_MAILER_ARGS (default: `mail -d $u') to handle
725 sites that don't use the -d flag.
726 CONFIG: hide recipient addresses as well as sender addresses
727 behind $M if FEATURE(allmasquerade) is specified; this
728 has been requested by several people, but can break
729 local aliases. For example, if you mail to "localalias"
730 this will be rewritten as "localalias@masqueradehost";
731 although initial delivery will work, replies will be
732 broken. Use it sparingly.
733 CONFIG: add FEATURE(domaintable). This maps unqualified domains
734 to qualified domains in headers. I believe this is
735 largely equivalent to the IDA feature of the same name.
736 CONFIG: use $U as UUCP name instead of $k. This permits you
737 to override the "system name" as your UUCP name --
738 in particular, to use domain-ized UUCP names. From
739 Bill Wisner of The Well.
740 CONFIG: create new mailer "esmtp" that always tries EHLO
741 first. This is currently unused in the config files,
742 but could be used in a mailertable entry.
743
c6447398
EA
7448.1C/8.1B 93/06/27
745 Serious security bug fix: it was possible to read any file on
746 the system, regardless of ownership and permissions.
747 If a subroutine returns a fully qualified address, return it
748 immediately instead of feeding it back into rewriting.
749 This fixes a problem with mailertable lookups.
750 CONFIG: fix some M4 frotz (concat => CONCAT)
751
7528.1B/8.1A 93/06/12
753 Serious bug fix: pattern matching backup algorithm stepped by
754 two tokens in classes instead of one. Found by Claus
755 Assmann at University of Kiel, Germany.
756
7578.1A/8.1A 93/06/08
758 Another mailertable fix....
759
7608.1/8.1 93/06/07
761 4.4BSD freeze. No semantic changes.
762
7636.65/6.34 93/06/06
764 Fix some lintish problems.
765 Fix some cases where server SMTP behaved poorly when handed bogus
766 input, pointed out by Eric Wassenaar.
767 CONFIG: fix some more (sigh) mailertable bugs -- thanks to
768 Motonori Nakamura of Kyoto University (again).
769
7706.64/6.33 93/06/05
771 Don't send 050 (-v) information after the 250 response to a QUIT
772 command in srvrsmtp -- clients usually close the connection
773 at this point, and it causes bogus error messages.
774 Don't send messages that have errors on input (such as unbalanced
775 parentheses) during SMTP transactions, since a return
776 message has (probably) already been sent.
777 Give better diagnostics on timeouts during network reads, including
778 information similar to the SMTP phase.
779 Fix bug that caused SMTP messages to deliver synchronously; this
780 happened after the DATA 250, and hence caused reading the
781 next command to be delayed.
782 Ignore Errors-To: header unless 'l' (lower case el) header is
783 specified. The Errors-To: header violates RFC 1123.
784 Errors-To: was only needed to take the place of the
785 envelope sender in the days when most Unix mailers
786 didn't understand about the two kinds of senders.
787 Don't send warning messages in response to automatically generated
788 messages (that is, those From:<>).
789 CONFIG: fix some rather stupid typos in the mailertable code
790 pointed out by Motonori Nakamura of Kyoto University.
791 CONFIG: add confUSE_ERRORS_TO configuration option.
792 CONFIG: if ALWAYS_ADD_DOMAIN is selected, try to use $M
793 (masquerade name) instead of $j.
794 CONFIG: don't add dots to relay names (added in 6.29); it breaks
795 several things, and can be simulated by dot terminating
796 the names of relays. For example, use:
797 DBbit.net.relay.
798 (note the trailing dot).
799
8006.63/6.32 93/06/01
801 Fix prototypes to eliminate chars in argument lists -- some
802 compilers are pissy about this.
803 Log protocol ($r) and body type if set so we can determine if
804 the adaptive algorithms are working.
805 Pessimize on locking of database files (particularly for NEWDB
806 databases) during opens. There were problems with
807 processes opening the file while it was rebuilt; since
808 NEWDB caches heavily, the reader opened an empty file,
809 which is an error. If your system has the ability to
810 lock atomically on open, this works properly; otherwise,
811 there are race conditions.
812 Check mod time on .pag file instead of .dir in NDBM aliases
813 because the .dir file doesn't get updated for small
814 alias files. From John Gardiner Myers of CMU.
815 More Solaris portability -- it now compiles on Solaris, but
816 hangs up in gethostbyname().
817 Move setting of RES_DEBUG flag before first myhostname() call
818 so we can see name server traffic on that call.
819 Fsync() queue files.
820 Fix a problem that causes -bi to try to rebuild maps other than
821 the alias file(s).
822 Fix a problem that caused udb to reject entries from any but
823 the first database listed.
824 Rearrange doc subdirectory for 4.4BSD release tape.
825 CONFIG: put $r into the Received line. This was an oversight.
826 CONFIG: fix typo (call to ruleset 99 should have been rulset 90).
827 CONFIG: move "auxiliary" subroutines to be in ruleset 90-99
828 range -- in the long run, single digit rulesets may
829 become reserved for builtin use by sendmail.
830 CONFIG: fix major problem that causes host aliases (that is,
831 anything in $=w != $j) to not be recognized. This has
832 been around since 6.30.
833
8346.62/6.31 93/05/28
835 BETA RELEASE
836 Fix recursive syserr (if there is an error printing a syserr
837 message). This makes the code much less eager to consider
838 a write error as serious. This also includes some
839 heuristics to be clever about closed connections.
840 Lock NEWDB files during gets. This requires version 1.5 or later
841 of the db library. If you have an older version, you
842 can use -DOLD_NEWDB. This will go away in a few weeks.
843 Fix problem causing aliases that use host maps to get overwritten.
844 Do appropriate byte swapping on port numbers in ident protocol
845 code. Fix from Allan Johannesen of WPI.
846 Defer opening of map files to the same time as alias files so that
847 the daemon will tend to pick up new versions more promptly.
848 Prototype a bunch more functions.
849 Some Solaris 2.1 changes (still doesn't link though).
850 Try to simplify Makefiles by including more subordinate #defines
851 in conf.h (based on OS type).
852 CONFIG: check for domains if FEATURE(mailertable) is defined.
853 For example, if the host name is "knecht.cs.berkeley.edu"
854 it will search the following mailertable keys:
855 knecht.cs.berkeley.edu
856 .cs.berkeley.edu
857 .berkeley.edu
858 .edu
859 This could be used to replace the special relays for bitnet
860 and similar nets.
861
8626.61/6.30 93/05/24
863 Fix problem that prevented appending dots on canonified host
864 names. This breaks tons of config files -- very
865 important fix.
866 Fix improper pointer dereference in response to HELO command.
867 Fix core dump if debugging set in map_rewrite.
868 CONFIG: add FEATURE(always_add_domain) to always attach the
869 local domain (only impacts local mail).
870 CONFIG: try to avoid turning names into $j -- although
871 technically a host can only have one "canonical name",
872 it seems to be common practice to have several.
873
8746.60/6.29 93/05/22
875 Major change: merge alias databases with maps. This expands and
876 changes the map class interface but fixes a bunch of bugs.
877 The important user-visible change is that the file name
878 in a K line now does not include the ".db" extension; this
879 is added automatically. Also, the -d (NIS domain) flag is
880 missing from the K config line; use @domain instead.
881 When compiling, the *_MAP names are gone -- just compile
882 in NDBM, NEWDB, and/or NIS support.
883 Announce mailer/host/user triple on -bv flag -- from Brian
884 Bullen of Stirling University.
885 Don't send more than one line in response to HELO -- it confuses
886 Pony Express, which then behaves very badly. However,
887 this change does send two line 220 greetings, with the
888 second line reading "ESMTP spoken here". The usersmtp
889 module recognizes this and goes into ESMTP mode regardless
890 of the setting of the "a" mailer flag. Thus, "a" means
891 "always try EHLO".
892 AIX portability changes (thanks to Christophe Wolfhugel of
893 Herve Schauer Consultants (Paris) for providing me with
894 an INSA account for this purpose). Lightly tested. Use
895 -D_AIX3. This probably breaks compatibility with some
896 older systems (e.g., 4.2bsd) but still works on SunOS
897 4.1.2, Ultrix 4.2A, HP-UX 8.07, OSF/1 T1.3, and AIX 3.2.3.
898 Fix a problem causing an error message loop if the output channel
899 is hosed.
900 Add the Makefiles that I use for various environments -- some are
901 Berkeley make versions and some are old make versions.
902 My makefile for the NeXT box has gotten lost, alas!
903 PRALIASES: support for printing NEWDB databases. From
904 Michael J. Corrigan of U.C. San Diego.
905 CONFIG: don't pass pseudo-domains to $[ ... $] (if you have
906 a wildcard MX it can have wierd results). From
907 Christophe Wolfhugel.
908 CONFIG: dot terminate relay hostnames in S0. From Christophe
909 Wolfhugel.
910
9116.59/6.28 93/05/13
912 Log version with SMTP daemon startup message.
913 Adjust setproctitle to work on NetBSD and BSD/386.
914 Fix null pointer reference in MX fallback code.
915 A bunch of minor fixes from Eric Wassenaar:
916 If deliver cannot execv the mailer, return EX_OSERR
917 instead of EX_TEMPFAIL (to give better
918 error messages).
919 Consistently malloc e_message.
920 Catch degenerate case of calling returntosender()
921 with an empty returnq.
922 MIME reformatting.
923
9246.58/6.28 93/05/13
925 Fix bug that can cause incorrect verbose display of user smtp
926 messages.
927 Disable SMTP VERB command if PRIV_NOEXPN is set (since this
928 could reveal the same information.
929 Allow failure when reading SMTP greeting message to go on to
930 next MX host.
931 Add "MIME-Version: 1.0" header if using MIME (this was NOT
932 included in RFC 1344, but Bill King of Allan-Bradley
933 Company forwarded me email from Nathaniel Borenstein
934 claiming that it was an inadvertent omission).
935 Don't use Content-Type: X-message-header. According to John
936 Myers of CMU, many MIME readers will completely ignore
937 the data if they don't recognize it. Instead, just
938 add a blank line to make it a legal (empty) message.
939 Fix problem causing dots to keep getting appended to cached
940 hostnames. This can cause buffer overrun conditions.
941 The problem was found by Erik Forsberg of Retix,
942 although I used a different bug fix than he provided.
943 Fix parsing of split header/envelope rewriting specs -- from
944 Eric Forsberg.
945 Fix from Eric Wassenaar to correct To: lists in error messages.
946
9476.57/6.28 93/05/11
948 Fix minor glitch causing extra ctladdrs to be output to queue
949 file. Just an annoyance.
950 Cache results of name server canonification lookups to avoid
951 backed up queue runs.
952 Major rewrite of alias.c: considerable cleanup, plus sample
953 (untested) support for NIS aliases. The "A" option
954 can now be a comma separated list (or be repeated) --
955 that is, you can have multiple alias databases. Each
956 database can have the syntax ``class:file''; if no class
957 is specified, the "implicit" class is assumed. Implicit
958 searches through a list of compiled in types -- hash,
959 dbm, nis, and stab. Alias files are searched in the
960 order they are listed. For example:
961 OAhash:/etc/aliases.local,/etc/aliases
962 OAnis:mail.aliases@my.nis.domain
963 first searches the hash database /etc/aliases.local,
964 then the regular /etc/aliases database, then the NIS
965 map "mail.aliases" in the NIS domain "my.nis.domain".
966 If in Verbose mode (probably from VERB command) run SMTP job
967 in foreground and don't do RCPT optimizations.
968 Add udb :mailsender as equivalent to owner- for regular aliases.
969 Delete option 8; add option 7 that means the opposite. That is,
970 default to 8-bit mode; a special option is needed to
971 force sendmail into 7 bit mode.
972 Send error messages in encapsulated MIME format.
973 New compile flag "NIS" that turns on NIS alias and NIS map
974 support.
975 Add "j" option to send error messages in MIME (RFC 1341)
976 encapsulated message format per RFC 1344. The
977 syntax is pretty ugly if you don't have MIME-aware
978 user agents.
979 Clean up message handling (for display in mailq output).
980 New setproctitle implementation for 4.4bsd.
981 Create files (such as ~/dead.letter) using mode FileMode (the
982 F option value) instead of 0666.
983 Fix bug causing output of EXPN command to not be fully qualified.
984 This may cause some problems with UUCP addresses that
985 will require some config file assistance -- specifically,
986 the $: part has to include the host name for this output
987 to make sense.
988 Fix a problem that sometimes diagnosed errors and still sent the
989 message if the header syntax was bad.
990 Fix a bug that caused an error message to be emailed when sendmail
991 was operating in -bv mode.
992 Add "ListenQueueSize" keyword to daemon options option (OO) to
993 set the queue size parameter passed to listen(). You
994 will normally have to tweak your kernel to up this.
995 Strip spaces off of beginning of message-id before logging (in
996 case it was folded across lines).
997 Tweak compile flags in daemon.c -- there were some cases where
998 it wouldn't work without NETINET.
999 Change *file* mailer to output all the usual default headers
1000 (From, Date, Message-Id). It gets used when sending
1001 back error messages.
1002 CONFIG: explicitly catch and diagnose list:; syntax in ruleset
1003 zero -- this is not a valid recipient syntax according
1004 to RFC 821.
1005 CONFIG: add confMIME_FORMAT_ERRORS to send error messages in
1006 MIME format. Defaults to on.
1007 CONFIG: add SMTP_MAILER_FLAGS and UUCP_MAILER_FLAGS to augment
1008 the flags for those mailers.
1009
10106.56/6.27 93/05/01
1011 Fix problem that causes the fallback mail to postmaster
1012 (case ESM_POSTMASTER in savemail()) to not look at
1013 aliases (ugh).
1014 Some more HPUX tweaking (compile flag hpux => __hpux so it
1015 still works in ANSI mode).
1016 Don't try to flock non-regular files when mailing to a file.
1017 In particular, this was a problem if you tried to
1018 send to /dev/null.
1019 Fix a wierd bug that can cause senders to be queued as
1020 recipients if the name server is down when the mail
1021 is initially sent. This hack just ignores sender
1022 deletion (essentially, it sets the MeToo flag) if there
1023 is a TEMPFAIL during processing of the sender address.
1024 Obscure.
1025 Fix a dangling else problem -- from Brian Bullen from University
1026 of Stirling, UK.
1027 Add the "b" mailer flag to force a blank line on the end of
1028 messages. Some brilliant versions of /bin/mail insist
1029 on this but do not add it themselves.
1030 Add the "g" mailer flag to prevent user SMTP from sending
1031 "MAIL From:<>". This is only intended to be a
1032 transitional gesture, and should not be used if at
1033 all possible. It appears that Berkeley and IDA
1034 config files have always handled this properly; the
1035 UK config kit apparently does not.
1036 Don't lowercase and then capitalize header field names -- leave
1037 them with original capitalization. Fixes from Bill
1038 King of Allen-Bradley Company.
1039 Further cleanup and improved reporting of error messages,
1040 particularly conditions that cause messages to be
1041 requeued for future delivery.
1042 Tweak syslog priorities in some cases.
1043 CONFIG: clean up route-addr on UUCP addresses.
1044
10456.55/6.25 93/04/27
1046 HPUX 8.07 compatibility changes in getla() -- I had to make
1047 these changes to get it to work at Berkeley, although
1048 others seem to have been working before (???).
1049 Various patches to XLA code.
1050 Fix problem that causes setuid bit on files to be ignored from
1051 SMTP or in queue runs. Problem noted by Jason Ornstein
1052 of Under The Wire, Inc.
1053 Fix problem that can cause CNAMEs to be ignored.
1054 Generalize getmxrr to match local host in $=w instead of a
1055 single name passed in.
1056 Some cleanup from Eric Wassenaar:
1057 Use FileMailer instead of ProgMailer in two places.
1058 Eliminate duplicate 8th-bit stripping in commaize.
1059 Fix a problem with mis-parsing of backslash escapes
1060 under some circumstances.
1061 NIS map fix (was always including trailing null character)
1062 from Mike Glendinning of Ingres UK.
1063 Add "a" mailer flag to try using ESMTP. It tries the EHLO
1064 command and if that fails falls back to regular SMTP.
1065 Also parses EHLO option keywords. If host supports
1066 SIZE extension, this is added to the MAIL FROM:
1067 command.
1068 Extend "b" option to include a second value which is the
1069 maximum message size this server is willing to accept.
1070 For example, a value of "10/1000000" says that there
1071 must be ten blocks free, and sendmail will reject
1072 any message larger than one megabyte.
1073 Some portability hooks for NeXT (this could be applicable
1074 to Mach in general). You have to create an empty
1075 file called "unistd.h" to get it to compile.
1076 Adjust config values (MAXLINE, MAXATOM, and PSBUFSIZE) to
1077 be more generous.
1078 Add X400-Received: to the list of headers tagged with H_TRACE
1079 in conf.c. From Bill King, Allen-Bradley Co.
1080
10816.54/6.25 93/04/19
1082 Fix problem that caused redefinition of SMTP and QUEUE compile
1083 flags. Pointed out by Jon Forrest of the Sequoia 2000
1084 project at Berkeley.
1085 Properly handle \! hack -- it was treating host\!user as one
1086 token (host!user) instead of three (host, !, user).
1087 Fix from Eric Wassenaar of NIKHEF-H.
1088 Fix compilation problem in getauthinfo() if IDENTPROTO is off.
1089 Turn off DEFNAMES and DNSRCH when getting the hostsignature
1090 (i.e., MX records) in level 1 configuration files; this
1091 matches the old behaviour. From Motonori Nakamura of
1092 Kyoto University.
1093 Improve error message printing -- if sent through an alias,
1094 error messages include the name of the alias in the
1095 message. Unfortunately, in order to make this work
1096 properly in queue runs, this changes the format of the
1097 C line in the qf file. The relatively uselessness of
1098 the previous information was pointed out to me by
1099 Allan E Johannesen of WPI.
1100 Add XLA compile flag to add hooks to Christophe Wolfhugel's
1101 extended load average code. This is still in very early
1102 form. For information regarding the guts of the xla
1103 code, contact Christophe.Wolfhugel@grasp.insa-lyon.fr.
1104 Additional hooks for detecting tempfails in rewriting rules
1105 (that is, in map lookups).
1106
11076.53/6.25 93/04/15
1108 Properly diagnose ruleset zero returning null (instead of a mailer
1109 triple). From Motonori Nakamura of Kyoto University.
1110 More generalization of socket code for other protocols.
1111 Shorten timeouts on reverse name lookups -- since they are done
1112 during connection establishment, long timeouts here can
1113 cause higher level timeouts. This mainly serves to accept
1114 mail from hosts that do not have proper reverse (PTR) DNS
1115 records set up.
1116 Reset e_statmsg before each mailer invocation to avoid bogus
1117 messages in the log.
1118 Redefine $r, $s, and $_ in error envelopes so you don't get
1119 incorrect cruft in the error message. Problem noted by
1120 Motonori Nakamura of Kyoto University.
1121 Fix a problem that can cause failure to return errors to Postmaster
1122 in certain cases. From Motonori Nakamura.
1123 Fix a problem that can cause some systems to give duplicate error
1124 messages when a bad syntax address such as "<a" is presented
1125 to an SMTP server. It doesn't seem to occur on all
1126 machines. From Motonori Nakamura.
1127 Default IDENTPROTO off for Ultrix and HPUX, which apparently have
1128 the interesting "feature" that when they receive a "Host
1129 unreachable" message they closes all open connections to
1130 that host. However, some firewall gateways send this message
1131 if you try to connect to an unauthorized port, such as the
1132 IDENT port (113). Thus, no email can be received from such
1133 hosts. There is some evidence that versions of Ultrix before
1134 4.3 do not have this problem. Thanks to Tom Ivar Helbekkmo
1135 for pointing out this behaviour to me and to Michael Corrigan
1136 of U.C. San Diego for informing me about the HPUX problem.
1137 Allow IPC mailers to return a colon-separated list of hosts in the
1138 $@ clause; these are searched in order as though they were
1139 MX records.
1140 When sending an error report, print the list of addresses tagged
1141 as bad. Requested by Allan E Johannesen of WPI.
1142 Change map function calls to return a status code. This gets
1143 passed back as the result of rewrite. Parseaddr marks
1144 the address as a QUEUEUP address if the return code is
1145 EX_TEMPFAIL. All this to queue properly if the name
1146 server is down. This code is not well tested. This code
1147 changes the interface to map lookup functions (a fifth
1148 parameter, int *statp, is added). Feature requested by
1149 Dan Oscarsson.
1150 Don't delete quotes (in the dequote map) if there are spaces in
1151 the string, since this would cause them to be replaced by
1152 the SpaceSub character.
1153 Accept BODY=8BITMIME on SMTP MAIL command. This isn't advertised
1154 because the 8BIT to 7BIT translation doesn't exist yet.
1155 This does add a "bodytype" field to both envelope and
1156 queue file and a -B command line flag to pass the type in
1157 during direct invocations.
1158 Discard return error messages only on responses to responses to
1159 responses, not on responses to responses. That is, the
1160 algorithm is to try return to sender, then return to
1161 postmaster, then discard. Previously it discarded
1162 immediately if the return to sender pass failed.
1163 CONFIG: back out change to hide unqualified hostnames behind %-hack.
1164 This screws up local aliases and .forward files.
1165 CONFIG: add FEATURE(nocanonify) to turn off calls to $[ ... $];
1166 some sites only handle completely canonified names.
1167 Requested by John Gardiner Myers of CMU.
1168 CONFIG: some UUCP code was still included even if FEATURE(nouucp)
1169 was specified.
1170
11716.52/6.24 93/04/10
1172 Clean up some minor glitches on error return messages pointed out
1173 by Motonori Nakamura of Kyoto University.
1174 Fix reply() to not reset SmtpReplyBuffer on fatal errors; this
1175 was supposed to reset SmtpMsg Buffer. This makes the
1176 client side code virtually useless. Reported by Allan
1177 E Johannesen of WPI and Phil Brandenberger of Swarthmore.
1178 Better debug messages if fuzzy is disabled, suggested by Allan
1179 E Johannesen of WPI.
1180 Offset SmtpReplyBuffer by four in usersmtp when checking for
1181 loopback. From Eric Wassenaar.
1182 Don't set $s until after runinchild in srvrsmtp -- otherwise
1183 it gets cleared. From Eric Wassenaar.
1184 Implement IDA-style $&x for deferred macro expansion.
1185 More POSIX compatibility.
1186 CONFIG: Hide unqualified hostnames behind %-hack using $s as the
1187 actual sender. This is only done if $r is non-null, that
1188 is, if this is not locally submitted mail.
1189 CONFIG: Add FEATURE(bitdomain) allowing mapping of BITNET host
1190 names to internet domains. A program contributed by
1191 John Gardiner Myers of CMU to create the maps is included
1192 in the contrib directory (in the "misc" tar file).
1193 CONFIG: Add FEATURE(uucpdomain) for a similar mapping for UUCP
1194 hosts. There is currently no tool to create this map.
1195
11966.51/6.23 93/04/04
1197 Add D= mailer flag to specify a path of possible working directories
1198 in which to execute the mailer. This is intended for the
1199 prog mailer; some shells can get upset if they don't have
1200 access to the current directory.
1201 Add RFC 1413 (IDENT) protocol support. This is only very loosely
1202 tested. This adds a $_ macro to be the authenticated
1203 info (in ``user@domain [address]'' form) and debug flag
1204 9 to trace the protocol.
1205 Check for loopbacks in usersmtp instead of srvrsmtp -- there is no
1206 reason for a local agent to not be talking to the localhost
1207 (although the inverse is not true).
1208 Add a few hooks for automated map rebuilding. This is certainly
1209 not done yet.
1210 CONFIG: Have prog mailer specify a path of ``D=$z:/'' -- that is,
1211 user's home directory then the root.
1212 CONFIG: Log RFC 1413 identification in Received: line.
1213
12146.50/6.22 93/04/01
1215 Fixes to requeueing code to make it compute priority, nrcpts,
1216 and the like properly.
1217
12186.49/6.22 93/04/01
1219 Diagnose incorrect privacy flags. Suggested by Bryan Costales
1220 of ICSI.
1221 Some ANSI C fixes.
1222 Arrange to quote backslashes as well as other special characters
1223 in the phrase part of a route-addr.
1224 Some fixes to FallBackMX code suggested by Motonori Nakamura of
1225 Kyoto University.
1226 More vigorous zeroing of CurHostAddr to avoid logging of bogus
1227 host addresses when you are actually just printing
1228 information from the MCI structure; problem noted by
1229 Michael Corrigan of U.C. San Diego.
1230 Don't ignore rest of queue if any job is not runnable. This can
1231 also cause an incorrect job to be lost. Fix from
1232 Eric Wassenaar.
1233 Always respond "quickly" to RCPT command; do alias expansion and
1234 the like later. This also means that mail for lists that
1235 have errors will be acccepted, and an error sent back
1236 later. This is done by instantiating the queue file
1237 and then immediately running and requeueing it.
1238
12396.48/6.22 93/03/30
1240 Fix incorrect diagnosis of infinite loop in ruleset. Problem noted
1241 by several people.
1242 Improve information printed when infinite loops are discovered.
1243 Zero CurHostAddr to fix erroneous internet addresses in log when no
1244 addresses can be bound. Pointed out by Motonori Nakamura
1245 of Kyoto University.
1246 "Probe" SMTP connections using RSET instead of NOOP "just in case".
1247 Suggested by John Gardiner Myers of CMU.
1248 Don't warn about -f if you are setting sender to yourself.
1249
12506.47/6.22 93/03/29
1251 Fix incompatible call to endmailer in smtpquit which causes core
1252 dumps. Noted by Allan E Johannesen of WPI.
1253 HPUX portability changes from Michael J. Corrigan of UC San Diego.
1254 Require MAIL before RCPT command in srvrsmtp.c. This had been
1255 intentional from the 821 draft days when the order wasn't
1256 clear, but is silly now.
1257 Fix bug in nis_magic routine that was initializing parameters
1258 incorrectly. Fix from Takahiro Kanbe of Fuji Xerox
1259 Information Systems Co., Ltd.
1260 Change default for PrivacyFlags in conf.c to 0 -- since it always
1261 "or"s in new values, there was no way to turn off the
1262 AuthWarning stuff.
1263 Add O option to set SMTP daemon options.
1264 Add V option to set fallback MX host. This always sorts at lower
1265 priority than anything it gets from the name server. It
1266 should only be used for environments with very bad network
1267 connectivity. Requested by several people.
1268 Log sending info. It's not clear this is a good idea.
1269 CONFIG: fix typo in mailertable code. Noted by Phil Brandenberger
1270 of Swarthmore.
1271 CONFIG: add confDAEMON_OPTIONS and confFALLBACK_MX to set options
1272 O and V, respectively.
1273
12746.46/6.21 93/03/26
1275 Fix botch in server SMTP that broke transactions that did not
1276 use HELO first (like MH). Fix from Michael Corrigan
1277 of U.C. San Diego.
1278 Fall back to other MX records if there is an error anywhere
1279 in delivery (actually on MAIL or DATA -- RCPT is harder).
1280 Suggested by John Gardiner Myers and Motonori Nakamura.
1281 Revert to non-prototypes -- it turns out that our ANSI C
1282 compiler is more forgiving than most others about
1283 mixing prototyped extern declarations with non-prototyped
1284 function definitions.
1285 Fix a problem with multi-word class matching pointed out by
1286 Neil Rickert. Given:
1287 CX b a.b.c
1288 R$+ $=X $+ $: $1 < $2 > $3
1289 the input "user@a.b.c" failed instead of being properly
1290 rewritten as "user@a.<b>.c".
1291 Neil also convinced me that it was correct that $~ should match
1292 only one token -- the problem is that it's always possible
1293 to add another token, so $~ matches far too eagerly.
1294
12956.45/6.21 93/03/25
1296 Implement multi-word classes (properly!).
1297
12986.44/6.21 93/03/25
1299 Add X-Authentication-Warning: headers to clue users into possible
1300 attempts to forge mail. This is on the authwarnings
1301 privacy flag, but is the default. Suggested by Bryan
1302 Costales of ICSI.
1303 Pass default units for convtime in so they can be more reasonable.
1304 Allow config files to always add a new Comments: header (i.e.,
1305 they will be added even if an old one already exists).
1306 Suggested by Bryan Costales of ICSI.
1307 Allow config files to delete an existing Return-Path: header.
1308 These should only be added at final delivery. Suggested
1309 by Bryan Costales of ICSI.
1310 Some debugging additions. Suggested by Bryan Costales of ICSI.
1311 Clean up logging of Family 0 addresses. Noted by David Muir
1312 Sharnoff and others.
1313 Add a "dequote" map class. This allows config files to strip
1314 quotes off of addresses. Note that this is not a builtin
1315 map, just a class -- so you have to define the map
1316 using the K line.
1317 Fix a bug in the queueup() loop getting a locked tf where in
1318 very odd cases it can fall off the bottom and core dump.
1319 Of course, it was P{r Emanuelsson who found it....
1320 Open a new transcript when splitting an envelope. Problem found
1321 by Allan E Johannesen of WPI.
1322 Improved error output in endmailer if the mailer core dumps.
1323 CONFIG: Fix typo in UUCP mailer definition.
1324 CONFIG: Default several of the new options on: eight bit input,
1325 privacy flags set to "authwarnings", and message warning
1326 set to 4h.
1327 CONFIG: Use dequote map.
1328
13296.43/6.20 93/03/23
1330 Fix problem with assumption of an sa_len field in a generic
1331 sockaddr -- it turns out that most vendors haven't
1332 picked up this (very important) fix.
1333 Change compilation flags for daemon code -- select one or both
1334 of NETINET or NETISO, but don't ever set DAEMON manually.
1335 CONFIG: add FEATURE(mailertable) to do IDA-style mailertables.
1336
13376.42/6.19 93/03/19
1338 Use Postmaster as default fallback return address, not root.
1339 POSIX changes for file descriptor handling.
1340 Diagnose errors writing new queue file.
1341 If you change the owner using an owner- alias, also change the
1342 error mode to EM_MAIL so that errors don't get dropped
1343 into an inappropriate directory. Problem noted by
1344 Allan E Johannesen of WPI.
1345 If you are su'ed to root, send email as who you really are, not
1346 as root. From Brian Kantor of U.C. San Diego.
1347 Allow warning messages to be sent after a configurable interval
1348 has passed without delivery. The message is sent only
1349 once per envelope. This changes the format of the qf
1350 file to have an F line, and the format of the T option
1351 to accept take the format "return/warn" (both intervals).
1352 Don't force all local names to lower case -- this was left over
1353 from the wierd handling of case mapping on aliases. It
1354 is now driven (as expected) by the "u" mailer flag.
1355 Problem noted by P{r Emanuelsson.
1356 Fix problem that caused headers on returned email to be trashed;
1357 they were getting freed, but are still accessible via
1358 BlankEnvelope.
1359 Fix problem that caused bogus ids to be created on returned
1360 mail.
1361 Add support for ISO and other non-INET networking. This is by
1362 no means finished yet. This does assume a lot of other
1363 system support, like a version of gethostbyname that
1364 returns non-AF_INET addresses.
1365 CONFIG: change default on prog mailer to keep upper case in
1366 user names (i.e., in the program command line).
1367 CONFIG: strip trailing dots off of hosts in uucp mailer before
1368 convert to bang format.
1369 CONFIG: create new "relay" mailer for $R (LOCAL_RELAY) and $H
1370 (MAIL_HUB) delivery that doesn't add local domain. Note
1371 that this violates 821, but is probably "more correct"
1372 for what we are trying to do. Problem pointed out by
1373 Michael Graff of Iowa State.
1374
13756.41/6.18 93/03/18
1376 Clean up unnecessary creates of queue ids (i.e., empty qf files)
1377 when not needed, such as when starting up an SMTP
1378 connection.
1379 Fix problem where split envelopes aren't instantiated in the queue.
1380 This is quite a serious bug.
1381 Owner- aliases had problems with leading spaces causing a
1382 premature delimitation.
1383
13846.40/6.18 93/03/18
1385 Have ending 250 (after DATA) include the id; suggested by
1386 Brian Kantor of UC San Diego.
1387 Add logging on envelope splitting.
1388 Change queue ids to have one more letter encoding the hour of
1389 the day so that during a single day there is a greater
1390 likelihood of uniqueness; requested by Brian Kantor.
1391
13926.39/6.18 93/03/18
1393 Fix minor compile problem if LOCKF is defined.
1394 Define size of tobuf in conf.h. Observed by Toshinari Takahashi
1395 of Toshiba.
1396 Restore e_sender -- this is equivalent to e_from.q_paddr without
1397 decorations such as angle brackets and comments.
1398 OSF/1 on Alpha changes from Allan E Johannesen of WPI.
1399 CONFIG: fix typo in S3 for list syntax (;: => :;). Thanks to
1400 Christopher Hoover for noting the problem.
1401
14026.38/6.17 93/03/17
1403 Pass envelope to disconnect to avoid another use of CurEnv, which
1404 can apparently end up being null at inopportune times.
1405 Log "received from" as "relay=" for consistency (suggested by
1406 John Gardiner Myers).
1407 Fix major bug in header handling: if no From: line existed in
1408 the header (so sendmail inserts one), and the sender is
1409 an alias that has an owner, the From: line shows the
1410 owner (as well as the envelope). Fixed by early binding
1411 the headers (which will change debugging output).
1412 HPUX portability patches from Michael J. Corrigan of UC San Diego.
1413 Some attempts to adapt better to out of open file conditions.
1414 Some changes to ctladdr handling in queue files.
1415
14166.37/6.17 93/03/16
1417 MAJOR CHANGE: delete e_sender and e_returnpath (why are these
1418 different from e_from?) and $< macro.
1419 Log correct IP address in relay= field even if the connection
1420 times out.
1421 Log "received from [RESPONSE]" on EF_RESPONSE messages (from
1422 John Gardiner Myers).
1423 Fixes to SysExMsg logging (sometimes just got "message: %s"
1424 instead of "message: error message"), noted by Eric
1425 Wassenaar. Also reported by Motonori Nakamura.
1426 Improvements to MX piggybacking code, from Motonori Nakamura.
1427 Fix case where CurHostName points to an auto variable that has
1428 been deallocated (from Motonori Nakamura).
1429 Fix bug causing newlines to be included in aliases if option
1430 "n" (check alias RHS) is set; bug noted by David Muir
1431 Sharnoff.
1432 Fix problem causing user names that should be mapped to lower
1433 case to not be mapped if they are sent during a queue
1434 run. This greatly simplifies the case mapping code.
1435 Problem noted by Allan E Johannesen of WPI.
1436 Don't do recipient address rewriting in buildaddr. This
1437 improperly did recipient rewriting on sender addresses,
1438 and just seems bogus in general -- but the change could
1439 break some .cf files.
1440 Pass TZ envariable to child processes for System V.
1441 CONFIG: allow LOCAL_RULE_1 and LOCAL_RULE_2 if you want to
1442 define those rulesets.
1443 KNOWN PROBLEM: I have seen some problems on SunOS that causes
1444 the User Data Base to give errors on some addresses. I
1445 have tracked the problem back at least as far as 93.02.15
1446 (version 6.22). Running with debugging on makes it
1447 go away, so I conclude that it is referencing uninitialized
1448 stack data. I haven't been able to track this down yet.
1449
14506.36/6.16 93/03/08
1451 Allow local mailer to specify $@host -- this lets you assign the
1452 "foo" part of jgm+foo to $h for passing in to the local
1453 mailer.
1454 Additional debug printing in getcanonname (show query type).
1455 Don't add the e_fromdomain on sender addresses -- this interacts
1456 wierdly with the owner- code.
1457 Improve delivery logging to not log obvious or meaningless stuff.
1458 Include numeric IP address in Received: lines per RFC 1123 section
1459 5.2.8.
1460 Fixed a bug in checking stat() return value if restrictmailq is
1461 set. Also, check the entire group set instead of just the
1462 primary group. Both from John Gardiner Myers.
1463 Don't have usrerr automatically print errno, since this is often
1464 misleading.
1465 Use transienterror() in makeconnection after connect() fails and
1466 in openmailer after execve() fails (from Eric Wassenaar).
1467 Also moved transienterror() from util.c to conf.c.
1468 Clean up from= logging on response messages.
1469 Undo patch allowing prescan to return a null vector -- it breaks
1470 too many things.
1471 Config: FEATURE(notsticky) lets you use UDB for everything coming
1472 in to the machine, even if it is specifically targetted
1473 to this machine. Without it, UDB is bypassed if the user
1474 name is fully qualified.
1475 Config: fix another minor botch with <> (local mailer wasn't
1476 mapping them properly).
1477
14786.35/6.15 93/03/05
1479 Fix getrealhostname to return null if sinlen <= 0 -- this can
1480 occur if stdin is a pipe.
1481 Avoid infinite loop in getcanonname if name server return
1482 NO_DATA (for example).
1483 Config: avoid having C flag qualify list syntax and error syntax.
1484
14856.34/6.14 93/03/05
1486 Fix logging in deliver to not pass too many parameters to Ultrix
1487 versions of syslog.
1488 Don't write the pid file until after the daemon has actually
1489 opened and conditioned the connection.
1490 Consider addresses "different" if their q_uids differ (so that
1491 two users forwarding to the same program will be seen
1492 as different, rather than the same).
1493 Fix problem with bad parameters in main() -- they set ExitStat
1494 but don't exit.
1495 Fix null pointer references through RealHostName -- painfully
1496 discovered by Allan E Johannesen of WPI.
1497 Fix bug causing user@@localhost to core dump (yuch).
1498 Config: don't put two @host.dom.ain on users in $=E in SMTP
1499 mailer. Also, catch user@ (no host) in ruleset 0.
1500
15016.33/6.13 93/03/03
1502 Config: add confCW_FILE as the name of the cw configuration file
1503 (defaults to /etc/sendmail.cw). From P{r Emanuelsson.
1504 Allow prescan to return a pointer to an empty list -- this is
1505 not an error. Also, clean up error reporting to avoid
1506 double errors (prescan reports once, then the caller
1507 reports again).
1508 Changes to avoid trusting T_ANY queries -- run them, but if you
1509 don't get the info you expected, do T_A and T_MX queries
1510 anyhow. This also fixes an oversight where _res.options
1511 bits were being ignored.
1512 If PRIV_NOVRFY is set, use 252 response code instead of 502 per
1513 RFC 1123 section 5.2.3. It's not 100% clear that this
1514 is correct, but it probably works better with stupid
1515 mailers that do a VRFY and only check the first digit.
1516
15176.32/6.12 93/03/02
1518 Fix uninitialized variable "protocol" in smtp code.
1519 Include <unistd.h> in sendmail.h -- move towards POSIX/ANSI.
1520 Additional hooks for RFC 1427 (ESMTP SIZE extension). This
1521 includes requiring that enoughspace() know the system
1522 block size, which will undoubtedly break most ports.
1523 Trace flag 19 in use for srvrsmtp.c.
1524 Additional logging -- notably the sending mailer name. This
1525 also changes the delivery logging to strict field=value
1526 syntax.
1527 Fix some problems with messages getting sent even to addresses
1528 that had been marked bad -- from Eric Wassenaar.
1529 More WIDE changes: accept host name inside [...] as non-MXed
1530 host. This is intended ONLY for use inside firewalled
1531 environments, where the MX points at the gateway.
1532 Change .cf file conventions so that mapping for <> addresses
1533 don't have an @ in them (to avoid confusing the C mailer
1534 flag). Pointed out by Neil Rickert.
1535 Config extensions for Sam Leffler's FlexFAX software.
1536
15376.31/6.10 93/02/28
1538 Fix some more bugs in alias owner code -- there were some wierd
1539 cases where an error in a non-aliased name would override
1540 the return info in an aliased name with an owner.
1541 Changes from WIDE Project, forwarded to me by Motonori Nakamura:
1542 Log actual delivery host (after MX et al); from
1543 yasuhiro@dcl.co.jp.
1544 Log daemon startup.
1545 Deliver Postmaster copies without a body.
1546 Better logging of SMTP senders.
1547 Send all program email as daemon even when local.
1548 As requested in various forms from many people, accept -qIstring
1549 to limit queue runs to jobs with queue-id matching string.
1550 Similarly for -qRstring for recipients, -qSstring for
1551 senders.
1552 Initial hooks for ESMTP support (see RFC 1425).
1553 Fixed a syntax error in the UUCP mailer specification that caused
1554 core dumps on startup.
1555 Check for missing A= or P= arguments in mailer definitions.
1556
15576.30/6.10 93/02/27
1558 Require FROZENCONFIG compilation flag to include frozen
1559 configuration code. Frozen configuration is really
1560 not a very good idea any more, particularly in shared
1561 library environments.
1562 Do better checking of errno after opens of :include: and .forward
1563 files to defer delivery on network and other transient
1564 errors. Suggestion from Craig Everhart.
1565 Fix minor botch in read timeout macro processing.
1566 Add FEATURE(nouucp) to config files for sites that know absolutely
1567 nothing about UUCP.
1568 Add built cf files to distribution tape and clarify how to build
1569 them if you don't have the Berkeley make.
1570 Some sizeof(long) portability changes for the Alpha, from Allan
1571 E Johannesen.
1572 Add "restrictmailq" privacy flag -- if set, only people in the same
1573 group as your queue directory can print the queue. If you
1574 set this, be sure you also restrict access to log files....
1575 Fix another bug in owner-list stuff that can cause data files to
1576 be "lost".
1577 Fix a bug with queue runs that cause forwards to yourself to go
1578 into alias/forwarding loops. I'm still iffy about this
1579 fix.
1580 Fix from Eric Wassenaar for suppression of return message code.
1581
15826.29/6.9 93/02/24
1583 Fix yet another problem in alias owner code -- put the wrong return
1584 address on the enclosed return-to-sender letter.
1585
15866.28/6.9 93/02/24
1587 Fix botch in alias owner code that caused it to not operate if the
1588 error was detected locally.
1589
15906.27/6.9 93/02/24
1591 M_LOCAL => M_LOCALMAILER to avoid conflict with Ultrix include
1592 file <sys/mount.h>.
1593 Miscellaneous bug fixes from Eric Wassenaar:
1594 sendmail -bv -t logs the from line even though in verify
1595 mode only.
1596 sendmail -v can go into queue mode if shouldqueue returns
1597 TRUE.
1598 Add route-addr pruning per RFC 1123 section 5.3.3. This can be
1599 disabled using the "R" option.
1600 Delete (always undocumented) -R flag (save original recipients);
1601 there are ways to syslog(3) these now.
1602 Clean up SMTP reply codes -- specify them as needed in the code,
1603 instead of in conf.c -- this was needed during the NCP to
1604 TCP transition, but seems silly now. This also changes
1605 parameters to message and nmessage.
1606 Have mailstats read the .cf file to find the sendmail.st file and
1607 get text versions of mailer names. An initial version of
1608 this code was provided by Tuominen Keijo (although the
1609 comments indicate the good bits were written by "E.V.").
1610 Add yet more System V compatibility hacks.
1611 Fix bug in VRFY code (assumes everything must be a local user).
1612 Allow specification of any of the hard-wired pathnames in the
1613 Makefile.
1614 Delete concept of "trusted users" -- this really didn't provide
1615 any security anyway, and caused some problems.
1616 Delete last vestige of support for the word "at" as an equivalent
1617 to the character "@".
1618 Propagate owner-foo alias information into the envelope sender.
1619 Based on code from John Gardiner Myers. This is a major
1620 semantic change -- beware!
1621 Allow $@ on LHS to indicate "match zero" -- this is used to match
1622 the null expression.
1623
16246.26/6.8 93/02/21
1625 Don't "lose" queue runs. Very important fix from (who else?)
1626 Eric Wassenaar.
1627 Completely reset state on RSET command -- from Eric Wassenaar.
1628 Send error messages and return receipts using an envelope sender
1629 of <> regardless of the setting of $n. Rewriting rules
1630 can undo this if they feel the necessity, as might be
1631 needed for networks that don't understand the syntax.
1632 This is permitted by RFC 821 section 3.6 and required by
1633 RFC 1123 section 5.3.3. THIS REQUIRES VERSION 4 CONFIG
1634 FILES because the rulesets must be able to parse <>
1635 properly.
1636 Don't ever send error messages to "<>" -- they will get sent to
1637 the local postmaster or dumped in /usr/tmp/dead.letter
1638 instead. Per RFC 1123 section 5.3.3.
1639 Explicitly check for email to yourself as a dotted quad. You
1640 have to call $[ [ ... ] $] to get this.
1641 Up the message timeout to five days per RFC 1123 section 5.3.1.1.
1642 Make all read timeouts individually configurable, as strongly
1643 recommended by RFC 1123 section 5.3.2.
1644 Use f_bavail (blocks available to regular users) instead of f_bfree
1645 (blocks available to superuser) in free block checks.
1646 Change $d macro to be the current time, not the origination time,
1647 since this is consistent with how it is used now.
1648 Generalization of enoughspace from Eric Wassenaar covering
1649 SGI, Apollo, HPUX, Ultrix, and SunOS.
1650 Ignore process group signals -- some front ends can do this if
1651 you kill a window too quickly. From Eric Wassenaar.
1652 Change umask to 022.
1653
16546.25/6.8 93/02/20
1655 Close all cached connections before calling mailers and after
1656 forking for delivery (caused double closes which resulted
1657 in false errors).
1658 Add FEATURE(redirect) in config files -- this allows you to alias
1659 old addresses to a pointer to the new address that will
1660 give a 551 error message, but not deliver the mail.
1661 Some code changes to make the 551 errors look pretty.
1662 Names of M4 program paths in config files have changed -- they
1663 are all XXX_MAILER_PATH now, to match XXX_MAILER_FLAGS.
1664 Fix a bug in the QSELFREF code having to do with empty .forward
1665 files, reported by Eric Wassenaar.
1666 Add option "p" (privacy flags); this allows you to tune how
1667 picky the SMTP server will be. This also adds the
1668 confPRIVACY_FLAGS M4 macro in the config files.
1669 Add option "b" (minimum blocks free). If there are fewer than
1670 this number of blocks free on the filesystem containing
1671 the queue directory, the SMTP MAIL command will return
1672 a 452 response and ask you to try again later. This
1673 also adds the confMIN_FREE_BLOCKS M4 macro in the config
1674 files.
1675 Made VRFY just verify (doesn't expand aliases and .forward files);
1676 EXPN does full expansion. RCPT in queue-only mode also
1677 doesn't chase aliases and .forward.
1678
16796.24/6.7 93/02/19
1680 Increase the number of domain search entries in domain.c to allow
1681 for the extra "" entry indicating the root domain.
1682 Reported by Motonori Nakamura of Kyoto U.
1683 Add a "SMART_HOST" in the configs for UUCP-connected sites that
1684 want to forward all mail with extra "@"s to that site.
1685 Also allows SMART_HOST, LOCAL_RELAY, and MAIL_HUB to
1686 be specified as ``mailer:hostname'' to use an alternate
1687 mailer.
1688 Clarified and updated some wording in the Operations Guide.
1689 Add the "c" mailer flag -- this suppresses all comment parts of
1690 addresses (requested by John Curran of NEARnet).
1691 Have -v print prompts in -bt mode even if stdin is not a terminal
1692 (default behaviour is to be silent if not reading from
1693 a terminal). Suggested by Bryan Costales, ICSI.
1694 Move the metacharacters from C0 space (\001-\037) into C1 space
1695 (\201-\237). This also fixes a bunch of potential bugs
1696 with G1 characters (\240-\276) in headers relating to
1697 negative numbers passed to isspace() et al.
1698 Add YP_LAST_MODIFIED and YP_MASTER_NAME to DBM version of alias
1699 database if YPCOMPAT is #defined. Enhancement from
1700 Takahiro Kanbe of Fuji Xerox Information Systems Co., Ltd.
1701 Add "list" Precedence (-30); this can be used with old sendmails
1702 which will map to precedence 0 (which will return error
1703 messages). Suggested by Stephen R. van den Berg.
1704 Many bug fixes from Eric Wassenaar of the National Institute for
1705 Nuclear and High-Energy Physics, Amsterdam:
1706 Clear timeouts properly on open failures in include().
1707 Don't dereference through NULL if no home directory found.
1708 Re-establish SIGCHLD signal on System 5 in reapchild().
1709 Avoid NULL pointer reference on -pFOO flag.
1710 Properly handle backslash escapes in comments.
1711 Correctly check reply status on SMTP NOOP command.
1712 Properly save SMTP error message if peer gives
1713 "Service Shutting Down" message.
1714 Avoid writing to the transcript if it couldn't be opened.
1715 Signal errors in SMTP children to parent properly.
1716 Handle self references in a list more globally (include a
1717 QSELFREF bit in the address flags). This enhancement
1718 was suggested by Eric Wassenaar.
1719 Use initgroups() in hpux, even though it's System-V based. The
1720 HASINITGROUPS compile flag can set this on other systems.
1721 This HPUX behaviour was pointed out by Eric Wassenaar.
1722
17236.23/6.6 93/02/16
1724 Clean up handling of LogLevel to make it easier to figure out
1725 what's on what level.
1726 Change log levels to have some consistency:
1727 1 serious system failures, security problems
1728 2 lost communications, protocol failures
1729 3 other serious failures
1730 4 minor errors
1731 5 message collection
1732 6 vrfy logging, creation of return-to-sender
1733 7 delivery failures
1734 8 delivery successes
1735 9 delivery tempfails (queue ups)
1736 10 database expansion
1737 >64 debugging
1738 Allow IDA-style separated processing on S= and R= in Mailer
1739 definition lines. Note that rulesets 1 and 2 are
1740 still used for both addresses as before. Bruce Lilly
1741 gave a convincing argument that RFC976 insists on
1742 this behaviour.
1743 Added some time zones to arpatounix -- they may not be in the
1744 standards, but they are in use. However, I may delete
1745 arpatounix entirely -- there appears to be no reason
1746 for it to exist.
1747 Change to UUCP mailer (in cf directory) to try to do a saner job.
1748 I'm still not certain about this mailer in general.
1749
17506.22/6.5 93/02/15
1751 Fix bug that prevents saving letters in ~/dead.letter.
1752 Don't add angle brackets in VRFY command if angle brackets already
1753 exist in the address.
1754 Fix bogus error message in udbexpand.
1755 Null terminate host buffers in buildaddr (broken in 6.21) --
1756 IMPORTANT FIX!!
1757
17586.21/6.5 93/02/15
1759 Fix another incorrect error message in alias.c, found by Azuma
1760 Okamoto.
1761 Fix a couple of problems in the more-configurable config files,
1762 found by Tom Ivar Helbekkmo.
1763 Fix problem with quoted :include: entries.
1764 Don't duplicate the filename on verbose printing of .forward and
1765 :include: contents.
1766 Extend size of prescan buffer (to allow bigger addresses). Also,
1767 detect some buffer overflows.
1768 Log user SMTP protocol errors (log level 4).
1769
17706.20/6.4 93/02/14
1771 Fix another problem in the MCI state machine caused when there
1772 were errors generated from the other end to commands
1773 other than RCPT.
1774
17756.19/6.4 93/02/14
1776 Include load average support for DEC Alpha running OSF/1.
1777 Fix multiple-response problem with errors in MAIL From: line.
1778 Fix SMTP reply codes for invalid address syntaxes (give 501;
1779 never give multiple error messages for a single message).
1780 Fix problem where a cached connection timeout rejects all
1781 later connects to that host.
1782 Fix incorrect error message if alias.c is compiled with DBM only.
1783 Additional changes to fix nested conditionals (from Bruce Lilly).
1784 Recover more gracefully from operating system failures, particularly
1785 NULL returns from openmailer (from Noritoshi Demizu,
1786 OMRON Corporation).
1787 Log forward, alias, and userdb expand operations on log level 10;
1788 concept suggested by P{r (Pell) Emanuelsson.
1789 Changes for HPUX 8.07 compatibility.
1790
17916.18/6.4 93/02/12
1792 Allow any config option to be set using an M4 define.
1793 Change UNAME compile flag to HASUNAME for IDA compatibility
1794 (besides, it's a better name).
1795 Note in README that on SunOS it must be linked -Bstatic.
1796 Fairly major change in domain.c to handle wildcard MX records
1797 more rationally. NOTE: the "w" option (no wildcard MX
1798 records match local domain) has been eliminated.
1799 Fix some unset variable references pointed out by Bruce Lilly.
1800 Fix host name in process titles when using cached connection.
1801
18026.17/6.3 93/01/28
1803 Fix System 5 compatibility changes to be compatible with the rest
1804 of the world.
1805
18066.16/6.3 93/01/28
1807 Experimental fix for problem handling errors in the SMTP
1808 protocol in conjunction with connection caching.
1809 System 5 compatibility changes.
1810
18116.15/6.3 93/01/26
1812 Fix a bug that causes local mail delivered using -odq to be
1813 eliminated as a duplicate (because it matched the
1814 ctladdr, now passed in as a C line). These changes
1815 are pretty tricky......
1816
18176.14/6.3 93/01/25
1818 Add debugging for some MCI errors.
1819
18206.13/6.3 93/01/22
1821 Fix -e compatibility flag to take a value.
1822 Fix a couple of minor compilation warnings on Sun cc.
1823 Improve error messages in a few cases to be more self-explanatory.
1824
18256.12/6.3 93/01/21
1826 Fix yet-another problem with environment handling, pointed out
1827 by Yoshitaka Tokugawa and Tom Ivar Helbekkmo.
1828 Some heuristics to try to limit resource exhaustion problems
1829 if a downstream host has been down for a long time.
1830 Fix problem with incorrect host name being logged in "Connection
1831 timed out" messages (from Tom Ivar Helbekkmo).
1832 Fix some ANSI C problems (from Takahiro Kanbe).
1833 Properly log message sender on returned mail during queue run.
1834 Count number of recipients properly.
1835 Fix a problem in yp map code.
1836 Diagnose "message timed out" (from Motonori Nakamura).
1837
18386.11/6.3 93/01/20
1839 Fix problem with address delimitor inside quotes.
1840 Define $k and $=k to be the UUCP name (from the uname call)
1841 based on code from Bruce Lilly.
1842
18436.10/6.2 93/01/18
1844 Implement arpatounix (largely code from Bruce Lilly).
1845 Log more info (suggested by John Myers).
1846 Allow nested $?...$|...$. (inspired by code from Bruce Lilly of
1847 Sony US).
1848 POSIX compatibility (noted by Keith Bostic).
1849 Handle SMTP MAIL command errors properly (urged by several people,
1850 notably John Myers of CMU).
1851 Do early diagnosis of .cf errors (notably referencing a RHS
1852 substitution that isn't on the LHS).
1853 Adjust checkpointing to better handle batched recipients, suggested
1854 by John Myers.
1855 Fix miscellaneous bugs.
1856 (config files:) Implement MAIL_HUB for all local mail (to handle
1857 NFS-mounted directories) as urged by Tom Ivar Helbekkmo
1858 of the Norwegian School of Economics.
1859
18606.9/6.1 93/01/13
1861 Environment handling simplification/bug fix -- child processes
1862 get a minimal, fixed environment. This avoids different
1863 behaviour in queue runs.
1864 Handle commas inside comments properly.
1865 Properly limit large messages submitted in -obq mode.
1866
18676.8/6.1 93/01/10
1868 Check mtime of thaw file against .cf and sendmail binary, based on
1869 code from John Myers.
1870
18716.7/6.1 93/01/10
1872 MX piggybacking, based on code from John Myers@CMU.
1873 Allow checkcompat to return -1 to mean tempfail.
1874 Bug fix in m_mno computation.
1875
18766.6/6.1 93/01/09
1877 Tuning of queueing functions as recommended by John Gardiner Myers.
1878 Return mail headers (no body) on messages with negative precedence.
1879 Minor other bug fixes.
1880
18816.5/6.1 93/01/03
1882 Fix botch causing queued headers to have ?XX? prefixes.
1883
18846.4/6.1 93/01/02
1885 Changes to recognize special mailer types (e.g., file) early.
1886
18876.3/6.1 93/01/01
1888 Pass timeouts to sfgets.
1889 Check for control characters in addresses.
1890 Fixed deferred error reporting.
1891 Report duplicate aliases.
1892 Handle mixed case recursive aliases.
1893 Misc bug fixes.
1894
18956.2/6.1 92/12/30
1896 Put return-receipt-to on a conf.c flag (but don't set it).
1897 Fix minor syslog problem.