class Invoker::Power::DNS

Public Class Methods

new() click to toggle source
# File lib/invoker/power/dns.rb, line 14
def initialize
  @logger = ::Logger.new($stderr)
  @logger.level = ::Logger::FATAL
end
server_ports() click to toggle source
# File lib/invoker/power/dns.rb, line 7
def self.server_ports
  [
    [:udp, '127.0.0.1', Invoker.config.dns_port],
    [:tcp, '127.0.0.1', Invoker.config.dns_port]
  ]
end

Public Instance Methods

process(name, resource_class, transaction) click to toggle source
# File lib/invoker/power/dns.rb, line 19
def process(name, resource_class, transaction)
  if name_matches?(name) && resource_class_matches?(resource_class)
    transaction.respond!("127.0.0.1")
  else
    transaction.fail!(:NXDomain)
  end
end

Private Instance Methods

name_matches?(name) click to toggle source
# File lib/invoker/power/dns.rb, line 33
def name_matches?(name)
  name =~ /.*\.#{Invoker.config.tld}/
end
resource_class_matches?(resource_class) click to toggle source
# File lib/invoker/power/dns.rb, line 29
def resource_class_matches?(resource_class)
  resource_class == Resolv::DNS::Resource::IN::A
end