xref: /csrg-svn/usr.sbin/sendmail/src/TODO (revision 68527)
1*68527Seric(Version 8.34 of 03/14/95)
233732Sbostic
364705SericKey:
464705Seric  X -- extension (user visible change)
564705Seric  B -- bug fix
664705Seric  S -- security fix
764705Seric  E -- enhancement to existing algorithm
857668Seric
965958Seric
1068089SericX ****	Multiple queues.
1168089Seric
1264705SericX ****	Merge Sun changes.  [8.7]
1359609Seric
1464755SericE ****	Fix parseaddr to return a dummy mailer with QBADADDR set for
1564755Seric	all cases except null input; change calls to be more sceptical
1664755Seric	about the return value, checking this bit instead of just
1764755Seric	checking for == NULL.  (Eric Wassenaar)  [8.7]
1864755Seric
1964799SericX ****	Run time configurable locking -- e.g., compile in HASFLOCK and
2064799Seric	HASLOCKF, and then choose at runtime between these.
2164799Seric
2265353SericB ****	Aliases with .REDIRECT fail during newaliases if the "n" flag
2365353Seric	is given.  Problem is, sometimes you want them to, sometimes
2465353Seric	you don't.  Perhaps two flavors of "error" mailer?
2565353Seric
2665353SericB ****	Calls to gethostbyname with a trailing dot fail if you are
2765353Seric	not running DNS.
2865353Seric
2965119SericX ****	Add uucp-bang mailer that strips off any domain name from
3065119Seric	the envelope recipient address first; this is for use in
3165119Seric	mailer table entries.
3265119Seric
3365188SericX ****	"quote" map (inverse of dequote).  Lets you turn node::user
3465188Seric	into "node::user"@DECNET.gateway
3565188Seric
36*68527SericE ****	Change userdb code to use underlying maps, at least for
37*68527Seric	:mailname; this lets people use NIS to supply generics
38*68527Seric	information.  (Or should the generics code just be broken
39*68527Seric	out into the config file?)
40*68527Seric
4166013Seric? ****	Should $( [1.2.3.4] $) convert the address to a name?
4266013Seric
4368089SericE ***	Have recipient lines rewritten by the user database.
4468089Seric
4567420SericE ***	Arrange to run queue jobs as the owner of that queue file.  This
4667420Seric	probably requires forcing a fork in order to be able to completely
4767420Seric	restore the uid/gid portably without leaking out root privileges.
4867420Seric
4966337SericE ***	Long term host status -- store host status on disk for sharing
5066337Seric	between runs.
5166337Seric
5265869SericX ***	Extend I option to allow setting of retry and timeout values.
5365869Seric	drl@vuse.vanderbilt.edu (David R. Linn).
5465869Seric
5565753SericX ***	Total connection cache lifespan timeout -- a way to give a
5665753Seric	timeout on connections regardless of whether they are active
5765753Seric	or not.  For single threaded servers such as Microsoft SMTP
5865753Seric	gateway.  Douglas Anderson <dlander@afterlife.ncsc.mil>.
5965753Seric
6065119SericX ***	Create a macro that has message size.
6165119Seric	Peter Wemm <peter@DIALix.oz.au>
6265119Seric
6364718SericE ***	Dynamically allocate MAXNAME buffers for headers.
6464718Seric
6565119SericE ***	Dynamically allocate "line" buffer in readaliases().
6665119Seric
6764718SericX ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)
6864652Seric
6964718SericE ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
7064718Seric	josh@osiris.ac.hmc.edu).
7164718Seric
7264799SericE ***	Have daemons that start up check the alias database for
7364799Seric	correctness and auto-rebuild if necessary.  This is to handle
7464799Seric	the case of a system crash during an alias database rebuild.
7564799Seric
7664799SericE ***	Eliminate E qf line and e_errorqueue; use e_errorsto a la
7764799Seric	e_receiptto.  This simplifies and gives symmetry.  (Eric
7864799Seric	Wassenaar)
7964799Seric
8065165SericX ***	DECNET_RELAY support in configs.
8165165Seric
8265753SericX ***	-wN command line flag to set the width of mailq output.
8365753Seric	(Allan Johannesen)
8465753Seric
8566328SericE ***	Move mailertable lookup after UUCP-specific class checks?
8666328Seric	(Kimmo Suominen <kim@tac.nyc.ny.us>)
8766328Seric
8866328SericE ***	Users in more than one list with different owners get duplicate
8966328Seric	deliveries -- maybe just assign them arbitrarily to one
9066328Seric	envelope or the other?
9166328Seric
9268401SericE ***	Mailer flag to turn off MX lookups.
9368401Seric
94*68527SericX **	Rewriting rules based on incoming mailer.
95*68527Seric
9668227SericX **	Have a ruleset (6?) that gets both sender and recipient
9768227Seric	addresses to check compatibility.  Can you do enough interesting
9868227Seric	things with this?
9968227Seric
10066328SericX **	Make MAXBADCOMMANDS run time configurable.
10166328Seric
10266328SericE **	Allow mailertable entries of the form ``error:message''.
10366328Seric
10466328SericX **	Have .forward files re-queue if the home directory isn't
10566328Seric	accessible?  On some option...
10666328Seric	(Q.G.Campbell@newcastle.ac.uk)
10766328Seric
10866328SericX **	Have local delivery queue if NIS is down?  On some option...
10966328Seric	(Q.G.Campbell@newcastle.ac.uk)
11066328Seric
11166328SericE **	Have nullclient configuration resolve local names to the local
11266328Seric	mailer and then redirect them in ruleset 5; this allows you to
11366328Seric	redirect root differently depending on the client.  It's not
11466328Seric	clear this is really a good idea though.
11566328Seric
11666013SericE **	Move CurHostAddr into mci struct, and make CurMCI variable
11766013Seric	point to this, so that logging will give the correct address
11866013Seric	instead of (0) for cached connections.  Motonori Nakamura.
11966013Seric
12065907SericX **	Allow use of a generalized network service for aliasing?
12165907Seric	How would the protocol be defined?
12265907Seric	James Gritton <gritton@byu.edu>.
12365907Seric
12465555SericE **	Make "local configuration error" a temporary failure?
12565555Seric	(add EX_CONFIG to the markfailure list)
12665555Seric
12765353SericX **	(sigh) BSMTP.
12865353Seric
12965226SericX **	"E" configuration line that sets environment variables.
13065226Seric
13165219SericE **	Change listen() high-load backoff to accept and issue a 4xx
13265219Seric	message so that it responds more quickly.
13365219Seric
13465119SericB **	Commas in NAME envariable cause problems (Peter Wan
13565119Seric	<peter@cc.gatech.edu>).  Merge with suggestions to use
13665119Seric	MIME-format for 8-bit characters?
13765119Seric
13865119SericE **	Save address information that comes back as the "additional
13965119Seric	records" part of an MX lookup, to avoid additional name server
14065119Seric	attempts.  If there is an MX record without an additional A
14165119Seric	record, delete it (this avoids a problem with misconfigured
14265119Seric	DNS situations).
14365119Seric
14465119SericX **	Allow a way to extend the $Z macro with local configuration
14565119Seric	information.
14665119Seric
14764755SericX **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]
14864755Seric
14964755SericX **	Allow /address in -bt mode to expand address through ruleset 0,
15064755Seric	aliases, etc. and display results.  [8.8]
15164755Seric
15264755SericX **	"R mailer address" in -bt mode does remotename on address.
15364755Seric
15464755SericE **	Adjust "infinite loop in rule" code to handle entire ruleset
15564755Seric	(Code from Michael Corrigan).
15664755Seric
15764718SericE **	Allow :include: from command line (not SMTP) to assist in
15864718Seric	"personal list" management -- i.e., creating lists that
15964718Seric	cannot be EXPNed.
16064718Seric
16164718SericX **	Database (keyed lookup) auto-rebuild.
16264718Seric
16364705SericX **	Find a good test suite and include in the distribution.
16464652Seric
16564718SericS **	You can use symbolic links to point into protected directories.
16664718Seric	(AEJ)
16764652Seric
16864705SericX **	Extend OI to allow separate settings for canonification, MX, and A
16964718Seric	lookups.  [8.8?]
17064652Seric
17164718SericX **	Add $!x class to match any number of words not in class x. (KRE)
17264683Seric
17364705SericX **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)
17464703Seric
17565353SericX **	Some way to diddle resolver flags on a per-lookup basis, such
17665353Seric	as a flag to the map declaration.  (Rick McCarty)
17765353Seric	- Is this really a good idea?  DNSRCH can be turned off by
17865353Seric	  putting a dot at the end.  AAONLY?
17965353Seric
18064718SericX **	Extend makemap to "gather" values -- i.e., merge entries that
18164718Seric	have the same keys. [8.8]  (BCX)
18264703Seric
18364718SericE **	Allow error messages on individual addresses in the qf file.
18464718Seric	(BCX)
18564718Seric
18664718SericX **	User database extensions for mailing lists:
18764718Seric	list:precedence -- Precedence: value for new message
18864718Seric	list:envelopefrom -- envelope "from" value for new message
18964718Seric	others?  [8.8]
19064718Seric
19165353SericX **	Command line switch to set precedence (for mailing list
19265353Seric	generation).  (BCX)
19365353Seric
19465119SericB **	Return-Path: header should have <> added if not already there.
19565119Seric
19665119SericX **	Add heuristic to determine if other end is a sendmail; use
19765119Seric	that to decide whether or not to honor F=I mailer flag.
19865119Seric	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]
19965119Seric
20065119SericX **	Automatically drop into MIME mode if you have a full name
20165119Seric	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
20265119Seric	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.
20365119Seric
20465119SericX **	-b? flag to read a header and show you what it will look like
20565119Seric	after all rewriting for an indicated address.
20665119Seric
20765188SericE **	Log $u in logsender() (for=<someaddress>).
20865188Seric
20965753SericB **	Include SOCKADDR in MCI struct for logging (currently gives
21065753Seric	a sockaddr of zero when printing from the cache).
21165753Seric
21266328SericX **	Allow option to set the characters that are autoquoted in
21366328Seric	addresses?
21466328Seric
21565907SericX *	Map that does MB/MR lookups.  Rick McCarty <mccarty@io.com>.
21665907Seric
21765119SericX *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.
21865119Seric
21964755SericX *	-V flag to print state of all (?) compilation flags.
22064755Seric
22164718SericX *	Handle Expires: header field (if still in queue).
22264718Seric
22364705SericX *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
22464705Seric	(Bruce Lilly <blilly!bruce@uu.psi.com>)
22564703Seric
22664705SericX *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]
22764705Seric
22864705SericB *	EXPN adds @domain to all mailers, including prog.  Is this right?
22964705Seric	[Bob Henry]
23064705Seric
23164705SericB *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]
23264705Seric
23364705SericE *	Change body put code to time out around individual puts.  This will
23464705Seric	make the timeout algorithm more responsive and more resilient.
23564705Seric	Unfortunately, it's also a pain in the butt.
23664705Seric
23764705SericX *	Some way to relay unfound local users to another site.
23864705Seric
23964705SericX *	Disable all default RW sets except mailer-specific?
24068240Seric
24168240Seric
24268240Seric-------------------------------------------------------------------------------
24368240Seric
24468240SericIDA Features that have been requested:
24568240Seric
24668240Seric* USERMAILER
24768240Seric
24868240Seric* LOCAL_MX_HANDLER
249*68527Seric
250*68527Seric* NIS_MAILHOST
251*68527Seric
252*68527Seric* GENERICFROM
253