From: Miroslav Lichvar Date: Fri, 13 Nov 2015 15:08:02 +0000 (+0100) Subject: sched: update timeout randomization X-Git-Tag: 2.3-pre1~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dfc96e4702164a5daa0e8d554d419843b10f353c;p=thirdparty%2Fchrony.git sched: update timeout randomization Use UTI_GetRandomBytes() instead of random() to calculate the random part of the timeout. This was the only remaining use of random() in the code and the srandom() call can be removed. --- diff --git a/sched.c b/sched.c index f9720c07..773aab8b 100644 --- a/sched.c +++ b/sched.c @@ -150,8 +150,6 @@ SCH_Initialise(void) LCL_ReadRawTime(&last_select_ts_raw); last_select_ts = last_select_ts_raw; - srandom(last_select_ts.tv_sec << 16 ^ last_select_ts.tv_usec); - initialised = 1; } @@ -376,7 +374,10 @@ SCH_AddTimeoutInClass(double min_delay, double separation, double randomness, assert(class < SCH_NumberOfClasses); if (randomness > 0.0) { - r = random() % 0xffff / (0xffff - 1.0) * randomness + 1.0; + uint16_t rnd; + + UTI_GetRandomBytes(&rnd, sizeof (rnd)); + r = rnd / (double)0xffff * randomness + 1.0; min_delay *= r; separation *= r; }