Bug http://bugs.busybox.net/view.php?id=723 - initialize tv1 the first time
authorRob Landley <rob@landley.net>
Fri, 30 Jun 2006 14:05:19 +0000 (14:05 -0000)
committerRob Landley <rob@landley.net>
Fri, 30 Jun 2006 14:05:19 +0000 (14:05 -0000)
through the loop.

networking/zcip.c

index e25f01755149428bc100a0727d34136125c26c91..836cb78b286143fce7898fd5a08373bce26dc8c9 100644 (file)
@@ -307,20 +307,20 @@ fail:
                fds[0].revents = 0;
 
                // poll, being ready to adjust current timeout
-               if (timeout > 0) {
-                       gettimeofday(&tv1, NULL);
-                       tv1.tv_usec += (timeout % 1000) * 1000;
-                       while (tv1.tv_usec > 1000000) {
-                               tv1.tv_usec -= 1000000;
-                               tv1.tv_sec++;
-                       }
-                       tv1.tv_sec += timeout / 1000;
-               } else if (timeout == 0) {
+               if (!timeout) {
                        timeout = ms_rdelay(PROBE_WAIT);
                        // FIXME setsockopt(fd, SO_ATTACH_FILTER, ...) to
                        // make the kernel filter out all packets except
                        // ones we'd care about.
                }
+               gettimeofday(&tv1, NULL);
+               tv1.tv_usec += (timeout % 1000) * 1000;
+               while (tv1.tv_usec > 1000000) {
+                       tv1.tv_usec -= 1000000;
+                       tv1.tv_sec++;
+               }
+               tv1.tv_sec += timeout / 1000;
+       
                VDBG("...wait %ld %s nprobes=%d, nclaims=%d\n",
                                timeout, intf, nprobes, nclaims);
                switch (poll(fds, 1, timeout)) {