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.
         */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to