aboutsummaryrefslogtreecommitdiffstats
path: root/src/time.rs
diff options
context:
space:
mode:
authorJake McGinty <me@jake.su>2018-02-23 16:54:09 +0000
committerJake McGinty <me@jake.su>2018-02-24 14:29:28 +0000
commitf0bd41ab3f5a04ab5382f2dc91561ac95d240890 (patch)
treedd294d53c7c5489331433aac56e00b9d1d5c300b /src/time.rs
parentsimplify timer calls (diff)
downloadwireguard-rs-f0bd41ab3f5a04ab5382f2dc91561ac95d240890.tar.xz
wireguard-rs-f0bd41ab3f5a04ab5382f2dc91561ac95d240890.zip
rekey timer re-work for correctness
Diffstat (limited to 'src/time.rs')
-rw-r--r--src/time.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/time.rs b/src/time.rs
index 9653965..0f1322c 100644
--- a/src/time.rs
+++ b/src/time.rs
@@ -34,9 +34,10 @@ impl From<[u8; 12]> for Tai64n {
}
}
+// TODO I don't like this.
lazy_static! {
- pub static ref FOREVER: Duration = SystemTime::now().duration_since(UNIX_EPOCH).unwrap();
- pub static ref FOREVER_AGO: Instant = Instant::now() - *FOREVER;
+ pub static ref FOREVER: Duration = Duration::from_secs(0xffffffff);
+ pub static ref FOREVER_AGO: Instant = Instant::now() - Duration::from_secs(0xffffffff);
}
pub struct Timestamp(Option<Instant>);
@@ -72,6 +73,9 @@ impl Timestamp {
}
pub fn elapsed(&self) -> Duration {
- Instant::now().duration_since(**self)
+ match self.0 {
+ Some(ref time) => Instant::now().duration_since(*time),
+ None => *FOREVER,
+ }
}
}