diff options
author | Gilles Chehade <gilles@cvs.openbsd.org> | 2018-04-26 12:15:15 +0000 |
---|---|---|
committer | Gilles Chehade <gilles@cvs.openbsd.org> | 2018-04-26 12:15:15 +0000 |
commit | ccd2d9201904be5089234b1be4e8256f10a1a92f (patch) | |
tree | 1fe3145e02a51ae4c9a398ec0ff94f66e4926ba6 /usr.sbin/smtpd | |
parent | abfe5c7bd1d99a5d063986eb36237da35279dc74 (diff) |
remove mail.file.{8,c}, unused
ok eric@
Diffstat (limited to 'usr.sbin/smtpd')
-rw-r--r-- | usr.sbin/smtpd/mail.file.8 | 40 | ||||
-rw-r--r-- | usr.sbin/smtpd/mail.file.c | 112 |
2 files changed, 0 insertions, 152 deletions
diff --git a/usr.sbin/smtpd/mail.file.8 b/usr.sbin/smtpd/mail.file.8 deleted file mode 100644 index 2cafb861eeb..00000000000 --- a/usr.sbin/smtpd/mail.file.8 +++ /dev/null @@ -1,40 +0,0 @@ -.\" $OpenBSD: mail.file.8,v 1.2 2017/02/14 20:36:41 gilles Exp $ -.\" -.\" Copyright (c) 2017 Gilles Chehade <gilles@poolp.org> -.\" -.\" Permission to use, copy, modify, and distribute this software for any -.\" purpose with or without fee is hereby granted, provided that the above -.\" copyright notice and this permission notice appear in all copies. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -.\" -.Dd $Mdocdate: February 14 2017 $ -.Dt MAIL.FILE 8 -.Os -.Sh NAME -.Nm mail.file -.Nd deliver mail to file -.Sh SYNOPSIS -.Nm mail.file -.Ar filename -.Sh DESCRIPTION -.Nm -reads the standard input up to an end-of-file and appends content -to destination filename. -.Pp -The options are as follows: -.Bl -tag -width Ds -.It Ar filename -Mandatory destination file where content will be appended. -.El -.Sh EXIT STATUS -.Ex -std mail.file -.Sh SEE ALSO -.Xr mail 1 , -.Xr smtpd 8 diff --git a/usr.sbin/smtpd/mail.file.c b/usr.sbin/smtpd/mail.file.c deleted file mode 100644 index 94888cea7b6..00000000000 --- a/usr.sbin/smtpd/mail.file.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 2017 Gilles Chehade <gilles@poolp.org> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include <sys/types.h> -#include <sys/stat.h> - -#include <ctype.h> -#include <err.h> -#include <errno.h> -#include <fcntl.h> -#include <limits.h> -#include <netdb.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -static void file_engine(const char *); - -int -main(int argc, char *argv[]) -{ - int ch; - - if (! geteuid()) - errx(1, "mail.file: may not be executed as root"); - - while ((ch = getopt(argc, argv, "")) != -1) { - switch (ch) { - default: - break; - } - } - argc -= optind; - argv += optind; - - if (argc == 0) - errx(1, "mail.file: filename required"); - - if (argc > 1) - errx(1, "mail.file: only one filename is supported"); - - file_engine(argv[0]); - - return (0); -} - -static void -file_engine(const char *filename) -{ - int fd; - FILE *fp; - char *line = NULL; - size_t linesize = 0; - ssize_t linelen; - int n; - struct stat sb; - int escaped = 0; - - fd = open(filename, O_CREAT | O_APPEND | O_WRONLY, 0600); - if (fd < 0) - err(1, NULL); - if (fstat(fd, &sb) < 0) - err(1, NULL); - if (S_ISREG(sb.st_mode) && flock(fd, LOCK_EX) < 0) - err(1, NULL); - - if ((fp = fdopen(fd, "a")) == NULL) - err(1, NULL); - - while ((linelen = getline(&line, &linesize, stdin)) != -1) { - line[strcspn(line, "\n")] = '\0'; - if (strncasecmp(line, "From ", 5) == 0) { - if (!escaped) - escaped = 1; - else - fprintf(fp, ">"); - } - fprintf(fp, "%s\n", line); - } - free(line); - if (ferror(stdin)) - goto truncate; - - if (fflush(fp) == -1) - if (errno != EINVAL) - goto truncate; - - if (fclose(fp) == EOF) - goto truncate; - - exit(0); - -truncate: - n = errno; - ftruncate(fd, sb.st_size); - errno = n; - err(1, NULL); -} |