diff --git a/Cargo.lock b/Cargo.lock index cfc3173..49ed24c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1299,6 +1299,7 @@ dependencies = [ "tungstenite", "url", "yaml-rust", + "yansi", ] [[package]] @@ -1583,6 +1584,12 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "yansi" +version = "1.0.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377" + [[package]] name = "zeroize" version = "1.6.0" diff --git a/Cargo.toml b/Cargo.toml index 4f20e88..1ed6724 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,6 +43,7 @@ signal = "0.7" tempfile = "3" criterion = { version = "0.5", features = ["html_reports"] } iai = "0.1" +yansi = "1.0.0-gamma" [features] default = ["nat", "websocket", "wizard"] diff --git a/src/engine/device_thread.rs b/src/engine/device_thread.rs index c2a09f3..c00b622 100644 --- a/src/engine/device_thread.rs +++ b/src/engine/device_thread.rs @@ -53,6 +53,7 @@ impl DeviceThread ExtrasThread { } pub fn run(mut self) { + panic!(); while self.iteration() {} } } diff --git a/src/engine/housekeep_thread.rs b/src/engine/housekeep_thread.rs index 3572122..d0c5a93 100644 --- a/src/engine/housekeep_thread.rs +++ b/src/engine/housekeep_thread.rs @@ -62,6 +62,7 @@ impl HousekeepThread { } pub fn run(mut self) { + panic!(); while self.iteration() {} } } diff --git a/src/engine/socket_thread.rs b/src/engine/socket_thread.rs index 904b13a..e815307 100644 --- a/src/engine/socket_thread.rs +++ b/src/engine/socket_thread.rs @@ -149,7 +149,9 @@ impl SocketThread(&mut self, addr: Addr) -> Result<(), Error> { @@ -233,6 +235,7 @@ impl SocketThread SocketThread self.coms.send_to(src, &mut self.buffer)?, + MessageResult::Reply => { + self.coms.send_to(src, &mut self.buffer)?; + self.buffer.clear(); + }, MessageResult::None => { self.buffer.clear(); } @@ -347,7 +353,8 @@ impl SocketThread SocketThread { self.pending_inits.insert(src, init); - self.coms.send_to(src, &mut self.buffer) + self.coms.send_to(src, &mut self.buffer)?; + self.buffer.clear(); + Ok(()) } Err(err) => { self.coms.traffic.count_invalid_protocol(self.buffer.len()); @@ -401,9 +410,10 @@ impl SocketThread SocketThread SocketThread Simulator

{ DebugLogger::set_node(self.next_port as usize); self.next_port += 1; let node = TestNode::new(&config, MockSocket::new(addr), MockDevice::new(), None, None).unwrap(); - DebugLogger::set_node(0); self.nodes.insert(addr, node); addr @@ -99,7 +102,7 @@ impl Simulator

{ #[allow(dead_code)] pub fn get_node(&mut self, addr: SocketAddr) -> &mut TestNode

{ let node = self.nodes.get_mut(&addr).unwrap(); - DebugLogger::set_node(node.get_num()); + //DebugLogger::set_node(node.get_num()); node }