diff options
author | Tobbeman <Tobbeman1994@gmail.com> | 2020-01-03 22:58:36 +0100 |
---|---|---|
committer | Aram Drevekenin <aram@poor.dev> | 2020-01-03 22:58:36 +0100 |
commit | 53dc3be3880b0d1df2e6be05bd24c846a4df38d0 (patch) | |
tree | 2821ce20198dcf3927521502e27ca3aa6d947d97 /src/os/shared.rs | |
parent | 39d1a73469636c481bc9532d1c4d07518d699121 (diff) |
chore(code): Add error message suggesting sudo if permission error (#59) (#67)
* chore(code): Add error message suggesting sudo if permission error (#59)
I decided to use a nested match statement for further handling
of the error, since it appears to be more rustesqe than a
if statement.
* fix(debugging): remove message
Co-authored-by: Aram Drevekenin <aram@poor.dev>
Diffstat (limited to 'src/os/shared.rs')
-rw-r--r-- | src/os/shared.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/os/shared.rs b/src/os/shared.rs index 5245de7..8fd1300 100644 --- a/src/os/shared.rs +++ b/src/os/shared.rs @@ -39,11 +39,16 @@ 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 {}: {}", - interface.name, - e - ), + Err(e) => { + match e.kind() { + std::io::ErrorKind::PermissionDenied => failure::bail!("Failed to listen on network interface due to permission error. Try running with sudo"), + _ => failure::bail!( + "Failed to listen on network interface {}: {}", + interface.name, + e + ), + } + } } } |