diff --git a/cangen.c b/cangen.c index bd88d9f..688a73a 100644 --- a/cangen.c +++ b/cangen.c @@ -91,6 +91,7 @@ extern int optind, opterr, optopt; static volatile int running = 1; +static volatile sig_atomic_t signal_num; static unsigned long long enobufs_count; static bool ignore_enobufs; static bool use_so_txtime; @@ -220,6 +221,7 @@ static void print_usage(char *prg) static void sigterm(int signo) { running = 0; + signal_num = signo; } static int setsockopt_txtime(int fd) @@ -887,5 +889,8 @@ int main(int argc, char **argv) close(s); + if (signal_num) + return 128 + signal_num; + return 0; }