mirror of
https://github.com/internetee/registry.git
synced 2025-06-10 14:44:47 +02:00
updated validator
This commit is contained in:
parent
66c5b3b6ae
commit
e10f4aa186
2 changed files with 27 additions and 19 deletions
|
@ -4,19 +4,20 @@ module Domains
|
|||
|
||||
extend self
|
||||
|
||||
def run(hostname:)
|
||||
validate(hostname)
|
||||
def run(hostname:, nameserver_address:)
|
||||
validate(hostname: hostname, nameserver_address: nameserver_address)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def validate(hostname)
|
||||
resolver = setup_resolver
|
||||
def validate(hostname: , nameserver_address:)
|
||||
resolver = Resolver.new
|
||||
resolver.nameserver = nameserver_address
|
||||
result = resolver.query(hostname, Dnsruby::Types.SOA)
|
||||
|
||||
return { result: false, reason: 'authority' } if result.authority.empty?
|
||||
return { result: false, reason: 'answer' } if result.answer.empty?
|
||||
|
||||
decision = result.authority.all? do |a|
|
||||
decision = result.answer.all? do |a|
|
||||
a.serial.present?
|
||||
end
|
||||
|
||||
|
@ -31,10 +32,16 @@ module Domains
|
|||
return { result: false, reason: 'exception', error_info: e }
|
||||
end
|
||||
|
||||
def setup_resolver
|
||||
def setup_resolver(nameserver_address)
|
||||
# resolver.do_validation=true
|
||||
# resolver.query_timeout=1
|
||||
# resolver.single_resolvers[0].server='ns.tld.ee'
|
||||
timeout = ENV['nameserver_validation_timeout'] || '1'
|
||||
dns_servers = ENV['dnssec_resolver_ips'].to_s.split(',').map(&:strip)
|
||||
Resolver.new({nameserver: dns_servers, timeout: timeout.to_i})
|
||||
# dns_servers = ENV['dnssec_resolver_ips'].to_s.split(',').map(&:strip)
|
||||
# Resolver.new({nameserver: dns_servers, timeout: timeout.to_i})
|
||||
resolver = Resolver.new
|
||||
resolver.nameserver = nameserver_address
|
||||
|
||||
end
|
||||
|
||||
def logger
|
||||
|
|
|
@ -5,10 +5,10 @@ require 'resolv'
|
|||
class NameserverRecordValidationJob < ApplicationJob
|
||||
include Dnsruby
|
||||
|
||||
def perform(nameserver = nil)
|
||||
if nameserver.nil?
|
||||
def perform(domain_name: nil, nameserver_address: nil)
|
||||
if nameserver_address.nil?
|
||||
Nameserver.all.map do |nameserver|
|
||||
result = Domains::NameserverValidator.run(hostname: nameserver.hostname)
|
||||
result = Domains::NameserverValidator.run(hostname: nameserver.domain.name, nameserver_address: nameserver.hostname)
|
||||
|
||||
if result[:result]
|
||||
true
|
||||
|
@ -18,8 +18,8 @@ class NameserverRecordValidationJob < ApplicationJob
|
|||
end
|
||||
end
|
||||
else
|
||||
result = Domains::NameserverValidator.run(hostname: nameserver.hostname)
|
||||
return parse_result(result, nameserver) unless result[:result]
|
||||
result = Domains::NameserverValidator.run(hostname: domain_name, nameserver_address: nameserver_address)
|
||||
return parse_result(result, nameserver_address) unless result[:result]
|
||||
|
||||
true
|
||||
end
|
||||
|
@ -30,12 +30,12 @@ class NameserverRecordValidationJob < ApplicationJob
|
|||
def parse_result(result, nameserver)
|
||||
text = ""
|
||||
case result[:reason]
|
||||
when 'authority'
|
||||
text = "Authority information about nameserver hostname **#{nameserver.hostname}** doesn't present"
|
||||
when 'answer'
|
||||
text = "No any answer come from **#{nameserver}**"
|
||||
when 'serial'
|
||||
text = "Serial number for nameserver hostname **#{nameserver.hostname}** doesn't present"
|
||||
text = "Serial number for nameserver hostname **#{nameserver}** doesn't present"
|
||||
when 'not found'
|
||||
text = "Seems nameserver hostname **#{nameserver.hostname}** doesn't exist"
|
||||
text = "Seems nameserver hostname **#{nameserver}** doesn't exist"
|
||||
when 'exception'
|
||||
text = "Something goes wrong, exception name: **#{result[:error_info]}**"
|
||||
end
|
||||
|
@ -59,7 +59,8 @@ class NameserverRecordValidationJob < ApplicationJob
|
|||
end
|
||||
|
||||
def inform_to_registrar(text:, nameserver:)
|
||||
nameserver.domain.registrar.notifications.create!(text: text)
|
||||
# nameserver.domain.registrar.notifications.create!(text: text)
|
||||
"NEED TO DO!"
|
||||
end
|
||||
|
||||
def logger
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue