def send_async(*args)
msg = args[0]
client_query_id = nil
client_queue = nil
use_tcp = @use_tcp
if (msg.kind_of?String)
msg = Message.new(msg)
end
query_packet = make_query_packet(msg, use_tcp)
if (udp_packet_size < query_packet.length)
TheLog.debug("Query packet length exceeds max UDP packet size - using TCP")
use_tcp = true
end
if (args.length > 1)
if (args[1].class==Queue)
client_queue = args[1]
elsif (args.length == 2)
use_tcp = args[1]
end
if (args.length > 2)
client_query_id = args[2]
if (args.length > 3)
use_tcp = args[3]
end
end
end
if (Resolver.eventmachine?)
return send_eventmachine(query_packet, msg, client_query_id, client_queue, use_tcp)
else
if (!client_query_id)
client_query_id = Time.now + rand(10000)
end
send_dnsruby(query_packet, msg, client_query_id, client_queue, use_tcp)
return client_query_id
end
end