def initialize(args)
@resolver = args[:resolver]
@qname = args[:qname]
@qclass = args[:qclass] || :IN
@qtype = args[:qtype] || :A
@nsatype = args[:nsatype] || :A
@infocache = args[:infocache] || DNSTraverse::InfoCache.new
@roots = args[:roots]
@resolves = nil
@refid = args[:refid] || ''
@server = args[:server] || nil
@serverips = args[:serverips] || nil
@responses = Hash.new
@children = Hash.new
@bailiwick = args[:bailiwick] || nil
@secure = args[:secure] || true
@parent = args[:parent] || nil
@parent_ip = args[:parent_ip] || nil
@maxdepth = args[:maxdepth] || 10
@decoded_query_cache = args[:decoded_query_cache]
@referral_resolution = args[:referral_resolution] || false
@stats = nil
@stats_resolve = nil
@serverweights = Hash.new
@warnings = Array.new
@processed = false
raise "Must pass Resolver" unless @resolver
@infocache.add_hints('', args[:roots]) if args[:roots]
unless @decoded_query_cache then
dcq_args = { :resolver => @resolver}
@decoded_query_cache = DNSTraverse::DecodedQueryCache.new(dcq_args)
end
if serverips then
for ip in serverips do
@serverweights[ip] = 1.0 / @serverips.length
end
end
Log.debug { "New resolver object created: " + self.to_s }
end