| Class | Resolv::DNS::Requester::UnconnectedUDP |
| In: |
lib/resolv.rb
|
| Parent: | Requester |
# File lib/resolv.rb, line 632
632: def initialize
633: super()
634: @sock = UDPSocket.new
635: @sock.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) if defined? Fcntl::F_SETFD
636: DNS.bind_random_port(@sock)
637: end
# File lib/resolv.rb, line 653
653: def close
654: super
655: @senders.each_key {|service, id|
656: DNS.free_request_id(service[0], service[1], id)
657: }
658: end
# File lib/resolv.rb, line 639
639: def recv_reply
640: reply, from = @sock.recvfrom(UDPSize)
641: return reply, [from[3],from[1]]
642: end
# File lib/resolv.rb, line 644
644: def sender(msg, data, host, port=Port)
645: service = [host, port]
646: id = DNS.allocate_request_id(host, port)
647: request = msg.encode
648: request[0,2] = [id].pack('n')
649: return @senders[[service, id]] =
650: Sender.new(request, data, @sock, host, port)
651: end