| Class | Resolv::DNS::Requester |
| In: |
lib/resolv.rb
|
| Parent: | Object |
# File lib/resolv.rb, line 617
617: def close
618: sock = @sock
619: @sock = nil
620: sock.close if sock
621: end
# File lib/resolv.rb, line 594
594: def request(sender, tout)
595: timelimit = Time.now + tout
596: sender.send
597: while (now = Time.now) < timelimit
598: timeout = timelimit - now
599: if !IO.select([@sock], nil, nil, timeout)
600: raise ResolvTimeout
601: end
602: reply, from = recv_reply
603: begin
604: msg = Message.decode(reply)
605: rescue DecodeError
606: next # broken DNS message ignored
607: end
608: if s = @senders[[from,msg.id]]
609: break
610: else
611: # unexpected DNS message ignored
612: end
613: end
614: return msg, s.data
615: end