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