Module: RubyDNS::Resolver::Request::UDPRequestHandler
- Defined in:
- lib/rubydns/resolver.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.open(host, port, request) ⇒ Object
159 160 161 162 |
# File 'lib/rubydns/resolver.rb', line 159 def self.open(host, port, request) # Open a datagram socket... EventMachine doesn't support connected datagram sockets, so we have to cheat a bit: EventMachine::open_datagram_socket('', 0, self, request, host, port) end |
Instance Method Details
#initialize(request, host, port) ⇒ Object
164 165 166 167 168 |
# File 'lib/rubydns/resolver.rb', line 164 def initialize(request, host, port) @request = request @host = host @port = port end |
#post_init ⇒ Object
170 171 172 173 |
# File 'lib/rubydns/resolver.rb', line 170 def post_init # Sending question to remote DNS server... send_datagram(@request.packet, @host, @port) end |
#receive_data(data) ⇒ Object
175 176 177 178 179 180 181 182 183 184 185 |
# File 'lib/rubydns/resolver.rb', line 175 def receive_data(data) # Receiving response from remote DNS server... = RubyDNS::(data) # The message id must match, and it can't be truncated: if .id == @request..id @request.process_response!() else @request.logger.warn "[#{@request..id}] Received response with incorrect message id: #{.id}" if @request.logger end end |