redns 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/redns/connection.rb +12 -1
- data/redns.gemspec +2 -2
- data/test/test_redns_connection.rb +16 -3
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.6
|
data/lib/redns/connection.rb
CHANGED
@@ -63,7 +63,17 @@ class ReDNS::Connection < EventMachine::Connection
|
|
63
63
|
message = ReDNS::Message.new(ReDNS::Buffer.new(data))
|
64
64
|
|
65
65
|
if (callback = @callback.delete(message.id))
|
66
|
-
|
66
|
+
answers = message.answers
|
67
|
+
|
68
|
+
# If the request was made for a specific type of record...
|
69
|
+
if (type = callback[:type])
|
70
|
+
# ...only include that type of answer in the result set.
|
71
|
+
answers = answers.select { |a| a.rtype == type }
|
72
|
+
end
|
73
|
+
|
74
|
+
callback[:callback].call(
|
75
|
+
answers.collect { |a| a.rdata.to_s }
|
76
|
+
)
|
67
77
|
end
|
68
78
|
end
|
69
79
|
|
@@ -81,6 +91,7 @@ class ReDNS::Connection < EventMachine::Connection
|
|
81
91
|
if (result > 0)
|
82
92
|
@callback[@sequence] = {
|
83
93
|
:callback => callback,
|
94
|
+
:type => type,
|
84
95
|
:at => Time.now
|
85
96
|
}
|
86
97
|
else
|
data/redns.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{redns}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["tadman"]
|
12
|
-
s.date = %q{2010-08-
|
12
|
+
s.date = %q{2010-08-18}
|
13
13
|
s.description = %q{ReDNS is a pure Ruby DNS library with drivers for reactor-model engines such as EventMachine}
|
14
14
|
s.email = %q{github@tadman.ca}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -20,28 +20,39 @@ class TestReDNSConnection < Test::Unit::TestCase
|
|
20
20
|
address = nil
|
21
21
|
reverse = nil
|
22
22
|
nameservers = nil
|
23
|
+
cname = nil
|
23
24
|
|
24
25
|
EventMachine.run do
|
25
26
|
dns = ReDNS::Connection.instance
|
26
27
|
|
27
28
|
assert dns.nameservers.length > 0
|
28
29
|
|
30
|
+
# Simple address lookup, one A record
|
29
31
|
dns.resolve('example.com') do |result|
|
30
32
|
address = result
|
31
33
|
|
32
|
-
EventMachine.stop_event_loop if (address and reverse and nameservers)
|
34
|
+
EventMachine.stop_event_loop if (address and reverse and nameservers and cname)
|
33
35
|
end
|
34
36
|
|
37
|
+
# Simple reverse lookup, one PTR record
|
35
38
|
dns.resolve('192.0.32.10') do |result|
|
36
39
|
reverse = result
|
37
40
|
|
38
|
-
EventMachine.stop_event_loop if (address and reverse and nameservers)
|
41
|
+
EventMachine.stop_event_loop if (address and reverse and nameservers and cname)
|
39
42
|
end
|
40
43
|
|
44
|
+
# Simple nameserver lookup, multiple NS records
|
41
45
|
dns.resolve('example.com', :ns) do |result|
|
42
46
|
nameservers = result
|
43
47
|
|
44
|
-
EventMachine.stop_event_loop if (address and reverse and nameservers)
|
48
|
+
EventMachine.stop_event_loop if (address and reverse and nameservers and cname)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Simple address lookup, one CNAME, one A, filtered to one A
|
52
|
+
dns.resolve('www.twg.ca', :a) do |result|
|
53
|
+
cname = result
|
54
|
+
|
55
|
+
EventMachine.stop_event_loop if (address and reverse and nameservers and cname)
|
45
56
|
end
|
46
57
|
|
47
58
|
EventMachine.add_timer(4) do
|
@@ -52,6 +63,8 @@ class TestReDNSConnection < Test::Unit::TestCase
|
|
52
63
|
assert_equal %w[ 192.0.32.10 ], address
|
53
64
|
assert_equal %w[ www.example.com. ], reverse
|
54
65
|
assert_equal %w[ a.iana-servers.net. b.iana-servers.net. ], nameservers.sort
|
66
|
+
assert_equal %w[ 209.123.234.174 ], cname
|
67
|
+
|
55
68
|
end
|
56
69
|
|
57
70
|
def test_simple_timeout
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 6
|
9
|
+
version: 0.1.6
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- tadman
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-08-
|
17
|
+
date: 2010-08-18 00:00:00 -04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|