From 48d0588337cde24bfe3c3725fbd6cd53a2d140c8 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Tue, 5 Nov 2019 11:38:45 +0100 Subject: [PATCH] Use SystemTime for the certificate's time Also don't use mem::forget() for the updater, because who knows, Rust optimizations may be too aggressive. Maybe Fixes #13 --- src/anonymized_dns.rs | 2 +- src/dnscrypt_certs.rs | 7 +++++-- src/main.rs | 6 ++---- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/anonymized_dns.rs b/src/anonymized_dns.rs index 11612bb..ab61b1c 100644 --- a/src/anonymized_dns.rs +++ b/src/anonymized_dns.rs @@ -1,5 +1,5 @@ -use crate::*; use crate::errors::*; +use crate::*; use byteorder::{BigEndian, ByteOrder}; use siphasher::sip128::Hasher128; diff --git a/src/dnscrypt_certs.rs b/src/dnscrypt_certs.rs index 3717f66..6275c4f 100644 --- a/src/dnscrypt_certs.rs +++ b/src/dnscrypt_certs.rs @@ -6,17 +6,20 @@ use crate::globals::*; use byteorder::{BigEndian, ByteOrder}; use clockpro_cache::ClockProCache; -use coarsetime::Clock; use parking_lot::Mutex; use std::mem; use std::slice; use std::sync::Arc; +use std::time::SystemTime; pub const DNSCRYPT_CERTS_TTL: u32 = 86400; pub const DNSCRYPT_CERTS_RENEWAL: u32 = 28800; fn now() -> u32 { - Clock::recent_since_epoch().as_secs() as u32 + SystemTime::now() + .duration_since(SystemTime::UNIX_EPOCH) + .expect("The clock is completely off") + .as_secs() as _ } #[derive(Debug, Default, Clone, Serialize, Deserialize)] diff --git a/src/main.rs b/src/main.rs index ce95906..324f727 100644 --- a/src/main.rs +++ b/src/main.rs @@ -65,7 +65,6 @@ use std::collections::vec_deque::VecDeque; use std::convert::TryFrom; use std::fs::File; use std::io::prelude::*; -use std::mem; use std::net::SocketAddr; use std::path::Path; use std::sync::atomic::{AtomicU32, Ordering}; @@ -461,9 +460,7 @@ fn main() -> Result<(), Error> { .init(); crypto::init()?; - let updater = coarsetime::Updater::new(1000).start()?; - mem::forget(updater); - + let time_updater = coarsetime::Updater::new(1000).start()?; let matches = app_from_crate!() .arg( Arg::with_name("config") @@ -694,5 +691,6 @@ fn main() -> Result<(), Error> { .map(|_| ()), ); runtime.block_on(updater.run()); + time_updater.stop()?; Ok(()) }