Commit f6e6d667 authored by Felix Yan's avatar Felix Yan

verify: ignore resolve errors for broken NS records

parent 61a5f151
...@@ -68,23 +68,31 @@ class ChinaListVerify ...@@ -68,23 +68,31 @@ class ChinaListVerify
server = [server] unless server.is_a? Array server = [server] unless server.is_a? Array
resolver = Resolv::DNS.new(nameserver: server) resolver = Resolv::DNS.new(nameserver: server)
end end
if !with_glue begin
resolver.getresources(domain, rdtype) if !with_glue
else return resolver.getresources(domain, rdtype)
# Workaround for https://github.com/ruby/resolv/issues/27 else
result = [] # Workaround for https://github.com/ruby/resolv/issues/27
glue = [] result = []
n0 = Resolv::DNS::Name.create domain glue = []
resolver.fetch_resource(domain, rdtype) {|reply, reply_name| n0 = Resolv::DNS::Name.create domain
reply.each_resource {|n, ttl, data| resolver.fetch_resource(domain, rdtype) {|reply, reply_name|
if n0 == n && data.is_a?(rdtype) reply.each_resource {|n, ttl, data|
result << data if n0 == n && data.is_a?(rdtype)
else result << data
glue << [n, data] else
end glue << [n, data]
end
}
} }
} return result, glue
return result, glue end
rescue Exception => e
if !with_glue
return []
else
return [], []
end
end end
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment