From 9487b0418fea9010f75d9817bdc886154afdddae Mon Sep 17 00:00:00 2001 From: Dirk Meyer Date: Sat, 30 Mar 2002 14:43:32 +0000 Subject: [PATCH] Patch to solve problem: since version 8.12.1 (8.12.0 ?) sendmail complains if a program piping data to it doesn't have stdin, stdout and stderr opened; smtpfwdd doesn't open stdout and stderr when forwarding a mail to sendmail, therefore an anoying system messages is generated for each incoming mail: Dec 30 00:05:44 alchemy sendmail[96078]: SYSERR(uucp): File descriptors missing on startup: stdout, stderr: Bad file descriptor Maintainer Timeout. PR: 33314 Submitted by: marius@alchemy.franken.de --- mail/smtpd/Makefile | 1 + mail/smtpd/files/patch-ab | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/mail/smtpd/Makefile b/mail/smtpd/Makefile index 130f114834b8..888b68d6c2dd 100644 --- a/mail/smtpd/Makefile +++ b/mail/smtpd/Makefile @@ -7,6 +7,7 @@ PORTNAME= smtpd PORTVERSION= 2.0 +PORTREVISION= 1 CATEGORIES= mail security MASTER_SITES= ftp://ftp.obtuse.com/pub/smtpd/ diff --git a/mail/smtpd/files/patch-ab b/mail/smtpd/files/patch-ab index a59be0babfff..3dec54b1ea7b 100644 --- a/mail/smtpd/files/patch-ab +++ b/mail/smtpd/files/patch-ab @@ -1,5 +1,5 @@ --- smtpfwdd.c.org Wed Jun 17 21:21:10 1998 -+++ smtpfwdd.c Wed Jun 17 21:21:22 1998 ++++ smtpfwdd.c Sun Dec 30 00:09:19 2001 @@ -43,12 +43,12 @@ "Copyright 1996 - Obtuse Systems Corporation - All rights reserved."; char *obtuse_rcsid = "$Id: smtpfwdd.c,v 1.35 1997/12/12 04:07:49 beck Exp $"; @@ -14,3 +14,23 @@ #include #include #include +@@ -636,6 +636,19 @@ + exit(EX_OSERR); + } + ++ /* ++ * Open /dev/null as stdout and as stderr so sendmail 8.12.1 (and ++ * above ?) won't complain about missing file descriptors. ++ */ ++ if (open ("/dev/null", O_WRONLY | O_APPEND) < 0) { ++ syslog(LOG_ERR, "Couldn't open /dev/null as stdout (%m)"); ++ exit (EX_OSERR); ++ } ++ if (open ("/dev/null", O_RDWR | O_APPEND) < 0) { ++ syslog(LOG_ERR, "Couldn't open /dev/null as stderr (%m)"); ++ exit (EX_OSERR); ++ } ++ + fclose(f); + closelog(); + if (lseek(0, body, SEEK_SET) < 0) {