aboutsummaryrefslogtreecommitdiff
path: root/src/progman.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/progman.c')
-rw-r--r--src/progman.c25
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";

Return to:

Send suggestions and report system problems to the System administrator.