summaryrefslogtreecommitdiffhomepage
path: root/talpid-core
diff options
context:
space:
mode:
authorEmīls <emils@mullvad.net>2022-01-27 12:48:43 +0000
committerEmīls <emils@mullvad.net>2022-01-28 12:55:21 +0000
commitb1f974ccff228c2d2165d300538eea71f12d3501 (patch)
tree615508aa8566c5ac960313db505b6b2202809ee4 /talpid-core
parentcf8612dc2b8bc5826eef14d6edb968fd48760fc2 (diff)
downloadmullvadvpn-b1f974ccff228c2d2165d300538eea71f12d3501.tar.xz
mullvadvpn-b1f974ccff228c2d2165d300538eea71f12d3501.zip
Use mainline trust-dns
Diffstat (limited to 'talpid-core')
-rw-r--r--talpid-core/Cargo.toml2
-rw-r--r--talpid-core/src/resolver.rs31
2 files changed, 16 insertions, 17 deletions
diff --git a/talpid-core/Cargo.toml b/talpid-core/Cargo.toml
index bcef898a82..257ae97d6e 100644
--- a/talpid-core/Cargo.toml
+++ b/talpid-core/Cargo.toml
@@ -69,7 +69,7 @@ internet-checksum = "0.2"
[target.'cfg(target_os = "macos")'.dependencies]
pfctl = "0.4.4"
system-configuration = "0.5"
-trust-dns-server = { git = "https://github.com/mullvad/trust-dns", rev = "c782de0645335d1893a854337b965dd07790c068", features = [ "trust-dns-resolver" ] }
+trust-dns-server = { git = "https://github.com/BlueJekyll/trust-dns", rev = "550e8f8be33df267b5c8e47586024cf17c3407f0", features = [ "trust-dns-resolver" ] }
tun = "0.5.1"
subslice = "0.2"
diff --git a/talpid-core/src/resolver.rs b/talpid-core/src/resolver.rs
index 8338fe2ed6..6ac7604e7f 100644
--- a/talpid-core/src/resolver.rs
+++ b/talpid-core/src/resolver.rs
@@ -182,7 +182,14 @@ impl ResolverImpl {
fn build_response<'a>(
message: &'a MessageRequest,
lookup: &'a mut Box<dyn LookupObject>,
- ) -> MessageResponse<'a, 'a> {
+ ) -> MessageResponse<
+ 'a,
+ 'a,
+ Box<dyn Iterator<Item = &'a Record> + Send + 'a>,
+ std::iter::Empty<&'a Record>,
+ std::iter::Empty<&'a Record>,
+ std::iter::Empty<&'a Record>,
+ > {
let mut response_header = Header::new();
response_header.set_id(message.id());
response_header.set_op_code(OpCode::Query);
@@ -193,9 +200,9 @@ impl ResolverImpl {
response_header,
lookup.iter(),
// forwarder responses only contain query answers, no ns,soa or additionals
- Box::new(std::iter::empty()) as Box<dyn Iterator<Item = _> + Send>,
- Box::new(std::iter::empty()) as Box<dyn Iterator<Item = _> + Send>,
- Box::new(std::iter::empty()) as Box<dyn Iterator<Item = _> + Send>,
+ std::iter::empty(),
+ std::iter::empty(),
+ std::iter::empty(),
)
}
@@ -265,12 +272,9 @@ impl LookupObject for ForwardLookup {
mod test {
use super::*;
use std::{mem, net::UdpSocket, thread, time::Duration};
- use trust_dns_server::{
- proto,
- resolver::{
- config::{NameServerConfigGroup, ResolverConfig, ResolverOpts},
- AsyncResolver,
- },
+ use trust_dns_server::resolver::{
+ config::{NameServerConfigGroup, ResolverConfig, ResolverOpts},
+ TokioAsyncResolver,
};
async fn start_resolver() -> ResolverHandle {
@@ -283,12 +287,7 @@ mod test {
vec![],
NameServerConfigGroup::from_ips_clear(&[Ipv4Addr::LOCALHOST.into()], port, true),
);
- AsyncResolver::new(
- resolver_config,
- ResolverOpts::default(),
- proto::TokioRuntime,
- )
- .unwrap()
+ TokioAsyncResolver::tokio(resolver_config, ResolverOpts::default()).unwrap()
}
#[test]