Skip to content

Commit

Permalink
Update dependencies and fix specs.
Browse files Browse the repository at this point in the history
  • Loading branch information
ioquatix committed Apr 9, 2017
1 parent b4df27f commit 914d191
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 42 deletions.
17 changes: 4 additions & 13 deletions lib/rubydns.rb
Expand Up @@ -28,18 +28,9 @@ module RubyDNS
Resolver = Async::DNS::Resolver

# Run a server with the given rules.
def self.run_server (server_class: RuleBasedServer, asynchronous: false, **options, &block)
# Should fix this... allow nested reactors.
if asynchronous
Async::Task.current.reactor.async do
server = server_class.new(**options, &block)
server.run
end
else
Async::Reactor.run do
server = server_class.new(**options, &block)
server.run
end
end
def self.run_server (server_class: RuleBasedServer, **options, &block)
server = server_class.new(**options, &block)

server.run
end
end
2 changes: 1 addition & 1 deletion rubydns.gemspec
Expand Up @@ -30,7 +30,7 @@ Gem::Specification.new do |spec|

spec.required_ruby_version = '>= 2.2.6'

spec.add_dependency("async-dns", "~> 0.9")
spec.add_dependency("async-dns", "~> 0.10")

spec.add_development_dependency "bundler", "~> 1.3"
spec.add_development_dependency "rspec", "~> 3.4"
Expand Down
2 changes: 1 addition & 1 deletion spec/rubydns/daemon_spec.rb
Expand Up @@ -38,7 +38,7 @@ def reactor

def startup
reactor.run do
RubyDNS::run_server(listen: SERVER_PORTS, asynchronous: true) do
RubyDNS::run_server(listen: SERVER_PORTS) do
match("test.local", IN::A) do |transaction|
transaction.respond!("192.168.1.1")
end
Expand Down
6 changes: 3 additions & 3 deletions spec/rubydns/injected_supervisor_spec.rb
Expand Up @@ -38,7 +38,7 @@ def test_message

let(:server) do
# Start the RubyDNS server
RubyDNS::run_server(listen: SERVER_PORTS, server_class: TestServer, asynchronous: true) do
RubyDNS::run_server(listen: SERVER_PORTS, server_class: TestServer) do
match("test_message", IN::TXT) do |transaction|
transaction.respond!(*test_message.chunked)
end
Expand All @@ -51,14 +51,14 @@ def test_message
end

it "should use the injected class" do
server
task = server

resolver = RubyDNS::Resolver.new(SERVER_PORTS)
response = resolver.query("test_message", IN::TXT)
text = response.answer.first
expect(text[2].strings.join).to be == 'Testing...'

server.stop!
task.stop
end
end
end
49 changes: 25 additions & 24 deletions spec/rubydns/passthrough_spec.rb
Expand Up @@ -30,8 +30,8 @@ module RubyDNS::PassthroughSpec
describe "RubyDNS Passthrough Server" do
include_context "reactor"

let(:server) do
RubyDNS::run_server(:listen => SERVER_PORTS, asynchronous: true) do
def run_server
task = RubyDNS::run_server(:listen => SERVER_PORTS) do
resolver = RubyDNS::Resolver.new([[:udp, "8.8.8.8", 53], [:tcp, "8.8.8.8", 53]])

match(/.*\.com/, IN::A) do |transaction|
Expand All @@ -47,38 +47,39 @@ module RubyDNS::PassthroughSpec
transaction.fail!(:NXDomain)
end
end

yield

ensure
task.stop
end

it "should resolve domain correctly" do
server
run_server do
resolver = RubyDNS::Resolver.new(SERVER_PORTS, timeout: 1)

response = resolver.query("google.com")
expect(response.ra).to be == 1

resolver = RubyDNS::Resolver.new(SERVER_PORTS)

response = resolver.query("google.com")
expect(response.ra).to be == 1

answer = response.answer.first
expect(answer).not_to be == nil
expect(answer.count).to be > 0

addresses = answer.select {|record| record.kind_of? Resolv::DNS::Resource::IN::A}
expect(addresses.size).to be > 0
answer = response.answer.first
expect(answer).not_to be == nil
expect(answer.count).to be > 0

server.stop!
addresses = answer.select {|record| record.kind_of? Resolv::DNS::Resource::IN::A}
expect(addresses.size).to be > 0
end
end

it "should resolve prefixed domain correctly" do
server
run_server do
resolver = RubyDNS::Resolver.new(SERVER_PORTS)

resolver = RubyDNS::Resolver.new(SERVER_PORTS)

response = resolver.query("a-slashdot.org")
answer = response.answer.first

expect(answer).not_to be == nil
expect(answer.count).to be > 0
response = resolver.query("a-slashdot.org")
answer = response.answer.first

server.stop!
expect(answer).not_to be == nil
expect(answer.count).to be > 0
end
end
end
end

0 comments on commit 914d191

Please sign in to comment.