diff options
author | Christian Pointner <equinox@anytun.org> | 2014-02-13 23:09:40 +0000 |
---|---|---|
committer | Christian Pointner <equinox@anytun.org> | 2014-02-13 23:09:40 +0000 |
commit | 11bf4cad5161328ace3da83554ca93c6e9d16892 (patch) | |
tree | d1de5526e1844dfa68ec529748ee1598050ee2a1 /src | |
parent | removed debug output (diff) |
clearing sequence window when receiving SIGHUP
Diffstat (limited to 'src')
-rw-r--r-- | src/sig_handler.c | 2 | ||||
-rw-r--r-- | src/uanytun.c | 10 |
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)) { |