fix(dns): dns-over-h3 requires QuicLocalAddr

This commit is contained in:
zonyitoo
2023-10-15 10:11:10 +08:00
parent dc4faa6679
commit 304c1819cd

View File

@@ -15,9 +15,12 @@ use hickory_resolver::{
config::{LookupIpStrategy, ResolverConfig, ResolverOpts},
error::ResolveResult,
name_server::{GenericConnector, RuntimeProvider},
proto::{iocompat::AsyncIoTokioAsStd, udp::DnsUdpSocket, TokioTime},
AsyncResolver,
TokioHandle,
proto::{
iocompat::AsyncIoTokioAsStd,
udp::{DnsUdpSocket, QuicLocalAddr},
TokioTime,
},
AsyncResolver, TokioHandle,
};
use log::trace;
use tokio::{io::ReadBuf, net::UdpSocket};
@@ -59,6 +62,12 @@ impl DnsUdpSocket for ShadowUdpSocket {
}
}
impl QuicLocalAddr for ShadowUdpSocket {
fn local_addr(&self) -> io::Result<SocketAddr> {
self.deref().local_addr()
}
}
impl RuntimeProvider for ShadowDnsRuntimeProvider {
type Handle = TokioHandle;
type Tcp = AsyncIoTokioAsStd<ShadowTcpStream>;