From: Denis Vlasenko Date: Wed, 14 Mar 2007 21:55:41 +0000 (-0000) Subject: watchdog: don't use static variable X-Git-Tag: 1_5_1~58 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=cfa2b3a20984811997b6f7f6fce2ea9b0d53e7f7;p=oweals%2Fbusybox.git watchdog: don't use static variable --- diff --git a/miscutils/watchdog.c b/miscutils/watchdog.c index 9dbefb985..ed9026d9e 100644 --- a/miscutils/watchdog.c +++ b/miscutils/watchdog.c @@ -13,13 +13,12 @@ #define OPT_FOREGROUND 0x01 #define OPT_TIMER 0x02 -/* Watchdog file descriptor */ -static int fd; - -static void watchdog_shutdown(int ATTRIBUTE_UNUSED unused) +static void watchdog_shutdown(int ATTRIBUTE_UNUSED sig) ATTRIBUTE_NORETURN; +static void watchdog_shutdown(int ATTRIBUTE_UNUSED sig) { - write(fd, "V", 1); /* Magic, see watchdog-api.txt in kernel */ - close(fd); + write(3, "V", 1); /* Magic, see watchdog-api.txt in kernel */ + if (ENABLE_FEATURE_CLEAN_UP) + close(3); exit(0); } @@ -49,18 +48,19 @@ int watchdog_main(int argc, char **argv) signal(SIGHUP, watchdog_shutdown); signal(SIGINT, watchdog_shutdown); - fd = xopen(argv[argc - 1], O_WRONLY); + /* Use known fd # - avoid needing global 'int fd' */ + dup2(xopen(argv[argc - 1], O_WRONLY), 3); while (1) { /* * Make sure we clear the counter before sleeping, as the counter value * is undefined at this point -- PFM */ - write(fd, "\0", 1); + write(3, "", 1); sleep(timer_duration); } watchdog_shutdown(0); - return EXIT_SUCCESS; + /* return EXIT_SUCCESS; */ }