diff options
author | Sergey <mailgrishy@gmail.com> | 2020-01-03 19:31:10 +0300 |
---|---|---|
committer | Aram Drevekenin <aram@poor.dev> | 2020-01-03 17:31:10 +0100 |
commit | 5e2cb564705e635c63c866d2adda460b387ef0ad (patch) | |
tree | 7c23d9b171bcda3e145c5b0fc817b699277905ff /src/os/shared.rs | |
parent | b08d677dd520d9f77fedef9682fc21bbb2e1d2bb (diff) |
fix(network): skip interfaces with error (#49)
Diffstat (limited to 'src/os/shared.rs')
-rw-r--r-- | src/os/shared.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/os/shared.rs b/src/os/shared.rs index 3a9aeee..2ab35b7 100644 --- a/src/os/shared.rs +++ b/src/os/shared.rs @@ -38,7 +38,11 @@ fn get_datalink_channel( match datalink::channel(interface, config) { Ok(Ethernet(_tx, rx)) => Ok(rx), Ok(_) => failure::bail!("Unknown interface type"), - Err(e) => failure::bail!("Failed to listen on network interface: {}", e), + Err(e) => failure::bail!( + "Failed to listen on network interface {}: {}", + interface.name, + e + ), } } @@ -94,7 +98,8 @@ pub fn get_input( let network_frames = network_interfaces .iter() .map(|iface| get_datalink_channel(iface)) - .collect::<Result<Vec<_>, _>>()?; + .filter_map(Result::ok) + .collect::<Vec<_>>(); let keyboard_events = Box::new(KeyboardEvents); let write_to_stdout = create_write_to_stdout(); |