mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-03 16:45:07 -05:00
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.
This commit is contained in:
7
sched.c
7
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user