Class: Radd::Nameserver
- Inherits:
-
Async::DNS::Server
- Object
- Async::DNS::Server
- Radd::Nameserver
- Defined in:
- lib/radd/nameserver.rb
Instance Method Summary collapse
-
#initialize ⇒ Nameserver
constructor
A new instance of Nameserver.
- #process(name, resource_class, transaction) ⇒ Object
Constructor Details
#initialize ⇒ Nameserver
Returns a new instance of Nameserver.
2 3 4 |
# File 'lib/radd/nameserver.rb', line 2 def initialize super(Async::DNS::Endpoint.for(Radd.dns_host, port: Radd.dns_port)) end |
Instance Method Details
#process(name, resource_class, transaction) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/radd/nameserver.rb', line 6 def process(name, resource_class, transaction) name = name.downcase case resource_class when Resolv::DNS::Resource::IN::A ip = Radd.domain == name ? Radd.ip : Radd.query(name) return transaction.respond!(ip, ttl: Radd.ttl) if ip when Resolv::DNS::Resource::IN::SOA return transaction.respond!(Radd.mname, Radd.rname, Radd.serial, 10800, 1800, 604800, 1800) end transaction.fail!(:NXDomain) end |