From 3520913216e675d1b7e1dea1c72f47cadd5e6a3d Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Tue, 30 Mar 2004 16:10:08 +0000 Subject: [PATCH] use sigaction() instead of signal() to remove SA_RESTART flag explicitly git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1394 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/src/vshelper-sync.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/util-vserver/src/vshelper-sync.c b/util-vserver/src/vshelper-sync.c index cf987de..91bc8fc 100644 --- a/util-vserver/src/vshelper-sync.c +++ b/util-vserver/src/vshelper-sync.c @@ -59,8 +59,13 @@ void alarmHandler(int UNUSED sig) int main(int argc, char *argv[]) { - int fd; - int idx = 1; + int fd; + int idx = 1; + struct sigaction act = { + .sa_handler = alarmHandler, + .sa_flags = SA_ONESHOT, + }; + sigfillset(&act.sa_mask); if (argc>=2) { if (strcmp(argv[1], "--help") ==0) showHelp(1, argv[0], 0); @@ -74,7 +79,10 @@ int main(int argc, char *argv[]) } - signal(SIGALRM, alarmHandler); + if (sigaction(SIGALRM, &act, 0)==-1) { + perror("vshelper-sync: sigaction()"); + return EXIT_FAILURE; + } alarm(atoi(argv[idx+1])); fd = open(argv[idx], O_RDONLY,0); @@ -96,4 +104,4 @@ int main(int argc, char *argv[]) } return EXIT_SUCCESS; -} + } -- 1.8.1.5