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