Update to hickory dns
This commit is contained in:
parent
84816c2d14
commit
6c86569215
|
@ -11,7 +11,7 @@ futures-io = "0.3.21"
|
||||||
jive = { git = "https://git.asonix.dog/safe-async/jive", features = [
|
jive = { git = "https://git.asonix.dog/safe-async/jive", features = [
|
||||||
"futures-io-compat",
|
"futures-io-compat",
|
||||||
] }
|
] }
|
||||||
trust-dns-proto = { version = "0.23.0", default-features = false }
|
hickory-proto = { version = "0.24.0", default-features = false }
|
||||||
trust-dns-resolver = { version = "0.23.0", default-features = false, features = [
|
hickory-resolver = { version = "0.24.0", default-features = false, features = [
|
||||||
"system-config",
|
"system-config",
|
||||||
] }
|
] }
|
||||||
|
|
33
src/lib.rs
33
src/lib.rs
|
@ -1,22 +1,21 @@
|
||||||
use futures_io::{AsyncRead, AsyncWrite};
|
use futures_io::{AsyncRead, AsyncWrite};
|
||||||
|
use hickory_resolver::config::{ResolverConfig, ResolverOpts};
|
||||||
use std::{
|
use std::{
|
||||||
future::Future,
|
future::Future,
|
||||||
pin::Pin,
|
pin::Pin,
|
||||||
task::{Context, Poll},
|
task::{Context, Poll},
|
||||||
};
|
};
|
||||||
use trust_dns_resolver::config::{ResolverConfig, ResolverOpts};
|
|
||||||
|
|
||||||
pub fn resolver(config: ResolverConfig, options: ResolverOpts) -> JiveResolver {
|
pub fn resolver(config: ResolverConfig, options: ResolverOpts) -> JiveResolver {
|
||||||
JiveResolver::new(
|
JiveResolver::new(
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
trust_dns_resolver::name_server::GenericConnector::new(JiveRuntime),
|
hickory_resolver::name_server::GenericConnector::new(JiveRuntime),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn resolver_from_system_conf() -> Result<JiveResolver, trust_dns_resolver::error::ResolveError>
|
pub fn resolver_from_system_conf() -> Result<JiveResolver, hickory_resolver::error::ResolveError> {
|
||||||
{
|
JiveResolver::from_system_conf(hickory_resolver::name_server::GenericConnector::new(
|
||||||
JiveResolver::from_system_conf(trust_dns_resolver::name_server::GenericConnector::new(
|
|
||||||
JiveRuntime,
|
JiveRuntime,
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
@ -32,10 +31,10 @@ pub struct JiveUdpSocket {
|
||||||
io: jive::io::Async<jive::net::UdpSocket>,
|
io: jive::io::Async<jive::net::UdpSocket>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub type JiveResolver = trust_dns_resolver::AsyncResolver<JiveConnectionProvider>;
|
pub type JiveResolver = hickory_resolver::AsyncResolver<JiveConnectionProvider>;
|
||||||
|
|
||||||
pub type JiveConnection = trust_dns_resolver::name_server::GenericConnection;
|
pub type JiveConnection = hickory_resolver::name_server::GenericConnection;
|
||||||
pub type JiveConnectionProvider = trust_dns_resolver::name_server::GenericConnector<JiveRuntime>;
|
pub type JiveConnectionProvider = hickory_resolver::name_server::GenericConnector<JiveRuntime>;
|
||||||
|
|
||||||
#[derive(Clone, Copy)]
|
#[derive(Clone, Copy)]
|
||||||
pub struct JiveRuntimeHandle;
|
pub struct JiveRuntimeHandle;
|
||||||
|
@ -52,7 +51,7 @@ impl JiveTcpStream {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl trust_dns_resolver::name_server::RuntimeProvider for JiveRuntime {
|
impl hickory_resolver::name_server::RuntimeProvider for JiveRuntime {
|
||||||
type Handle = JiveRuntimeHandle;
|
type Handle = JiveRuntimeHandle;
|
||||||
type Tcp = JiveTcpStream;
|
type Tcp = JiveTcpStream;
|
||||||
type Timer = JiveTimer;
|
type Timer = JiveTimer;
|
||||||
|
@ -86,17 +85,17 @@ impl trust_dns_resolver::name_server::RuntimeProvider for JiveRuntime {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl trust_dns_resolver::name_server::Spawn for JiveRuntimeHandle {
|
impl hickory_resolver::name_server::Spawn for JiveRuntimeHandle {
|
||||||
fn spawn_bg<F>(&mut self, future: F)
|
fn spawn_bg<F>(&mut self, future: F)
|
||||||
where
|
where
|
||||||
F: Future<Output = Result<(), trust_dns_proto::error::ProtoError>> + Send + 'static,
|
F: Future<Output = Result<(), hickory_proto::error::ProtoError>> + Send + 'static,
|
||||||
{
|
{
|
||||||
let _join = jive::spawn(future);
|
let _join = jive::spawn(future);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl trust_dns_proto::tcp::Connect for JiveTcpStream {
|
impl hickory_proto::tcp::Connect for JiveTcpStream {
|
||||||
async fn connect_with_bind(
|
async fn connect_with_bind(
|
||||||
addr: std::net::SocketAddr,
|
addr: std::net::SocketAddr,
|
||||||
bind_addr: Option<std::net::SocketAddr>,
|
bind_addr: Option<std::net::SocketAddr>,
|
||||||
|
@ -111,7 +110,7 @@ impl trust_dns_proto::tcp::Connect for JiveTcpStream {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl trust_dns_proto::tcp::DnsTcpStream for JiveTcpStream {
|
impl hickory_proto::tcp::DnsTcpStream for JiveTcpStream {
|
||||||
type Time = JiveTimer;
|
type Time = JiveTimer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,7 +143,7 @@ impl AsyncWrite for JiveTcpStream {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl trust_dns_proto::udp::DnsUdpSocket for JiveUdpSocket {
|
impl hickory_proto::udp::DnsUdpSocket for JiveUdpSocket {
|
||||||
type Time = JiveTimer;
|
type Time = JiveTimer;
|
||||||
|
|
||||||
fn poll_send_to(
|
fn poll_send_to(
|
||||||
|
@ -166,7 +165,7 @@ impl trust_dns_proto::udp::DnsUdpSocket for JiveUdpSocket {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl trust_dns_proto::udp::UdpSocket for JiveUdpSocket {
|
impl hickory_proto::udp::UdpSocket for JiveUdpSocket {
|
||||||
async fn connect(addr: std::net::SocketAddr) -> std::io::Result<Self> {
|
async fn connect(addr: std::net::SocketAddr) -> std::io::Result<Self> {
|
||||||
let bind_addr: std::net::SocketAddr = match addr {
|
let bind_addr: std::net::SocketAddr = match addr {
|
||||||
std::net::SocketAddr::V4(_) => (std::net::Ipv4Addr::UNSPECIFIED, 0).into(),
|
std::net::SocketAddr::V4(_) => (std::net::Ipv4Addr::UNSPECIFIED, 0).into(),
|
||||||
|
@ -191,7 +190,7 @@ impl trust_dns_proto::udp::UdpSocket for JiveUdpSocket {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl trust_dns_proto::Time for JiveTimer {
|
impl hickory_proto::Time for JiveTimer {
|
||||||
async fn delay_for(duration: std::time::Duration) {
|
async fn delay_for(duration: std::time::Duration) {
|
||||||
jive::time::sleep(duration).await
|
jive::time::sleep(duration).await
|
||||||
}
|
}
|
||||||
|
@ -204,7 +203,7 @@ impl trust_dns_proto::Time for JiveTimer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl trust_dns_proto::Executor for JiveRuntime {
|
impl hickory_proto::Executor for JiveRuntime {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Self
|
Self
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue