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