net-dns 0.8.0 → 0.20.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.
- checksums.yaml +6 -14
- data/.rspec +1 -0
- data/.travis.yml +9 -16
- data/CHANGELOG.md +37 -13
- data/LICENSE.txt +56 -0
- data/README.md +94 -77
- data/demo/check_soa.rb +27 -38
- data/demo/threads.rb +3 -7
- data/lib/net/dns/header.rb +86 -110
- data/lib/net/dns/names.rb +31 -31
- data/lib/net/dns/packet.rb +148 -158
- data/lib/net/dns/question.rb +41 -42
- data/lib/net/dns/resolver/socks.rb +47 -55
- data/lib/net/dns/resolver/timeouts.rb +19 -30
- data/lib/net/dns/resolver.rb +151 -176
- data/lib/net/dns/rr/a.rb +45 -55
- data/lib/net/dns/rr/aaaa.rb +39 -50
- data/lib/net/dns/rr/classes.rb +32 -37
- data/lib/net/dns/rr/cname.rb +31 -41
- data/lib/net/dns/rr/hinfo.rb +40 -56
- data/lib/net/dns/rr/mr.rb +31 -42
- data/lib/net/dns/rr/mx.rb +35 -47
- data/lib/net/dns/rr/ns.rb +31 -41
- data/lib/net/dns/rr/null.rb +10 -15
- data/lib/net/dns/rr/ptr.rb +16 -24
- data/lib/net/dns/rr/soa.rb +36 -35
- data/lib/net/dns/rr/srv.rb +18 -19
- data/lib/net/dns/rr/txt.rb +11 -16
- data/lib/net/dns/rr/types.rb +118 -109
- data/lib/net/dns/rr.rb +107 -117
- data/lib/net/dns/version.rb +5 -13
- data/lib/net/dns.rb +6 -11
- metadata +18 -83
- data/.gitignore +0 -8
- data/Gemfile +0 -4
- data/Rakefile +0 -71
- data/fixtures/resolv.conf +0 -4
- data/lib/net/dns/core_ext.rb +0 -52
- data/net-dns.gemspec +0 -35
- data/test/header_test.rb +0 -167
- data/test/names_test.rb +0 -21
- data/test/packet_test.rb +0 -49
- data/test/question_test.rb +0 -83
- data/test/resolver/timeouts_test.rb +0 -109
- data/test/resolver_test.rb +0 -117
- data/test/rr/a_test.rb +0 -113
- data/test/rr/aaaa_test.rb +0 -109
- data/test/rr/classes_test.rb +0 -85
- data/test/rr/cname_test.rb +0 -97
- data/test/rr/hinfo_test.rb +0 -117
- data/test/rr/mr_test.rb +0 -105
- data/test/rr/mx_test.rb +0 -112
- data/test/rr/ns_test.rb +0 -86
- data/test/rr/types_test.rb +0 -69
- data/test/rr_test.rb +0 -131
- data/test/test_helper.rb +0 -4
data/lib/net/dns/rr.rb
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
require 'ipaddr'
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
require_relative 'names'
|
3
|
+
require_relative 'rr/types'
|
4
|
+
require_relative 'rr/classes'
|
5
5
|
|
6
|
-
%w
|
7
|
-
|
6
|
+
%w[a aaaa cname hinfo mr mx ns ptr soa srv txt].each do |file|
|
7
|
+
require_relative "rr/#{file}"
|
8
8
|
end
|
9
9
|
|
10
10
|
module Net
|
11
11
|
module DNS
|
12
|
-
|
13
12
|
#
|
14
13
|
# = Net::DNS::RR - DNS Resource Record class
|
15
14
|
#
|
@@ -42,7 +41,6 @@ module Net
|
|
42
41
|
class RR
|
43
42
|
include Names
|
44
43
|
|
45
|
-
|
46
44
|
# Base error class.
|
47
45
|
class Error < StandardError
|
48
46
|
end
|
@@ -51,7 +49,6 @@ module Net
|
|
51
49
|
class DataError < Error
|
52
50
|
end
|
53
51
|
|
54
|
-
|
55
52
|
# Regexp matching an RR string
|
56
53
|
RR_REGEXP = Regexp.new("^\\s*(\\S+)\\s*(\\d+)?\\s+(" +
|
57
54
|
Net::DNS::RR::Classes.regexp +
|
@@ -63,7 +60,6 @@ module Net
|
|
63
60
|
# RR portion of the packet, in bytes
|
64
61
|
RRFIXEDSZ = 10
|
65
62
|
|
66
|
-
|
67
63
|
# Create a new instance of Net::DNS::RR class, or an instance of
|
68
64
|
# any of the subclass of the appropriate type.
|
69
65
|
#
|
@@ -108,12 +104,12 @@ module Net
|
|
108
104
|
#
|
109
105
|
def initialize(arg)
|
110
106
|
instance = case arg
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
107
|
+
when String
|
108
|
+
new_from_string(arg)
|
109
|
+
when Hash
|
110
|
+
new_from_hash(arg)
|
111
|
+
else
|
112
|
+
raise ArgumentError, "Invalid argument, must be a RR string or an hash of values"
|
117
113
|
end
|
118
114
|
|
119
115
|
if @type.to_s == "ANY"
|
@@ -133,7 +129,7 @@ module Net
|
|
133
129
|
# This method is used when parsing a binary packet by the Packet
|
134
130
|
# class.
|
135
131
|
#
|
136
|
-
def
|
132
|
+
def self.parse(data)
|
137
133
|
o = allocate
|
138
134
|
obj, offset = o.send(:new_from_binary, data, 0)
|
139
135
|
obj
|
@@ -146,18 +142,14 @@ module Net
|
|
146
142
|
# Return an instance of appropriate class and the offset
|
147
143
|
# pointing at the end of the data parsed.
|
148
144
|
#
|
149
|
-
def
|
145
|
+
def self.parse_packet(data, offset)
|
150
146
|
o = allocate
|
151
147
|
o.send(:new_from_binary, data, offset)
|
152
148
|
end
|
153
149
|
|
154
|
-
|
155
|
-
@name
|
156
|
-
end
|
150
|
+
attr_reader :name
|
157
151
|
|
158
|
-
|
159
|
-
@ttl
|
160
|
-
end
|
152
|
+
attr_reader :ttl
|
161
153
|
|
162
154
|
# Type accessor
|
163
155
|
def type
|
@@ -169,16 +161,13 @@ module Net
|
|
169
161
|
@cls.to_s
|
170
162
|
end
|
171
163
|
|
172
|
-
|
173
164
|
def value
|
174
165
|
get_inspect
|
175
166
|
end
|
176
167
|
|
177
168
|
# Data belonging to that appropriate class,
|
178
169
|
# not to be used (use real accessors instead)
|
179
|
-
|
180
|
-
@rdata
|
181
|
-
end
|
170
|
+
attr_reader :rdata
|
182
171
|
|
183
172
|
# Return the RR object in binary data format, suitable
|
184
173
|
# for using in network streams.
|
@@ -201,14 +190,13 @@ module Net
|
|
201
190
|
#
|
202
191
|
# TO FIX in one of the future releases
|
203
192
|
#
|
204
|
-
def comp_data(offset,compnames)
|
193
|
+
def comp_data(offset, compnames)
|
205
194
|
str, offset, names = dn_comp(@name, offset, compnames)
|
206
195
|
str += [@type.to_i, @cls.to_i, ttl, @rdlength].pack("n2 N n")
|
207
196
|
offset += Net::DNS::RRFIXEDSZ
|
208
197
|
[str, offset, names]
|
209
198
|
end
|
210
199
|
|
211
|
-
|
212
200
|
# Returns a human readable representation of this record.
|
213
201
|
# The value is always a String.
|
214
202
|
#
|
@@ -226,7 +214,7 @@ module Net
|
|
226
214
|
# #=> "example.com. 7200 IN MX 10 mailhost.example.com."
|
227
215
|
#
|
228
216
|
def to_s
|
229
|
-
items = to_a.map
|
217
|
+
items = to_a.map(&:to_s)
|
230
218
|
if @name.size < 24
|
231
219
|
items.pack("A24 A8 A8 A8 A*")
|
232
220
|
else
|
@@ -244,123 +232,125 @@ module Net
|
|
244
232
|
[name, ttl, cls.to_s, type.to_s, value]
|
245
233
|
end
|
246
234
|
|
247
|
-
|
248
235
|
private
|
249
236
|
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
237
|
+
def new_from_string(rrstring)
|
238
|
+
unless rrstring =~ RR_REGEXP
|
239
|
+
raise ArgumentError,
|
240
|
+
"Format error for RR string (maybe CLASS and TYPE not valid?)"
|
241
|
+
end
|
255
242
|
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
243
|
+
# Name of RR - mandatory
|
244
|
+
begin
|
245
|
+
@name = Regexp.last_match(1).downcase
|
246
|
+
rescue NoMethodError
|
247
|
+
raise ArgumentError, "Missing name field in RR string #{rrstring}"
|
248
|
+
end
|
262
249
|
|
263
|
-
|
264
|
-
|
250
|
+
# Time to live for RR, default 3 hours
|
251
|
+
@ttl = Regexp.last_match(2) ? Regexp.last_match(2).to_i : 10_800
|
265
252
|
|
266
|
-
|
267
|
-
|
253
|
+
# RR class, default to IN
|
254
|
+
@cls = Net::DNS::RR::Classes.new Regexp.last_match(3)
|
268
255
|
|
269
|
-
|
270
|
-
|
256
|
+
# RR type, default to A
|
257
|
+
@type = Net::DNS::RR::Types.new Regexp.last_match(4)
|
271
258
|
|
272
|
-
|
273
|
-
|
259
|
+
# All the rest is data
|
260
|
+
@rdata = Regexp.last_match(5) ? Regexp.last_match(5).strip : ""
|
274
261
|
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
end
|
262
|
+
if self.class == Net::DNS::RR
|
263
|
+
Net::DNS::RR.const_get(@type.to_s).new(rrstring)
|
264
|
+
else
|
265
|
+
subclass_new_from_string(@rdata)
|
266
|
+
self.class
|
281
267
|
end
|
268
|
+
end
|
282
269
|
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
270
|
+
def new_from_hash(args)
|
271
|
+
# Name field is mandatory
|
272
|
+
unless args.key? :name
|
273
|
+
raise ArgumentError, ":name field is mandatory"
|
274
|
+
end
|
288
275
|
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
276
|
+
@name = args[:name].downcase
|
277
|
+
@ttl = args[:ttl] ? args[:ttl].to_i : 10_800 # Default 3 hours
|
278
|
+
@type = Net::DNS::RR::Types.new args[:type]
|
279
|
+
@cls = Net::DNS::RR::Classes.new args[:cls]
|
293
280
|
|
294
|
-
|
295
|
-
|
281
|
+
@rdata = args[:rdata] ? args[:rdata].strip : ""
|
282
|
+
@rdlength = args[:rdlength] || @rdata.size
|
296
283
|
|
297
|
-
|
298
|
-
|
284
|
+
if self.class == Net::DNS::RR
|
285
|
+
Net::DNS::RR.const_get(@type.to_s).new(args)
|
286
|
+
else
|
287
|
+
hash = args.delete_if { |k, _| %i[name ttl type cls].include?(k) }
|
288
|
+
if hash.key? :rdata
|
289
|
+
subclass_new_from_string(hash[:rdata])
|
299
290
|
else
|
300
|
-
hash
|
301
|
-
if hash.has_key? :rdata
|
302
|
-
subclass_new_from_string(hash[:rdata])
|
303
|
-
else
|
304
|
-
subclass_new_from_hash(hash)
|
305
|
-
end
|
306
|
-
self.class
|
291
|
+
subclass_new_from_hash(hash)
|
307
292
|
end
|
293
|
+
self.class
|
308
294
|
end
|
295
|
+
end
|
309
296
|
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
end
|
297
|
+
def new_from_binary(data, offset)
|
298
|
+
if self.class == Net::DNS::RR
|
299
|
+
temp = dn_expand(data, offset)[1]
|
300
|
+
type = Net::DNS::RR::Types.new data.unpack1("@#{temp} n")
|
301
|
+
(eval "Net::DNS::RR::#{type}").parse_packet(data, offset)
|
302
|
+
else
|
303
|
+
@name, offset = dn_expand(data, offset)
|
304
|
+
rrtype, cls, @ttl, @rdlength = data.unpack("@#{offset} n2 N n")
|
305
|
+
@type = Net::DNS::RR::Types.new rrtype
|
306
|
+
@cls = Net::DNS::RR::Classes.new cls
|
307
|
+
offset += RRFIXEDSZ
|
308
|
+
offset = subclass_new_from_binary(data, offset)
|
309
|
+
build_pack
|
310
|
+
set_type
|
311
|
+
[self, offset]
|
326
312
|
end
|
313
|
+
end
|
327
314
|
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
def subclass_new_from_string(str)
|
332
|
-
end
|
333
|
-
def subclass_new_from_hash(hash)
|
334
|
-
end
|
335
|
-
def subclass_new_from_binary(data, offset)
|
336
|
-
end
|
337
|
-
def build_pack
|
338
|
-
end
|
339
|
-
def get_inspect
|
340
|
-
@rdata
|
341
|
-
end
|
342
|
-
def get_data
|
343
|
-
@rdata
|
344
|
-
end
|
315
|
+
# Methods to be overridden by subclasses
|
316
|
+
def subclass_new_from_array(arr)
|
317
|
+
end
|
345
318
|
|
346
|
-
|
347
|
-
|
348
|
-
# raise NotImplementedError
|
349
|
-
# if we want the method to be implemented in any subclass.
|
350
|
-
end
|
319
|
+
def subclass_new_from_string(str)
|
320
|
+
end
|
351
321
|
|
322
|
+
def subclass_new_from_hash(hash)
|
323
|
+
end
|
324
|
+
|
325
|
+
def subclass_new_from_binary(data, offset)
|
326
|
+
end
|
327
|
+
|
328
|
+
def build_pack
|
329
|
+
end
|
330
|
+
|
331
|
+
def get_inspect
|
332
|
+
@rdata
|
333
|
+
end
|
334
|
+
|
335
|
+
def get_data
|
336
|
+
@rdata
|
337
|
+
end
|
338
|
+
|
339
|
+
def set_type
|
340
|
+
# TODO: Here we should probably
|
341
|
+
# raise NotImplementedError
|
342
|
+
# if we want the method to be implemented in any subclass.
|
343
|
+
end
|
352
344
|
|
353
345
|
def self.new(*args)
|
354
346
|
o = allocate
|
355
|
-
obj = o.send(:initialize
|
347
|
+
obj = o.send(:initialize, *args)
|
356
348
|
if self == Net::DNS::RR
|
357
349
|
obj
|
358
350
|
else
|
359
351
|
o
|
360
352
|
end
|
361
353
|
end
|
362
|
-
|
363
354
|
end
|
364
|
-
|
365
355
|
end
|
366
356
|
end
|
data/lib/net/dns/version.rb
CHANGED
@@ -1,16 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Net
|
2
4
|
module DNS
|
3
|
-
|
4
|
-
|
5
|
-
MAJOR = 0
|
6
|
-
MINOR = 8
|
7
|
-
PATCH = 0
|
8
|
-
BUILD = nil
|
9
|
-
|
10
|
-
STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join(".")
|
11
|
-
end
|
12
|
-
|
13
|
-
VERSION = Version::STRING
|
14
|
-
|
5
|
+
# The current library version.
|
6
|
+
VERSION = "0.20.0"
|
15
7
|
end
|
16
|
-
end
|
8
|
+
end
|
data/lib/net/dns.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require_relative 'dns/version'
|
2
|
+
require_relative 'dns/resolver'
|
3
|
+
require_relative 'dns/rr'
|
4
4
|
|
5
5
|
module Net
|
6
6
|
module DNS
|
7
|
-
|
8
7
|
# Packet size in bytes
|
9
8
|
PACKETSZ = 512
|
10
9
|
|
@@ -23,9 +22,7 @@ module Net
|
|
23
22
|
# Size of a short int
|
24
23
|
INT16SZ = 2
|
25
24
|
|
26
|
-
|
27
25
|
module QueryTypes
|
28
|
-
|
29
26
|
SIGZERO = 0
|
30
27
|
A = 1
|
31
28
|
NS = 2
|
@@ -71,6 +68,7 @@ module Net
|
|
71
68
|
RRSIG = 46
|
72
69
|
NSEC = 47
|
73
70
|
DNSKEY = 48
|
71
|
+
SPF = 99
|
74
72
|
UINFO = 100
|
75
73
|
UID = 101
|
76
74
|
GID = 102
|
@@ -82,11 +80,11 @@ module Net
|
|
82
80
|
MAILB = 253
|
83
81
|
MAILA = 254
|
84
82
|
ANY = 255
|
85
|
-
|
83
|
+
URI = 256
|
84
|
+
CAA = 257
|
86
85
|
end
|
87
86
|
|
88
87
|
module QueryClasses
|
89
|
-
|
90
88
|
# Internet class
|
91
89
|
IN = 1
|
92
90
|
|
@@ -101,12 +99,9 @@ module Net
|
|
101
99
|
|
102
100
|
# Any class
|
103
101
|
ANY = 255
|
104
|
-
|
105
102
|
end
|
106
103
|
|
107
104
|
include QueryTypes
|
108
105
|
include QueryClasses
|
109
|
-
|
110
106
|
end
|
111
|
-
|
112
107
|
end
|
metadata
CHANGED
@@ -1,44 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-dns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marco Ceresa
|
8
8
|
- Simone Carletti
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: rake
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - ~>
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '10.0'
|
21
|
-
type: :development
|
22
|
-
prerelease: false
|
23
|
-
version_requirements: !ruby/object:Gem::Requirement
|
24
|
-
requirements:
|
25
|
-
- - ~>
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
version: '10.0'
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: yard
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - ! '>='
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '0'
|
35
|
-
type: :development
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - ! '>='
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '0'
|
12
|
+
date: 2023-12-18 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
42
14
|
description: Net::DNS is a pure Ruby DNS library, with a clean OO interface and an
|
43
15
|
extensible API.
|
44
16
|
email:
|
@@ -46,20 +18,18 @@ email:
|
|
46
18
|
- weppos@weppos.net
|
47
19
|
executables: []
|
48
20
|
extensions: []
|
49
|
-
extra_rdoc_files:
|
21
|
+
extra_rdoc_files:
|
22
|
+
- LICENSE.txt
|
50
23
|
files:
|
51
|
-
- .
|
52
|
-
- .travis.yml
|
24
|
+
- ".rspec"
|
25
|
+
- ".travis.yml"
|
53
26
|
- CHANGELOG.md
|
54
|
-
-
|
27
|
+
- LICENSE.txt
|
55
28
|
- README.md
|
56
|
-
- Rakefile
|
57
29
|
- THANKS.rdoc
|
58
30
|
- demo/check_soa.rb
|
59
31
|
- demo/threads.rb
|
60
|
-
- fixtures/resolv.conf
|
61
32
|
- lib/net/dns.rb
|
62
|
-
- lib/net/dns/core_ext.rb
|
63
33
|
- lib/net/dns/header.rb
|
64
34
|
- lib/net/dns/names.rb
|
65
35
|
- lib/net/dns/packet.rb
|
@@ -83,62 +53,27 @@ files:
|
|
83
53
|
- lib/net/dns/rr/txt.rb
|
84
54
|
- lib/net/dns/rr/types.rb
|
85
55
|
- lib/net/dns/version.rb
|
86
|
-
- net-dns.gemspec
|
87
|
-
- test/header_test.rb
|
88
|
-
- test/names_test.rb
|
89
|
-
- test/packet_test.rb
|
90
|
-
- test/question_test.rb
|
91
|
-
- test/resolver/timeouts_test.rb
|
92
|
-
- test/resolver_test.rb
|
93
|
-
- test/rr/a_test.rb
|
94
|
-
- test/rr/aaaa_test.rb
|
95
|
-
- test/rr/classes_test.rb
|
96
|
-
- test/rr/cname_test.rb
|
97
|
-
- test/rr/hinfo_test.rb
|
98
|
-
- test/rr/mr_test.rb
|
99
|
-
- test/rr/mx_test.rb
|
100
|
-
- test/rr/ns_test.rb
|
101
|
-
- test/rr/types_test.rb
|
102
|
-
- test/rr_test.rb
|
103
|
-
- test/test_helper.rb
|
104
56
|
homepage: http://github.com/bluemonk/net-dns
|
105
|
-
licenses:
|
57
|
+
licenses:
|
58
|
+
- Ruby
|
106
59
|
metadata: {}
|
107
|
-
post_install_message:
|
60
|
+
post_install_message:
|
108
61
|
rdoc_options: []
|
109
62
|
require_paths:
|
110
63
|
- lib
|
111
64
|
required_ruby_version: !ruby/object:Gem::Requirement
|
112
65
|
requirements:
|
113
|
-
- -
|
66
|
+
- - ">="
|
114
67
|
- !ruby/object:Gem::Version
|
115
|
-
version:
|
68
|
+
version: '2.6'
|
116
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
70
|
requirements:
|
118
|
-
- -
|
71
|
+
- - ">="
|
119
72
|
- !ruby/object:Gem::Version
|
120
73
|
version: '0'
|
121
74
|
requirements: []
|
122
|
-
|
123
|
-
|
124
|
-
signing_key:
|
75
|
+
rubygems_version: 3.4.21
|
76
|
+
signing_key:
|
125
77
|
specification_version: 4
|
126
78
|
summary: Pure Ruby DNS library.
|
127
|
-
test_files:
|
128
|
-
- test/header_test.rb
|
129
|
-
- test/names_test.rb
|
130
|
-
- test/packet_test.rb
|
131
|
-
- test/question_test.rb
|
132
|
-
- test/resolver/timeouts_test.rb
|
133
|
-
- test/resolver_test.rb
|
134
|
-
- test/rr/a_test.rb
|
135
|
-
- test/rr/aaaa_test.rb
|
136
|
-
- test/rr/classes_test.rb
|
137
|
-
- test/rr/cname_test.rb
|
138
|
-
- test/rr/hinfo_test.rb
|
139
|
-
- test/rr/mr_test.rb
|
140
|
-
- test/rr/mx_test.rb
|
141
|
-
- test/rr/ns_test.rb
|
142
|
-
- test/rr/types_test.rb
|
143
|
-
- test/rr_test.rb
|
144
|
-
- test/test_helper.rb
|
79
|
+
test_files: []
|
data/.gitignore
DELETED
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
|
4
|
-
$:.unshift(File.dirname(__FILE__) + "/lib")
|
5
|
-
require 'net/dns'
|
6
|
-
|
7
|
-
|
8
|
-
# Common package properties
|
9
|
-
PKG_NAME = ENV['PKG_NAME'] || 'net-dns'
|
10
|
-
PKG_VERSION = ENV['PKG_VERSION'] || Net::DNS::VERSION
|
11
|
-
|
12
|
-
|
13
|
-
# Run test by default.
|
14
|
-
task :default => :test
|
15
|
-
|
16
|
-
|
17
|
-
spec = Gem::Specification.new do |s|
|
18
|
-
s.name = PKG_NAME
|
19
|
-
s.version = PKG_VERSION
|
20
|
-
s.summary = "Pure Ruby DNS library."
|
21
|
-
s.description = "Net::DNS is a pure Ruby DNS library, with a clean OO interface and an extensible API."
|
22
|
-
|
23
|
-
s.required_ruby_version = ">= 1.8.7"
|
24
|
-
|
25
|
-
s.authors = ["Marco Ceresa", "Simone Carletti"]
|
26
|
-
s.email = ["ceresa@gmail.com", "weppos@weppos.net"]
|
27
|
-
s.homepage = "http://github.com/bluemonk/net-dns"
|
28
|
-
s.rubyforge_project = "net-dns"
|
29
|
-
|
30
|
-
s.add_development_dependency "rake", "~> 10.0"
|
31
|
-
s.add_development_dependency "yard"
|
32
|
-
|
33
|
-
s.files = `git ls-files`.split("\n")
|
34
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
35
|
-
s.require_paths = %w( lib )
|
36
|
-
end
|
37
|
-
|
38
|
-
|
39
|
-
require 'rubygems/package_task'
|
40
|
-
|
41
|
-
Gem::PackageTask.new(spec) do |pkg|
|
42
|
-
pkg.gem_spec = spec
|
43
|
-
end
|
44
|
-
|
45
|
-
desc "Build the gemspec file #{spec.name}.gemspec"
|
46
|
-
task :gemspec do
|
47
|
-
file = File.dirname(__FILE__) + "/#{spec.name}.gemspec"
|
48
|
-
File.open(file, "w") {|f| f << spec.to_ruby }
|
49
|
-
end
|
50
|
-
|
51
|
-
|
52
|
-
require 'rake/testtask'
|
53
|
-
|
54
|
-
# Run all the tests in the /test folder
|
55
|
-
Rake::TestTask.new do |t|
|
56
|
-
t.libs << "test"
|
57
|
-
t.test_files = FileList["test/**/*_test.rb"]
|
58
|
-
t.verbose = true
|
59
|
-
end
|
60
|
-
|
61
|
-
|
62
|
-
require 'yard'
|
63
|
-
require 'yard/rake/yardoc_task'
|
64
|
-
|
65
|
-
YARD::Rake::YardocTask.new(:yardoc)
|
66
|
-
|
67
|
-
|
68
|
-
desc "Open an irb session preloaded with this library"
|
69
|
-
task :console do
|
70
|
-
sh "irb -rubygems -I lib -r net/dns.rb"
|
71
|
-
end
|
data/fixtures/resolv.conf
DELETED