diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-11-13 14:04:58 +0100 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-11-13 14:04:58 +0100 |
commit | 0ea1e08fa5b9ac52339d1c35a2995a00fdcf4413 (patch) | |
tree | 77a121623ab6e33f32ca3f479b082c8b0335b811 | |
parent | 6ce9838181f067803007347ffe5f16d91718731c (diff) |
tidy errors
Includes removal of unused error variants as well as better messages.
-rw-r--r-- | src/error.rs | 32 | ||||
-rw-r--r-- | src/main.rs | 4 | ||||
-rw-r--r-- | src/util.rs | 2 |
3 files changed, 17 insertions, 21 deletions
diff --git a/src/error.rs b/src/error.rs index d67a9fd..348fb47 100644 --- a/src/error.rs +++ b/src/error.rs @@ -1,4 +1,4 @@ -use std::{ffi, io, net, time}; +use std::{io, net, time}; use tokio::sync::watch; @@ -8,35 +8,31 @@ use thiserror::Error; pub enum Error { #[error("lease has been obtained but doesn't exist")] LeaseNotFound, - #[error("no client duid")] + #[error("server did not include a client id option")] NoClientId, - #[error("no hexdump data")] + #[error("can't hexdump empty slice")] NoData, - #[error("no domain name servers")] + #[error("server did not include a domain name servers option")] NoDns, - #[error("no ia_pd")] + #[error("server did not include an ia_pd option")] NoIAPD, - #[error("no ia_pd status code")] - NoIAPDStatus, - #[error("no ia_prefix")] + #[error("server did not include an ia_prefix option in the ia_pd option")] NoIAPrefix, - #[error("no server duid")] + #[error("server did not include a server id option")] NoServerId, - #[error("incomplete transmission")] - PartialSend, - #[error("too few domain name servers (got {0}, need at least 2)")] + #[error("unable to send full packet (expected {0}, got {1})")] + PartialSend(usize, usize), + #[error("too few domain name servers (expected at least 2, got {0})")] TooFewDns(usize), - #[error("received packet with wrong client duid (got {0}, want {1})")] + #[error("received packet with wrong client duid (expected {0}, got {1})")] WrongClientId(String, String), - #[error("received packet with wrong server duid (got {0}, want {1})")] + #[error("received packet with wrong server duid (expected {0}, got {1})")] WrongServerId(String, String), - #[error("parse address: {0}")] + #[error("can't parse network address: {0}")] AddrParse(#[from] net::AddrParseError), - #[error("io: {0}")] + #[error("io error: {0}")] Io(#[from] io::Error), - #[error("nul: {0}")] - Nul(#[from] ffi::NulError), #[error("system time monotonicity error: {0}")] SystemTime(#[from] time::SystemTimeError), diff --git a/src/main.rs b/src/main.rs index 1786ff7..ba4ad0e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -231,8 +231,8 @@ fn handle(dhcp6: &mut Dhcp6, dhcp6c: &mut Dhcp6c, buf: &[u8]) -> Result<()> { if client_id != dhcp6.duid.as_ref() { return Err(Error::WrongClientId( - hexdump(client_id)?, hexdump(dhcp6.duid.as_ref())?, + hexdump(client_id)?, )); } @@ -240,8 +240,8 @@ fn handle(dhcp6: &mut Dhcp6, dhcp6c: &mut Dhcp6c, buf: &[u8]) -> Result<()> { dhcp6.server_id = server_id.to_vec(); } else if server_id != &dhcp6.server_id { return Err(Error::WrongServerId( - hexdump(server_id)?, hexdump(&dhcp6.server_id)?, + hexdump(server_id)?, )); } diff --git a/src/util.rs b/src/util.rs index 280466a..e226ca6 100644 --- a/src/util.rs +++ b/src/util.rs @@ -32,7 +32,7 @@ pub async fn send_to_exact<A: ToSocketAddrs>( ) -> Result<()> { let n = sock.send_to(buf, target).await?; if n != buf.len() { - Err(Error::PartialSend) + Err(Error::PartialSend(buf.len(), n)) } else { Ok(()) } |