From: Steven Barth <steven@midlink.org>
Date: Fri, 28 Nov 2014 00:29:59 +0000 (+0100)
Subject: Fix initial delay of SOLICIT message
X-Git-Tag: debian/1.1+git20160131-1~42
X-Git-Url: https://git.decadent.org.uk/gitweb/?a=commitdiff_plain;h=2e955b5ab5560302ab4f7a8372e4132d5a14a001;p=odhcp6c.git

Fix initial delay of SOLICIT message

Signed-off-by: Steven Barth <steven@midlink.org>
---

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)