class UringMachine::DNSResolver

def do_resolve(hostname, type, try_count = 0)

def do_resolve(hostname, type, try_count = 0)
  fd = socket_fd
  req = prepare_request_packet(hostname, type)
  msg = req.encode
  @machine.send(fd, msg, msg.bytesize, 0)
  buf = +''
  @machine.recv(fd, buf, 16384, 0)
  msg = Resolv::DNS::Message.decode buf
  addrs = []
  msg.each_answer do |name, ttl, data|
    p [name, ttl, data]
    if data.kind_of?(Resolv::DNS::Resource::IN::A) ||
      data.kind_of?(Resolv::DNS::Resource::IN::AAAA)
      addrs << data.address.to_s
    end
  end
  addrs
end