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