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
169 170 171 172 |
# File 'lib/rubydns/resolver.rb', line 169 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
174 175 176 177 178 |
# File 'lib/rubydns/resolver.rb', line 174 def initialize(request, host, port) @request = request @host = host @port = port end |
#post_init ⇒ Object
180 181 182 183 |
# File 'lib/rubydns/resolver.rb', line 180 def post_init # Sending question to remote DNS server... send_datagram(@request.packet, @host, @port) end |
#receive_data(data) ⇒ Object
185 186 187 188 189 190 191 192 193 |
# File 'lib/rubydns/resolver.rb', line 185 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 |