Class Resolv::DNS::Requester::UnconnectedUDP
In: lib/resolv.rb
Parent: Requester

Methods

close   new   recv_reply   sender  

Classes and Modules

Class Resolv::DNS::Requester::UnconnectedUDP::Sender

Public Class methods

[Source]

     # 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

Public Instance methods

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Validate]