dnsruby 1.60.2 → 1.73.0

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.
Files changed (79) hide show
  1. checksums.yaml +5 -5
  2. data/.github/FUNDING.yml +3 -0
  3. data/.github/dependabot.yml +11 -0
  4. data/.github/workflows/ci.yml +26 -0
  5. data/.yardopts +7 -0
  6. data/README.md +8 -5
  7. data/RELEASE_NOTES.md +105 -0
  8. data/Rakefile +1 -0
  9. data/demo/digdlv.rb +1 -0
  10. data/demo/digroot.rb +2 -0
  11. data/dnsruby.gemspec +22 -14
  12. data/lib/dnsruby/DNS.rb +1 -1
  13. data/lib/dnsruby/bit_mapping.rb +2 -2
  14. data/lib/dnsruby/code_mappers.rb +6 -2
  15. data/lib/dnsruby/config.rb +29 -15
  16. data/lib/dnsruby/dnssec.rb +4 -1
  17. data/lib/dnsruby/hosts.rb +1 -4
  18. data/lib/dnsruby/ipv6.rb +5 -5
  19. data/lib/dnsruby/message/encoder.rb +5 -5
  20. data/lib/dnsruby/message/header.rb +15 -18
  21. data/lib/dnsruby/message/message.rb +2 -2
  22. data/lib/dnsruby/name.rb +19 -3
  23. data/lib/dnsruby/packet_sender.rb +25 -17
  24. data/lib/dnsruby/recursor.rb +17 -7
  25. data/lib/dnsruby/resolver.rb +43 -26
  26. data/lib/dnsruby/resource/CAA.rb +5 -2
  27. data/lib/dnsruby/resource/CDNSKEY.rb +17 -0
  28. data/lib/dnsruby/resource/CDS.rb +35 -0
  29. data/lib/dnsruby/resource/DNSKEY.rb +53 -13
  30. data/lib/dnsruby/resource/DS.rb +2 -5
  31. data/lib/dnsruby/resource/GPOS.rb +1 -1
  32. data/lib/dnsruby/resource/IN.rb +4 -1
  33. data/lib/dnsruby/resource/NSEC.rb +2 -2
  34. data/lib/dnsruby/resource/NSEC3PARAM.rb +1 -1
  35. data/lib/dnsruby/resource/NXT.rb +1 -1
  36. data/lib/dnsruby/resource/RR.rb +1 -1
  37. data/lib/dnsruby/resource/TLSA.rb +3 -3
  38. data/lib/dnsruby/resource/TXT.rb +12 -2
  39. data/lib/dnsruby/resource/URI.rb +57 -0
  40. data/lib/dnsruby/resource/generic.rb +3 -0
  41. data/lib/dnsruby/select_thread.rb +36 -28
  42. data/lib/dnsruby/single_verifier.rb +29 -8
  43. data/lib/dnsruby/validator_thread.rb +4 -4
  44. data/lib/dnsruby/version.rb +1 -1
  45. data/lib/dnsruby/zone_reader.rb +2 -2
  46. data/lib/dnsruby/zone_transfer.rb +5 -2
  47. data/lib/dnsruby.rb +4 -4
  48. data/test/localdns.rb +29 -0
  49. data/test/spec_helper.rb +34 -9
  50. data/test/tc_caa.rb +12 -1
  51. data/test/tc_dns.rb +15 -5
  52. data/test/tc_dnskey.rb +29 -0
  53. data/test/tc_ecdsa.rb +27 -0
  54. data/test/tc_encoding.rb +31 -0
  55. data/test/tc_escapedchars.rb +8 -9
  56. data/test/tc_gpos.rb +1 -1
  57. data/test/tc_hs.rb +4 -8
  58. data/test/tc_long_labels.rb +46 -0
  59. data/test/tc_message.rb +2 -2
  60. data/test/tc_name.rb +21 -2
  61. data/test/tc_nxt.rb +0 -1
  62. data/test/tc_recur.rb +4 -7
  63. data/test/tc_resolv.rb +14 -6
  64. data/test/tc_resolver.rb +114 -11
  65. data/test/tc_rr-opt.rb +8 -5
  66. data/test/tc_rr-txt.rb +7 -1
  67. data/test/tc_rr-unknown.rb +1 -1
  68. data/test/tc_rr.rb +37 -4
  69. data/test/tc_single_resolver.rb +9 -17
  70. data/test/tc_soak.rb +33 -67
  71. data/test/tc_tcp.rb +2 -2
  72. data/test/tc_tcp_pipelining.rb +30 -22
  73. data/test/tc_tkey.rb +1 -7
  74. data/test/tc_update.rb +0 -1
  75. data/test/tc_verifier.rb +15 -0
  76. data/test/test_dnsserver.rb +110 -17
  77. data/test/test_utils.rb +0 -2
  78. metadata +83 -46
  79. data/.travis.yml +0 -14
metadata CHANGED
@@ -1,133 +1,155 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dnsruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.60.2
4
+ version: 1.73.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Dalitz
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-10 00:00:00.000000000 Z
11
+ date: 2025-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: pry
14
+ name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.10'
19
+ version: 13.0.6
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0.10'
26
+ version: 13.0.6
27
27
  - !ruby/object:Gem::Dependency
28
- name: pry-byebug
28
+ name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.0'
33
+ version: '5.25'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.0'
40
+ version: '5.25'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: rubydns
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '10'
48
45
  - - ">="
49
46
  - !ruby/object:Gem::Version
50
- version: 10.3.2
47
+ version: 2.0.2
51
48
  type: :development
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
- - - "~>"
52
+ - - ">="
56
53
  - !ruby/object:Gem::Version
57
- version: '10'
54
+ version: 2.0.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: nio4r
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 2.5.8
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
58
66
  - - ">="
59
67
  - !ruby/object:Gem::Version
60
- version: 10.3.2
68
+ version: 2.5.8
61
69
  - !ruby/object:Gem::Dependency
62
- name: minitest
70
+ name: minitest-display
63
71
  requirement: !ruby/object:Gem::Requirement
64
72
  requirements:
65
- - - "~>"
73
+ - - ">="
66
74
  - !ruby/object:Gem::Version
67
- version: '5.4'
75
+ version: 0.3.1
68
76
  type: :development
69
77
  prerelease: false
70
78
  version_requirements: !ruby/object:Gem::Requirement
71
79
  requirements:
72
- - - "~>"
80
+ - - ">="
73
81
  - !ruby/object:Gem::Version
74
- version: '5.4'
82
+ version: 0.3.1
75
83
  - !ruby/object:Gem::Dependency
76
- name: rubydns
84
+ name: yard
77
85
  requirement: !ruby/object:Gem::Requirement
78
86
  requirements:
79
- - - "~>"
87
+ - - ">="
80
88
  - !ruby/object:Gem::Version
81
- version: '1.0'
89
+ version: '0.9'
82
90
  type: :development
83
91
  prerelease: false
84
92
  version_requirements: !ruby/object:Gem::Requirement
85
93
  requirements:
86
- - - "~>"
94
+ - - ">="
87
95
  - !ruby/object:Gem::Version
88
- version: '1.0'
96
+ version: '0.9'
89
97
  - !ruby/object:Gem::Dependency
90
- name: nio4r
98
+ name: coveralls
91
99
  requirement: !ruby/object:Gem::Requirement
92
100
  requirements:
93
101
  - - "~>"
94
102
  - !ruby/object:Gem::Version
95
- version: '1.1'
103
+ version: 0.8.23
96
104
  type: :development
97
105
  prerelease: false
98
106
  version_requirements: !ruby/object:Gem::Requirement
99
107
  requirements:
100
108
  - - "~>"
101
109
  - !ruby/object:Gem::Version
102
- version: '1.1'
110
+ version: 0.8.23
103
111
  - !ruby/object:Gem::Dependency
104
- name: minitest-display
112
+ name: base64
105
113
  requirement: !ruby/object:Gem::Requirement
106
114
  requirements:
107
115
  - - ">="
108
116
  - !ruby/object:Gem::Version
109
- version: 0.3.0
110
- type: :development
117
+ version: '0.2'
118
+ type: :runtime
111
119
  prerelease: false
112
120
  version_requirements: !ruby/object:Gem::Requirement
113
121
  requirements:
114
122
  - - ">="
115
123
  - !ruby/object:Gem::Version
116
- version: 0.3.0
124
+ version: '0.2'
117
125
  - !ruby/object:Gem::Dependency
118
- name: coveralls
126
+ name: logger
119
127
  requirement: !ruby/object:Gem::Requirement
120
128
  requirements:
121
129
  - - "~>"
122
130
  - !ruby/object:Gem::Version
123
- version: '0.7'
124
- type: :development
131
+ version: '1.6'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.6'
139
+ - !ruby/object:Gem::Dependency
140
+ name: simpleidn
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.2.1
146
+ type: :runtime
125
147
  prerelease: false
126
148
  version_requirements: !ruby/object:Gem::Requirement
127
149
  requirements:
128
150
  - - "~>"
129
151
  - !ruby/object:Gem::Version
130
- version: '0.7'
152
+ version: 0.2.1
131
153
  description: |-
132
154
  Dnsruby is a pure Ruby DNS client library which implements a
133
155
  stub resolver. It aims to comply with all DNS RFCs, including
@@ -142,8 +164,11 @@ extra_rdoc_files:
142
164
  - EVENTMACHINE
143
165
  files:
144
166
  - ".coveralls.yml"
167
+ - ".github/FUNDING.yml"
168
+ - ".github/dependabot.yml"
169
+ - ".github/workflows/ci.yml"
145
170
  - ".gitignore"
146
- - ".travis.yml"
171
+ - ".yardopts"
147
172
  - DNSSEC
148
173
  - EVENTMACHINE
149
174
  - EXAMPLES
@@ -194,6 +219,8 @@ files:
194
219
  - lib/dnsruby/resource/AFSDB.rb
195
220
  - lib/dnsruby/resource/APL.rb
196
221
  - lib/dnsruby/resource/CAA.rb
222
+ - lib/dnsruby/resource/CDNSKEY.rb
223
+ - lib/dnsruby/resource/CDS.rb
197
224
  - lib/dnsruby/resource/CERT.rb
198
225
  - lib/dnsruby/resource/DHCID.rb
199
226
  - lib/dnsruby/resource/DLV.rb
@@ -230,6 +257,7 @@ files:
230
257
  - lib/dnsruby/resource/TLSA.rb
231
258
  - lib/dnsruby/resource/TSIG.rb
232
259
  - lib/dnsruby/resource/TXT.rb
260
+ - lib/dnsruby/resource/URI.rb
233
261
  - lib/dnsruby/resource/X25.rb
234
262
  - lib/dnsruby/resource/domain_name.rb
235
263
  - lib/dnsruby/resource/generic.rb
@@ -245,6 +273,7 @@ files:
245
273
  - lib/dnsruby/zone_reader.rb
246
274
  - lib/dnsruby/zone_transfer.rb
247
275
  - test/custom.txt
276
+ - test/localdns.rb
248
277
  - test/resolv.conf
249
278
  - test/run-tests-individually
250
279
  - test/spec_helper.rb
@@ -255,6 +284,8 @@ files:
255
284
  - test/tc_dns.rb
256
285
  - test/tc_dnskey.rb
257
286
  - test/tc_ds.rb
287
+ - test/tc_ecdsa.rb
288
+ - test/tc_encoding.rb
258
289
  - test/tc_escapedchars.rb
259
290
  - test/tc_gpos.rb
260
291
  - test/tc_hash.rb
@@ -262,6 +293,7 @@ files:
262
293
  - test/tc_hip.rb
263
294
  - test/tc_hs.rb
264
295
  - test/tc_ipseckey.rb
296
+ - test/tc_long_labels.rb
265
297
  - test/tc_message.rb
266
298
  - test/tc_misc.rb
267
299
  - test/tc_name.rb
@@ -309,7 +341,13 @@ files:
309
341
  homepage: https://github.com/alexdalitz/dnsruby
310
342
  licenses:
311
343
  - Apache License, Version 2.0
312
- metadata: {}
344
+ metadata:
345
+ yard.run: yard
346
+ bug_tracker_uri: https://github.com/alexdalitz/dnsruby/issues
347
+ changelog_uri: https://github.com/alexdalitz/dnsruby/blob/master/RELEASE_NOTES.md
348
+ documentation_uri: https://www.rubydoc.info/gems/dnsruby/
349
+ homepage_uri: https://github.com/alexdalitz/dnsruby
350
+ source_code_uri: https://github.com/alexdalitz/dnsruby
313
351
  post_install_message: |-
314
352
  Installing dnsruby...
315
353
  For issues and source code: https://github.com/alexdalitz/dnsruby
@@ -321,16 +359,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
321
359
  requirements:
322
360
  - - ">="
323
361
  - !ruby/object:Gem::Version
324
- version: '0'
362
+ version: 2.8.0
325
363
  required_rubygems_version: !ruby/object:Gem::Requirement
326
364
  requirements:
327
365
  - - ">="
328
366
  - !ruby/object:Gem::Version
329
367
  version: '0'
330
368
  requirements: []
331
- rubyforge_project:
332
- rubygems_version: 2.4.2
333
- signing_key:
369
+ rubygems_version: 3.5.3
370
+ signing_key:
334
371
  specification_version: 4
335
372
  summary: Ruby DNS(SEC) implementation
336
373
  test_files:
data/.travis.yml DELETED
@@ -1,14 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- sudo: false
4
-
5
- script: "bundle exec rake test"
6
-
7
- rvm:
8
- - 2.0.0
9
- - 2.1.4
10
- - 2.3.0
11
- # - rbx-2
12
- - ruby-head
13
- # - jruby-head
14
- # - ree