lib/net/dns/resolver.rb in net-dns-0.7.1 vs lib/net/dns/resolver.rb in net-dns-0.8.0
- old
+ new
@@ -6,11 +6,10 @@
# Resolver helper method.
#
# Calling the resolver directly:
#
-# require 'net/dns/resolver'
# puts Resolver("www.google.com").answer.size
# # => 5
#
# An optional block can be passed yielding the Net::DNS::Packet object.
#
@@ -456,10 +455,16 @@
def source_address
@config[:source_address].to_s
end
alias srcaddr source_address
+ # Get the local ipv6 address from which the resolver sends queries
+ #
+ def source_address_inet6
+ @config[:source_address_inet6].to_s
+ end
+
# Set the local source address from which the resolver sends its queries.
#
# res.source_address = "172.16.100.1"
# res.source_address = IPAddr.new("172.16.100.1")
#
@@ -595,11 +600,11 @@
str = ";; RESOLVER state:\n;; "
i = 1
@config.each do |key,val|
if key == :log_file or key == :config_file
str << "#{key}: #{val} \t"
- else
+ else
str << "#{key}: #{eval(key.to_s)} \t"
end
str << "\n;; " if i % 2 == 0
i += 1
end
@@ -1058,21 +1063,23 @@
require 'win32/resolv'
arr = Win32::Resolv.get_resolv_info
self.domain = arr[0].to_s
self.nameservers = arr[1]
else
+ nameservers = []
IO.foreach(@config[:config_file]) do |line|
line.gsub!(/\s*[;#].*/,"")
next unless line =~ /\S/
case line
when /^\s*domain\s+(\S+)/
self.domain = $1
when /^\s*search\s+(.*)/
self.searchlist = $1.split(" ")
when /^\s*nameserver\s+(.*)/
- self.nameservers = $1.split(" ")
+ nameservers << $1.split(" ")
end
end
+ self.nameservers = nameservers.flatten
end
end
# Parses environment variables.
def parse_environment_variables