celluloid / celluloid-dns

UNMAINTAINED: See celluloid/celluloid#779 - Celluloid::IO-powered DNS server
https://celluloid.io
57 stars 13 forks source link

IDNA not supported #13

Open eterry1388 opened 7 years ago

eterry1388 commented 7 years ago

When this is called:

nslookup "à±<8a>#001a.t-mobile.com"

I get:

E, [2016-09-09T13:37:21.121431 #20408] ERROR -- : Actor crashed!
Encoding::CompatibilityError: inspected result must be ASCII only or use the default external encoding

My workaround was to put this code:

unless name.encoding.to_s == 'UTF-8'
  puts "Bad encoding for #{name} , which was #{name.encoding}"
  transaction.fail!( :NXDomain )
  return
end

before this line:

transaction.passthrough!( @resolver )

Full backtrace of exception:

/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:148:in `inspect'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:148:in `inspect'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:148:in `block in dispatch_request'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:278:in `block in each'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:275:in `each'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:275:in `each'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:147:in `dispatch_request'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:93:in `query'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `public_send'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `dispatch'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/call/sync.rb:16:in `dispatch'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:50:in `block in dispatch'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:76:in `block in task'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/actor.rb:339:in `block in task'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/task.rb:44:in `block in initialize'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/task/fibered.rb:14:in `block in create'
(celluloid):0:in `remote procedure call'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/call/sync.rb:45:in `value'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/proxy/sync.rb:22:in `method_missing'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/transaction.rb:109:in `passthrough'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/transaction.rb:83:in `passthrough!'
server.rb:58:in `process'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/transaction.rb:190:in `process'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/server.rb:94:in `block in process_query'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/server.rb:86:in `each'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/server.rb:86:in `process_query'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/handler.rb:72:in `process_query'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/handler.rb:103:in `respond'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `public_send'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `dispatch'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/call/async.rb:7:in `dispatch'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:50:in `block in dispatch'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:76:in `block in task'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/actor.rb:339:in `block in task'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/task.rb:44:in `block in initialize'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/task/fibered.rb:14:in `block in create'