Package: ifplugd / 0.28-19.4

06_509015_better_delays.patch Patch series | download
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)