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
194 195 196 197 |
# File 'lib/rubydns/resolver.rb', line 194 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
199 200 201 202 203 |
# File 'lib/rubydns/resolver.rb', line 199 def initialize(request, host, port) @request = request @host = host @port = port end |
#post_init ⇒ Object
205 206 207 208 |
# File 'lib/rubydns/resolver.rb', line 205 def post_init # Sending question to remote DNS server... send_datagram(@request.packet, @host, @port) end |
#receive_data(data) ⇒ Object
210 211 212 213 214 215 216 217 218 |
# File 'lib/rubydns/resolver.rb', line 210 def receive_data(data) # Receiving response from remote DNS server... = RubyDNS::(data) # The message id must match, and it can't be truncated: @request.process_response!() rescue Resolv::DNS::DecodeError => error @request.process_response!(error) end |