Skip to content

Commit

Permalink
forwarders parse into ipaddr type directly
Browse files Browse the repository at this point in the history
  • Loading branch information
ragibkl committed Dec 29, 2023
1 parent 0e90865 commit ecb3bac
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 8 deletions.
16 changes: 16 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ clap = { version = "4.4.11", features = ["derive", "env"] }
hickory-resolver = "0.24.0"
hickory-server = "0.24.0"
idna = "0.5.0"
itertools = "0.12.0"
lazy_static = "1.4.0"
rand = "0.8.5"
regex = "1.10.2"
Expand Down
10 changes: 7 additions & 3 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@ mod fetch;
mod handler;
mod resolver;

use std::{net::SocketAddr, time::Duration};
use std::{
net::{IpAddr, SocketAddr},
time::Duration,
};

use clap::Parser;
use hickory_server::{proto::udp::UdpSocket, ServerFuture};
use itertools::Itertools;
use tokio::{net::TcpListener, signal};

use crate::{
Expand Down Expand Up @@ -49,7 +53,7 @@ struct Args {
value_delimiter = ',',
default_value = "8.8.8.8,8.8.4.4"
)]
forwarders: Vec<String>,
forwarders: Vec<IpAddr>,
}

#[tokio::main]
Expand All @@ -64,7 +68,7 @@ async fn main() -> anyhow::Result<()> {

tracing::info!("config_url: {config_url}");
tracing::info!("port: {port}");
tracing::info!("forwarders: [{}]", forwarders.join(", "));
tracing::info!("forwarders: [{}]", forwarders.iter().join(", "));

tracing::info!("Validating adblock config. config_url: {config_url}");
Config::load(&config_url).await?;
Expand Down
11 changes: 6 additions & 5 deletions src/resolver.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use std::net::SocketAddr;
use std::net::{IpAddr, SocketAddr};

use hickory_resolver::{
config::{NameServerConfig, Protocol, ResolverConfig, ResolverOpts},
Expand All @@ -9,14 +9,15 @@ use hickory_resolver::{
},
TokioAsyncResolver,
};
use itertools::Itertools;

pub fn create_resolver(forwarders: &[String]) -> TokioAsyncResolver {
tracing::info!("Setting up forwarders: {}", forwarders.to_vec().join(", "));
pub fn create_resolver(forwarders: &[IpAddr]) -> TokioAsyncResolver {
tracing::info!("Setting up forwarders: {}", forwarders.iter().join(", "));

let mut config = ResolverConfig::new();
forwarders.iter().for_each(|f| {
tracing::info!("Setting up forwarder: {f}");
let addr: SocketAddr = format!("{f}:53").parse().unwrap();
let addr = SocketAddr::new(*f, 53);
let name_server = NameServerConfig::new(addr, Protocol::Udp);
config.add_name_server(name_server);
});
Expand All @@ -32,7 +33,7 @@ pub struct Resolver {
}

impl Resolver {
pub fn new(forwarders: &[String]) -> Self {
pub fn new(forwarders: &[IpAddr]) -> Self {
let resolver = create_resolver(forwarders);
Self { resolver }
}
Expand Down

0 comments on commit ecb3bac

Please sign in to comment.