def write_types_to_file(domain, types_covered, last_name, is_glue)
return if (is_glue && ( types_covered.clone.delete_if{|t| t == Types::A || t == Types::AAAA}.empty? ))
return if (types_covered.include?Types::NSEC3)
types_string = get_types_string(types_covered)
salt = ""
iterations = 0
hash_alg = Nsec3HashAlgorithms.SHA_1
if (@nsec3param)
salt = @nsec3param.salt
iterations = @nsec3param.iterations
hash_alg = @nsec3param.hash_alg
elsif (@first_nsec3)
salt = @first_nsec3.salt
iterations = @first_nsec3.iterations
hash_alg = @first_nsec3.hash_alg
end
empty_nonterminals = []
name_to_check_against = @soa.name
if (domain.subdomain_of?(last_name))
name_to_check_against = last_name
else
end
last = Name.create(domain)
while (last.labels.length > name_to_check_against.labels.length + 1)
last.labels = last.labels[1,last.labels.length]
if (!@empty_nonterminals.include?last)
empty_nonterminals.push(last.clone)
@empty_nonterminals.push(last.clone)
end
end
if (!is_glue && empty_nonterminals.length > 0)
empty_nonterminals.each {|empty_nonterminal|
if (File.open(@working + "#{File::SEPARATOR}audit.types.#{Process.pid}", "r").grep(/\s#{empty_nonterminal}/).length == 0)
add_domain_to_types_file(empty_nonterminal, iterations, salt, hash_alg, "")
end
}
end
add_domain_to_types_file(domain, iterations, salt, hash_alg, types_string)
end