From dda02fb81452acb1878338e09ab992a1c3c18830 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 26 May 2008 15:54:30 +0000 Subject: add signal handler --- netmet2.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/netmet2.c b/netmet2.c index a2f8fcb..466b462 100644 --- a/netmet2.c +++ b/netmet2.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -50,6 +51,7 @@ SIMPLEQ_HEAD(, data) head; int hascolors; extern int LINES, COLS; +int dieflag = 0; void initscreen(int); void display(void); @@ -58,6 +60,7 @@ void updatedata(int, int); int findif(int, int, char **); int readdata(int, char *, void *); void mvwprintw2(WINDOW *, int, int, char *, int); +void die(int); __dead void usage(void); int @@ -81,6 +84,8 @@ main(int argc, char **argv) argc -= optind; argv += optind; + signal(SIGINT, die); + sock = socket(AF_INET, SOCK_DGRAM, 0); num = findif(sock, argc, argv); if (num == 0) @@ -89,7 +94,7 @@ main(int argc, char **argv) initscreen(num); curs_set(0); - for (;;) { + while (!dieflag) { updatedata(sock, del); display2(); doupdate(); @@ -301,6 +306,13 @@ readdata(int sock, char *name, void *data) return ioctl(sock, SIOCGIFDATA, (caddr_t)&ifr); } +void +die(int ignored) +{ + (void)ignored; + dieflag = 1; +} + __dead void usage(void) { -- cgit v1.2.3