diff options
| author | cvs2svn <cvs2svn@FreeBSD.org> | 2005-05-04 11:55:43 +0000 |
|---|---|---|
| committer | cvs2svn <cvs2svn@FreeBSD.org> | 2005-05-04 11:55:43 +0000 |
| commit | d98bd4d12c4e7ecaf7ee2a17de3b4c33cbb6143f (patch) | |
| tree | 6d5ad3d994d468fddb5866fe63ba2b272940d201 /usr.sbin/mailwrapper | |
| parent | c01a5804daee286f3d3d7991634e26b908cd521a (diff) | |
Notes
Diffstat (limited to 'usr.sbin/mailwrapper')
| -rw-r--r-- | usr.sbin/mailwrapper/Makefile | 13 | ||||
| -rw-r--r-- | usr.sbin/mailwrapper/mailwrapper.8 | 144 | ||||
| -rw-r--r-- | usr.sbin/mailwrapper/mailwrapper.c | 165 |
3 files changed, 0 insertions, 322 deletions
diff --git a/usr.sbin/mailwrapper/Makefile b/usr.sbin/mailwrapper/Makefile deleted file mode 100644 index ed1130fbfcf7..000000000000 --- a/usr.sbin/mailwrapper/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# $NetBSD: Makefile,v 1.4 1999/03/25 16:40:18 is Exp $ - -PROG= mailwrapper -MAN= mailwrapper.8 mailer.conf.5 - -DPADD+= ${LIBUTIL} -LDADD+= -lutil - -SYMLINKS= /usr/sbin/mailwrapper /usr/sbin/sendmail \ - /usr/sbin/mailwrapper /usr/bin/newaliases \ - /usr/sbin/mailwrapper /usr/bin/mailq - -.include <bsd.prog.mk> diff --git a/usr.sbin/mailwrapper/mailwrapper.8 b/usr.sbin/mailwrapper/mailwrapper.8 deleted file mode 100644 index eb34a12becc8..000000000000 --- a/usr.sbin/mailwrapper/mailwrapper.8 +++ /dev/null @@ -1,144 +0,0 @@ -.\" $NetBSD: mailwrapper.8,v 1.6 1999/03/25 16:40:17 is Exp $ -.\" -.\" Copyright (c) 1998 -.\" Perry E. Metzger. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgment: -.\" This product includes software developed for the NetBSD Project -.\" by Perry E. Metzger. -.\" 4. The name of the author may not be used to endorse or promote products -.\" derived from this software without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -.\" -.\" The following requests are required for all man pages. -.Dd December 16, 1998 -.Dt MAILWRAPPER 8 -.Os -.Sh NAME -.Nm mailwrapper -.Nd invoke appropriate MTA software based on configuration file -.Sh SYNOPSIS -Special. See below. -.Sh DESCRIPTION -At one time, the only Mail Transfer Agent (MTA) software easily available -was -.Xr sendmail 8 . -As a result of this, most Mail User Agents (MUAs) such as -.Xr mail 1 -had the path and calling conventions expected by -.Xr sendmail 8 -compiled in. -.Pp -Times have changed, however. -On a modern -.Nx -system, the administrator may wish to use one of several -available MTAs. -.Pp -It would be difficult to modify all MUA software typically available -on a system, so most of the authors of alternative MTAs have written -their front end message submission programs so that they use the same -calling conventions as -.Xr sendmail 8 -and may be put into place instead of -.Xr sendmail 8 -in -.Pa /usr/sbin/sendmail . -.Pp -.Xr sendmail 8 -also typically has aliases named -.Xr mailq 1 -and -.Xr newaliases 1 -linked to it. The program knows to behave differently when its -.Va argv[0] -is -.Dq mailq -or -.Dq newaliases -and behaves appropriately. Typically, replacement MTAs provide similar -functionality, either through a program that also switches behavior -based on calling name, or through a set of programs that provide -similar functionality. -.Pp -Although having replacement programs that plug replace -.Xr sendmail 8 -helps in installing alternative MTAs, it essentially makes the -configuration of the system depend on hard installing new programs in -.Pa /usr . -This leads to configuration problems for many administrators, since -they may wish to install a new MTA without altering the system -provided -.Pa /usr . -(This may be, for example, to avoid having upgrade problems when a new -version of the system is installed over the old.) -They may also have a shared -.Pa /usr -among several -machines, and may wish to avoid placing implicit configuration -information in a read-only -.Pa /usr . -.Pp -The -.Nm -program is designed to replace -.Pa /usr/sbin/sendmail -and to invoke an appropriate MTA instead of -.Xr sendmail 8 -based on configuration information placed in -.Pa /etc/mailer.conf . -This permits the administrator to configure which MTA is to be invoked on -the system at run time. -.Sh FILES -Configuration for -.Nm -is kept in -.Pa /etc/mailer.conf . -.Pa /usr/sbin/sendmail -is typically set up as a symlink to -.Nm -which is not usually invoked on its own. -.Sh DIAGNOSTICS -.Nm -will return an error value and print a diagnostic if its configuration -file is missing or malformed, or does not contain a mapping for the -name under which -.Nm -was invoked. -.Sh SEE ALSO -.Xr mail 1 , -.Xr mailq 1 , -.Xr mailer.conf 5 , -.Xr newaliases 1 , -.Xr sendmail 8 . -.Sh HISTORY -.Nm -appeared in -.Nx 1.4 . -.Sh AUTHORS -Perry E. Metzger <perry@piermont.com> -.Sh BUGS -The entire reason this program exists is a crock. Instead, a command -for how to submit mail should be standardized, and all the "behave -differently if invoked with a different name" behavior of things like -.Xr mailq 1 -should go away. diff --git a/usr.sbin/mailwrapper/mailwrapper.c b/usr.sbin/mailwrapper/mailwrapper.c deleted file mode 100644 index 4d7d67d1a8df..000000000000 --- a/usr.sbin/mailwrapper/mailwrapper.c +++ /dev/null @@ -1,165 +0,0 @@ -/* $NetBSD: mailwrapper.c,v 1.3 1999/05/29 18:18:15 christos Exp $ */ - -/* - * Copyright (c) 1998 - * Perry E. Metzger. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed for the NetBSD Project - * by Perry E. Metzger. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include <err.h> -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <unistd.h> -#include <util.h> - -#define _PATH_MAILERCONF "/etc/mailer.conf" - -struct arglist { - size_t argc, maxc; - char **argv; -}; - -int main __P((int, char *[], char *[])); - -static void initarg __P((struct arglist *)); -static void addarg __P((struct arglist *, const char *, int)); -static void freearg __P((struct arglist *, int)); - -extern const char *__progname; /* from crt0.o */ - -static void -initarg(al) - struct arglist *al; -{ - al->argc = 0; - al->maxc = 10; - if ((al->argv = malloc(al->maxc * sizeof(char *))) == NULL) - err(1, "mailwrapper"); -} - -static void -addarg(al, arg, copy) - struct arglist *al; - const char *arg; - int copy; -{ - if (al->argc == al->maxc) { - al->maxc <<= 1; - if ((al->argv = realloc(al->argv, - al->maxc * sizeof(char *))) == NULL) - err(1, "mailwrapper"); - } - if (copy) { - if ((al->argv[al->argc++] = strdup(arg)) == NULL) - err(1, "mailwrapper:"); - } else - al->argv[al->argc++] = (char *)arg; -} - -static void -freearg(al, copy) - struct arglist *al; - int copy; -{ - size_t i; - if (copy) - for (i = 0; i < al->argc; i++) - free(al->argv[i]); - free(al->argv); -} - -int -main(argc, argv, envp) - int argc; - char *argv[]; - char *envp[]; -{ - FILE *config; - char *line, *cp, *from, *to, *ap; - size_t len, lineno = 0; - struct arglist al; - - initarg(&al); - for (len = 0; len < argc; len++) - addarg(&al, argv[len], 0); - - if ((config = fopen(_PATH_MAILERCONF, "r")) == NULL) - err(1, "mailwrapper: can't open %s", _PATH_MAILERCONF); - - for (;;) { - if ((line = fparseln(config, &len, &lineno, NULL, 0)) == NULL) { - if (feof(config)) - errx(1, "mailwrapper: no mapping in %s", - _PATH_MAILERCONF); - err(1, "mailwrapper"); - } - -#define WS " \t\n" - cp = line; - - cp += strspn(cp, WS); - if (cp[0] == '\0') { - /* empty line */ - free(line); - continue; - } - - if ((from = strsep(&cp, WS)) == NULL) - goto parse_error; - - cp += strspn(cp, WS); - - if ((to = strsep(&cp, WS)) == NULL) - goto parse_error; - - if (strcmp(from, __progname) == 0) { - for (ap = strsep(&cp, WS); ap != NULL; - ap = strsep(&cp, WS)) - if (*ap) - addarg(&al, ap, 0); - break; - } - - free(line); - } - - (void)fclose(config); - - execve(to, al.argv, envp); - freearg(&al, 0); - free(line); - err(1, "mailwrapper: execing %s", to); - /*NOTREACHED*/ -parse_error: - freearg(&al, 0); - free(line); - errx(1, "mailwrapper: parse error in %s at line %lu", - _PATH_MAILERCONF, (u_long)lineno); - /*NOTREACHED*/ -} |
