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.
4 5 6 |
# File 'lib/radd/nameserver.rb', line 4 def initialize super(Async::DNS::Endpoint.for(Radd.dns_host, port: Radd.dns_port)) end |
Instance Method Details
#process(name, resource_class, transaction) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/radd/nameserver.rb', line 8 def process(name, resource_class, transaction) name = name.downcase # NOTE: do not use case..when, as resource classes are not identical if Resolv::DNS::Resource::IN::A == resource_class ip = Radd.domain == name ? Radd.ip : Radd.query(name) return transaction.respond!(ip, ttl: Radd.ttl) if ip elsif resource_class <= Resolv::DNS::Resource::SOA && Radd.domain == name # mname, rname, serial, refresh, retry_, expire, minimum return transaction.respond!(Radd.mname, Radd.rname, Radd.serial, 10800, 1800, 604800, 1800) end transaction.fail!(:NXDomain) end |