diff options
author | Vadim Kochan <vadim4j@gmail.com> | 2015-07-26 15:17:04 +0300 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2015-07-26 20:36:26 +0200 |
commit | bbd4b152f7cc6795379a5927c4d7e2c61bb5c9f5 (patch) | |
tree | 0e69ca3d1f63c690c742674171f3c882cacc6089 | |
parent | 8389245e81b204764b44a00204adfa5804c10062 (diff) |
ifpps: Cleanup screen on panic
Clean up ncurses screen when panic was caused. There will be limitation
that error message will be printed on stderr after ncurses cleanup, so
it will be needed now to use redirect to error file ...
ifpps -d <dev> 2> /tmp/err
... to see error message.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
-rw-r--r-- | ifpps.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -1127,6 +1127,12 @@ static void screen_update(WINDOW *screen, const char *ifname, const struct ifsta refresh(); } +static void on_panic_handler(void *arg) +{ + screen_end(); + fprintf(stderr, "Please check <stderr> for error message\n"); +} + static int screen_main(const char *ifname, uint64_t ms_interval, unsigned int top_cpus, bool suppress_warnings, bool omit_header __maybe_unused) @@ -1137,6 +1143,8 @@ static int screen_main(const char *ifname, uint64_t ms_interval, stats_screen = screen_init(true); + panic_handler_add(on_panic_handler, NULL); + if (((rate > SPEED_1000 && ms_interval <= 1000) || (rate = SPEED_1000 && ms_interval < 1000)) && !suppress_warnings) |