Update of /cvsroot/dhcp-agent/dhcp-agent
In directory usw-pr-cvs1:/tmp/cvs-serv12510
Modified Files:
dhcp-rtt.c
Log Message:
rtt mechanism now fully compliant with rfc;
Index: dhcp-rtt.c
===================================================================
RCS file: /cvsroot/dhcp-agent/dhcp-agent/dhcp-rtt.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** dhcp-rtt.c 2002/01/30 10:25:56 1.2
--- dhcp-rtt.c 2002/02/02 01:07:20 1.3
***************
*** 54,64 ****
{
time_t milliseconds;
milliseconds = SECS_TO_MSECS(rtt->timeout.tv_sec);
milliseconds += rtt->timeout.tv_usec;
milliseconds *= 2;
! rtt->timeout = make_timeval(milliseconds);
return;
}
--- 54,75 ----
{
time_t milliseconds;
+ int rand_value;
milliseconds = SECS_TO_MSECS(rtt->timeout.tv_sec);
milliseconds += rtt->timeout.tv_usec;
milliseconds *= 2;
+
+ rand_value = rand()%MILLISECOND_RAND_TIMEOUT;
! /* Add or subtract random small value. */
! if(rand()%10 > 5) /* we're safe adding. */
! milliseconds += rand()%MILLISECOND_RAND_TIMEOUT;
! else { /* we're not safe subtracting. don't go below 0. */
+ if(rand_value < milliseconds)
+ milliseconds -= rand_value;
+ }
+
+ rtt->timeout = make_timeval(milliseconds);
return;
}
|