]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Optimize the random calc for timeout.
authorRoy Marples <roy@marples.name>
Sat, 12 Jul 2008 16:47:05 +0000 (16:47 +0000)
committerRoy Marples <roy@marples.name>
Sat, 12 Jul 2008 16:47:05 +0000 (16:47 +0000)
client.c

index b901f452c146a42cf7fd9b6d92fffad2ac3ed1da..d71b7a87634a0f29bb28860a1f2d90985c35c9d2 100644 (file)
--- a/client.c
+++ b/client.c
@@ -1082,7 +1082,6 @@ handle_timeout(struct if_state *state, const struct options *options)
        int i = 0;
        struct timeval tv;
        struct in_addr addr;
-       suseconds_t usec;
 
 #ifdef ENABLE_ARP
        timerclear(&tv);
@@ -1248,17 +1247,9 @@ dhcp_timeout:
                        break;
                }
        }
-       usec = (arc4random() % (DHCP_RAND_MAX_U - DHCP_RAND_MIN_U)) +
-               DHCP_RAND_MIN_U;
-       if ((signed)usec > 0) {
-               tv.tv_usec = usec;
-               timeradd(&state->timeout, &tv, &state->timeout);
-       } else {
-               timeradd(&state->timeout, &tv, &state->timeout);
-               tv.tv_sec = 0;
-               tv.tv_usec = abs(usec);
-               timersub(&state->timeout, &tv, &state->timeout);
-       }
+       tv.tv_sec += DHCP_RAND_MIN;
+       tv.tv_usec = arc4random() % (DHCP_RAND_MAX_U - DHCP_RAND_MIN_U);
+       timeradd(&state->timeout, &tv, &state->timeout);
        return 0;
 }