From aa9a8983485361a0f50afad7e90641eab253fafe Mon Sep 17 00:00:00 2001 From: dvermd <888-dvermd@users.noreply.git.duniter.org> Date: Fri, 20 Dec 2019 22:38:25 +0100 Subject: [PATCH] [fix] ws2p-protocol: #134 remove unwrap and deny its use --- lib/modules/ws2p/ws2p-protocol/src/controller.rs | 9 ++++----- .../ws2p/ws2p-protocol/src/controller/meta_datas.rs | 10 +++++----- .../ws2p/ws2p-protocol/src/controller/on_message.rs | 10 ++++------ .../src/controller/on_message/secret_flags.rs | 1 - lib/modules/ws2p/ws2p-protocol/src/lib.rs | 2 ++ 5 files changed, 15 insertions(+), 17 deletions(-) diff --git a/lib/modules/ws2p/ws2p-protocol/src/controller.rs b/lib/modules/ws2p/ws2p-protocol/src/controller.rs index 23d13235..04756a94 100644 --- a/lib/modules/ws2p/ws2p-protocol/src/controller.rs +++ b/lib/modules/ws2p/ws2p-protocol/src/controller.rs @@ -31,8 +31,7 @@ use durs_ws2p_messages::v2::connect::WS2Pv2ConnectType; use durs_ws2p_messages::WS2PMessage; use failure::Fail; use std::sync::mpsc::{Receiver, SendError, Sender}; -use std::time::SystemTime; -use unwrap::unwrap; +use std::time::Instant; #[derive(Copy, Clone, Debug, Hash)] /// WS2P Controller unique identitier @@ -141,10 +140,10 @@ impl WebsocketActionOrder { impl<M: ModuleMessage> WS2PController<M> { /// Check timeouts pub fn check_timeouts(&mut self) -> Option<WebsocketActionOrder> { - let now = SystemTime::now(); + let now = Instant::now(); if self.meta_datas.state == WS2PConnectionState::Established { - if unwrap!(now.duration_since(self.meta_datas.last_mess_time)).as_secs() + if now.duration_since(self.meta_datas.last_mess_time).as_secs() > *constants::WS2P_EXPIRE_TIMEOUT_IN_SECS { Some(WebsocketActionOrder { @@ -157,7 +156,7 @@ impl<M: ModuleMessage> WS2PController<M> { } else { None } - } else if unwrap!(now.duration_since(self.meta_datas.creation_time)).as_secs() + } else if now.duration_since(self.meta_datas.creation_time).as_secs() > *constants::WS2P_NEGOTIATION_TIMEOUT_IN_SECS { Some(WebsocketActionOrder { diff --git a/lib/modules/ws2p/ws2p-protocol/src/controller/meta_datas.rs b/lib/modules/ws2p/ws2p-protocol/src/controller/meta_datas.rs index 34f9b267..8bac4b6a 100644 --- a/lib/modules/ws2p/ws2p-protocol/src/controller/meta_datas.rs +++ b/lib/modules/ws2p/ws2p-protocol/src/controller/meta_datas.rs @@ -27,7 +27,7 @@ use durs_network_documents::NodeFullId; use durs_ws2p_messages::v2::api_features::WS2PFeatures; use durs_ws2p_messages::v2::connect::WS2Pv2ConnectType; use log::error; -use std::time::SystemTime; +use std::time::Instant; #[derive(Debug)] /// WS2p Connection meta datas @@ -41,13 +41,13 @@ pub struct WS2PControllerMetaDatas { /// Currency name pub currency: CurrencyName, /// Controller creation time - pub creation_time: SystemTime, + pub creation_time: Instant, /// Connection features pub features: Option<WS2PFeatures>, /// Signator pub signator: SignatorEnum, /// Timestamp of last received message - pub last_mess_time: SystemTime, + pub last_mess_time: Instant, /// Local node properties pub local_node: MySelfWs2pNode, /// Remote connect type @@ -81,9 +81,9 @@ impl WS2PControllerMetaDatas { connect_type, count_invalid_msgs: 0, currency, - creation_time: SystemTime::now(), + creation_time: Instant::now(), features: None, - last_mess_time: SystemTime::now(), + last_mess_time: Instant::now(), local_node, remote_connect_type: None, remote_node: None, diff --git a/lib/modules/ws2p/ws2p-protocol/src/controller/on_message.rs b/lib/modules/ws2p/ws2p-protocol/src/controller/on_message.rs index e89760f7..41c7561a 100644 --- a/lib/modules/ws2p/ws2p-protocol/src/controller/on_message.rs +++ b/lib/modules/ws2p/ws2p-protocol/src/controller/on_message.rs @@ -33,19 +33,17 @@ use durs_ws2p_messages::WS2PMessage; use log::error; use std::ops::Deref; use std::thread; -use std::time::{Duration, SystemTime}; +use std::time::{Duration, Instant}; pub fn process<M: ModuleMessage>( controller: &mut WS2PController<M>, msg: WebsocketMessage, ) -> Result<Option<WebsocketActionOrder>, WS2PControllerProcessError> { // Update last_mess_time - controller.meta_datas.last_mess_time = SystemTime::now(); + controller.meta_datas.last_mess_time = Instant::now(); // Spam ? - if SystemTime::now() - .duration_since(controller.meta_datas.last_mess_time) - .unwrap() + if controller.meta_datas.last_mess_time.elapsed() > Duration::new(*constants::WS2P_SPAM_INTERVAL_IN_MILLI_SECS, 0) { if controller.meta_datas.spam_interval { @@ -63,7 +61,7 @@ pub fn process<M: ModuleMessage>( thread::sleep(Duration::from_millis( *constants::WS2P_SPAM_SLEEP_TIME_IN_SEC, )); - controller.meta_datas.last_mess_time = SystemTime::now(); + controller.meta_datas.last_mess_time = Instant::now(); return Ok(None); } diff --git a/lib/modules/ws2p/ws2p-protocol/src/controller/on_message/secret_flags.rs b/lib/modules/ws2p/ws2p-protocol/src/controller/on_message/secret_flags.rs index a85b5dc8..a7d3d61b 100644 --- a/lib/modules/ws2p/ws2p-protocol/src/controller/on_message/secret_flags.rs +++ b/lib/modules/ws2p/ws2p-protocol/src/controller/on_message/secret_flags.rs @@ -22,7 +22,6 @@ use durs_module::ModuleMessage; //use durs_ws2p_messages::v2::connect::WS2Pv2ConnectType; use durs_ws2p_messages::v2::secret_flags::WS2Pv2SecretFlagsMsg; //use log::error; -//use unwrap::unwrap; pub fn process_ws2p_v2p_secret_flags_msg<M: ModuleMessage>( controller: &mut WS2PController<M>, diff --git a/lib/modules/ws2p/ws2p-protocol/src/lib.rs b/lib/modules/ws2p/ws2p-protocol/src/lib.rs index 2f0a9399..69ac1ed5 100644 --- a/lib/modules/ws2p/ws2p-protocol/src/lib.rs +++ b/lib/modules/ws2p/ws2p-protocol/src/lib.rs @@ -17,6 +17,8 @@ #![allow(clippy::large_enum_variant)] #![deny( + clippy::option_unwrap_used, + clippy::result_unwrap_used, missing_docs, missing_debug_implementations, missing_copy_implementations, -- GitLab