class EventMachine::DNS::Resolver

Public Class Methods

hosts() click to toggle source
# File lib/em/resolver.rb, line 51
def self.hosts
  @hosts
end
nameserver() click to toggle source
# File lib/em/resolver.rb, line 47
def self.nameserver
  nameservers.shuffle.first
end
nameservers() click to toggle source
# File lib/em/resolver.rb, line 35
def self.nameservers
  if !@nameservers
    @nameservers = []
    IO.readlines('/etc/resolv.conf').each do |line|
      if line =~ /^nameserver (.+)$/
        @nameservers << $1.split(/\s+/).first
      end
    end
  end
  @nameservers
end
nameservers=(ns) click to toggle source
# File lib/em/resolver.rb, line 31
def self.nameservers=(ns)
  @nameservers = ns
end
resolve(hostname) click to toggle source
# File lib/em/resolver.rb, line 5
def self.resolve(hostname)
  Request.new(socket, hostname)
end
socket() click to toggle source
# File lib/em/resolver.rb, line 11
def self.socket
  if !@socket || (@socket && @socket.error?)
    @socket = Socket.open

    @hosts  = {}
    IO.readlines('/etc/hosts').each do |line|
      next if line =~ /^#/
      addr, host = line.split(/\s+/)

      if @hosts[host]
        @hosts[host] << addr
      else
        @hosts[host] = [addr]
      end
    end
  end

  @socket
end