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