X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fprocd.git;a=blobdiff_plain;f=watchdog.c;fp=watchdog.c;h=780b321196def0adcca35ba7de2cdf938d265d98;hp=592ae7e74f771472ef7a670f8badbac1084d4ed5;hb=056d8ddda8d5236ac94d6897b674291679c05e91;hpb=7c6cf551df1eb4b59b2576c73db7ad30ac4ce396 diff --git a/watchdog.c b/watchdog.c index 592ae7e..780b321 100644 --- a/watchdog.c +++ b/watchdog.c @@ -126,10 +126,15 @@ void watchdog_init(int preinit) } -void watchdog_no_cloexec(void) +void watchdog_set_cloexec(bool val) { if (wdt_fd < 0) return; - fcntl(wdt_fd, F_SETFD, fcntl(wdt_fd, F_GETFD) & ~FD_CLOEXEC); + int flags = fcntl(wdt_fd, F_GETFD); + if (val) + flags |= FD_CLOEXEC; + else + flags &= ~FD_CLOEXEC; + fcntl(wdt_fd, F_SETFD, flags); }