class Explorer::Server::DNS
Public Class Methods
new(port)
click to toggle source
Calls superclass method
# File lib/explorer/server/dns.rb, line 6 def initialize(port) super listen: interfaces(port) async.run end
Public Instance Methods
process(name, resource_class, transaction)
click to toggle source
# File lib/explorer/server/dns.rb, line 11 def process(name, resource_class, transaction) return transaction.fail!(:NXDomain) unless name_matches?(name) if resource_class == Resolv::DNS::Resource::IN::A transaction.respond!('127.0.0.1') elsif resource_class == Resolv::DNS::Resource::IN::AAAA transaction.respond!('::1') else transaction.fail!(:NXDomain) end end
Private Instance Methods
interfaces(port)
click to toggle source
# File lib/explorer/server/dns.rb, line 25 def interfaces(port) [ [:udp, "0.0.0.0", port], [:tcp, "0.0.0.0", port] ] end
name_matches?(name)
click to toggle source
# File lib/explorer/server/dns.rb, line 32 def name_matches?(name) name =~ /.*\.dev/ end