summaryrefslogtreecommitdiffstats
path: root/src/os/shared.rs
diff options
context:
space:
mode:
authorSergey <mailgrishy@gmail.com>2020-01-03 19:31:10 +0300
committerAram Drevekenin <aram@poor.dev>2020-01-03 17:31:10 +0100
commit5e2cb564705e635c63c866d2adda460b387ef0ad (patch)
tree7c23d9b171bcda3e145c5b0fc817b699277905ff /src/os/shared.rs
parentb08d677dd520d9f77fedef9682fc21bbb2e1d2bb (diff)
fix(network): skip interfaces with error (#49)
Diffstat (limited to 'src/os/shared.rs')
-rw-r--r--src/os/shared.rs9
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();