class Dyndnsd::Updater::ZoneTransferServerHelper

Attributes

axfr_rrs[RW]

Public Class Methods

new(endpoints, domain) click to toggle source
Calls superclass method
# File lib/dyndnsd/updater/zone_transfer_server.rb, line 135
def initialize(endpoints, domain)
  super(endpoints, logger: Dyndnsd.logger)
  @domain = domain
end

Public Instance Methods

process(name, resource_class, transaction) click to toggle source

@param name [String] @param resource_class [Resolv::DNS::Resource] Since solargraph cannot parse this: param transaction [Async::DNS::Transaction] @return [void]

# File lib/dyndnsd/updater/zone_transfer_server.rb, line 144
def process(name, resource_class, transaction)
  if name != @domain || resource_class != Resolv::DNS::Resource::Generic::Type252_Class1
    transaction.fail!(:NXDomain)
    return
  end

  # https://tools.ietf.org/html/rfc5936
  transaction.append_question!
  @axfr_rrs.each do |rr|
    transaction.add([rr[0]], rr[1])
  end
end