Class: Celluloid::DNS::Resolver::Request
- Inherits:
-
Object
- Object
- Celluloid::DNS::Resolver::Request
- Defined in:
- lib/celluloid/dns/resolver.rb
Overview
Manages a single DNS question message across one or more servers.
Instance Attribute Summary collapse
-
#logger ⇒ Object
readonly
Returns the value of attribute logger.
-
#message ⇒ Object
readonly
Returns the value of attribute message.
-
#packet ⇒ Object
readonly
Returns the value of attribute packet.
Instance Method Summary collapse
- #each(&block) ⇒ Object
-
#initialize(message, servers) ⇒ Request
constructor
A new instance of Request.
- #update_id!(id) ⇒ Object
Constructor Details
#initialize(message, servers) ⇒ Request
Returns a new instance of Request.
258 259 260 261 262 263 264 265 266 267 268 |
# File 'lib/celluloid/dns/resolver.rb', line 258 def initialize(, servers) @message = @packet = .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
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
272 273 274 |
# File 'lib/celluloid/dns/resolver.rb', line 272 def logger @logger end |
#message ⇒ Object (readonly)
Returns the value of attribute message.
270 271 272 |
# File 'lib/celluloid/dns/resolver.rb', line 270 def @message end |
#packet ⇒ Object (readonly)
Returns the value of attribute packet.
271 272 273 |
# File 'lib/celluloid/dns/resolver.rb', line 271 def packet @packet end |
Instance Method Details
#each(&block) ⇒ Object
274 275 276 277 278 279 280 |
# File 'lib/celluloid/dns/resolver.rb', line 274 def each(&block) @servers.each do |server| next if @packet.bytesize > UDP_TRUNCATION_SIZE yield server end end |
#update_id!(id) ⇒ Object
282 283 284 285 |
# File 'lib/celluloid/dns/resolver.rb', line 282 def update_id!(id) @message.id = id @packet = @message.encode end |