class EventMachine::DNS::Resolver
Constants
- HOSTS_FILE
Public Class Methods
hosts()
click to toggle source
# File lib/em/resolver.rb, line 60 def self.hosts return @hosts if @hosts @hosts = {} IO.readlines(HOSTS_FILE).each do |line| next if line =~ /^#/ addr, host = line.split(/\s+/) next unless addr && host @hosts[host] ||= [] @hosts[host] << addr end @hosts rescue @hosts = {} end
nameserver()
click to toggle source
# File lib/em/resolver.rb, line 56 def self.nameserver nameservers.shuffle.first end
nameservers()
click to toggle source
# File lib/em/resolver.rb, line 36 def self.nameservers return @nameservers if @nameservers if windows? _, ns = Win32::Resolv.get_resolv_info return @nameservers = ns || [] end @nameservers = [] IO.readlines('/etc/resolv.conf').each do |line| if line =~ /^nameserver (.+)$/ @nameservers << $1.split(/\s+/).first end end @nameservers rescue @nameservers = [] end
nameservers=(ns)
click to toggle source
# File lib/em/resolver.rb, line 32 def self.nameservers=(ns) @nameservers = ns end
resolve(hostname)
click to toggle source
# File lib/em/resolver.rb, line 20 def self.resolve(hostname) Request.new(socket, hostname) end
socket()
click to toggle source
# File lib/em/resolver.rb, line 24 def self.socket if @socket && @socket.error? @socket = Socket.open else @socket ||= Socket.open end end
windows?()
click to toggle source
# File lib/em/resolver.rb, line 5 def self.windows? if RUBY_PLATFORM =~ /mswin32|cygwin|mingw|bccwin/ require 'win32/resolv' true else false end end