From bff6a7486fac0bae63c5ff9e8b151afc63fd2014 Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Thu, 26 May 2011 14:34:27 +0200 Subject: [PATCH] update on test program --- opt/pflana.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/opt/pflana.c b/opt/pflana.c index 32ef588..b879aa7 100644 --- a/opt/pflana.c +++ b/opt/pflana.c @@ -1,19 +1,42 @@ #include #include +#include #include #define AF_LANA 27 +static sig_atomic_t sigint = 0; + +static void intr(int sig) +{ + sigint = 1; +} + +static inline void register_signal(int signal, void (*handler)(int)) +{ + sigset_t block_mask; + struct sigaction saction; + + sigfillset(&block_mask); + saction.sa_handler = handler; + saction.sa_mask = block_mask; + saction.sa_flags = SA_RESTART; + + sigaction(signal, &saction, NULL); +} + int main(void) { int sock; + register_signal(SIGINT, intr); sock = socket(AF_LANA, SOCK_STREAM, 0); if (sock < 0) { perror("socket"); return 0; } - printf("Worked!\n"); + printf("Worked! Abort with ^C\n"); + while (!sigint); close(sock); return 0; -- 2.11.4.GIT