summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@anytun.org>2014-02-13 23:09:40 +0000
committerChristian Pointner <equinox@anytun.org>2014-02-13 23:09:40 +0000
commit11bf4cad5161328ace3da83554ca93c6e9d16892 (patch)
treed1de5526e1844dfa68ec529748ee1598050ee2a1
parentremoved debug output (diff)
clearing sequence window when receiving SIGHUP
-rw-r--r--src/sig_handler.c2
-rw-r--r--src/uanytun.c10
2 files changed, 9 insertions, 3 deletions
diff --git a/src/sig_handler.c b/src/sig_handler.c
index c596339..69b96e3 100644
--- a/src/sig_handler.c
+++ b/src/sig_handler.c
@@ -129,7 +129,7 @@ int signal_handle()
case SIGINT: log_printf(NOTICE, "SIG-Int caught, exitting"); return_value = 1; break;
case SIGQUIT: log_printf(NOTICE, "SIG-Quit caught, exitting"); return_value = 1; break;
case SIGTERM: log_printf(NOTICE, "SIG-Term caught, exitting"); return_value = 1; break;
- case SIGHUP: log_printf(NOTICE, "SIG-Hup caught"); break;
+ case SIGHUP: log_printf(NOTICE, "SIG-Hup caught"); return_value = 2; break;
case SIGUSR1: log_printf(NOTICE, "SIG-Usr1 caught"); break;
case SIGUSR2: log_printf(NOTICE, "SIG-Usr2 caught"); break;
default: log_printf(WARNING, "unknown signal %d caught, ignoring", sig); break;
diff --git a/src/uanytun.c b/src/uanytun.c
index 75d21ce..bb573d7 100644
--- a/src/uanytun.c
+++ b/src/uanytun.c
@@ -248,10 +248,16 @@ int main_loop(tun_device_t* dev, udp_t* sock, options_t* opt)
continue;
if(FD_ISSET(sig_fd, &readyfds)) {
- if(signal_handle()) {
- return_value = 1;
+ return_value = signal_handle();
+ if(return_value == 1)
break;
+ else if(return_value == 2) {
+ seq_win_clear(&seq_win);
+ log_printf(NOTICE, "sequence window cleared");
+ return_value = 0;
}
+ else
+ return_value = 0;
}
if(FD_ISSET(dev->fd_, &readyfds)) {