From owner-svn-src-all@FreeBSD.ORG Fri Aug 27 14:35:39 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 87D2810656AA; Fri, 27 Aug 2010 14:35:39 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 77C8A8FC12; Fri, 27 Aug 2010 14:35:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o7REZdDv080972; Fri, 27 Aug 2010 14:35:39 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o7REZd97080970; Fri, 27 Aug 2010 14:35:39 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201008271435.o7REZd97080970@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Fri, 27 Aug 2010 14:35:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r211884 - head/sbin/hastd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Aug 2010 14:35:39 -0000 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. */