|
|
1.1 root 1: SHORT TERM TASKS
2:
3: * Elevate "vacation" to a real release program -- check man pages,
4: install in /usr/ucb, etc. May need some work -- it's still a bit
5: tricky to use.
6:
7: * Throw in "smart UUCP" mailer that knows about neighbors that can
8: handle more than one recipient at once. This is easy and should
9: be very useful for certain sites. Configuration files should
10: default to "dumb" however.
11:
12: * Clean up configuration on releases -- send out fewer Berkeley and
13: more basic configs (e.g., BLI).
14:
15: * Verify that new name server doesn't confuse sendmail.
16:
17: * Only add Message-Id: if message is locally generated (???).
18:
19: * Improve documentation describing how to create a config file --
20: probably means putting more configs on distrib.
21:
22: * Listen in UNIX domain (as well as INET)?
23:
24: * A way to mark addresses in the queue as you process them as "done" --
25: probably by appending lines to the cf* file. The point here is to
26: avoid duplicate messages to large lists if a crash occurs during
27: processing. This is hard.
28:
29:
30:
31: LONG TERM TASKS
32:
33: * Break up sendmail into several smaller programs:
34:
35: queueup -- insert message into mail queue; call runqueue when
36: done -- called by user, smtpserver, cleanqueue (to return
37: expired messages), etc.
38: runqueue -- process queue entries -- take optional job name list
39: to run only those jobs -- called by queueup and by cron
40: to push the queue.
41: printqueue -- print mail queue.
42: cleanqueue -- return expired messages; basic consistency
43: checking.
44: smtpserver -- process smtp connections, pass to queueup -- this
45: can probably become a simple service a la /etc/inetd.
46: addrtest -- essentially "-bt" mode.
47: verifyaddr -- verify an address list -- "-bv" mode -- needs a
48: "noisy" and a "silent" mode (exit status only). This
49: should be the same code as smtpserver and queueup use
50: to verify addresses.
51: [This may want "shallow" and "deep" modes, where
52: deep mode tries to connect to the remote site if
53: on SMTP and issue a "VRFY" command.]
54: newaliases -- build alias file -- should not be part of sendmail
55: proper. (See editalias below -- that would probably
56: preempt -- although a text form will be critical for
57: interchange.)
58:
59: It may be better to make runqueue a daemon on 4.2 and have queueup
60: poke it (using a datagram). This guarantees single threading (is this
61: an advantage? -- long jobs can block the queue) and minimizes
62: gratuituous forks/execs. However, I feel strongly that portability
63: is important -- the fork/exec method should still be included.
64:
65: * New programs:
66:
67: editalias -- front end to modify alias database, including
68: "ownership" (so that people can modify lists that they
69: own, but not other lists) -- see Grapevine papers --
70: distributed????
71: rmqueue -- remove a job from the queue. Usual ownership rules
72: should apply of course.
73:
74: * Change config file to be more understandable -- yacc grammar probably.
75: Perhaps defaults should be compiled in whenever possible.
76:
77: * Only use rewriting rules to go to and from canonical format. Other
78: resolution should be defined by the name server (See MMDF).
79:
80: * Perhaps there should be a "compiled format" for the configuration
81: file, something between a yacc-style config and the freeze file; very
82: quick to read w/ low overhead. [Suggest a struct with "char *" being
83: index into a buffer area; these can be mapped internal <==> external
84: easily.]
85:
86: * Move functionality:
87:
88: [] Currently sendmail will rewrite "To: miriam mckusick" to
89: "To: miriam, mckusick" unless some "special" characters
90: are used (e.g., ()<>,; -- characters specific to RFC822).
91: This should be moved to the user agent (Mail, rmail, MH,
92: etc.). Big job because all user agents must be modified.
93: [] Would be nice if UUCP shit-format was handled by UUCP
94: itself. This has serious performance implications unless
95: actually built into UUCP.
96:
97: * Non-sendmail related changes:
98:
99: [] UUCP routing code (part of the name server really) -- can
100: the work that Peter Honeyman or others have done be useful?
101: [A significant point is making this work given incomplete
102: information -- yum yum. Some database work in this area.]
103: [] Reply code in ucbMail has little relation to current mail
104: software. "Smarts" should be stripped out.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.