diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-11-15 18:30:35 +0100 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-11-15 18:30:35 +0100 |
commit | 8da7f7be442f04cdc94eb49b2762e776904f1e55 (patch) | |
tree | cbf429f50c72fcfc25874b59a055a41f0e741766 /src | |
parent | 8897cc6ec411d519a6446073c0da42398ba1bea1 (diff) |
move error handling to binary
Diffstat (limited to 'src')
-rw-r--r-- | src/error.rs | 23 | ||||
-rw-r--r-- | src/lib.rs | 2 | ||||
-rw-r--r-- | src/main.rs | 24 |
3 files changed, 22 insertions, 27 deletions
diff --git a/src/error.rs b/src/error.rs deleted file mode 100644 index 551c94e..0000000 --- a/src/error.rs +++ /dev/null @@ -1,23 +0,0 @@ -use thiserror::Error; - -use std::io; - -#[derive(Debug, Error)] -pub enum Error { - #[error("failed to send whole packet (expected {0}, got {1})")] - PartialSend(usize, usize), - - #[error("io error: {0}")] - Io(#[from] io::Error), - - #[error("dns_message_parser decode error: {0}")] - DnsDecode(#[from] dns_message_parser::DecodeError), - #[error("dns_message_parser encode error: {0}")] - DnsEncode(#[from] dns_message_parser::EncodeError), - #[error("serde_json error: {0}")] - SerdeJson(#[from] serde_json::Error), - #[error("hickory_proto error: {0}")] - HickoryProto(#[from] hickory_proto::error::ProtoError), -} - -pub type Result<T> = std::result::Result<T, Error>; diff --git a/src/lib.rs b/src/lib.rs deleted file mode 100644 index 7edf3bf..0000000 --- a/src/lib.rs +++ /dev/null @@ -1,2 +0,0 @@ -mod error; -pub use error::*; diff --git a/src/main.rs b/src/main.rs index b9b1076..587c475 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,6 @@ -use rsdsl_dnsd::{Error, Result}; - use std::cell::RefCell; use std::fs::{self, File}; +use std::io; use std::net::{IpAddr, SocketAddr, UdpSocket}; use std::str::FromStr; use std::sync::{Arc, RwLock}; @@ -17,9 +16,30 @@ use hickory_proto::rr::Name; use ipnet::IpNet; use rsdsl_dhcp4d::lease::Lease; use signal_hook::{consts::SIGUSR1, iterator::Signals}; +use thiserror::Error; const UPSTREAM: &str = "[2620:fe::fe]:53"; +#[derive(Debug, Error)] +pub enum Error { + #[error("failed to send whole packet (expected {0}, got {1})")] + PartialSend(usize, usize), + + #[error("io error: {0}")] + Io(#[from] io::Error), + + #[error("dns_message_parser decode error: {0}")] + DnsDecode(#[from] dns_message_parser::DecodeError), + #[error("dns_message_parser encode error: {0}")] + DnsEncode(#[from] dns_message_parser::EncodeError), + #[error("serde_json error: {0}")] + SerdeJson(#[from] serde_json::Error), + #[error("hickory_proto error: {0}")] + HickoryProto(#[from] hickory_proto::error::ProtoError), +} + +pub type Result<T> = std::result::Result<T, Error>; + fn refresh_leases(cache: Arc<RwLock<Vec<Lease>>>) -> Result<()> { let mut signals = Signals::new([SIGUSR1])?; for _ in signals.forever() { |