mirror of
https://github.com/internetee/registry.git
synced 2025-06-08 13:44:47 +02:00
added glue record support
This commit is contained in:
parent
e24301ad0c
commit
156633cd02
2 changed files with 23 additions and 7 deletions
|
@ -14,7 +14,7 @@ class NameserverRecordValidationJob < ApplicationJob
|
|||
domain.nameservers.each do |nameserver|
|
||||
next if nameserver.nameserver_failed_validation? || nameserver.validated?
|
||||
|
||||
result = NameserverValidator.run(domain_name: domain.name, hostname: nameserver.hostname)
|
||||
result = NameserverValidator.run(domain_name: domain.name, nameserver: nameserver)
|
||||
|
||||
if result[:result]
|
||||
add_nameserver_to_succesfully(nameserver)
|
||||
|
@ -40,7 +40,7 @@ class NameserverRecordValidationJob < ApplicationJob
|
|||
domain.nameservers.each do |nameserver|
|
||||
next if nameserver.nameserver_failed_validation?
|
||||
|
||||
result = NameserverValidator.run(domain_name: domain.name, hostname: nameserver.hostname)
|
||||
result = NameserverValidator.run(domain_name: domain.name, nameserver: nameserver)
|
||||
|
||||
if result[:result]
|
||||
add_nameserver_to_succesfully(nameserver)
|
||||
|
@ -87,9 +87,9 @@ class NameserverRecordValidationJob < ApplicationJob
|
|||
when 'not found'
|
||||
text = "Seems nameserver hostname **#{nameserver.hostname}** doesn't exist"
|
||||
when 'exception'
|
||||
text = "Something goes wrong, exception reason: **#{result[:error_info]}**"
|
||||
text = "Something went wrong, exception reason: **#{result[:error_info]}**"
|
||||
when 'domain'
|
||||
text = "#{domain} not found in zone"
|
||||
text = "#{domain} zone is not in nameserver**#{nameserver.hostname}**"
|
||||
end
|
||||
|
||||
logger.info text
|
||||
|
|
|
@ -7,13 +7,28 @@ module NameserverValidator
|
|||
VALIDATION_DOMAIN_PERIOD = 8.hours.freeze
|
||||
VALID_NAMESERVER_COUNT_THRESHOLD = 3
|
||||
|
||||
def run(domain_name:, hostname:)
|
||||
validate(domain_name: domain_name, hostname: hostname)
|
||||
def run(domain_name:, nameserver:)
|
||||
result_response = validate(domain_name: domain_name, hostname: nameserver.hostname)
|
||||
|
||||
unless result_response[:result] && result_response[:reason] == :exception
|
||||
if result_response[:error_info].to_s.include? "Nameserver invalid!"
|
||||
if nameserver.ipv4.present?
|
||||
p "+++++++"
|
||||
result_response = validate(domain_name: domain_name, hostname: nameserver.ipv4)
|
||||
elsif nameserver.ipv6.present?
|
||||
result_response = validate(domain_name: domain_name, hostname: nameserver.ipv6)
|
||||
end
|
||||
|
||||
result_response
|
||||
end
|
||||
end
|
||||
|
||||
result_response
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def validate(domain_name: , hostname:)
|
||||
def validate(domain_name:, hostname:)
|
||||
resolver = setup_resolver(hostname)
|
||||
result = resolver.query(domain_name, 'SOA', 'IN')
|
||||
|
||||
|
@ -44,6 +59,7 @@ module NameserverValidator
|
|||
|
||||
def setup_resolver(hostname)
|
||||
resolver = Dnsruby::Resolver.new
|
||||
resolver.query_timeout = 2
|
||||
resolver.retry_times = 3
|
||||
resolver.recurse = 0 # Send out non-recursive queries
|
||||
# disable caching otherwise SOA is cached from first nameserver queried
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue