From 59a210325d70e6a38c0ef9e5dcb105cec8bd38d2 Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Mon, 16 Jan 2006 10:00:46 +0000 Subject: [PATCH] remove remnants of code for MMDF --- ChangeLog | 6 +- h/aliasbr.h | 2 - h/rcvmail.h | 10 -- man/Makefile.in | 2 +- man/mh-mts.man | 93 --------------- man/slocal.man | 36 ++---- sbr/lock_file.c | 5 - uip/aliasbr.c | 4 - uip/dropsbr.c | 14 +-- uip/post.c | 354 ------------------------------------------------------- uip/slocal.c | 7 -- 11 files changed, 17 insertions(+), 516 deletions(-) delete mode 100644 man/mh-mts.man diff --git a/ChangeLog b/ChangeLog index 3a82aa4..bb60d07 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,11 @@ 2006-01-16 Oliver Kiddle + * h/aliasbr.h, h/rcvmail.h, man/Makefile.in, man/slocal.man, + sbr/lock_file.c, uip/aliasbr.c, uip/dropsbr.c, uip/post.c, + uip/slocal.c, man/mh-mts.man: remove remnants of code for MMDF + * uip/scansbr.c: multiply buffer size by MB_CUR_MAX so multi-byte - chars fit + chars fit 2006-01-14 Josh Bressers diff --git a/h/aliasbr.h b/h/aliasbr.h index de50e97..d379cfc 100644 --- a/h/aliasbr.h +++ b/h/aliasbr.h @@ -36,9 +36,7 @@ struct home { struct home *h_next; /* next home in list */ }; -#ifndef MMDFMTS struct home *seek_home (char *); -#endif /* MMDFMTS */ /* * prototypes diff --git a/h/rcvmail.h b/h/rcvmail.h index c3a468c..9717919 100644 --- a/h/rcvmail.h +++ b/h/rcvmail.h @@ -14,22 +14,12 @@ # include #endif /* SMTPMTS */ -#ifdef MMDFMTS -# include -# include -#endif /* MMDFMTS */ - #if defined(SMTPMTS) # define RCV_MOK 0 # define RCV_MBX 1 #endif /* SMTPMTS */ -#ifdef MMDFI -# define RCV_MOK RP_MOK -# define RCV_MBX RP_MECH -#endif /* MMDFI */ - #ifdef NRTC /* sigh */ # undef RCV_MOK diff --git a/man/Makefile.in b/man/Makefile.in index 1730ae9..fe70265 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -69,7 +69,7 @@ MAN5SRC = mh-alias. mh-draft. mh-format. \ mh-tailor. mts.conf. MAN8SRC = ap. conflict. dp. fmtdump. \ - mh-mts. post. + post. MAN1 = $(MAN1SRC:.=.$(manext1)) MAN5 = $(MAN5SRC:.=.$(manext5)) diff --git a/man/mh-mts.man b/man/mh-mts.man deleted file mode 100644 index 731c597..0000000 --- a/man/mh-mts.man +++ /dev/null @@ -1,93 +0,0 @@ -.\" -.\" %nmhwarning% -.\" $Id$ -.\" -.TH MH-MTS %manext8% "%nmhdate%" MH.6.8 [%nmhversion%] -.SH NAME -mh-mts \- the nmh interface to the message transport system -.SH SYNOPSIS -.in +.5i -.ti -.5i -SendMail - -.ti .5i -Zmailer - -.ti .5i -MMDF (any release) - -.ti .5i -stand\-alone -.in -.5i -.SH DESCRIPTION -THIS IS OUT OF DATE AND NEEDS REWORKING. - -\fInmh\fR can use a wide range of message transport systems to deliver -mail. Although the \fInmh\fR administrator usually doesn't get to choose -which MTS to use (since it's already in place), this document briefly -describes the interfaces. - -When communicating with \fISendMail\fR, \fInmh\fR always uses the SMTP to -post mail. Depending on the \fInmh\fR configuration, \fISendMail\fR may -be invoked directly (via a \fIfork\fR and an \fIexec\fR), or \fInmh\fR -may open a TCP/IP connection to the SMTP server on the localhost. - -When communicating with \fIzmailer\fP, the \fISendMail\fP compatibility -program is required to be installed in /usr/lib. \fInmh\fP communicates -with \fIzmailer\fP by using the SMTP. It does this by invoking the -\fB/usr/lib/sendmail\fP compatibility program directly, with the -`\-bs' option. - -When communicating with \fIMMDF\fR, normally \fInmh\fR uses the -\*(lqmm\(ru\*(rq routines to post mail. However, depending on the -\fInmh\fR configuration, \fInmh\fR instead may open a TCP/IP connection -to the SMTP server on the localhost. - -If you are running a UNIX system with TCP/IP networking, then it is -felt that the best interface is achieved by using either \fISendMail\fR -or \fIMMDF\fR with the SMTP option. This gives greater flexibility. -To enable this option you append the /smtp suffix to the mts option -in the \fInmh\fR configuration. This yields two primary advantages: -First, you don't have to know where \fIsubmit\fR or \fISendMail\fR live. -This means that \fInmh\fR binaries (e.g., \fIpost\fR\0) don't have to have -this information hard\-coded, or can run different programs altogether; -and, second, you can post mail with the server on different systems, so -you don't need either \fIMMDF\fR or \fISendMail\fR on your local host. -Big win in conserving cycles and disk space. Since \fInmh\fR supports -the notion of a server search\-list in this respect, this approach can -be tolerant of faults. Be sure to set \*(lqservers:\*(rq as described -in mh\-tailor(8) if you use this option. - -There are four disadvantages to using the SMTP option: First, only UNIX -systems with TCP/IP are supported. Second, you need to have an SMTP -server running somewhere on any network your local host can reach. -Third, this bypasses any authentication mechanisms in \fIMMDF\fR -or \fISendMail\fR. Fourth, the file \fB/etc/hosts\fR is used for -hostname lookups (although there is an exception file). In response -to these disadvantages though: First, there's got to be an SMTP server -somewhere around if you're in the Internet or have a local network. -Since the server search\-list is very general, a wide\-range of options -are possible. Second, SMTP should be fixed to have authentication -mechanisms in it, like POP. Third, \fInmh\fR won't choke on mail to -hosts whose official names it can't verify, it'll just plug along (and -besides if you enable the DUMB configuration options, \fInmh\fR -ignores the hosts file altogether). -.Fi -^%etcdir%/mts.conf~^nmh mts configuration file -.Pr -None -.Sa -\fIMMDF\-II: A Technical Review\fR, -Proceedings, Usenix Summer '84 Conference -.br -\fISENDMAIL \-\- An Internetwork Mail Router\fR -.br -mh\-tailor(8), post(8) -.De -None -.Co -None -.Bu -The %etcdir%/mts.conf file ignores the information in the \fIMMDF\-II\fR -tailoring file. -.En diff --git a/man/slocal.man b/man/slocal.man index 2a94abb..eeb0765 100644 --- a/man/slocal.man +++ b/man/slocal.man @@ -120,44 +120,22 @@ is taking, as well as check for syntax errors in your file. .SS "Message Transfer Agents" -If your MTA is +Most modern MTAs including .BR sendmail , -you should include the line +.BR postfix +and +.BR exim +support a \&.forward file for directing incoming mail. +You should include the line .PP .RS 5 \*(lq|\ %libdir%/slocal\ \-user\ username\*(rq .RE .PP in your \&.forward file in your home directory. This will cause -.B sendmail -to invoke +your MTA to invoke .B slocal on your behalf when a message arrives. -.PP -If your MTA is -.BR MMDF-I , -you should (symbolically) link -.B %libdir%/slocal -to the file -.B bin/rcvmail -in your home directory. This will -cause -.B MMDF-I -to invoke -.B slocal -on your behalf with the correct -.RI \*(lq "address\ info\ sender" \*(rq -arguments. -.PP -If your MTA is -.BR MMDF-II , -then you should not use -.B slocal. -An equivalent functionality is already provided by -.BR MMDF-II ; -see -.BR maildelivery (5) -for details. .SS "The Maildelivery File" The diff --git a/sbr/lock_file.c b/sbr/lock_file.c index a98d5b1..66eab72 100644 --- a/sbr/lock_file.c +++ b/sbr/lock_file.c @@ -36,11 +36,6 @@ # include #endif -#ifdef MMDFONLY -# include -# include -#endif /* MMDFONLY */ - #ifdef HAVE_FCNTL_H # include #else diff --git a/uip/aliasbr.c b/uip/aliasbr.c index d0c193d..aadd676 100644 --- a/uip/aliasbr.c +++ b/uip/aliasbr.c @@ -47,9 +47,7 @@ static char *getalias (char *); static void add_aka (struct aka *, char *); static struct aka *akalloc (char *); static struct home *hmalloc (struct passwd *); -#ifndef MMDFMTS struct home *seek_home (char *); -#endif /* Do mh alias substitution on 's' and return the results. */ @@ -561,7 +559,6 @@ hmalloc (struct passwd *pw) } -#ifndef MMDFMTS struct home * seek_home (char *name) { @@ -598,4 +595,3 @@ seek_home (char *name) return NULL; } -#endif /* MMDFMTS */ diff --git a/uip/dropsbr.c b/uip/dropsbr.c index dae1c3b..2b3d020 100644 --- a/uip/dropsbr.c +++ b/uip/dropsbr.c @@ -12,16 +12,10 @@ #include #include -#ifndef MMDFONLY -# include -# include -# include -# include -#else -# include "dropsbr.h" -# include "strings.h" -# include "mmdfonly.h" -#endif +#include +#include +#include +#include #ifdef HAVE_ERRNO_H # include diff --git a/uip/post.c b/uip/post.c index 2fe45a1..e161674 100644 --- a/uip/post.c +++ b/uip/post.c @@ -36,19 +36,10 @@ # endif #endif -#ifdef MMDFMTS -# include -# include -#endif - #ifdef SMTPMTS # include #endif -#ifndef MMDFMTS -# define uptolow(c) ((isalpha(c) && isupper (c)) ? tolower (c) : (c)) -#endif - #ifndef CYRUS_SASL # define SASLminc(a) (a) #else /* CYRUS_SASL */ @@ -211,11 +202,7 @@ static struct headers RHeaders[] = { { "Resent-Fcc", HFCC, 0 }, { "Reply-To", HADR, 0 }, { "From", HADR|HNGR, MFRM }, -#ifdef MMDFI - { "Sender", HADR|HNGR|HMNG, 0 }, -#else { "Sender", HADR|HNGR, 0 }, -#endif { "Date", HNOP, MDAT }, { "To", HADR|HNIL, 0 }, { "cc", HADR|HNIL, 0 }, @@ -274,11 +261,6 @@ static struct mailname netaddrs={NULL}; /* network addrs */ static struct mailname uuaddrs={NULL}; /* uucp addrs */ static struct mailname tmpaddrs={NULL}; /* temporary queue */ -#ifdef MMDFMTS -static char *submitmode = "m"; /* deliver to mailbox only */ -static char submitopts[6] = "vl"; /* initial options for submit */ -#endif /* MMDFMTS */ - #ifdef SMTPMTS static int snoop = 0; static int smtpmode = S_MAIL; @@ -347,10 +329,6 @@ main (int argc, char **argv) arguments = getarguments (invo_name, argc, argv, 0); argp = arguments; -#if defined(MMDFMTS) && defined(MMDFII) - mmdf_init (invo_name); -#endif /* MMDFMTS and MMDFII */ - while ((cp = *argp++)) { if (*cp == '-') { switch (smatch (++cp, switches)) { @@ -469,19 +447,6 @@ main (int argc, char **argv) adios (NULL, "bad argument %s %s", argp[-2], cp); continue; -#ifdef MMDFMTS - case MAILSW: - submitmode = "m"; - continue; - case SOMLSW: /* for right now, sigh... */ - case SAMLSW: - submitmode = "b"; - continue; - case SENDSW: - submitmode = "y"; - continue; -#endif /* MMDFMTS */ - case DLVRSW: if (!(cp = *argp++) || *cp == '-') adios (NULL, "missing argument to %s", argp[-2]); @@ -654,12 +619,6 @@ main (int argc, char **argv) done (0); } -#ifdef MMDFMTS - strcat (submitopts, submitmode); - if (watch) - strcat (submitopts, "nw"); -#endif /* MMDFMTS */ - if (msgflags & MINV) { make_bcc_file (dashstuff); if (msgflags & MVIS) { @@ -949,10 +908,6 @@ finish_headers (FILE *out) if (whomsw && !fill_up) break; -#ifdef MMDFI /* sigh */ - fprintf (out, "Sender: %s\n", from); -#endif /* MMDFI */ - fprintf (out, "Resent-Date: %s\n", dtime (&tclock, 0)); if (msgid) fprintf (out, "Resent-Message-ID: <%d.%ld@%s>\n", @@ -1399,11 +1354,6 @@ do_addresses (int bccque, int talk) chkadr (); -#ifdef MMDFMTS - if (rp_isbad (retval = mm_waend ())) - die (NULL, "problem ending addresses [%s]\n", rp_valstr (retval)); -#endif /* MMDFMTS */ - #ifdef SMTPMTS if (rp_isbad (retval = sm_waend ())) die (NULL, "problem ending addresses; %s", rp_string (retval)); @@ -1607,276 +1557,6 @@ do_text (char *file, int fd) #endif /* SMTPMTS */ -/* - * MMDF routines - */ - -#ifdef MMDFMTS - -static void -post (char *file, int bccque, int talk) -{ - int fd, onex; - int retval; -#ifdef RP_NS - int len; - struct rp_bufstruct reply; -#endif /* RP_NS */ - - onex = !(msgflags & MINV) || bccque; - if (verbose) { - if (msgflags & MINV) - printf (" -- Posting for %s Recipients --\n", - bccque ? "Blind" : "Sighted"); - else - printf (" -- Posting for All Recipients --\n"); - } - - sigon (); - - if (rp_isbad (retval = mm_init ()) - || rp_isbad (retval = mm_sbinit ()) - || rp_isbad (retval = mm_winit (NULL, submitopts, from))) - die (NULL, "problem initializing MMDF system [%s]", - rp_valstr (retval)); -#ifdef RP_NS - if (rp_isbad (retval = mm_rrply (&reply, &len))) - die (NULL, "problem with sender address [%s]", - rp_valstr (retval)); -#endif /* RP_NS */ - - do_addresses (bccque, talk && verbose); - if ((fd = open (file, O_RDONLY)) == NOTOK) - die (file, "unable to re-open"); - do_text (file, fd); - close (fd); - fflush (stdout); - - mm_sbend (); - mm_end (OK); - sigoff (); - - if (verbose) - if (msgflags & MINV) - printf (" -- %s Recipient Copies Posted --\n", - bccque ? "Blind" : "Sighted"); - else - printf (" -- Recipient Copies Posted --\n"); - fflush (stdout); -} - - -/* Address Verification */ - -static void -verify_all_addresses (int talk) -{ - int retval; - struct mailname *lp; - -#ifdef RP_NS - int len; - struct rp_bufstruct reply; -#endif /* RP_NS */ - - sigon (); - - if (!whomsw || checksw) { - if (rp_isbad (retval = mm_init ()) - || rp_isbad (retval = mm_sbinit ()) - || rp_isbad (retval = mm_winit (NULL, submitopts, from))) - die (NULL, "problem initializing MMDF system [%s]", - rp_valstr (retval)); -#ifdef RP_NS - if (rp_isbad (retval = mm_rrply (&reply, &len))) - die (NULL, "problem with sender address [%s]", rp_valstr (retval)); -#endif /* RP_NS */ - } - - if (talk && !whomsw) - printf (" -- Address Verification --\n"); - if (talk && localaddrs.m_next) - printf (" -- Local Recipients --\n"); - for (lp = localaddrs.m_next; lp; lp = lp->m_next) - do_an_address (lp, talk); - - if (talk && uuaddrs.m_next) - printf (" -- UUCP Recipients --\n"); - for (lp = uuaddrs.m_next; lp; lp = lp->m_next) - do_an_address (lp, talk); - - if (talk && netaddrs.m_next) - printf (" -- Network Recipients --\n"); - for (lp = netaddrs.m_next; lp; lp = lp->m_next) - do_an_address (lp, talk); - - chkadr (); - if (talk && !whomsw) - printf (" -- Address Verification Successful --\n"); - - if (!whomsw || checksw) - mm_end (NOTOK); - - fflush (stdout); - sigoff (); -} - - -static void -do_an_address (struct mailname *lp, int talk) -{ - int len, retval; - char *mbox, *host, *text, *path; - char addr[BUFSIZ]; - struct rp_bufstruct reply; - - switch (lp->m_type) { - case LOCALHOST: - mbox = lp->m_mbox; - host = LocalName (); - strncpy (addr, mbox, sizeof(addr)); - break; - - case UUCPHOST: - fprintf (talk ? stdout : stderr, " %s!%s: %s\n", - lp->m_host, lp->m_mbox, "not supported; UUCP address"); - unkadr++; - fflush (stdout); - return; - - default: /* let MMDF decide if the host is bad */ - mbox = lp->m_mbox; - host = lp->m_host; - snprintf (addr, sizeof(addr), "%s at %s", mbox, host); - break; - } - - if (talk) - printf (" %s%s", addr, whomsw && lp->m_bcc ? "[BCC]" : ""); - - if (whomsw && !checksw) { - putchar ('\n'); - return; - } - if (talk) - printf (": "); - fflush (stdout); - -#ifdef MMDFII - if (lp->m_path) - path = concat (lp->m_path, mbox, "@", host, NULL); - else -#endif /* MMDFII */ - path = NULL; - if (rp_isbad (retval = mm_wadr (path ? NULL : host, path ? path : mbox)) - || rp_isbad (retval = mm_rrply (&reply, &len))) - die (NULL, "problem submitting address [%s]", rp_valstr (retval)); - - switch (rp_gval (reply.rp_val)) { - case RP_AOK: - if (talk) - printf ("address ok\n"); - fflush (stdout); - return; - -#ifdef RP_DOK - case RP_DOK: - if (talk) - printf ("nameserver timeout - queued for checking\n"); - fflush (stdout); - return; -#endif /* RP_DOK */ - - case RP_NO: - text = "you lose"; - break; - -#ifdef RP_NS - case RP_NS: - text = "temporary nameserver failure"; - break; - -#endif /* RP_NS */ - - case RP_USER: - case RP_NDEL: - text = "not deliverable"; - break; - - case RP_AGN: - text = "try again later"; - break; - - case RP_NOOP: - text = "nothing done"; - break; - - default: - if (!talk) - fprintf (stderr, " %s: ", addr); - text = "unexpected response"; - die (NULL, "%s;\n [%s] -- %s", text, - rp_valstr (reply.rp_val), reply.rp_line); - } - - if (!talk) - fprintf (stderr, " %s: ", addr); - fprintf (talk ? stdout : stderr, "%s;\n %s\n", text, reply.rp_line); - unkadr++; - - fflush (stdout); -} - - -static void -do_text (char *file, int fd) -{ - int retval, state; - char buf[BUFSIZ]; - struct rp_bufstruct reply; - - lseek (fd, (off_t) 0, SEEK_SET); - - while ((state = read (fd, buf, sizeof(buf))) > 0) { - if (rp_isbad (mm_wtxt (buf, state))) - die (NULL, "problem writing text [%s]\n", rp_valstr (retval)); - } - - if (state == NOTOK) - die (file, "problem reading from"); - - if (rp_isbad (retval = mm_wtend ())) - die (NULL, "problem ending text [%s]\n", rp_valstr (retval)); - - if (rp_isbad (retval = mm_rrply (&reply, &state))) - die (NULL, "problem getting submission status [%s]\n", - rp_valstr (retval)); - - switch (rp_gval (reply.rp_val)) { - case RP_OK: - case RP_MOK: - break; - - case RP_NO: - die (NULL, "you lose; %s", reply.rp_line); - - case RP_NDEL: - die (NULL, "no delivery occurred; %s", reply.rp_line); - - case RP_AGN: - die (NULL, "try again later; %s", reply.rp_line); - - case RP_NOOP: - die (NULL, "nothing done; %s", reply.rp_line); - - default: - die (NULL, "unexpected response;\n\t[%s] -- %s", - rp_valstr (reply.rp_val), reply.rp_line); - } -} - -#endif /* MMDFMTS */ - /* * SIGNAL HANDLING @@ -1893,11 +1573,6 @@ sigser (int i) if (msgflags & MINV) unlink (bccfil); -#ifdef MMDFMTS - if (!whomsw || checksw) - mm_end (NOTOK); -#endif /* MMDFMTS */ - #ifdef SMTPMTS if (!whomsw || checksw) sm_end (NOTOK); @@ -2017,11 +1692,6 @@ die (char *what, char *fmt, ...) if (msgflags & MINV) unlink (bccfil); -#ifdef MMDFMTS - if (!whomsw || checksw) - mm_end (NOTOK); -#endif /* MMDFMTS */ - #ifdef SMTPMTS if (!whomsw || checksw) sm_end (NOTOK); @@ -2032,27 +1702,3 @@ die (char *what, char *fmt, ...) va_end(ap); done (1); } - - -#ifdef MMDFMTS -/* - * err_abrt() is used by the mm_ routines - * do not, under *ANY* circumstances, remove it from post, - * or you will lose *BIG* - */ - -void -err_abrt (int code, char *fmt, ...) -{ - char buffer[BUFSIZ]; - va_list ap; - - snprintf (buffer, sizeof(buffer), "[%s]", rp_valstr (code)); - - va_start(ap, fmt); - advertise (buffer, NULL, fmt, ap); - va_end(ap); - - done (1); -} -#endif /* MMDFMTS */ diff --git a/uip/slocal.c b/uip/slocal.c index e51f869..275eedd 100644 --- a/uip/slocal.c +++ b/uip/slocal.c @@ -16,9 +16,6 @@ * * to their $HOME/.forward file. * - * Under MMDF-I, users should (symbolically) link - * /usr/local/nmh/lib/slocal to $HOME/bin/rcvmail. - * */ /* Changed to use getutent() and friends. Assumes that when getutent() exists, @@ -1191,10 +1188,6 @@ usr_pipe (int fd, char *cmd, char *pgm, char **vec, int suppress) status = pidwait (child_id, 0); alarm (0); -#ifdef MMDFI - if (status == RP_MOK || status == RP_OK) - status = 0; -#endif if (verbose) { if (status == 0) verbose_printf (", success.\n"); -- 1.7.10.4