Class: Resolv::DNS

Inherits:
Object
  • Object
show all
Defined in:
lib/rubydns/resolv.rb

Defined Under Namespace

Classes: Message

Instance Method Summary collapse

Instance Method Details

#query(name, typeclass) ⇒ Object

Queries the given DNS server and returns its response in its entirety. This allows such responses to be passed upstream with little or no modification/reinterpretation.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/rubydns/resolv.rb', line 26

def query(name, typeclass)
	lazy_initialize
	requester = make_requester
	senders = {}
	begin
		@config.resolv(name) {|candidate, tout, nameserver|
			msg = Message.new
			msg.rd = 1
			msg.add_question(candidate, typeclass)
			unless sender = senders[[candidate, nameserver]]
				sender = senders[[candidate, nameserver]] =
				requester.sender(msg, candidate, nameserver)
			end
			reply, reply_name = requester.request(sender, tout)

			return reply, reply_name
		}
	ensure
		requester.close
	end
end