cansequence: use sigaction() instead of signal

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
pull/254/head^2
Marc Kleine-Budde 2015-09-18 11:50:41 +02:00
parent 68d5f87889
commit 36fc75bdb7
1 changed files with 7 additions and 3 deletions

View File

@ -70,7 +70,7 @@ static void print_usage(char *prg)
prg, CAN_ID_DEFAULT); prg, CAN_ID_DEFAULT);
} }
static void sigterm(int signo) static void sig_handler(int signo)
{ {
running = false; running = false;
} }
@ -208,6 +208,9 @@ static void do_send()
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
struct sigaction act = {
.sa_handler = sig_handler,
};
struct ifreq ifr; struct ifreq ifr;
struct sockaddr_can addr; struct sockaddr_can addr;
char *interface = "can0"; char *interface = "can0";
@ -216,8 +219,9 @@ int main(int argc, char **argv)
int receive = 0; int receive = 0;
int opt; int opt;
signal(SIGTERM, sigterm); sigaction(SIGINT, &act, NULL);
signal(SIGHUP, sigterm); sigaction(SIGTERM, &act, NULL);
sigaction(SIGHUP, &act, NULL);
struct option long_options[] = { struct option long_options[] = {
{ "extended", no_argument, 0, 'e' }, { "extended", no_argument, 0, 'e' },