X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=src%2Fdhcpv6.c;h=e857823608b79a315843c0b094907aee1a8205f3;hb=2e955b5ab5560302ab4f7a8372e4132d5a14a001;hp=1af5c9aeafc9d4216ba369bd9cefb85b1dbbb098;hpb=7e6eebbe7d3df2b86b36b2e0d6ae7ee65f642094;p=odhcp6c.git diff --git a/src/dhcpv6.c b/src/dhcpv6.c index 1af5c9a..e857823 100644 --- a/src/dhcpv6.c +++ b/src/dhcpv6.c @@ -487,8 +487,8 @@ int dhcpv6_request(enum dhcpv6_msg type) if (retx->delay) { struct timespec ts = {0, 0}; - ts.tv_nsec = dhcpv6_rand_delay(10 * DHCPV6_REQ_DELAY); - nanosleep(&ts, NULL); + ts.tv_nsec = (dhcpv6_rand_delay((10000 * DHCPV6_REQ_DELAY) / 2) + (1000 * DHCPV6_REQ_DELAY) / 2) * 1000000; + while (nanosleep(&ts, &ts) < 0 && errno == EINTR); } if (type == DHCPV6_MSG_UNKNOWN)