Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Aug 2010 14:35:39 +0000 (UTC)
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r211884 - head/sbin/hastd
Message-ID:  <201008271435.o7REZd97080970@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pjd
Date: Fri Aug 27 14:35:39 2010
New Revision: 211884
URL: http://svn.freebsd.org/changeset/base/211884

Log:
  When logging to stdout/stderr don't close those descriptors after fork().
  
  MFC after:	2 weeks
  Obtained from:	Wheel Systems Sp. z o.o. http://www.wheelsystems.com

Modified:
  head/sbin/hastd/hooks.c

Modified: head/sbin/hastd/hooks.c
==============================================================================
--- head/sbin/hastd/hooks.c	Fri Aug 27 14:28:39 2010	(r211883)
+++ head/sbin/hastd/hooks.c	Fri Aug 27 14:35:39 2010	(r211884)
@@ -61,8 +61,21 @@ descriptors(void)
 		pjdlog_errno(LOG_WARNING, "sysconf(_SC_OPEN_MAX) failed");
 		maxfd = 1024;
 	}
-	for (fd = 0; fd <= maxfd; fd++)
-		close(fd);
+	for (fd = 0; fd <= maxfd; fd++) {
+		switch (fd) {
+		case STDIN_FILENO:
+		case STDOUT_FILENO:
+		case STDERR_FILENO:
+			if (pjdlog_mode_get() == PJDLOG_MODE_STD)
+				break;
+			/* FALLTHROUGH */
+		default:
+			close(fd);
+			break;
+		}
+	}
+	if (pjdlog_mode_get() == PJDLOG_MODE_STD)
+		return;
 	/*
 	 * Redirect stdin, stdout and stderr to /dev/null.
 	 */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008271435.o7REZd97080970>