1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
From: Michel Lespinasse <walken@zoy.org>
Subject: Don't wait for more than specified delays, fix for #509015
diff -urNad ifplugd-0.28~/src/ifplugd.c ifplugd-0.28/src/ifplugd.c
--- ifplugd-0.28~/src/ifplugd.c 2008-09-30 17:48:51.000000000 +0530
+++ ifplugd-0.28/src/ifplugd.c 2009-03-02 12:05:11.000000000 +0530
@@ -468,6 +468,14 @@
tv.tv_sec = polltime;
tv.tv_usec = 0;
+ if (t) {
+ int delay = t - time(NULL);
+ if (delay < 0)
+ tv.tv_sec = 0;
+ else if (delay < tv.tv_sec)
+ tv.tv_sec = delay;
+ }
+
if (select(FD_SETSIZE, &qfds, NULL, NULL, &tv) < 0) {
if (errno == EINTR)
continue;
@@ -573,7 +581,7 @@
}
}
- if (t && t < time(NULL)) {
+ if (t && t <= time(NULL)) {
t = 0;
if (action(status) < 0)
|