- if (ioctl(watchdog_fd, WDIOC_KEEPALIVE, 0) == -1) {
- perror("watchdog update failed");
+ // check for timeouts
+ if (update_watchdog) {
+ int i;
+ time_t ctime = time(NULL);
+ for (i = 0; i < MAX_CLIENTS; i++) {
+ if (client_list[i].fd != 0 && client_list[i].time != 0 &&
+ ((ctime - client_list[i].time) > client_watchdog_timeout)) {
+ update_watchdog = 0;
+ fprintf(stderr, "client watchdog expired - disable watchdog updates\n");
+ }
+ }
+ }
+
+ if (update_watchdog) {
+ if (ioctl(watchdog_fd, WDIOC_KEEPALIVE, 0) == -1) {
+ perror("watchdog update failed");
+ }