BSD 4_3 development
authorEric Allman <eric@ucbvax.Berkeley.EDU>
Wed, 13 Mar 1985 11:07:14 +0000 (03:07 -0800)
committerEric Allman <eric@ucbvax.Berkeley.EDU>
Wed, 13 Mar 1985 11:07:14 +0000 (03:07 -0800)
Work on file usr/src/usr.lib/sendmail/adm/TODO

Synthesized-from: CSRG/cd1/4.3

usr/src/usr.lib/sendmail/adm/TODO [new file with mode: 0644]

diff --git a/usr/src/usr.lib/sendmail/adm/TODO b/usr/src/usr.lib/sendmail/adm/TODO
new file mode 100644 (file)
index 0000000..0d5fc9e
--- /dev/null
@@ -0,0 +1,104 @@
+SHORT TERM TASKS
+
+  * Elevate "vacation" to a real release program -- check man pages,
+    install in /usr/ucb, etc.  May need some work -- it's still a bit
+    tricky to use.
+
+  * Throw in "smart UUCP" mailer that knows about neighbors that can
+    handle more than one recipient at once.  This is easy and should
+    be very useful for certain sites.  Configuration files should
+    default to "dumb" however.
+
+  * Clean up configuration on releases -- send out fewer Berkeley and
+    more basic configs (e.g., BLI).
+
+  * Verify that new name server doesn't confuse sendmail.
+
+  * Only add Message-Id: if message is locally generated (???).
+
+  * Improve documentation describing how to create a config file --
+    probably means putting more configs on distrib.
+
+  * Listen in UNIX domain (as well as INET)?
+
+  * A way to mark addresses in the queue as you process them as "done" --
+    probably by appending lines to the cf* file.  The point here is to
+    avoid duplicate messages to large lists if a crash occurs during
+    processing.  This is hard.
+
+
+
+LONG TERM TASKS
+
+  * Break up sendmail into several smaller programs:
+
+       queueup -- insert message into mail queue; call runqueue when
+               done -- called by user, smtpserver, cleanqueue (to return
+               expired messages), etc.
+       runqueue -- process queue entries -- take optional job name list
+               to run only those jobs -- called by queueup and by cron
+               to push the queue.
+       printqueue -- print mail queue.
+       cleanqueue -- return expired messages; basic consistency
+               checking.
+       smtpserver -- process smtp connections, pass to queueup -- this
+               can probably become a simple service a la /etc/inetd.
+       addrtest -- essentially "-bt" mode.
+       verifyaddr -- verify an address list -- "-bv" mode -- needs a
+               "noisy" and a "silent" mode (exit status only).  This
+               should be the same code as smtpserver and queueup use
+               to verify addresses.
+                       [This may want "shallow" and "deep" modes, where
+                       deep mode tries to connect to the remote site if
+                       on SMTP and issue a "VRFY" command.]
+       newaliases -- build alias file -- should not be part of sendmail
+               proper.  (See editalias below -- that would probably
+               preempt -- although a text form will be critical for
+               interchange.)
+
+    It may be better to make runqueue a daemon on 4.2 and have queueup
+    poke it (using a datagram).  This guarantees single threading (is this
+    an advantage? -- long jobs can block the queue) and minimizes
+    gratuituous forks/execs.  However, I feel strongly that portability
+    is important -- the fork/exec method should still be included.
+
+  * New programs:
+
+       editalias -- front end to modify alias database, including
+               "ownership" (so that people can modify lists that they
+               own, but not other lists) -- see Grapevine papers --
+               distributed????
+       rmqueue -- remove a job from the queue.  Usual ownership rules
+               should apply of course.
+
+  * Change config file to be more understandable -- yacc grammar probably.
+    Perhaps defaults should be compiled in whenever possible.
+
+  * Only use rewriting rules to go to and from canonical format.  Other
+    resolution should be defined by the name server (See MMDF).
+
+  * Perhaps there should be a "compiled format" for the configuration
+    file, something between a yacc-style config and the freeze file; very
+    quick to read w/ low overhead.  [Suggest a struct with "char *" being
+    index into a buffer area; these can be mapped internal <==> external
+    easily.]
+
+  * Move functionality:
+
+       []  Currently sendmail will rewrite "To: miriam mckusick" to
+           "To: miriam, mckusick" unless some "special" characters
+           are used (e.g.,  ()<>,;  -- characters specific to RFC822).
+           This should be moved to the user agent (Mail, rmail, MH,
+           etc.).  Big job because all user agents must be modified.
+       []  Would be nice if UUCP shit-format was handled by UUCP
+           itself.  This has serious performance implications unless
+           actually built into UUCP.
+
+  * Non-sendmail related changes:
+
+       []  UUCP routing code (part of the name server really) -- can
+           the work that Peter Honeyman or others have done be useful?
+           [A significant point is making this work given incomplete
+           information -- yum yum.  Some database work in this area.]
+       []  Reply code in ucbMail has little relation to current mail
+           software.  "Smarts" should be stripped out.