dnsruby 1.60.0 → 1.60.1
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.
- 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]
|