From: Roy Marples Date: Sat, 12 Jul 2008 16:47:05 +0000 (+0000) Subject: Optimize the random calc for timeout. X-Git-Tag: v4.0.2~195 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e7d301b8f5d0f72f78790aabc2eb3325d88bfc9;p=thirdparty%2Fdhcpcd.git Optimize the random calc for timeout. --- diff --git a/client.c b/client.c index b901f452..d71b7a87 100644 --- 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; }