X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=watchdog.c;fp=watchdog.c;h=9b50d909d170ab6e91b1b1b9bf1e0e8d0b21b6a8;hb=254810d16cf18cb19ca5766dc6fe967b7015722f;hp=39ae9ff9aa5823ab05c9b1af3e650a11e93cf7d3;hpb=ca8c30208d5e1aaa2c0e3f732c4c9944735e9850;p=project%2Fprocd.git diff --git a/watchdog.c b/watchdog.c index 39ae9ff..9b50d90 100644 --- a/watchdog.c +++ b/watchdog.c @@ -71,13 +71,15 @@ static int watchdog_open(bool cloexec) return wdt_fd; } -static void watchdog_close(void) +static void watchdog_close(bool with_release) { if (wdt_fd < 0) return; - if (write(wdt_fd, "V", 1) < 0) - ERROR("WDT failed to write release: %m\n"); + if (with_release) { + if (write(wdt_fd, "V", 1) < 0) + ERROR("WDT failed to write release: %m\n"); + } if (close(wdt_fd) == -1) ERROR("WDT failed to close watchdog: %m\n"); @@ -137,8 +139,7 @@ void watchdog_set_stopped(bool val) if (val) { uloop_timeout_cancel(&wdt_timeout); - if (wdt_magicclose) - watchdog_close(); + watchdog_close(wdt_magicclose); } else { watchdog_open(true);