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