Class: RubyDNS::Resolver::Request

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

Overview

Manages a single DNS question message across one or more servers.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, servers) ⇒ Request

Returns a new instance of Request.



188
189
190
191
192
193
194
195
196
197
198
# File 'lib/rubydns/resolver.rb', line 188

def initialize(message, servers)
	@message = message
	@packet = message.encode
	
	@servers = servers.dup
	
	# We select the protocol based on the size of the data:
	if @packet.bytesize > UDP_TRUNCATION_SIZE
		@servers.delete_if{|server| server[0] == :udp}
	end
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



202
203
204
# File 'lib/rubydns/resolver.rb', line 202

def logger
  @logger
end

#messageObject (readonly)

Returns the value of attribute message.



200
201
202
# File 'lib/rubydns/resolver.rb', line 200

def message
  @message
end

#packetObject (readonly)

Returns the value of attribute packet.



201
202
203
# File 'lib/rubydns/resolver.rb', line 201

def packet
  @packet
end

Instance Method Details

#each(&block) ⇒ Object



204
205
206
207
208
209
210
# File 'lib/rubydns/resolver.rb', line 204

def each(&block)
	@servers.each do |server|
		next if @packet.bytesize > UDP_TRUNCATION_SIZE
		
		yield server
	end
end

#update_id!(id) ⇒ Object



212
213
214
215
# File 'lib/rubydns/resolver.rb', line 212

def update_id!(id)
	@message.id = id
	@packet = @message.encode
end