aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-08-17 15:37:45 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-08-17 15:37:45 +0200
commitdf47e5f96a680f8052ab238e985d683df386368b (patch)
tree95a49d5f847e53e1a2dd30ad0f08889f3092959b
parent9a1f1e79810f2837fc9d7e22e6ce6547f29ec7c3 (diff)
Revert "inexistent interfaces: report no address instead of error"HEADmaster
This reverts commit 9a1f1e79810f2837fc9d7e22e6ce6547f29ec7c3.
-rw-r--r--src/lib.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 26af39a..2d47db2 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -15,6 +15,7 @@ use tokio::runtime::Runtime;
pub enum Error {
RtNetlink(rtnetlink::Error),
IoError(std::io::Error),
+ LinkNotFound(Option<String>),
}
impl std::error::Error for Error {}
@@ -24,6 +25,10 @@ impl fmt::Display for Error {
match self {
Self::RtNetlink(e) => write!(fmt, "rtnetlink error: {}", e),
Self::IoError(e) => write!(fmt, "rtnetlink connection failed: {}", e),
+ Self::LinkNotFound(filter) => match filter {
+ Some(link) => write!(fmt, "link not found: {}", link),
+ None => write!(fmt, "no links found"),
+ },
}
}
}
@@ -166,5 +171,9 @@ async fn internal_addresses(filter: Option<String>) -> Result<Vec<IpNet>> {
num_links.add_assign(1);
}
- Ok(link_addrs)
+ if num_links > 0 {
+ Ok(link_addrs)
+ } else {
+ Err(Error::LinkNotFound(filter))
+ }
}