diff options
Diffstat (limited to 'src/progman.c')
-rw-r--r-- | src/progman.c | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/src/progman.c b/src/progman.c index 81accfb..d808010 100644 --- a/src/progman.c +++ b/src/progman.c @@ -434,19 +434,6 @@ redirect_to_syslog (struct prog *master, int stream, int *fd) return p[1]; } -static void -close_fds (fd_set *fdset) -{ - int i; - - for (i = FD_SETSIZE-1; i >= 0; i--) - { - if (fdset && FD_ISSET (i, fdset)) - continue; - close (i); - } -} - void free_redirector (struct redirector *rp) { @@ -939,7 +926,6 @@ prog_start (struct prog *prog) { pid_t pid; int redir[2]; - fd_set fdset; if (prog->pid > 0 || !IS_COMPONENT (prog)) return; @@ -1106,13 +1092,8 @@ prog_start (struct prog *prog) } /* Close unneeded descripitors */ - FD_ZERO (&fdset); - FD_SET (0, &fdset); - FD_SET (1, &fdset); - FD_SET (2, &fdset); - if (prog->v.p.comp->mode == pies_comp_pass_fd) - FD_SET (prog->v.p.socket, &fdset); - close_fds (&fdset); + pies_close_fds (prog->v.p.comp->mode == pies_comp_pass_fd + ? prog->v.p.socket : 2); prog_execute (prog); @@ -2047,7 +2028,7 @@ run_command (struct action *act, struct prog *prog, unsigned retcode, else setenv ("PIES_STATUS", umaxtostr (STATUS_CODE (retcode), buf), 1); - close_fds (NULL); + pies_close_fds (2); argv[0] = "/bin/sh"; argv[1] = "-c"; |