xref: /csrg-svn/usr.sbin/sendmail/src/TODO (revision 68401)
1*68401Seric(Version 8.33 of 02/21/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
3666013Seric? ****	Should $( [1.2.3.4] $) convert the address to a name?
3766013Seric
3868089SericE ***	Have recipient lines rewritten by the user database.
3968089Seric
4067420SericE ***	Arrange to run queue jobs as the owner of that queue file.  This
4167420Seric	probably requires forcing a fork in order to be able to completely
4267420Seric	restore the uid/gid portably without leaking out root privileges.
4367420Seric
4466337SericE ***	Long term host status -- store host status on disk for sharing
4566337Seric	between runs.
4666337Seric
4765869SericX ***	Extend I option to allow setting of retry and timeout values.
4865869Seric	drl@vuse.vanderbilt.edu (David R. Linn).
4965869Seric
5065753SericX ***	Total connection cache lifespan timeout -- a way to give a
5165753Seric	timeout on connections regardless of whether they are active
5265753Seric	or not.  For single threaded servers such as Microsoft SMTP
5365753Seric	gateway.  Douglas Anderson <dlander@afterlife.ncsc.mil>.
5465753Seric
5565119SericX ***	Create a macro that has message size.
5665119Seric	Peter Wemm <peter@DIALix.oz.au>
5765119Seric
5864718SericE ***	Dynamically allocate MAXNAME buffers for headers.
5964718Seric
6065119SericE ***	Dynamically allocate "line" buffer in readaliases().
6165119Seric
6264718SericX ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)
6364652Seric
6464718SericE ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
6564718Seric	josh@osiris.ac.hmc.edu).
6664718Seric
6764799SericE ***	Have daemons that start up check the alias database for
6864799Seric	correctness and auto-rebuild if necessary.  This is to handle
6964799Seric	the case of a system crash during an alias database rebuild.
7064799Seric
7164799SericE ***	Eliminate E qf line and e_errorqueue; use e_errorsto a la
7264799Seric	e_receiptto.  This simplifies and gives symmetry.  (Eric
7364799Seric	Wassenaar)
7464799Seric
7565165SericX ***	DECNET_RELAY support in configs.
7665165Seric
7765753SericX ***	-wN command line flag to set the width of mailq output.
7865753Seric	(Allan Johannesen)
7965753Seric
8066328SericE ***	Move mailertable lookup after UUCP-specific class checks?
8166328Seric	(Kimmo Suominen <kim@tac.nyc.ny.us>)
8266328Seric
8366328SericE ***	Users in more than one list with different owners get duplicate
8466328Seric	deliveries -- maybe just assign them arbitrarily to one
8566328Seric	envelope or the other?
8666328Seric
87*68401SericE ***	Mailer flag to turn off MX lookups.
88*68401Seric
8968227SericX **	Have a ruleset (6?) that gets both sender and recipient
9068227Seric	addresses to check compatibility.  Can you do enough interesting
9168227Seric	things with this?
9268227Seric
9366328SericX **	Make MAXBADCOMMANDS run time configurable.
9466328Seric
9566328SericE **	Allow mailertable entries of the form ``error:message''.
9666328Seric
9766328SericX **	Have .forward files re-queue if the home directory isn't
9866328Seric	accessible?  On some option...
9966328Seric	(Q.G.Campbell@newcastle.ac.uk)
10066328Seric
10166328SericX **	Have local delivery queue if NIS is down?  On some option...
10266328Seric	(Q.G.Campbell@newcastle.ac.uk)
10366328Seric
10466328SericE **	Have nullclient configuration resolve local names to the local
10566328Seric	mailer and then redirect them in ruleset 5; this allows you to
10666328Seric	redirect root differently depending on the client.  It's not
10766328Seric	clear this is really a good idea though.
10866328Seric
10966013SericE **	Move CurHostAddr into mci struct, and make CurMCI variable
11066013Seric	point to this, so that logging will give the correct address
11166013Seric	instead of (0) for cached connections.  Motonori Nakamura.
11266013Seric
11365907SericX **	Allow use of a generalized network service for aliasing?
11465907Seric	How would the protocol be defined?
11565907Seric	James Gritton <gritton@byu.edu>.
11665907Seric
11765555SericE **	Make "local configuration error" a temporary failure?
11865555Seric	(add EX_CONFIG to the markfailure list)
11965555Seric
12065353SericX **	(sigh) BSMTP.
12165353Seric
12265226SericX **	"E" configuration line that sets environment variables.
12365226Seric
12465219SericE **	Change listen() high-load backoff to accept and issue a 4xx
12565219Seric	message so that it responds more quickly.
12665219Seric
12765119SericB **	Commas in NAME envariable cause problems (Peter Wan
12865119Seric	<peter@cc.gatech.edu>).  Merge with suggestions to use
12965119Seric	MIME-format for 8-bit characters?
13065119Seric
13165119SericE **	Save address information that comes back as the "additional
13265119Seric	records" part of an MX lookup, to avoid additional name server
13365119Seric	attempts.  If there is an MX record without an additional A
13465119Seric	record, delete it (this avoids a problem with misconfigured
13565119Seric	DNS situations).
13665119Seric
13765119SericX **	Allow a way to extend the $Z macro with local configuration
13865119Seric	information.
13965119Seric
14064755SericX **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]
14164755Seric
14264755SericX **	Allow /address in -bt mode to expand address through ruleset 0,
14364755Seric	aliases, etc. and display results.  [8.8]
14464755Seric
14564755SericX **	"R mailer address" in -bt mode does remotename on address.
14664755Seric
14764755SericE **	Adjust "infinite loop in rule" code to handle entire ruleset
14864755Seric	(Code from Michael Corrigan).
14964755Seric
15064718SericE **	Allow :include: from command line (not SMTP) to assist in
15164718Seric	"personal list" management -- i.e., creating lists that
15264718Seric	cannot be EXPNed.
15364718Seric
15464718SericX **	Database (keyed lookup) auto-rebuild.
15564718Seric
15664705SericX **	Find a good test suite and include in the distribution.
15764652Seric
15864718SericS **	You can use symbolic links to point into protected directories.
15964718Seric	(AEJ)
16064652Seric
16164705SericX **	Extend OI to allow separate settings for canonification, MX, and A
16264718Seric	lookups.  [8.8?]
16364652Seric
16464718SericX **	Add $!x class to match any number of words not in class x. (KRE)
16564683Seric
16664705SericX **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)
16764703Seric
16865353SericX **	Some way to diddle resolver flags on a per-lookup basis, such
16965353Seric	as a flag to the map declaration.  (Rick McCarty)
17065353Seric	- Is this really a good idea?  DNSRCH can be turned off by
17165353Seric	  putting a dot at the end.  AAONLY?
17265353Seric
17364718SericX **	Extend makemap to "gather" values -- i.e., merge entries that
17464718Seric	have the same keys. [8.8]  (BCX)
17564703Seric
17664718SericE **	Allow error messages on individual addresses in the qf file.
17764718Seric	(BCX)
17864718Seric
17964718SericX **	User database extensions for mailing lists:
18064718Seric	list:precedence -- Precedence: value for new message
18164718Seric	list:envelopefrom -- envelope "from" value for new message
18264718Seric	others?  [8.8]
18364718Seric
18465353SericX **	Command line switch to set precedence (for mailing list
18565353Seric	generation).  (BCX)
18665353Seric
18765119SericB **	Return-Path: header should have <> added if not already there.
18865119Seric
18965119SericX **	Add heuristic to determine if other end is a sendmail; use
19065119Seric	that to decide whether or not to honor F=I mailer flag.
19165119Seric	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]
19265119Seric
19365119SericX **	Automatically drop into MIME mode if you have a full name
19465119Seric	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
19565119Seric	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.
19665119Seric
19765119SericX **	-b? flag to read a header and show you what it will look like
19865119Seric	after all rewriting for an indicated address.
19965119Seric
20065188SericE **	Log $u in logsender() (for=<someaddress>).
20165188Seric
20265753SericB **	Include SOCKADDR in MCI struct for logging (currently gives
20365753Seric	a sockaddr of zero when printing from the cache).
20465753Seric
20566328SericX **	Allow option to set the characters that are autoquoted in
20666328Seric	addresses?
20766328Seric
20865907SericX *	Map that does MB/MR lookups.  Rick McCarty <mccarty@io.com>.
20965907Seric
21065119SericX *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.
21165119Seric
21264755SericX *	-V flag to print state of all (?) compilation flags.
21364755Seric
21464718SericX *	Handle Expires: header field (if still in queue).
21564718Seric
21664705SericX *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
21764705Seric	(Bruce Lilly <blilly!bruce@uu.psi.com>)
21864703Seric
21964705SericX *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]
22064705Seric
22164705SericB *	EXPN adds @domain to all mailers, including prog.  Is this right?
22264705Seric	[Bob Henry]
22364705Seric
22464705SericB *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]
22564705Seric
22664705SericE *	Change body put code to time out around individual puts.  This will
22764705Seric	make the timeout algorithm more responsive and more resilient.
22864705Seric	Unfortunately, it's also a pain in the butt.
22964705Seric
23064705SericX *	Some way to relay unfound local users to another site.
23164705Seric
23264705SericX *	Disable all default RW sets except mailer-specific?
23368240Seric
23468240Seric
23568240Seric-------------------------------------------------------------------------------
23668240Seric
23768240SericIDA Features that have been requested:
23868240Seric
23968240Seric* USERMAILER
24068240Seric
24168240Seric* LOCAL_MX_HANDLER
242