freebsd-ports/mail/smtpd/files/patch-ab
Dirk Meyer 9487b0418f 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
2002-03-30 14:43:32 +00:00

36 lines
1 KiB
Text

--- smtpfwdd.c.org Wed Jun 17 21:21:10 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 $";
+#include <sys/types.h>
#include <stdio.h>
#include <signal.h>
#include <dirent.h>
#include <pwd.h>
#include <grp.h>
-#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <sys/stat.h>
@@ -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) {