diff --git a/src/emulation.rs b/src/emulation.rs index fe9706f..7347153 100644 --- a/src/emulation.rs +++ b/src/emulation.rs @@ -58,12 +58,15 @@ impl Emulation { } } _ = interval.tick() => { - for (addr, last_response) in last_response.iter() { - if last_response.elapsed() > Duration::from_secs(5) { + let _ = last_response.retain(|addr,instant| { + if instant.elapsed() > Duration::from_secs(5) { log::warn!("{addr} is not responding, releasing keys!"); emulation_proxy.release_keys(*addr); + false + } else { + true } - } + }); } _ = server.cancelled() => break, }