net-dns 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/.gitignore +6 -0
  2. data/AUTHORS.rdoc +7 -0
  3. data/CHANGELOG.rdoc +34 -0
  4. data/README.rdoc +26 -14
  5. data/Rakefile +23 -30
  6. data/{THANKS → THANKS.rdoc} +0 -0
  7. data/VERSION.yml +3 -2
  8. data/demo/check_soa.rb +6 -11
  9. data/lib/net/{dns/dns.rb → dns.rb} +5 -12
  10. data/lib/net/dns/core_ext.rb +52 -0
  11. data/lib/net/dns/header.rb +55 -49
  12. data/lib/net/dns/names/names.rb +20 -10
  13. data/lib/net/dns/packet.rb +33 -26
  14. data/lib/net/dns/question.rb +60 -27
  15. data/lib/net/dns/resolver.rb +101 -156
  16. data/lib/net/dns/resolver/timeouts.rb +71 -65
  17. data/lib/net/dns/rr.rb +131 -166
  18. data/lib/net/dns/rr/a.rb +20 -26
  19. data/lib/net/dns/rr/aaaa.rb +15 -20
  20. data/lib/net/dns/rr/classes.rb +1 -1
  21. data/lib/net/dns/rr/cname.rb +8 -14
  22. data/lib/net/dns/rr/hinfo.rb +8 -14
  23. data/lib/net/dns/rr/mr.rb +8 -14
  24. data/lib/net/dns/rr/mx.rb +11 -18
  25. data/lib/net/dns/rr/ns.rb +8 -14
  26. data/lib/net/dns/rr/null.rb +7 -14
  27. data/lib/net/dns/rr/ptr.rb +9 -15
  28. data/lib/net/dns/rr/soa.rb +9 -15
  29. data/lib/net/dns/rr/srv.rb +10 -19
  30. data/lib/net/dns/rr/txt.rb +9 -20
  31. data/lib/net/dns/rr/types.rb +51 -58
  32. data/lib/net/dns/version.rb +22 -0
  33. data/test/{net/dns/test_header.rb → header_test.rb} +20 -20
  34. data/test/{net/dns/test_packet.rb → packet_test.rb} +2 -2
  35. data/test/question_test.rb +84 -0
  36. data/test/resolver/timeouts_test.rb +109 -0
  37. data/test/{net/dns/test_resolver.rb → resolver_test.rb} +6 -6
  38. data/test/rr/a_test.rb +66 -0
  39. data/test/{net/dns/rr/test_classes.rb → rr/classes_test.rb} +5 -5
  40. data/test/rr/ns_test.rb +64 -0
  41. data/test/rr/types_test.rb +69 -0
  42. data/test/{net/dns/test_rr.rb → rr_test.rb} +10 -12
  43. data/test/test_helper.rb +4 -0
  44. metadata +50 -35
  45. data/AUTHORS +0 -10
  46. data/CHANGELOG +0 -7
  47. data/INSTALL +0 -8
  48. data/net-dns.gemspec +0 -92
  49. data/test/net/dns/resolver/test_timeouts.rb +0 -59
  50. data/test/net/dns/rr/test_a.rb +0 -72
  51. data/test/net/dns/rr/test_ns.rb +0 -66
  52. data/test/net/dns/rr/test_types.rb +0 -124
  53. data/test/net/dns/test_question.rb +0 -54
@@ -0,0 +1,6 @@
1
+ .DS_Store
2
+ nbproject
3
+ .idea
4
+ pkg
5
+ doc
6
+ coverage
@@ -0,0 +1,7 @@
1
+ = Authors
2
+
3
+ Net::DNS core development:
4
+ Marco Ceresa <ceresa@ieee.org>
5
+ Simone Carletti <weppos@weppos.net>
6
+
7
+ Beta testing:
@@ -0,0 +1,34 @@
1
+ = Changelog
2
+
3
+ == Release 0.6.0
4
+
5
+ *WARNING:* If you are upgrading from a previous minor release, check out the Compatibility issue list below.
6
+
7
+ * FIXED: Added missing #to_s method to Net::DNS::Question.
8
+
9
+ * FIXED: Compatibility with Ruby 1.9
10
+
11
+ * FIXED: Types regexp order issue
12
+
13
+ * CHANGED: Refactoring unit test to follow most used Ruby conventions
14
+
15
+ * CHANGED: default timeout is now 5 seconds for both UDP and TCP
16
+
17
+ * CHANGED: Moved main dns.rb file to lib/net folder as default for GEMs. In this way it can be autoloaded when the gem is required.
18
+
19
+ === Compatibility issues
20
+
21
+ * CHANGED: RR#set_stype scope is now private to prevent invalid usage.
22
+
23
+ * CHANGED: DnsTimeout#timeout now raises LocalJumpError instead of DnsTimeoutArgumentError when block is missing.
24
+
25
+ * CHANGED: Renamed Net::DNS::RR::Types::Types to Net::DNS::RR::Types::TYPES to follow Ruby coding standards.
26
+
27
+
28
+ == Release 0.4
29
+
30
+ * many bug fixes (thanks guys!)
31
+ * a whole new class Net::DNS::Header::RCode
32
+ * new methods in Net::DNS::Resolver class to do AXFR queries
33
+ * a new SRV resource record written by Dan Janowski
34
+ * more documentation written and corrected
@@ -2,34 +2,46 @@
2
2
 
3
3
  Net::DNS is a DNS library written in pure Ruby. It started as a port of Perl Net::DNS module, but it evolved in time into a full Ruby library.
4
4
 
5
- Features:
6
5
 
7
- - Complete OO interface
8
- - Clean and intuitive API
9
- - Modular and flexible
6
+ == Features
7
+
8
+ * Complete OO interface
9
+ * Clean and intuitive API
10
+ * Modular and flexible
11
+
12
+
13
+ == Requirements
14
+
15
+ * Ruby >= 1.8.6 (not tested with previous versions)
16
+
17
+ As of release TODO, Net::DNS is compatible with Ruby 1.9.1.
18
+
10
19
 
11
20
  == Install
12
21
 
13
- Just use Rubygems:
14
-
15
- $ sudo gem install net-dns
22
+ Just use RubyGems:
23
+
24
+ $ gem install net-dns
16
25
 
17
26
  If you want to install from source, you can use Rake:
18
-
19
- $ rake install
20
27
 
21
- Or directly from install.rb
28
+ $ rake install
29
+
30
+ Or directly from setup.rb
31
+
32
+ $ ruby setup.rb
22
33
 
23
- $ sudo ruby install.rb
24
34
 
25
35
  == API Documentation
26
36
 
27
37
  Visit the page http://marcoceresa.com/net-dns
28
38
 
39
+
29
40
  == Trivial resolver
30
41
 
31
42
  The simplest way to use the library is to invoke the Resolver() method:
32
43
 
44
+ require 'rubygems'
33
45
  require 'net/dns/resolver'
34
46
  p Resolver("www.google.com")
35
47
 
@@ -74,7 +86,7 @@ Same for Net::DNS::Resolver.start():
74
86
  Net::DNS::Resolver.start("google.com").answer.size
75
87
  #=> 5
76
88
 
77
- As optionals parameters, +TYPE+ and +CLASS+ can be specified.
89
+ As optional parameters, +TYPE+ and +CLASS+ can be specified.
78
90
 
79
91
  p Net::DNS::Resolver.start("google.com", Net::DNS::MX)
80
92
 
@@ -144,7 +156,7 @@ Gives:
144
156
 
145
157
  Net::DNS is distributed under the same license Ruby is.
146
158
 
159
+
147
160
  == Author
148
161
 
149
- (c) Marco Ceresa 2006
150
-
162
+ (c) Marco Ceresa 2006-2009
data/Rakefile CHANGED
@@ -1,25 +1,21 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
-
4
- #
5
- # Gem specifications
6
- #
7
- SPEC = Gem::Specification.new do |s|
8
- s.name = "net-dns"
9
- s.authors = ["Marco Ceresa"]
10
- s.email = "ceresa@gmail.com"
11
- s.homepage = "http://github.com/bluemonk/net-dns"
12
- s.platform = Gem::Platform::RUBY
13
- s.summary = "Pure Ruby DNS library"
14
- s.has_rdoc = true
15
- s.extra_rdoc_files = ["README.rdoc","AUTHORS","INSTALL", "THANKS"]
16
- s.description = "Net::DNS is a pure Ruby DNS library, with a clean OO interface and an extensible API"
17
- s.rubyforge_project = "net-dns"
18
- end
3
+ require 'rake/clean'
19
4
 
20
5
  begin
21
6
  require 'jeweler'
22
- Jeweler::Tasks.new(SPEC)
7
+ Jeweler::Tasks.new do |gemspec|
8
+ gemspec.name = "net-dns"
9
+ gemspec.summary = "Pure Ruby DNS library"
10
+ gemspec.description = "Net::DNS is a pure Ruby DNS library, with a clean OO interface and an extensible API"
11
+ gemspec.authors = ["Marco Ceresa", "Simone Carletti"]
12
+ gemspec.email = ["ceresa@gmail.com", "weppos@weppos.net"]
13
+ gemspec.homepage = "http://github.com/bluemonk/net-dns"
14
+ gemspec.extra_rdoc_files = ["README.rdoc", "CHANGELOG.rdoc", "AUTHORS.rdoc", "THANKS.rdoc"]
15
+ gemspec.rubyforge_project = "net-dns"
16
+
17
+ gemspec.add_development_dependency "rcov"
18
+ end
23
19
  Jeweler::RubyforgeTasks.new
24
20
  rescue LoadError
25
21
  puts "Jeweler not available."
@@ -27,8 +23,7 @@ end
27
23
 
28
24
  require 'rake/testtask'
29
25
  Rake::TestTask.new(:test) do |test|
30
- test.test_files = FileList.new('test/**/test_*.rb')
31
- test.libs << 'lib' << 'test'
26
+ test.libs << 'test'
32
27
  test.pattern = 'test/**/*_test.rb'
33
28
  test.verbose = true
34
29
  end
@@ -36,14 +31,12 @@ end
36
31
  begin
37
32
  require 'rcov/rcovtask'
38
33
  Rcov::RcovTask.new(:rcov) do |test|
39
- test.libs << 'test'
34
+ test.libs << 'test'
40
35
  test.pattern = 'test/**/*_test.rb'
41
36
  test.verbose = true
42
37
  end
43
38
  rescue LoadError
44
- task :rcov do
45
- abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
46
- end
39
+ task :rcov => :check_dependencies
47
40
  end
48
41
 
49
42
  task :default => :test
@@ -51,16 +44,16 @@ task :default => :test
51
44
  require 'rake/rdoctask'
52
45
  Rake::RDocTask.new do |rdoc|
53
46
  if File.exist?('VERSION.yml')
54
- config = YAML.load(File.read('VERSION.yml'))
47
+ config = YAML.load(File.read('VERSION.yml'))
55
48
  version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
56
49
  else
57
- puts "Not found!"
50
+ puts "VERSION.yml not found!"
58
51
  version = ""
59
52
  end
60
53
 
61
54
  rdoc.rdoc_dir = 'rdoc'
62
55
  rdoc.title = "net-dns #{version}"
63
- rdoc.rdoc_files.include('README*')
56
+ rdoc.rdoc_files.include('*.rdoc')
64
57
  rdoc.rdoc_files.include('lib/**/*.rb')
65
58
  end
66
59
 
@@ -109,7 +102,7 @@ task :todo do
109
102
  egrep /(FIXME|TODO|TBD)/
110
103
  end
111
104
 
112
-
113
-
114
-
115
-
105
+ desc "Open an irb session preloaded with this library"
106
+ task :console do
107
+ sh "irb -rubygems -I lib -r net/dns.rb"
108
+ end
File without changes
@@ -1,4 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
- :minor: 5
4
- :patch: 3
3
+ :minor: 6
4
+ :patch: 0
5
+ :build:
@@ -1,11 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- # $Id: check_soa.rb,v 1.7 2006/07/30 16:53:57 bluemonk Exp $
4
-
5
-
6
3
  require 'rubygems' if "#{RUBY_VERSION}" < "1.9.0"
7
4
  require 'net/dns/resolver'
8
5
 
6
+
9
7
  #------------------------------------------------------------------------------
10
8
  # Get the domain from the command line.
11
9
  #------------------------------------------------------------------------------
@@ -20,17 +18,14 @@ domain = ARGV[0]
20
18
 
21
19
  res = Net::DNS::Resolver.new(:defname => false, :retry => 2)
22
20
 
23
- #res.defname=false
24
- #res.retry=2
25
-
26
-
27
- ns_req = res.query(domain, Net::DNS::NS);
28
- raise ArgumentError, "No nameservers found for domain: " + res.errorstring +
29
- "\n" unless ns_req and ns_req.header.anCount > 0
21
+ ns_req = res.query(domain, Net::DNS::NS)
22
+ unless ns_req and ns_req.header.anCount > 0
23
+ raise ArgumentError, "No nameservers found for domain: #{res.errorstring}"
24
+ end
30
25
 
31
26
 
32
27
  # Send out non-recursive queries
33
- res.recurse=false
28
+ res.recurse = false
34
29
  # Do not buffer standard out
35
30
  #| = 1;
36
31
 
@@ -1,16 +1,8 @@
1
- ##
2
- #
3
- # dns.rb
4
- #
5
- # $id$
6
- #
7
- ##
1
+ require 'net/dns/core_ext'
2
+ require 'net/dns/version'
8
3
 
9
4
  module Net # :nodoc:
10
5
  module DNS
11
-
12
- # Version of the library
13
- VERSION = "0.4"
14
6
 
15
7
  # Packet size in bytes
16
8
  PACKETSZ = 512
@@ -30,6 +22,7 @@ module Net # :nodoc:
30
22
  # Size of a short int
31
23
  INT16SZ = 2
32
24
 
25
+
33
26
  module QueryTypes
34
27
 
35
28
  SIGZERO = 0
@@ -113,5 +106,5 @@ module Net # :nodoc:
113
106
  include QueryTypes
114
107
  include QueryClasses
115
108
 
116
- end # module DNS
117
- end # module Net
109
+ end
110
+ end
@@ -0,0 +1,52 @@
1
+ module Net # :nodoc:
2
+ module DNS
3
+
4
+ module HashKeys # :nodoc:
5
+
6
+ # Returns an hash with all the
7
+ # keys turned into downcase
8
+ #
9
+ # hsh = {"Test" => 1, "FooBar" => 2}
10
+ # hsh.downcase_keys!
11
+ # #=> {"test"=>1,"foobar"=>2}
12
+ #
13
+ def downcase_keys!
14
+ hsh = Hash.new
15
+ self.each do |key,val|
16
+ hsh[key.downcase] = val
17
+ end
18
+ self.replace(hsh)
19
+ end
20
+
21
+ end
22
+
23
+ module HashOperators # :nodoc:
24
+
25
+ # Performs a sort of group difference
26
+ # operation on hashes or arrays
27
+ #
28
+ # a = {:a=>1,:b=>2,:c=>3}
29
+ # b = {:a=>1,:b=>2}
30
+ # c = [:a,:c]
31
+ # a-b #=> {:c=>3}
32
+ # a-c #=> {:b=>2}
33
+ #
34
+ def -(other)
35
+ case other
36
+ when Hash
37
+ delete_if { |k,v| other.has_key?(k) }
38
+ when Array
39
+ delete_if { |k,v| other.include?(k) }
40
+ end
41
+ end
42
+
43
+ end
44
+
45
+ end
46
+ end
47
+
48
+
49
+ class Hash # :nodoc:
50
+ include Net::DNS::HashKeys
51
+ include Net::DNS::HashOperators
52
+ end
@@ -1,8 +1,5 @@
1
- #---
2
- # $Id: Header.rb,v 1.5 2006/07/30 16:54:28 bluemonk Exp $
3
- #+++
1
+ require 'net/dns'
4
2
 
5
- require 'net/dns/dns'
6
3
 
7
4
  module Net # :nodoc:
8
5
  module DNS
@@ -57,11 +54,11 @@ module Net # :nodoc:
57
54
  # which are listed here to keep a light and browsable main documentation.
58
55
  # We have:
59
56
  #
60
- # * HeaderArgumentError: canonical argument error
61
- # * HeaderWrongCount: a wrong +count+ parameter has been passed
62
- # * HeaderWrongRecursive: a wrong +recursive+ parameter has been passed
63
- # * HeaderWrongOpcode: a not valid +opCode+ has been specified
64
- # * HeaderDuplicateID: the requested ID is already in use
57
+ # ArgumentError:: Argument Error for class Net::DNS::Packet
58
+ # WrongCountError:: A wrong +count+ parameter has been passed
59
+ # WrongRecursiveError:: A wrong +recursive+ parameter has been passed
60
+ # WrongOpcodeError:: A not valid +opCode+ has been specified
61
+ # DuplicateIDError:: The requested ID is already in use
65
62
  #
66
63
  # =Copyright
67
64
  #
@@ -71,9 +68,34 @@ module Net # :nodoc:
71
68
  # it and/or modify it under the same terms as Ruby itself.
72
69
  #
73
70
  class Header
74
-
71
+
72
+ # Argument Error for class Net::DNS::Header.
73
+ class ArgumentError < ArgumentError
74
+ end
75
+
76
+ # A wrong +count+ parameter has been passed-
77
+ class WrongCountError < ArgumentError
78
+ end
79
+
80
+ # A wrong +recursive+ parameter has been passed-
81
+ class WrongRecursiveError < ArgumentError
82
+ end
83
+
84
+ # An invalid +opCode+ has been specified.
85
+ class WrongOpcodeError < ArgumentError
86
+ end
87
+
88
+ # Base error class.
89
+ class Error < StandardError
90
+ end
91
+
92
+ # The requested ID is already in use.
93
+ class DuplicateIDError < Error
94
+ end
95
+
96
+
75
97
  #
76
- # =Name
98
+ # = Name
77
99
  #
78
100
  # Net::DNS::Header::RCode - DNS Header RCode handling class
79
101
  #
@@ -100,7 +122,7 @@ module Net # :nodoc:
100
122
  # problem with the name server.
101
123
  # * 3 Name Error - Meaningful only for
102
124
  # responses from an authoritative name
103
- # server, this code signifies that the
125
+ # server, this code means that the
104
126
  # domain name referenced in the query does
105
127
  # not exist.
106
128
  # * 4 Not Implemented - The name server does
@@ -166,7 +188,7 @@ module Net # :nodoc:
166
188
  @type = RCodeType[code]
167
189
  @explanation = RCodeErrorString[code]
168
190
  else
169
- raise HeaderArgumentError, "RCode #{code} out of range"
191
+ raise ArgumentError, "RCode `#{code}' out of range"
170
192
  end
171
193
  end
172
194
 
@@ -240,7 +262,7 @@ module Net # :nodoc:
240
262
  if arg.kind_of? Hash
241
263
  new_from_hash(arg)
242
264
  else
243
- raise HeaderArgumentError, "Wrong argument class: #{arg.class}"
265
+ raise ArgumentError, "Wrong argument class `#{arg.class}'"
244
266
  end
245
267
  end
246
268
 
@@ -262,7 +284,7 @@ module Net # :nodoc:
262
284
  o.send(:new_from_binary, arg)
263
285
  o
264
286
  else
265
- raise HeaderArgumentError, "Wrong argument class: #{arg.class}"
287
+ raise ArgumentError, "Wrong argument class `#{arg.class}'"
266
288
  end
267
289
  end
268
290
 
@@ -362,13 +384,13 @@ module Net # :nodoc:
362
384
  #
363
385
  def id=(val)
364
386
  if @@id_arr.include? val
365
- raise HeaderDuplicateID, "ID #{val} already used"
387
+ raise DuplicateIDError, "ID `#{val}' already used"
366
388
  end
367
389
  if (1..65535).include? val
368
390
  @id = val
369
391
  @@id_arr.push val
370
392
  else
371
- raise HeaderArgumentError, "ID #{val} out of range"
393
+ raise ArgumentError, "ID `#{val}' out of range"
372
394
  end
373
395
  end
374
396
 
@@ -393,7 +415,7 @@ module Net # :nodoc:
393
415
  when 0,1
394
416
  @qr = val
395
417
  else
396
- raise HeaderArgumentError, ":qr must be true(or 1) or false(or 0)"
418
+ raise ArgumentError, ":qr must be true(or 1) or false(or 0)"
397
419
  end
398
420
  end
399
421
 
@@ -431,7 +453,7 @@ module Net # :nodoc:
431
453
  if (0..2).include? val
432
454
  @opCode = val
433
455
  else
434
- raise HeaderWrongOpcode, "Wrong opCode value (#{val}), must be QUERY, IQUERY or STATUS"
456
+ raise WrongOpcodeError, "Wrong opCode value (#{val}), must be QUERY, IQUERY or STATUS"
435
457
  end
436
458
  end
437
459
 
@@ -465,7 +487,7 @@ module Net # :nodoc:
465
487
  when 0,1
466
488
  @aa = val
467
489
  else
468
- raise HeaderArgumentError, ":aa must be true(or 1) or false(or 0)"
490
+ raise ArgumentError, ":aa must be true(or 1) or false(or 0)"
469
491
  end
470
492
  end
471
493
 
@@ -503,7 +525,7 @@ module Net # :nodoc:
503
525
  when 0,1
504
526
  @tc = val
505
527
  else
506
- raise HeaderArgumentError, ":tc must be true(or 1) or false(or 0)"
528
+ raise ArgumentError, ":tc must be true(or 1) or false(or 0)"
507
529
  end
508
530
  end
509
531
 
@@ -535,7 +557,7 @@ module Net # :nodoc:
535
557
  when 0
536
558
  @rd = 0
537
559
  else
538
- raise HeaderWrongRecursive, "Wrong value (#{val}), please specify true (1) or false (0)"
560
+ raise WrongRecursiveError, "Wrong value (#{val}), please specify true (1) or false (0)"
539
561
  end
540
562
  end
541
563
 
@@ -568,7 +590,7 @@ module Net # :nodoc:
568
590
  when 0,1
569
591
  @ra = val
570
592
  else
571
- raise HeaderArgumentError, ":ra must be true(or 1) or false(or 0)"
593
+ raise ArgumentError, ":ra must be true(or 1) or false(or 0)"
572
594
  end
573
595
  end
574
596
 
@@ -592,7 +614,7 @@ module Net # :nodoc:
592
614
  when 0,1
593
615
  @cd = val
594
616
  else
595
- raise HeaderArgumentError, ":cd must be true(or 1) or false(or 0)"
617
+ raise ArgumentError, ":cd must be true(or 1) or false(or 0)"
596
618
  end
597
619
  end
598
620
 
@@ -620,7 +642,7 @@ module Net # :nodoc:
620
642
  when 0,1
621
643
  @ad = val
622
644
  else
623
- raise HeaderArgumentError, ":ad must be true(or 1) or false(or 0)"
645
+ raise ArgumentError, ":ad must be true(or 1) or false(or 0)"
624
646
  end
625
647
  end
626
648
 
@@ -659,7 +681,7 @@ module Net # :nodoc:
659
681
  if (0..65535).include? val
660
682
  @qdCount = val
661
683
  else
662
- raise HeaderWrongCount, "Wrong number of count (#{val}), must be 0-65535"
684
+ raise WrongCountError, "Wrong number of count (#{val}), must be 0-65535"
663
685
  end
664
686
  end
665
687
 
@@ -669,7 +691,7 @@ module Net # :nodoc:
669
691
  if (0..65535).include? val
670
692
  @anCount = val
671
693
  else
672
- raise HeaderWrongCount, "Wrong number of count (#{val}), must be 0-65535"
694
+ raise WrongCountError, "Wrong number of count (#{val}), must be 0-65535"
673
695
  end
674
696
  end
675
697
 
@@ -679,7 +701,7 @@ module Net # :nodoc:
679
701
  if (0..65535).include? val
680
702
  @nsCount = val
681
703
  else
682
- raise HeaderWrongCount, "Wrong number of count (#{val}), must be 0-65535"
704
+ raise WrongCountError, "Wrong number of count (#{val}), must be 0-65535"
683
705
  end
684
706
  end
685
707
 
@@ -689,7 +711,7 @@ module Net # :nodoc:
689
711
  if (0..65535).include? val
690
712
  @arCount = val
691
713
  else
692
- raise HeaderWrongCount, "Wrong number of count (#{val}), must be 0-65535"
714
+ raise WrongCountError, "Wrong number of count: `#{val}' must be 0-65535"
693
715
  end
694
716
  end
695
717
 
@@ -706,7 +728,7 @@ module Net # :nodoc:
706
728
 
707
729
  def new_from_binary(str)
708
730
  unless str.size == Net::DNS::HFIXEDSZ
709
- raise HeaderArgumentError, "Header binary data has wrong size: #{str.size} bytes"
731
+ raise ArgumentError, "Header binary data has wrong size: `#{str.size}' bytes"
710
732
  end
711
733
  arr = str.unpack("n C2 n4")
712
734
  @id = arr[0]
@@ -739,23 +761,7 @@ module Net # :nodoc:
739
761
  q
740
762
  end
741
763
 
742
- end # class Header
743
-
744
- end # class DNS
745
- end # module Net
746
-
747
-
748
- class HeaderArgumentError < ArgumentError # :nodoc: all
749
- end
750
-
751
- class HeaderWrongCount < ArgumentError # :nodoc: all
752
- end
753
-
754
- class HeaderWrongRecursive < ArgumentError # :nodoc: all
755
- end
756
-
757
- class HeaderWrongOpcode < ArgumentError # :nodoc: all
758
- end
764
+ end
759
765
 
760
- class HeaderDuplicateID < ArgumentError # :nodoc: all
761
- end
766
+ end
767
+ end