У меня есть базовая программа ruby, которая прослушивает порт (53), получает данные и затем отправляет их в другое место (DNS-сервер Google - 8.8.8.8). Ответы не возвращаются в исходное место назначения, или я не пересылаю их правильно.
Вот код. NB Я использую EventMachine
require 'rubygems'
require 'eventmachine'
module DNSServer
def post_init
puts 'connected'
end
def receive_data(data)
# Forward all data
conn = UDPSocket.new
conn.connect '8.8.8.8', 53
conn.send data, 0
conn.close
p data.unpack("H*")
end
def unbind
puts 'disconnected'
end
end
EM.run do
EM.open_datagram_socket '0.0.0.0', 53, DNSServer
end
Любые мысли о том, почему или советы по отладке, будут наиболее цениться.