def initialize(*args)
arg=args[0]
@single_res_mutex = Mutex.new
@packet_timeout = Resolver::DefaultPacketTimeout
@query_timeout = @packet_timeout
@port = Resolver::DefaultPort
@udp_size = Resolver::DefaultUDPSize
@dnssec = Resolver::DefaultDnssec
@use_tcp = false
@no_tcp = false
@tsig = nil
@ignore_truncation = false
@src_address = nil
@src_port = [0]
@recurse = true
@persistent_udp = false
@persistent_tcp = false
@retry_times = 1
@retry_delay = 0
@single_resolvers = []
@configured = false
@do_caching = true
@config = Config.new
if (arg==nil)
@config = Config.new
@config.get_ready
@server = @config.nameserver[0]
elsif (arg.kind_of?String)
@config.get_ready
@configured= true
@config.nameserver=[arg]
@server = @config.nameserver[0]
elsif (arg.kind_of?Name)
@config.get_ready
@configured= true
@config.nameserver=arg
@server = @config.nameserver[0]
elsif (arg.kind_of?Hash)
arg.keys.each do |attr|
if (attr == :server)
@config.get_ready
@configured= true
@config.nameserver=[arg[attr]]
@server = @config.nameserver[0]
else
begin
send(attr.to_s+"=", arg[attr])
rescue Exception
Dnsruby.log.error{"Argument #{attr} not valid\n"}
end
end
end
end
isr = PacketSender.new({:server=>@server, :dnssec=>@dnssec,
:use_tcp=>@use_tcp, :no_tcp=>@no_tcp, :packet_timeout=>@packet_timeout,
:tsig => @tsig, :ignore_truncation=>@ignore_truncation,
:src_address=>@src_address, :src_port=>@src_port,
:do_caching=>@do_caching,
:recurse=>@recurse, :udp_size=>@udp_size})
@single_resolvers = [isr]
end