Skip to content

Commit 914d191

Browse files
committed
Update dependencies and fix specs.
1 parent b4df27f commit 914d191

File tree

5 files changed

+34
-42
lines changed

5 files changed

+34
-42
lines changed

lib/rubydns.rb

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,9 @@ module RubyDNS
2828
Resolver = Async::DNS::Resolver
2929

3030
# Run a server with the given rules.
31-
def self.run_server (server_class: RuleBasedServer, asynchronous: false, **options, &block)
32-
# Should fix this... allow nested reactors.
33-
if asynchronous
34-
Async::Task.current.reactor.async do
35-
server = server_class.new(**options, &block)
36-
server.run
37-
end
38-
else
39-
Async::Reactor.run do
40-
server = server_class.new(**options, &block)
41-
server.run
42-
end
43-
end
31+
def self.run_server (server_class: RuleBasedServer, **options, &block)
32+
server = server_class.new(**options, &block)
33+
34+
server.run
4435
end
4536
end

rubydns.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
3030

3131
spec.required_ruby_version = '>= 2.2.6'
3232

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

3535
spec.add_development_dependency "bundler", "~> 1.3"
3636
spec.add_development_dependency "rspec", "~> 3.4"

spec/rubydns/daemon_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def reactor
3838

3939
def startup
4040
reactor.run do
41-
RubyDNS::run_server(listen: SERVER_PORTS, asynchronous: true) do
41+
RubyDNS::run_server(listen: SERVER_PORTS) do
4242
match("test.local", IN::A) do |transaction|
4343
transaction.respond!("192.168.1.1")
4444
end

spec/rubydns/injected_supervisor_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def test_message
3838

3939
let(:server) do
4040
# Start the RubyDNS server
41-
RubyDNS::run_server(listen: SERVER_PORTS, server_class: TestServer, asynchronous: true) do
41+
RubyDNS::run_server(listen: SERVER_PORTS, server_class: TestServer) do
4242
match("test_message", IN::TXT) do |transaction|
4343
transaction.respond!(*test_message.chunked)
4444
end
@@ -51,14 +51,14 @@ def test_message
5151
end
5252

5353
it "should use the injected class" do
54-
server
54+
task = server
5555

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

61-
server.stop!
61+
task.stop
6262
end
6363
end
6464
end

spec/rubydns/passthrough_spec.rb

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ module RubyDNS::PassthroughSpec
3030
describe "RubyDNS Passthrough Server" do
3131
include_context "reactor"
3232

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

3737
match(/.*\.com/, IN::A) do |transaction|
@@ -47,38 +47,39 @@ module RubyDNS::PassthroughSpec
4747
transaction.fail!(:NXDomain)
4848
end
4949
end
50+
51+
yield
52+
53+
ensure
54+
task.stop
5055
end
5156

5257
it "should resolve domain correctly" do
53-
server
58+
run_server do
59+
resolver = RubyDNS::Resolver.new(SERVER_PORTS, timeout: 1)
60+
61+
response = resolver.query("google.com")
62+
expect(response.ra).to be == 1
5463

55-
resolver = RubyDNS::Resolver.new(SERVER_PORTS)
56-
57-
response = resolver.query("google.com")
58-
expect(response.ra).to be == 1
59-
60-
answer = response.answer.first
61-
expect(answer).not_to be == nil
62-
expect(answer.count).to be > 0
63-
64-
addresses = answer.select {|record| record.kind_of? Resolv::DNS::Resource::IN::A}
65-
expect(addresses.size).to be > 0
64+
answer = response.answer.first
65+
expect(answer).not_to be == nil
66+
expect(answer.count).to be > 0
6667

67-
server.stop!
68+
addresses = answer.select {|record| record.kind_of? Resolv::DNS::Resource::IN::A}
69+
expect(addresses.size).to be > 0
70+
end
6871
end
6972

7073
it "should resolve prefixed domain correctly" do
71-
server
74+
run_server do
75+
resolver = RubyDNS::Resolver.new(SERVER_PORTS)
7276

73-
resolver = RubyDNS::Resolver.new(SERVER_PORTS)
74-
75-
response = resolver.query("a-slashdot.org")
76-
answer = response.answer.first
77-
78-
expect(answer).not_to be == nil
79-
expect(answer.count).to be > 0
77+
response = resolver.query("a-slashdot.org")
78+
answer = response.answer.first
8079

81-
server.stop!
80+
expect(answer).not_to be == nil
81+
expect(answer.count).to be > 0
82+
end
8283
end
8384
end
8485
end

0 commit comments

Comments
 (0)