Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,042 changes: 1,528 additions & 514 deletions Cargo.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ BSD systems still need a bit of work; work that we could really use your help wi

## Acknowledgements

ZeroNS demands a lot out of the [trust-dns](https://github.com/bluejekyll/trust-dns) toolkit and I personally am grateful such a library suite exists. It made my job very easy.
ZeroNS demands a lot out of the [hickory-dns](https://github.com/hickory-dns/hickory-dns) toolkit and I personally am grateful such a library suite exists. It made my job very easy.

## License

Expand Down
3 changes: 2 additions & 1 deletion tests/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,11 @@ path = "integration.rs"
anyhow = "1.0.89"
async-trait = "0.1.83"
ctor = "0.2.8"
hickory-dns = { version = "0.25.2", features = ["dnssec-ring", "tls-ring", "https-ring", "quic-ring", "h3-ring"] }
hickory-resolver = { version = "0.25.2", features = ["dnssec-ring", "tls-ring", "https-ring", "quic-ring", "h3-ring"] }
ipnetwork = "0.20.0"
rand = "0.8.5"
serde = { version = "1.0.210", features = ["derive"] }
serde_json = "1.0.128"
tokio = { version = "1.40.0", features = ["rt-multi-thread"] }
tracing = "0.1.40"
trust-dns-resolver = "0.22.0"
8 changes: 4 additions & 4 deletions tests/integration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ mod sixplane {

use rand::prelude::SliceRandom;
use tracing::info;
use trust_dns_resolver::{IntoName, Name};
use hickory_resolver::{IntoName, Name};

use crate::service::{
resolver::Lookup, to_ip::ToIPv6Vec, utils::HostsType, Service, ServiceConfig,
Expand Down Expand Up @@ -159,7 +159,7 @@ mod rfc4193 {

use rand::{prelude::SliceRandom, thread_rng};
use tracing::info;
use trust_dns_resolver::{IntoName, Name};
use hickory_resolver::{IntoName, Name};
use zeronsd::{addresses::Calculator, hosts::parse_hosts};

use crate::service::{
Expand Down Expand Up @@ -385,7 +385,7 @@ mod ipv4 {

use std::str::FromStr;
use tracing::info;
use trust_dns_resolver::Name;
use hickory_resolver::Name;

use crate::service::{
resolver::Lookup,
Expand Down Expand Up @@ -576,7 +576,7 @@ mod ipv4 {
mod all {
use rand::prelude::SliceRandom;
use tracing::info;
use trust_dns_resolver::{IntoName, Name};
use hickory_resolver::{IntoName, Name};

use zeronsd::{addresses::Calculator, hosts::parse_hosts, utils::TEST_HOSTS_DIR};

Expand Down
24 changes: 17 additions & 7 deletions tests/service/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,13 @@ use std::{
};

use async_trait::async_trait;
use hickory_resolver::{
config::{NameServerConfig, ResolverConfig, ResolverOpts},
name_server::TokioConnectionProvider,
};
use ipnetwork::IpNetwork;
use rand::prelude::{IteratorRandom, SliceRandom};
use tracing::info;
use trust_dns_resolver::config::{NameServerConfig, ResolverConfig, ResolverOpts};

use zeronsd::{
addresses::Calculator,
Expand Down Expand Up @@ -136,23 +139,30 @@ impl Service {
resolver_config.add_name_server(NameServerConfig {
bind_addr: None,
socket_addr: socket,
protocol: trust_dns_resolver::config::Protocol::Udp,
protocol: hickory_resolver::proto::xfer::Protocol::Udp,
tls_dns_name: None,
trust_nx_responses: true,
trust_negative_responses: true,
http_endpoint: None,
});

let mut opts = ResolverOpts::default();
opts.attempts = 10;
opts.cache_size = 0;
opts.rotate = true;
opts.use_hosts_file = false;
opts.server_ordering_strategy =
hickory_resolver::config::ServerOrderingStrategy::RoundRobin;
opts.use_hosts_file = hickory_resolver::config::ResolveHosts::Never;
opts.positive_min_ttl = Some(Duration::new(0, 0));
opts.positive_max_ttl = Some(Duration::new(0, 0));
opts.negative_min_ttl = Some(Duration::new(0, 0));
opts.negative_max_ttl = Some(Duration::new(0, 0));

resolvers.push(Arc::new(
trust_dns_resolver::TokioAsyncResolver::tokio(resolver_config, opts).unwrap(),
hickory_resolver::Resolver::builder_with_config(
resolver_config,
TokioConnectionProvider::default(),
)
.with_options(opts)
.build(),
));
}

Expand Down Expand Up @@ -240,7 +250,7 @@ impl Service {
for ip in listen_ips.clone() {
let server = Server::new(ztauthority.to_owned());
info!("Serving {}", ip.clone());
tokio::spawn(server.listen(ip.ip(), Duration::new(1, 0), None, None, None));
tokio::spawn(server.listen(ip.ip(), Duration::new(1, 0), None));
}

listen_ips
Expand Down
13 changes: 5 additions & 8 deletions tests/service/resolver.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,9 @@ use std::{
};

use async_trait::async_trait;
use trust_dns_resolver::{
name_server::{GenericConnection, GenericConnectionProvider, TokioRuntime},
AsyncResolver,
};
use hickory_resolver::{name_server::GenericConnector, proto::runtime::TokioRuntimeProvider};

pub type Resolver = AsyncResolver<GenericConnection, GenericConnectionProvider<TokioRuntime>>;
pub type Resolver = hickory_resolver::Resolver<GenericConnector<TokioRuntimeProvider>>;

pub type Resolvers = Vec<Arc<Resolver>>;

Expand All @@ -28,7 +25,7 @@ impl Lookup for Resolver {
.unwrap()
.as_lookup()
.record_iter()
.map(|r| r.data().unwrap().clone().into_a().unwrap())
.map(|r| r.data().clone().into_a().unwrap().into())
.collect()
}

Expand All @@ -38,7 +35,7 @@ impl Lookup for Resolver {
.unwrap()
.as_lookup()
.record_iter()
.map(|r| r.data().unwrap().clone().into_aaaa().unwrap())
.map(|r| r.data().clone().into_aaaa().unwrap().into())
.collect()
}

Expand All @@ -48,7 +45,7 @@ impl Lookup for Resolver {
.unwrap()
.as_lookup()
.record_iter()
.map(|r| r.data().unwrap().clone().into_ptr().unwrap().to_string())
.map(|r| r.data().clone().into_ptr().unwrap().to_string())
.collect()
}
}
22 changes: 7 additions & 15 deletions zeronsd/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,6 @@ regex = "^1.11.0"
anyhow = "^1.0.89"
clap = { version = "^3", features = ["derive"] }
ipnetwork = "^0.20.0"
trust-dns-client = { version = "^0.22", features = ["dns-over-openssl"] }
trust-dns-resolver = { version = "^0.22", features = ["tokio-runtime", "dns-over-openssl"] }
trust-dns-server = { version = "^0.22", features = ["dns-over-openssl"] }
trust-dns-proto = "^0.22"
tokio = { version = "1", features = ["full"] }
serde = "^1.0.210"
serde_json = "^1.0.128"
Expand All @@ -36,20 +32,19 @@ tracing = "^0.1.40"
tracing-log = "^0.2.0"
tracing-subscriber = "^0.3.18"
hex = "^0.4.3"
openssl = { version = "^0.10.70", features = ["v102", "v110"] }
async-trait = "^0.1.83"
lazy_static = "^1.5.0"
reqwest = "^0.12.8"

[features]
vendored-openssl = [ "openssl/vendored" ]
reqwest = "^0.13.2"
hickory-dns = { version = "0.25.2", features = ["dnssec-ring", "tls-ring", "https-ring", "quic-ring", "h3-ring"] }
hickory-resolver = { version = "0.25.2", features = ["dnssec-ring", "tls-ring", "https-ring", "quic-ring", "h3-ring"] }
hickory-client = { version = "0.25.2", features = ["dnssec-ring", "tls-ring", "https-ring", "quic-ring", "h3-ring"] }
hickory-server = { version = "0.25.2", features = ["dnssec-ring", "tls-ring", "https-ring", "quic-ring", "h3-ring"] }
rustls = { version = "^0.23.23", features = ["ring"] }
rustls-pemfile = "2.2.0"

[dev-dependencies]
ctor = ">=0"

[package.metadata.deb.variants.ubuntu22]
features = [ "vendored-openssl" ]

[package.metadata.deb]
copyright = "ZeroTier, Inc"

Expand All @@ -75,7 +70,4 @@ ZeroNS provides names that are a part of ZeroTier Central's

[package.metadata.generate-rpm]
assets = [ { source = "target/release/zeronsd", dest = "/usr/bin/zeronsd", mode = "755" } ]
features = [ "vendored-openssl" ]

[target.'cfg(windows)'.dependencies]
openssl = { version = ">=0", features = [ "vendored" ] }
Loading