refactor(irtt-stats): improve duration safety by handling negative time offsets

This commit is contained in:
Nils Andreas Svee committed 2026-05-13 12:44:35 +07:00
1 parent 0a66f6fb49
commit f05b7cceb2
1 file changed
+5 -5
+5 -5
View File
@@ -414,9 +414,9 @@ impl CoreStats {
Some(IpdvPairUpdate { Some(IpdvPairUpdate {
previous_seq, previous_seq,
current_seq, current_seq,
rtt_ipdv: duration_from_i128_ns(rtt_ipdv), rtt_ipdv: duration_from_non_negative_i128_ns(rtt_ipdv)?,
send_ipdv: send_ipdv.map(duration_from_i128_ns), send_ipdv: send_ipdv.map(duration_from_non_negative_i128_ns)?,
receive_ipdv: receive_ipdv.map(duration_from_i128_ns), receive_ipdv: receive_ipdv.map(duration_from_non_negative_i128_ns)?,
}) })
} }
@@ -858,8 +858,8 @@ fn abs_i128_ns(value: i128) -> i128 {
value.saturating_abs() value.saturating_abs()
} }
fn duration_from_i128_ns(value: i128) -> Duration { fn duration_from_non_negative_i128_ns(value: i128) -> Option<Duration> {
Duration::from_nanos(u64::try_from(value).unwrap_or(u64::MAX)) u64::try_from(value).ok().map(Duration::from_nanos)
} }
#[cfg(test)] #[cfg(test)]