xref: /original-bsd/usr.sbin/sendmail/src/TODO (revision e031425c)
1(Version 8.28 of 12/14/94)
2
3Key:
4  X -- extension (user visible change)
5  B -- bug fix
6  S -- security fix
7  E -- enhancement to existing algorithm
8
9
10X ****	Multiple queues.
11
12X ****	Merge Sun changes.  [8.7]
13
14E ****	Fix parseaddr to return a dummy mailer with QBADADDR set for
15	all cases except null input; change calls to be more sceptical
16	about the return value, checking this bit instead of just
17	checking for == NULL.  (Eric Wassenaar)  [8.7]
18
19X ****	Run time configurable locking -- e.g., compile in HASFLOCK and
20	HASLOCKF, and then choose at runtime between these.
21
22B ****	Aliases with .REDIRECT fail during newaliases if the "n" flag
23	is given.  Problem is, sometimes you want them to, sometimes
24	you don't.  Perhaps two flavors of "error" mailer?
25
26B ****	Calls to gethostbyname with a trailing dot fail if you are
27	not running DNS.
28
29X ****	Add uucp-bang mailer that strips off any domain name from
30	the envelope recipient address first; this is for use in
31	mailer table entries.
32
33X ****	"quote" map (inverse of dequote).  Lets you turn node::user
34	into "node::user"@DECNET.gateway
35
36X ****	Named rulesets.
37
38? ****	Should $( [1.2.3.4] $) convert the address to a name?
39
40E ***	Have recipient lines rewritten by the user database.
41
42E ***	Arrange to run queue jobs as the owner of that queue file.  This
43	probably requires forcing a fork in order to be able to completely
44	restore the uid/gid portably without leaking out root privileges.
45
46E ***	Long term host status -- store host status on disk for sharing
47	between runs.
48
49X ***	Extend I option to allow setting of retry and timeout values.
50	drl@vuse.vanderbilt.edu (David R. Linn).
51
52X ***	Total connection cache lifespan timeout -- a way to give a
53	timeout on connections regardless of whether they are active
54	or not.  For single threaded servers such as Microsoft SMTP
55	gateway.  Douglas Anderson <dlander@afterlife.ncsc.mil>.
56
57X ***	Mailer flag that does a "ping" equivalent -- if it fails, wait
58	30 seconds and try again (for dialup PPP connections).  Could
59	just try the connection and then immediately retry on some
60	kinds of failures.
61
62X ***	Create a macro that has message size.
63	Peter Wemm <peter@DIALix.oz.au>
64
65E ***	Dynamically allocate MAXNAME buffers for headers.
66
67E ***	Dynamically allocate "line" buffer in readaliases().
68
69X ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)
70
71E ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
72	josh@osiris.ac.hmc.edu).
73
74E ***	Have daemons that start up check the alias database for
75	correctness and auto-rebuild if necessary.  This is to handle
76	the case of a system crash during an alias database rebuild.
77
78E ***	Eliminate E qf line and e_errorqueue; use e_errorsto a la
79	e_receiptto.  This simplifies and gives symmetry.  (Eric
80	Wassenaar)
81
82X ***	DECNET_RELAY support in configs.
83
84X ***	-wN command line flag to set the width of mailq output.
85	(Allan Johannesen)
86
87E ***	Move mailertable lookup after UUCP-specific class checks?
88	(Kimmo Suominen <kim@tac.nyc.ny.us>)
89
90E ***	Users in more than one list with different owners get duplicate
91	deliveries -- maybe just assign them arbitrarily to one
92	envelope or the other?
93
94X **	Make MAXBADCOMMANDS run time configurable.
95
96E **	Allow mailertable entries of the form ``error:message''.
97
98X **	Have .forward files re-queue if the home directory isn't
99	accessible?  On some option...
100	(Q.G.Campbell@newcastle.ac.uk)
101
102X **	Have local delivery queue if NIS is down?  On some option...
103	(Q.G.Campbell@newcastle.ac.uk)
104
105E **	Have nullclient configuration resolve local names to the local
106	mailer and then redirect them in ruleset 5; this allows you to
107	redirect root differently depending on the client.  It's not
108	clear this is really a good idea though.
109
110E **	Move CurHostAddr into mci struct, and make CurMCI variable
111	point to this, so that logging will give the correct address
112	instead of (0) for cached connections.  Motonori Nakamura.
113
114X **	Allow use of a generalized network service for aliasing?
115	How would the protocol be defined?
116	James Gritton <gritton@byu.edu>.
117
118E **	Make "local configuration error" a temporary failure?
119	(add EX_CONFIG to the markfailure list)
120
121X **	(sigh) BSMTP.
122
123X **	"E" configuration line that sets environment variables.
124
125E **	Change listen() high-load backoff to accept and issue a 4xx
126	message so that it responds more quickly.
127
128E **	Change "/usr/tmp/dead.letter" to be based on _PATH_VARTMP.
129
130B **	Commas in NAME envariable cause problems (Peter Wan
131	<peter@cc.gatech.edu>).  Merge with suggestions to use
132	MIME-format for 8-bit characters?
133
134E **	Save address information that comes back as the "additional
135	records" part of an MX lookup, to avoid additional name server
136	attempts.  If there is an MX record without an additional A
137	record, delete it (this avoids a problem with misconfigured
138	DNS situations).
139
140X **	Allow a way to extend the $Z macro with local configuration
141	information.
142
143X **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]
144
145X **	Allow /address in -bt mode to expand address through ruleset 0,
146	aliases, etc. and display results.  [8.8]
147
148X **	"R mailer address" in -bt mode does remotename on address.
149
150E **	Adjust "infinite loop in rule" code to handle entire ruleset
151	(Code from Michael Corrigan).
152
153E **	Allow :include: from command line (not SMTP) to assist in
154	"personal list" management -- i.e., creating lists that
155	cannot be EXPNed.
156
157X **	Database (keyed lookup) auto-rebuild.
158
159X **	Find a good test suite and include in the distribution.
160
161S **	You can use symbolic links to point into protected directories.
162	(AEJ)
163
164X **	Extend OI to allow separate settings for canonification, MX, and A
165	lookups.  [8.8?]
166
167X **	Add $!x class to match any number of words not in class x. (KRE)
168
169X **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)
170
171X **	Add "bestmx" map -- returns "best MX host" for this address.
172	Allows you to do automatic detection of when you are the best
173	MX for a given address.  [8.7?]
174
175X **	Some way to diddle resolver flags on a per-lookup basis, such
176	as a flag to the map declaration.  (Rick McCarty)
177	- Is this really a good idea?  DNSRCH can be turned off by
178	  putting a dot at the end.  AAONLY?
179
180X **	Extend makemap to "gather" values -- i.e., merge entries that
181	have the same keys. [8.8]  (BCX)
182
183E **	Allow error messages on individual addresses in the qf file.
184	(BCX)
185
186X **	Multi-character option names.  [9.1]
187
188X **	User database extensions for mailing lists:
189	list:precedence -- Precedence: value for new message
190	list:envelopefrom -- envelope "from" value for new message
191	others?  [8.8]
192
193X **	Command line switch to set precedence (for mailing list
194	generation).  (BCX)
195
196B **	Restore `T' line to eliminate X-Authentication-Warning: at
197	inappropriate times.  (Christophe Wolfhugel)
198	- T could become a shorthand for Ct -- i.e., create a new
199	  predefined class.
200	- Eliminate "<user> set sender to <address>" message entirely?
201	  (this is the workaround)
202
203B **	Return-Path: header should have <> added if not already there.
204
205X **	Add heuristic to determine if other end is a sendmail; use
206	that to decide whether or not to honor F=I mailer flag.
207	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]
208
209X **	Automatically drop into MIME mode if you have a full name
210	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
211	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.
212
213X **	-b? flag to read a header and show you what it will look like
214	after all rewriting for an indicated address.
215
216E **	Log $u in logsender() (for=<someaddress>).
217
218B **	Include SOCKADDR in MCI struct for logging (currently gives
219	a sockaddr of zero when printing from the cache).
220
221X **	Allow option to set the characters that are autoquoted in
222	addresses?
223
224X *	Map that does MB/MR lookups.  Rick McCarty <mccarty@io.com>.
225
226X *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.
227
228X *	-V flag to print state of all (?) compilation flags.
229
230X *	Handle Expires: header field (if still in queue).
231
232X *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
233	(Bruce Lilly <blilly!bruce@uu.psi.com>)
234
235X *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]
236
237B *	EXPN adds @domain to all mailers, including prog.  Is this right?
238	[Bob Henry]
239
240B *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]
241
242E *	Change body put code to time out around individual puts.  This will
243	make the timeout algorithm more responsive and more resilient.
244	Unfortunately, it's also a pain in the butt.
245
246X *	Some way to relay unfound local users to another site.
247
248X *	Disable all default RW sets except mailer-specific?
249