Merge branch 'inclusive' into 'main'

rng ranges: Use inclusive Duration ranges in several places

See merge request tpo/core/arti!1385
This commit is contained in:
Nick Mathewson 2023-07-07 17:07:58 +00:00
commit 7d1c8dfde0
4 changed files with 4 additions and 4 deletions

View File

@ -154,7 +154,7 @@ impl<R: Runtime> TcpProvider for BrokenTcpProvider<R> {
Ok(BreakableTcpStream::Present(conn))
}
Action::Fail(dur, kind) => {
let d = thread_rng().gen_range(Duration::from_secs(0)..dur);
let d = thread_rng().gen_range(Duration::from_secs(0)..=dur);
self.inner.sleep(d).await;
Err(IoError::new(kind, anyhow::anyhow!("intentional failure")))
}

View File

@ -1477,7 +1477,7 @@ impl<B: AbstractCircBuilder + 'static, R: Runtime> AbstractCircMgr<B, R> {
// padding.
use rand::Rng;
let mut rng = rand::thread_rng();
rng.gen_range(timings.not_learning..timings.not_learning * 2)
rng.gen_range(timings.not_learning..=timings.not_learning * 2)
}
}
}

View File

@ -1156,7 +1156,7 @@ impl<R: Runtime> DirState for GetMicrodescsState<R> {
fn pick_download_time(lifetime: &Lifetime) -> SystemTime {
let (lowbound, uncertainty) = client_download_range(lifetime);
let zero = Duration::new(0, 0);
lowbound + rand::thread_rng().gen_range(zero..uncertainty)
lowbound + rand::thread_rng().gen_range(zero..=uncertainty)
}
/// Based on the lifetime for a consensus, return the time range during which

View File

@ -12,7 +12,7 @@ use std::time::{Duration, SystemTime};
/// an attempt to make some kinds of traffic analysis attacks a bit
/// harder for an attacker who can read our state after the fact.
pub(crate) fn randomize_time<R: Rng>(rng: &mut R, when: SystemTime, max: Duration) -> SystemTime {
let offset = rng.gen_range(Duration::ZERO..max);
let offset = rng.gen_range(Duration::ZERO..=max);
let random = when
.checked_sub(offset)
.unwrap_or(SystemTime::UNIX_EPOCH)