From 3adde88a642a7e3018ab53adf082d51cb326be94 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Fri, 18 Sep 2015 11:50:41 +0200 Subject: cansequence: use sigaction() instead of signal Signed-off-by: Marc Kleine-Budde --- src/cansequence.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/cansequence.c b/src/cansequence.c index 6fa3abb..d916576 100644 --- a/src/cansequence.c +++ b/src/cansequence.c @@ -70,7 +70,7 @@ static void print_usage(char *prg) prg, CAN_ID_DEFAULT); } -static void sigterm(int signo) +static void sig_handler(int signo) { running = false; } @@ -208,6 +208,9 @@ static void do_send() int main(int argc, char **argv) { + struct sigaction act = { + .sa_handler = sig_handler, + }; struct ifreq ifr; struct sockaddr_can addr; char *interface = "can0"; @@ -216,8 +219,9 @@ int main(int argc, char **argv) int receive = 0; int opt; - signal(SIGTERM, sigterm); - signal(SIGHUP, sigterm); + sigaction(SIGINT, &act, NULL); + sigaction(SIGTERM, &act, NULL); + sigaction(SIGHUP, &act, NULL); struct option long_options[] = { { "extended", no_argument, 0, 'e' }, -- cgit v1.2.3