dnsruby 1.60.0 → 1.60.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/RELEASE_NOTES.md +14 -0
- data/lib/dnsruby/bit_mapping.rb +1 -1
- data/lib/dnsruby/code_mapper.rb +3 -3
- data/lib/dnsruby/code_mappers.rb +4 -2
- data/lib/dnsruby/config.rb +1 -1
- data/lib/dnsruby/dnssec.rb +1 -1
- data/lib/dnsruby/packet_sender.rb +8 -5
- data/lib/dnsruby/resolver.rb +6 -6
- data/lib/dnsruby/resource/APL.rb +146 -0
- data/lib/dnsruby/resource/CAA.rb +70 -0
- data/lib/dnsruby/resource/IN.rb +4 -1
- data/lib/dnsruby/resource/MX.rb +3 -0
- data/lib/dnsruby/resource/OPT.rb +1 -1
- data/lib/dnsruby/resource/RRSIG.rb +1 -1
- data/lib/dnsruby/resource/TLSA.rb +149 -0
- data/lib/dnsruby/resource/domain_name.rb +1 -1
- data/lib/dnsruby/resource/generic.rb +1 -0
- data/lib/dnsruby/version.rb +1 -1
- data/lib/dnsruby/zone_transfer.rb +5 -2
- data/test/run-tests-individually +347 -0
- data/test/spec_helper.rb +3 -3
- data/test/tc_caa.rb +49 -0
- data/test/tc_cache.rb +6 -16
- data/test/tc_dlv.rb +3 -2
- data/test/tc_dns.rb +3 -1
- data/test/tc_ds.rb +4 -1
- data/test/tc_escapedchars.rb +3 -1
- data/test/tc_gpos.rb +2 -2
- data/test/tc_header.rb +3 -1
- data/test/tc_hip.rb +3 -1
- data/test/tc_hs.rb +0 -2
- data/test/tc_ipseckey.rb +3 -1
- data/test/tc_message.rb +0 -16
- data/test/tc_name.rb +3 -1
- data/test/tc_naptr.rb +3 -1
- data/test/tc_nsec.rb +3 -3
- data/test/tc_nsec3.rb +3 -1
- data/test/tc_nsec3param.rb +3 -1
- data/test/tc_nxt.rb +2 -2
- data/test/tc_packet.rb +3 -2
- data/test/tc_packet_unique_push.rb +3 -1
- data/test/tc_ptrin.rb +2 -1
- data/test/tc_question.rb +3 -1
- data/test/tc_res_env.rb +3 -1
- data/test/tc_res_opt.rb +3 -1
- data/test/tc_resolv.rb +1 -2
- data/test/tc_resolver.rb +18 -19
- data/test/tc_rr-opt.rb +3 -2
- data/test/tc_rr-txt.rb +3 -1
- data/test/tc_rr-unknown.rb +3 -1
- data/test/tc_rr.rb +15 -1
- data/test/tc_single_resolver.rb +4 -1
- data/test/tc_soak.rb +2 -1
- data/test/tc_soak_base.rb +2 -0
- data/test/tc_sshfp.rb +3 -1
- data/test/tc_tlsa.rb +191 -0
- data/test/tc_tsig.rb +3 -1
- data/test/tc_update.rb +6 -3
- data/test/tc_validator.rb +3 -2
- data/test/tc_zone_reader.rb +4 -2
- data/test/ts_offline.rb +1 -0
- data/test/ts_online.rb +6 -7
- metadata +8 -2
data/test/spec_helper.rb
CHANGED
@@ -4,9 +4,9 @@ if ENV['RUN_EXTRA_TASK'] == 'TRUE'
|
|
4
4
|
|
5
5
|
require 'simplecov'
|
6
6
|
|
7
|
-
SimpleCov.formatter =
|
8
|
-
|
9
|
-
|
7
|
+
# SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(
|
8
|
+
# [SimpleCov::Formatter::HTMLFormatter, Coveralls::SimpleCov::Formatter])
|
9
|
+
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
10
10
|
SimpleCov.start do
|
11
11
|
add_filter 'test/'
|
12
12
|
end
|
data/test/tc_caa.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
|
2
|
+
# --
|
3
|
+
# Copyright 2007 Nominet UK
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
# ++
|
17
|
+
|
18
|
+
require_relative 'spec_helper'
|
19
|
+
require 'pry'
|
20
|
+
|
21
|
+
class TestCAA < Minitest::Test
|
22
|
+
|
23
|
+
include Dnsruby
|
24
|
+
|
25
|
+
def test_caa
|
26
|
+
{'foo.com. IN CAA 0 issue "ca.example.net"' => [0, 'issue', 'ca.example.net'],
|
27
|
+
'foo.com. IN CAA 1 issue "ca.example.net"' => [1, 'issue', 'ca.example.net'],
|
28
|
+
'foo.com. IN CAA 0 issuewild "ca.example.net"' => [0, 'issuewild', 'ca.example.net'],
|
29
|
+
'foo.com. IN CAA 0 iodef "mailto:security@example.com"' => [0, 'iodef', 'mailto:security@example.com'],
|
30
|
+
'foo.com. IN CAA 0 issue "ca.example.net; account=230123"' => [0, 'issue', 'ca.example.net; account=230123']
|
31
|
+
}.each do |text, data|
|
32
|
+
caa = RR.create(text)
|
33
|
+
assert_equal(data[0], caa.flag)
|
34
|
+
assert_equal(data[1], caa.property_tag)
|
35
|
+
assert_equal(data[2], caa.property_value)
|
36
|
+
m = Dnsruby::Message.new
|
37
|
+
m.add_additional(caa)
|
38
|
+
data = m.encode
|
39
|
+
m2 = Dnsruby::Message.decode(data)
|
40
|
+
caa2 = m2.additional()[0]
|
41
|
+
assert(caa.flag == caa2.flag)
|
42
|
+
assert(caa.property_tag == caa2.property_tag)
|
43
|
+
assert(caa.property_value == caa2.property_value)
|
44
|
+
assert(caa == caa2)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
data/test/tc_cache.rb
CHANGED
@@ -16,9 +16,10 @@
|
|
16
16
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
|
-
include Dnsruby
|
20
|
-
|
21
19
|
class TestCache < Minitest::Test
|
20
|
+
|
21
|
+
include Dnsruby
|
22
|
+
|
22
23
|
def test_cache
|
23
24
|
cache = Cache.new
|
24
25
|
m1 = Message.new("example.com.", Types.A, Classes.IN)
|
@@ -93,27 +94,16 @@ class TestCache < Minitest::Test
|
|
93
94
|
def test_resolver_do_caching
|
94
95
|
# Get the records back from the test zone
|
95
96
|
Dnsruby::PacketSender.clear_caches
|
96
|
-
res = Resolver.new(
|
97
|
-
# res = Resolver.new("ns0.validation-test-servers.nominet.org.uk.")
|
97
|
+
res = Resolver.new()
|
98
98
|
res.do_caching = false
|
99
99
|
assert(!res.do_caching)
|
100
|
-
|
101
|
-
ret = res.query("net-dns.org", Types.TXT)
|
102
|
-
# ret = res.query("overflow.dnsruby.validation-test-servers.nominet.org.uk", Types.TXT)
|
103
|
-
# print "#{ret}\n"
|
100
|
+
ret = res.query("example.com")
|
104
101
|
assert(!ret.cached)
|
105
102
|
assert(ret.rcode == RCode.NoError)
|
106
|
-
assert(ret.header.aa)
|
107
|
-
# Store the ttls
|
108
|
-
first_ttls = ret.answer.rrset(
|
109
|
-
"net-dns.org", Types.TXT).ttl
|
110
|
-
# "overflow.dnsruby.validation-test-servers.nominet.org.uk", Types.TXT).ttl
|
111
103
|
# Wait a while
|
112
104
|
sleep(1)
|
113
105
|
# Ask for the same records
|
114
|
-
ret = res.query("
|
115
|
-
# ret = res.query("overflow.dnsruby.validation-test-servers.nominet.org.uk", Types.TXT)
|
116
|
-
# print "#{ret}\n"
|
106
|
+
ret = res.query("example.com")
|
117
107
|
assert(ret.rcode == RCode.NoError)
|
118
108
|
assert(!ret.cached)
|
119
109
|
end
|
data/test/tc_dlv.rb
CHANGED
data/test/tc_dns.rb
CHANGED
data/test/tc_ds.rb
CHANGED
@@ -20,6 +20,9 @@ require 'openssl'
|
|
20
20
|
require 'digest/sha2'
|
21
21
|
|
22
22
|
class DsTest < Minitest::Test
|
23
|
+
|
24
|
+
include Dnsruby
|
25
|
+
|
23
26
|
DLVINPUT = "dskey.example.com. 86400 IN DLV 60485 5 1 ( 2BB183AF5F22588179A53B0A" +
|
24
27
|
"98631FAD1A292118 )"
|
25
28
|
INPUT = "dskey.example.com. 86400 IN DS 60485 5 1 ( 2BB183AF5F22588179A53B0A" +
|
@@ -37,7 +40,7 @@ class DsTest < Minitest::Test
|
|
37
40
|
DS2 = "dskey.example.com. 86400 IN DS 60485 5 2 ( D4B7D520E7BB5F0F67674A0C"+
|
38
41
|
"CEB1E3E0614B93C4F9E99B83"+
|
39
42
|
"83F6A1E4469DA50A )"
|
40
|
-
|
43
|
+
|
41
44
|
def test_ds_from_string
|
42
45
|
ds = Dnsruby::RR.create(INPUT)
|
43
46
|
assert_equal(60485, ds.key_tag)
|
data/test/tc_escapedchars.rb
CHANGED
data/test/tc_gpos.rb
CHANGED
@@ -2,11 +2,11 @@ require_relative 'spec_helper'
|
|
2
2
|
|
3
3
|
require_relative '../lib/dnsruby/resource/GPOS.rb'
|
4
4
|
|
5
|
-
include Dnsruby
|
6
|
-
|
7
5
|
# Tests GPOS resource record. See bottom of file for sample zone file.
|
8
6
|
class TestGPOS < Minitest::Test
|
9
7
|
|
8
|
+
include Dnsruby
|
9
|
+
|
10
10
|
EXAMPLE_LONGITUDE = '10.0'
|
11
11
|
EXAMPLE_LATITUDE = '20.0'
|
12
12
|
EXAMPLE_ALTITUDE = '30.0'
|
data/test/tc_header.rb
CHANGED
data/test/tc_hip.rb
CHANGED
@@ -17,8 +17,10 @@
|
|
17
17
|
|
18
18
|
require_relative 'spec_helper'
|
19
19
|
|
20
|
-
include Dnsruby
|
21
20
|
class TestHIP < Minitest::Test
|
21
|
+
|
22
|
+
include Dnsruby
|
23
|
+
|
22
24
|
def test_hip
|
23
25
|
[{"www.example.com. IN HIP ( 2 200100107B1A74DF365639CC39F1D578
|
24
26
|
AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D )" =>
|
data/test/tc_hs.rb
CHANGED
data/test/tc_ipseckey.rb
CHANGED
data/test/tc_message.rb
CHANGED
@@ -85,22 +85,6 @@ class TestMessage < Minitest::Test
|
|
85
85
|
# TODO: Add more tests.
|
86
86
|
end
|
87
87
|
|
88
|
-
def test_class_corruption
|
89
|
-
assert(Classes.new('IN') == "IN")
|
90
|
-
response_as_string = "\x00\x04\x00\x01\x00\x06\xfa\x17\x4e\x9a\xf6\xdb\x00\x00\x08\x00\x45\x00\x00\x45\x06\xb4\x00\x00\x40\x11\xf1\x54\xc0\xa8\x00\xbc\xc0\xa8\x00\x93\x00\x35\x8a\x63\x00\x31\x00\x00\xa8\x05\x81\x81\x00\x01\x00\x00\x00\x00\x00\x00\x06\x67\x6f\x6f\x67\x6c\x65\x10\x63\x6f\x6d\x00\x00\x12\x00\x01\x00\x00\x29\x10\x00\x00\x00\x00\x00\x00\x0b\x00\x08"
|
91
|
-
assert(Classes.new('IN') == "IN")
|
92
|
-
begin
|
93
|
-
message = Message.decode(response_as_string)
|
94
|
-
rescue
|
95
|
-
end
|
96
|
-
assert(Classes.new('IN') == "IN")
|
97
|
-
|
98
|
-
msg = Message.new("bbc.co.uk", 'A', 8)
|
99
|
-
msg = Message.new("bbc.co.uk", 'A', 1)
|
100
|
-
assert(Classes.new('IN') == "IN")
|
101
|
-
|
102
|
-
end
|
103
|
-
|
104
88
|
def test_equals
|
105
89
|
response_as_string = "\x10\a\x81\x90\x00\x01\x00\x04\x00\x00\x00\x06\x03cnn\x03com\x00\x00\x02\x00\x01\xC0\f\x00\x02\x00\x01\x00\x01QC\x00\x14\x03ns3\ntimewarner\x03net\x00\xC0\f\x00\x02\x00\x01\x00\x01QC\x00\x11\x03ns2\x03p42\x06dynect\xC04\xC0\f\x00\x02\x00\x01\x00\x01QC\x00\x06\x03ns1\xC0)\xC0\f\x00\x02\x00\x01\x00\x01QC\x00\x06\x03ns1\xC0I\xC0%\x00\x01\x00\x01\x00\x001\xA2\x00\x04\xC7\aD\xEE\xC0E\x00\x01\x00\x01\x00\x00\xB1\x0E\x00\x04\xCC\r\xFA*\xC0b\x00\x01\x00\x01\x00\x009`\x00\x04\xCCJl\xEE\xC0t\x00\x01\x00\x01\x00\x00\xBDg\x00\x04\xD0NF*\xC0t\x00\x1C\x00\x01\x00\x00\x00\xBB\x00\x10 \x01\x05\x00\x00\x90\x00\x01\x00\x00\x00\x00\x00\x00\x00B\x00\x00)\x0F\xA0\x00\x00\x80\x00\x00\x00".force_encoding("ASCII-8BIT")
|
106
90
|
message = Message.decode(response_as_string)
|
data/test/tc_name.rb
CHANGED
@@ -16,8 +16,10 @@
|
|
16
16
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
|
-
include Dnsruby
|
20
19
|
class TestName < Minitest::Test
|
20
|
+
|
21
|
+
include Dnsruby
|
22
|
+
|
21
23
|
def test_label_length
|
22
24
|
Name::Label.set_max_length(Name::Label::MaxLabelLength) # Other tests may have changed this
|
23
25
|
# Test max label length = 63
|
data/test/tc_naptr.rb
CHANGED
@@ -16,8 +16,10 @@
|
|
16
16
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
|
-
include Dnsruby
|
20
19
|
class TestNAPTR < Minitest::Test
|
20
|
+
|
21
|
+
include Dnsruby
|
22
|
+
|
21
23
|
def test_naptr
|
22
24
|
txt = "example.com. IN NAPTR 100 50 \"s\" \"z3950+I2L+I2C\" \"\" _z3950._tcp.gatech.edu."
|
23
25
|
naptr = RR.create(txt)
|
data/test/tc_nsec.rb
CHANGED
@@ -16,12 +16,12 @@
|
|
16
16
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
|
-
include Dnsruby
|
20
|
-
|
21
19
|
class NsecTest < Minitest::Test
|
20
|
+
|
21
|
+
include Dnsruby
|
22
|
+
|
22
23
|
INPUT = "alfa.example.com. 86400 IN NSEC host.example.com. ( " +
|
23
24
|
"A MX RRSIG NSEC TYPE1234 )"
|
24
|
-
include Dnsruby
|
25
25
|
def test_nsec_from_string
|
26
26
|
nsec = Dnsruby::RR.create(INPUT)
|
27
27
|
assert_equal("host.example.com", nsec.next_domain.to_s)
|
data/test/tc_nsec3.rb
CHANGED
@@ -17,11 +17,13 @@
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
19
|
class Nsec3Test < Minitest::Test
|
20
|
+
|
21
|
+
include Dnsruby
|
22
|
+
|
20
23
|
INPUT = "2t7b4g4vsa5smi47k61mv5bv1a22bojr.example. 3600 IN NSEC3 1 1 12 aabbccdd ( " +
|
21
24
|
"2vptu5timamqttgl4luu9kg21e0aor3s A RRSIG )"
|
22
25
|
INPUT2 = "2t7b4g4vsa5smi47k61mv5bv1a22bojr.example. 3600 IN NSEC3 1 1 12 aabbccdd " +
|
23
26
|
"2vptu5timamqttgl4luu9kg21e0aor3s"
|
24
|
-
include Dnsruby
|
25
27
|
def test_nsec_from_string
|
26
28
|
nsec = Dnsruby::RR.create(INPUT)
|
27
29
|
# assert_equal(H("x.y.w.example"), nsec.next_hashed.to_s)
|
data/test/tc_nsec3param.rb
CHANGED
@@ -17,9 +17,11 @@
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
19
|
class Nsec3ParamTest < Minitest::Test
|
20
|
-
INPUT = "example. 3600 IN NSEC3PARAM 1 0 12 aabbccdd"
|
21
20
|
|
22
21
|
include Dnsruby
|
22
|
+
|
23
|
+
INPUT = "example. 3600 IN NSEC3PARAM 1 0 12 aabbccdd"
|
24
|
+
|
23
25
|
def test_nsec_from_string
|
24
26
|
nsec = Dnsruby::RR.create(INPUT)
|
25
27
|
|
data/test/tc_nxt.rb
CHANGED
@@ -3,11 +3,11 @@ require_relative 'spec_helper'
|
|
3
3
|
require_relative '../lib/dnsruby/resource/NXT'
|
4
4
|
require_relative '../lib/dnsruby/code_mappers'
|
5
5
|
|
6
|
-
include Dnsruby
|
7
|
-
|
8
6
|
# Tests NXT resource record. See bottom of file for sample zone file.
|
9
7
|
class TestNXT < Minitest::Test
|
10
8
|
|
9
|
+
include Dnsruby
|
10
|
+
|
11
11
|
# Get this by running the following script:
|
12
12
|
# require 'dnsruby'
|
13
13
|
# include Dnsruby
|
data/test/tc_packet.rb
CHANGED
@@ -16,8 +16,10 @@
|
|
16
16
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
|
-
include Dnsruby
|
20
19
|
class TestPacket < Minitest::Test
|
20
|
+
|
21
|
+
include Dnsruby
|
22
|
+
|
21
23
|
def test_packet
|
22
24
|
domain = "example.com."
|
23
25
|
type = "MX"
|
@@ -294,5 +296,4 @@ f4 00 31 04 64 6e 73 31 05 69 63 61 6e 6e 03 6f
|
|
294
296
|
assert_equal(m.to_s, m2.to_s, "Clone to_s failed")
|
295
297
|
assert_equal(m, m2, "Clone failed")
|
296
298
|
end
|
297
|
-
|
298
299
|
end
|
data/test/tc_ptrin.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
require_relative 'spec_helper'
|
2
2
|
|
3
|
-
include Dnsruby
|
4
3
|
class TestPtrIn < Minitest::Test
|
5
4
|
|
5
|
+
include Dnsruby
|
6
|
+
|
6
7
|
# Tests that message raises no error when decoded, encoded, and decoded again.
|
7
8
|
def verify(message_data_as_hex_string, canonical = false)
|
8
9
|
# Dnsruby.log.level = Logger::DEBUG
|
data/test/tc_question.rb
CHANGED
data/test/tc_res_env.rb
CHANGED
@@ -16,8 +16,10 @@
|
|
16
16
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
|
19
|
-
include Dnsruby
|
20
19
|
class TestResolverEnv < Minitest::Test
|
20
|
+
|
21
|
+
include Dnsruby
|
22
|
+
|
21
23
|
# @todo@ Dnsruby does not provide this functionality
|
22
24
|
def test_res_env
|
23
25
|
ENV['RES_NAMESERVERS'] = '10.0.1.128 10.0.2.128';
|
data/test/tc_res_opt.rb
CHANGED
data/test/tc_resolv.rb
CHANGED
@@ -17,7 +17,6 @@
|
|
17
17
|
require_relative 'spec_helper'
|
18
18
|
require_relative '../lib/dnsruby/resolv'
|
19
19
|
|
20
|
-
include Dnsruby
|
21
20
|
class TestResolv < Minitest::Test
|
22
21
|
|
23
22
|
RELATIVE_NAME = 'google-public-dns-a.google.com'
|
@@ -56,7 +55,7 @@ class TestResolv < Minitest::Test
|
|
56
55
|
|
57
56
|
assert_equal(RELATIVE_NAME, Dnsruby::Resolv.getname(IPV4_ADDR).to_s)
|
58
57
|
|
59
|
-
assert_raises(Dnsruby::
|
58
|
+
assert_raises(Dnsruby::ResolvError) do
|
60
59
|
Dnsruby::Resolv.getname(RELATIVE_NAME)
|
61
60
|
end
|
62
61
|
|
data/test/tc_resolver.rb
CHANGED
@@ -17,7 +17,6 @@ require_relative 'spec_helper'
|
|
17
17
|
|
18
18
|
require 'socket'
|
19
19
|
|
20
|
-
include Dnsruby
|
21
20
|
# @TODO@ We also need a test server so we can control behaviour of server to test
|
22
21
|
# different aspects of retry strategy.
|
23
22
|
# Of course, with Ruby's limit of 256 open sockets per process, we'd need to run
|
@@ -180,7 +179,7 @@ class TestResolver < Minitest::Test
|
|
180
179
|
# Work out what time should be, then time it to check
|
181
180
|
expected = ((2**(retry_times-1))*retry_delay) + packet_timeout
|
182
181
|
begin
|
183
|
-
res = Resolver.new({:nameserver => "10.0.1.128"})
|
182
|
+
res = Dnsruby::Resolver.new({:nameserver => "10.0.1.128"})
|
184
183
|
# res = Resolver.new({:nameserver => "213.248.199.17"})
|
185
184
|
res.packet_timeout=packet_timeout
|
186
185
|
res.retry_times=retry_times
|
@@ -191,13 +190,13 @@ class TestResolver < Minitest::Test
|
|
191
190
|
rescue ResolvTimeout
|
192
191
|
stop=Time.now
|
193
192
|
time = stop-start
|
194
|
-
assert(time <= expected *1.3 && time >= expected *0.9, "Wrong time take, expected #{expected}, took #{time}")
|
193
|
+
assert(time <= expected * 1.3 && time >= expected * 0.9, "Wrong time take, expected #{expected}, took #{time}")
|
195
194
|
end
|
196
195
|
end
|
197
196
|
end
|
198
197
|
|
199
198
|
def test_packet_timeout
|
200
|
-
res = Resolver.new({:nameserver => []})
|
199
|
+
res = Dnsruby::Resolver.new({:nameserver => []})
|
201
200
|
# res = Resolver.new({:nameserver => "10.0.1.128"})
|
202
201
|
start=stop=0
|
203
202
|
retry_times = retry_delay = packet_timeout= 10
|
@@ -212,16 +211,16 @@ class TestResolver < Minitest::Test
|
|
212
211
|
start=Time.now
|
213
212
|
m = res.send_message(Message.new("a.t.dnsruby.validation-test-servers.nominet.org.uk", Types.A))
|
214
213
|
fail
|
215
|
-
rescue ResolvTimeout
|
214
|
+
rescue Dnsruby::ResolvTimeout
|
216
215
|
stop=Time.now
|
217
216
|
time = stop-start
|
218
|
-
assert(time <= expected *1.3 && time >= expected *0.9, "Wrong time take, expected #{expected}, took #{time}")
|
217
|
+
assert(time <= expected * 1.3 && time >= expected * 0.9, "Wrong time take, expected #{expected}, took #{time}")
|
219
218
|
end #
|
220
219
|
end
|
221
220
|
|
222
221
|
def test_queue_packet_timeout
|
223
222
|
# if (!RUBY_PLATFORM=~/darwin/)
|
224
|
-
res = Resolver.new({:nameserver => "10.0.1.128"})
|
223
|
+
res = Dnsruby::Resolver.new({:nameserver => "10.0.1.128"})
|
225
224
|
# bad = SingleResolver.new("localhost")
|
226
225
|
res.add_server("localhost")
|
227
226
|
expected = 2
|
@@ -235,14 +234,14 @@ class TestResolver < Minitest::Test
|
|
235
234
|
assert(ret==nil)
|
236
235
|
assert(err.class == ResolvTimeout, "#{err.class}, #{err}")
|
237
236
|
time = stop-start
|
238
|
-
assert(time <= expected *1.3 && time >= expected *0.9, "Wrong time take, expected #{expected}, took #{time}")
|
237
|
+
assert(time <= expected * 1.3 && time >= expected * 0.9, "Wrong time take, expected #{expected}, took #{time}")
|
239
238
|
# end
|
240
239
|
end
|
241
240
|
|
242
241
|
def test_illegal_src_port
|
243
242
|
# Also test all singleresolver ports ok
|
244
243
|
# Try to set src_port to an illegal value - make sure error raised, and port OK
|
245
|
-
res = Resolver.new
|
244
|
+
res = Dnsruby::Resolver.new
|
246
245
|
res.port = 56789
|
247
246
|
tests = [53, 387, 1265, 3210, 48619]
|
248
247
|
tests.each do |bad_port|
|
@@ -300,7 +299,7 @@ class TestRawQuery < Minitest::Test
|
|
300
299
|
# Returns a new resolver whose send_plain_message method always returns
|
301
300
|
# nil for the response, and a RuntimeError for the error.
|
302
301
|
def resolver_returning_error
|
303
|
-
resolver = Resolver.new
|
302
|
+
resolver = Dnsruby::Resolver.new
|
304
303
|
def resolver.send_plain_message(_message)
|
305
304
|
[nil, CustomError.new]
|
306
305
|
end
|
@@ -311,7 +310,7 @@ class TestRawQuery < Minitest::Test
|
|
311
310
|
# :response_from_send_plain_message instead of a real Dnsruby::Message,
|
312
311
|
# for easy comparison in the tests.
|
313
312
|
def resolver_returning_response
|
314
|
-
resolver = Resolver.new
|
313
|
+
resolver = Dnsruby::Resolver.new
|
315
314
|
def resolver.send_plain_message(_message)
|
316
315
|
[:response_from_send_plain_message, nil]
|
317
316
|
end
|
@@ -322,7 +321,7 @@ class TestRawQuery < Minitest::Test
|
|
322
321
|
# an ArgumentError is raised.
|
323
322
|
def test_bad_strategy
|
324
323
|
assert_raises(ArgumentError) do
|
325
|
-
resolver_returning_error.query_raw(Message.new, :invalid_strategy)
|
324
|
+
resolver_returning_error.query_raw(Dnsruby::Message.new, :invalid_strategy)
|
326
325
|
end
|
327
326
|
end
|
328
327
|
|
@@ -330,47 +329,47 @@ class TestRawQuery < Minitest::Test
|
|
330
329
|
# and the error strategy is :raise, query_raw raises an error.
|
331
330
|
def test_raise_error
|
332
331
|
assert_raises(CustomError) do
|
333
|
-
resolver_returning_error.query_raw(Message.new, :raise)
|
332
|
+
resolver_returning_error.query_raw(Dnsruby::Message.new, :raise)
|
334
333
|
end
|
335
334
|
end
|
336
335
|
|
337
336
|
# Tests that if you don't specify an error strategy, an error will be
|
338
337
|
# returned rather than raised (i.e. strategy defaults to :return).
|
339
338
|
def test_return_error_is_default
|
340
|
-
_response, error = resolver_returning_error.query_raw(Message.new)
|
339
|
+
_response, error = resolver_returning_error.query_raw(Dnsruby::Message.new)
|
341
340
|
assert error.is_a?(CustomError)
|
342
341
|
end
|
343
342
|
|
344
343
|
# Tests that when no error is returned, no error is raised.
|
345
344
|
def test_raise_no_error
|
346
|
-
response, _error = resolver_returning_response.query_raw(Message.new, :raise)
|
345
|
+
response, _error = resolver_returning_response.query_raw(Dnsruby::Message.new, :raise)
|
347
346
|
assert_equal :response_from_send_plain_message, response
|
348
347
|
end
|
349
348
|
|
350
349
|
# Test that when send_plain_message returns an error, and the error strategy
|
351
350
|
# is set to :return, then an error is returned.
|
352
351
|
def test_return_error
|
353
|
-
_response, error = resolver_returning_error.query_raw(Message.new, :return)
|
352
|
+
_response, error = resolver_returning_error.query_raw(Dnsruby::Message.new, :return)
|
354
353
|
assert error.is_a?(CustomError)
|
355
354
|
end
|
356
355
|
|
357
356
|
# Test that when send_plain_message returns a valid and response
|
358
357
|
# and nil error, the same are returned by query_raw.
|
359
358
|
def test_return_no_error
|
360
|
-
response, error = resolver_returning_response.query_raw(Message.new, :return)
|
359
|
+
response, error = resolver_returning_response.query_raw(Dnsruby::Message.new, :return)
|
361
360
|
assert_nil error
|
362
361
|
assert_equal :response_from_send_plain_message, response
|
363
362
|
end
|
364
363
|
|
365
364
|
def test_2_args_init
|
366
|
-
options = Resolver.create_tsig_options(KEY_NAME, KEY)
|
365
|
+
options = Dnsruby::Resolver.create_tsig_options(KEY_NAME, KEY)
|
367
366
|
assert_equal KEY_NAME, options[:name]
|
368
367
|
assert_equal KEY, options[:key]
|
369
368
|
assert_nil options[:algorithm]
|
370
369
|
end
|
371
370
|
|
372
371
|
def test_3_args_init
|
373
|
-
options = Resolver.create_tsig_options(KEY_NAME,KEY,ALGO)
|
372
|
+
options = Dnsruby::Resolver.create_tsig_options(KEY_NAME,KEY,ALGO)
|
374
373
|
assert_equal KEY_NAME, options[:name]
|
375
374
|
assert_equal KEY, options[:key]
|
376
375
|
assert_equal ALGO, options[:algorithm]
|