aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-01-17 00:50:40 +0900
committerKazuki Yamaguchi <k@rhe.jp>2016-01-17 00:50:40 +0900
commit138459803fcc60af3322d39f857962e22350b010 (patch)
treeb225045b98f281901aa1b3a99484747b2b8173da
parent451c9ec4c4a89a5ca141e0d22634a9b89620ff9c (diff)
downloadpoe-138459803fcc60af3322d39f857962e22350b010.tar.gz
sandbox: move sig*
-rw-r--r--sandbox/sandbox.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/sandbox/sandbox.c b/sandbox/sandbox.c
index c8043d7..36c4e82 100644
--- a/sandbox/sandbox.c
+++ b/sandbox/sandbox.c
@@ -241,13 +241,6 @@ main(int argc, char *argv[])
const char *prog = copy_program(root, argv[3]);
char **cmdl = construct_cmdl(argc - 4, argv + 4, prog);
- sigset_t mask, omask;
- sigemptyset(&mask);
- sigaddset(&mask, SIGCHLD);
- sigaddset(&mask, SIGINT); // auau
- sigaddset(&mask, SIGTERM); // auau
- sigprocmask(SIG_BLOCK, &mask, &omask);
-
int stdout_fd[2], stderr_fd[2];
NONNEGATIVE(pipe2(stdout_fd, O_DIRECT));
NONNEGATIVE(pipe2(stderr_fd, O_DIRECT));
@@ -264,7 +257,6 @@ main(int argc, char *argv[])
close(stderr_fd[0]);
close(stderr_fd[1]);
- sigprocmask(SIG_SETMASK, &omask, NULL);
child(root, cmdl);
} else {
sd_event *event = NULL;
@@ -280,6 +272,13 @@ main(int argc, char *argv[])
NONNEGATIVE(fflags);
NONNEGATIVE(fcntl(stderr_fd[0], F_SETFL, fflags | O_NONBLOCK));
+ sigset_t mask;
+ sigemptyset(&mask);
+ sigaddset(&mask, SIGCHLD);
+ sigaddset(&mask, SIGINT);
+ sigaddset(&mask, SIGTERM);
+ sigprocmask(SIG_BLOCK, &mask, NULL);
+
NONNEGATIVE(sd_event_default(&event));
NONNEGATIVE(sd_event_add_signal(event, NULL, SIGCHLD, sigchld_handler, &pid));
NONNEGATIVE(sd_event_add_signal(event, NULL, SIGINT, sigint_handler, &pid));