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