X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fprocd.git;a=blobdiff_plain;f=watchdog.c;h=592ae7e74f771472ef7a670f8badbac1084d4ed5;hp=399f6af7f1a9cff0be7d91dcdcb9e1d63e1b4ea7;hb=2c9f5d4af1559b840c42f1443ede9f9fe809c58b;hpb=13259259bc53657617844660f2664f4b4fb4ac02 diff --git a/watchdog.c b/watchdog.c index 399f6af..592ae7e 100644 --- a/watchdog.c +++ b/watchdog.c @@ -32,11 +32,16 @@ static struct uloop_timeout wdt_timeout; static int wdt_fd = -1; static int wdt_frequency = 5; -static void watchdog_timeout_cb(struct uloop_timeout *t) +void watchdog_ping(void) { DEBUG(4, "Ping\n"); - if (write(wdt_fd, "X", 1) < 0) + if (wdt_fd >= 0 && write(wdt_fd, "X", 1) < 0) ERROR("WDT failed to write: %s\n", strerror(errno)); +} + +static void watchdog_timeout_cb(struct uloop_timeout *t) +{ + watchdog_ping(); uloop_timeout_set(t, wdt_frequency * 1000); }