Skip to content

Commit c0bf93e

Browse files
committed
Resolve all configured nameservers in parallel
1 parent 9d8a9a2 commit c0bf93e

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

lib/dnsruby/resolver.rb

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -481,10 +481,11 @@ def add_config_nameservers # :nodoc: all
481481
@config.get_ready
482482
end
483483
@configured = true
484-
@single_res_mutex.synchronize {
485484
# Add the Config nameservers
486-
@config.nameserver.each do |ns|
487-
res = PacketSender.new({
485+
threads = []
486+
@config.nameserver.each do |ns|
487+
threads << Thread.new do
488+
PacketSender.new({
488489
server: ns,
489490
port: @port,
490491
dnssec: @dnssec,
@@ -500,9 +501,11 @@ def add_config_nameservers # :nodoc: all
500501
src_port: @src_port,
501502
recurse: @recurse,
502503
udp_size: @udp_size})
503-
@single_resolvers.push(res) if res
504504
end
505-
}
505+
end
506+
507+
new_resolvers = threads.map(&:value).compact
508+
@single_res_mutex.synchronize { @single_resolvers.concat(new_resolvers) }
506509
end
507510

508511
def set_config_nameserver(n)

0 commit comments

Comments
 (0)