Module: RubyDNS::UDPHandler

Defined in:
lib/rubydns/handler.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.process(server, data, &block) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/rubydns/handler.rb', line 16

def self.process(server, data, &block)
	server.logger.debug "Receiving incoming query..."
	
	server.logger.debug data.hexdump
	
	begin
		server.receive_data(data) do |answer|
			yield answer.encode
		end
	rescue
		server.logger.error "Error processing request!"
		server.logger.error "#{$!.class}: #{$!.message}"

		$!.backtrace.each { |at| server.logger.error at }
	end
end

Instance Method Details

#initialize(server) ⇒ Object



12
13
14
# File 'lib/rubydns/handler.rb', line 12

def initialize(server)
	@server = server
end

#receive_data(data) ⇒ Object



33
34
35
36
37
# File 'lib/rubydns/handler.rb', line 33

def receive_data(data)
	UDPHandler.process(@server, data) do |result|
		self.send_data(result)
	end
end