diff options
author | Jake McGinty <me@jake.su> | 2018-02-23 16:54:09 +0000 |
---|---|---|
committer | Jake McGinty <me@jake.su> | 2018-02-24 14:29:28 +0000 |
commit | f0bd41ab3f5a04ab5382f2dc91561ac95d240890 (patch) | |
tree | dd294d53c7c5489331433aac56e00b9d1d5c300b /src/time.rs | |
parent | simplify timer calls (diff) | |
download | wireguard-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.rs | 10 |
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, + } } } |