[Dhcp-agent-commits] CVS: dhcp-agent dhcp-rtt.c,1.2,1.3
Status: Alpha
Brought to you by:
actmodern
From: Thamer Al-H. <act...@us...> - 2002-02-02 01:07:24
|
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; } |