class Async::DNS::Resolver::Request

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

Attributes

logger[R]
message[R]
packet[R]

Public Class Methods

new(message, endpoints) click to toggle source
# File lib/async/dns/resolver.rb, line 234
def initialize(message, endpoints)
        @message = message
        @packet = message.encode
        
        @endpoints = endpoints.dup
        
        # We select the protocol based on the size of the data:
        if @packet.bytesize > UDP_TRUNCATION_SIZE
                @endpoints.delete_if{|server| server[0] == :udp}
        end
end

Public Instance Methods

each(&block) click to toggle source
# File lib/async/dns/resolver.rb, line 250
def each(&block)
        Async::IO::Endpoint.each(@endpoints, &block)
end
update_id!(id) click to toggle source
# File lib/async/dns/resolver.rb, line 254
def update_id!(id)
        @message.id = id
        @packet = @message.encode
end