From f975641fc241dfb9874c68673afc3309f632b7cb Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Tue, 7 Dec 2021 13:13:33 +0200 Subject: [PATCH] added nameserver validator --- app/jobs/nameserver_record_validation_job.rb | 39 ++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 app/jobs/nameserver_record_validation_job.rb diff --git a/app/jobs/nameserver_record_validation_job.rb b/app/jobs/nameserver_record_validation_job.rb new file mode 100644 index 000000000..90160d283 --- /dev/null +++ b/app/jobs/nameserver_record_validation_job.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true +require 'resolv' + +class NameserverRecordValidationJob < ApplicationJob + def perform(nameserver = nil) + if nameserver.nil? + Nameserver.all.map do |nameserver| + validate(nameserver) + end + else + rvalidate(nameserver) + end + end + + private + + def validate(nameserver) + return true if Resolv.getaddress nameserver.hostname + + inform_to_registrar(nameserver) + rescue Resolv::ResolvError + inform_to_registrar(nameserver) + false + end + + # def glue_record_required?(nameserver) + # return false unless nameserver.hostname? && nameserver.domain + # + # DomainName(nameserver.hostname).domain == nameserver.domain.name + # end + + def inform_to_tech_contact + return + end + + def inform_to_registrar(nameserver) + nameserver.domain.registrar.notifications.create!(text: "Nameserver doesn't response") + end +end