Skip to content

Commit 5790d9e

Browse files
committed
new: each dns plugin worker now uses its own resolver object for increased efficiency
1 parent 6ad310e commit 5790d9e

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/plugins/dns/mod.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ impl DNS {
7575
&self,
7676
target: &str,
7777
subdomain: &str,
78+
resolver: &TokioAsyncResolver,
7879
timeout: Duration,
7980
) -> Vec<Loot> {
8081
let mut loot = vec![];
@@ -122,9 +123,7 @@ impl DNS {
122123
// skip domains that have already been processed
123124
if !self.domains.contains(&tls_domain) {
124125
// try to resolve to ip
125-
if let Ok(response) =
126-
self.resolver.as_ref().unwrap().lookup_ip(&tls_domain).await
127-
{
126+
if let Ok(response) = resolver.lookup_ip(&tls_domain).await {
128127
// collect valid IPs
129128
let addresses: Vec<IpAddr> =
130129
response.iter().filter(|ip| !ip.is_loopback()).collect();
@@ -224,8 +223,11 @@ impl Plugin for DNS {
224223
return Ok(None);
225224
}
226225

226+
// each worker will use its own resolver object instance
227+
let resolver = self.resolver.as_ref().unwrap().clone();
228+
227229
// attempt resolving this subdomain to a one or more IP addresses
228-
if let Ok(response) = self.resolver.as_ref().unwrap().lookup_ip(&subdomain).await {
230+
if let Ok(response) = resolver.lookup_ip(&subdomain).await {
229231
// collect valid IPs
230232
let addresses: Vec<IpAddr> = response.iter().filter(|ip| !ip.is_loopback()).collect();
231233
// Some domains are configured to resolve any subdomain, whatever it is, to the same IP. We do
@@ -265,7 +267,7 @@ impl Plugin for DNS {
265267

266268
if !self.opts.dns_no_https {
267269
let more_loot = self
268-
.get_additional_tls_loot(&creds.target, &subdomain, timeout)
270+
.get_additional_tls_loot(&target_host, &subdomain, &resolver, timeout)
269271
.await;
270272

271273
// keep track of domains we processed already

0 commit comments

Comments
 (0)