dnsruby 1.34 → 1.35

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.
data/html/created.rid CHANGED
@@ -1 +1 @@
1
- Fri, 17 Jul 2009 08:37:53 +0100
1
+ Fri, 21 Aug 2009 11:23:21 +0100
@@ -20,36 +20,36 @@
20
20
  <div id="index">
21
21
  <h1 class="section-bar">Methods</h1>
22
22
  <div id="index-entries">
23
- <a href="classes/Dnsruby/Name.html#M000132"><=> (Dnsruby::Name)</a><br />
24
23
  <a href="classes/Dnsruby/RRSet.html#M000234"><=> (Dnsruby::RRSet)</a><br />
24
+ <a href="classes/Dnsruby/Name.html#M000132"><=> (Dnsruby::Name)</a><br />
25
25
  <a href="classes/Dnsruby/Name/Label.html#M000142"><=> (Dnsruby::Name::Label)</a><br />
26
+ <a href="classes/Dnsruby/Message/Section.html#M000176">== (Dnsruby::Message::Section)</a><br />
27
+ <a href="classes/Dnsruby/RRSet.html#M000236">== (Dnsruby::RRSet)</a><br />
26
28
  <a href="classes/Dnsruby/IPv4.html#M000225">== (Dnsruby::IPv4)</a><br />
27
29
  <a href="classes/Dnsruby/Header.html#M000260">== (Dnsruby::Header)</a><br />
28
30
  <a href="classes/Dnsruby/Name/Label.html#M000143">== (Dnsruby::Name::Label)</a><br />
29
31
  <a href="classes/Dnsruby/Message.html#M000148">== (Dnsruby::Message)</a><br />
30
- <a href="classes/Dnsruby/Message/Section.html#M000176">== (Dnsruby::Message::Section)</a><br />
31
32
  <a href="classes/Dnsruby/RR.html#M000013">== (Dnsruby::RR)</a><br />
32
- <a href="classes/Dnsruby/RRSet.html#M000236">== (Dnsruby::RRSet)</a><br />
33
33
  <a href="classes/Dnsruby/RRSet.html#M000239">[] (Dnsruby::RRSet)</a><br />
34
- <a href="classes/Dnsruby/Update.html#M000297">absent (Dnsruby::Update)</a><br />
34
+ <a href="classes/Dnsruby/Update.html#M000298">absent (Dnsruby::Update)</a><br />
35
35
  <a href="classes/Dnsruby/Name.html#M000129">absolute? (Dnsruby::Name)</a><br />
36
- <a href="classes/Dnsruby/Update.html#M000298">add (Dnsruby::Update)</a><br />
36
+ <a href="classes/Dnsruby/Update.html#M000299">add (Dnsruby::Update)</a><br />
37
37
  <a href="classes/Dnsruby/RRSet.html#M000233">add (Dnsruby::RRSet)</a><br />
38
38
  <a href="classes/Dnsruby/Dnssec.html#M000273">add_dlv_key (Dnsruby::Dnssec)</a><br />
39
39
  <a href="classes/Dnsruby/Config.html#M000191">add_nameserver (Dnsruby::Config)</a><br />
40
40
  <a href="classes/Dnsruby/SingleResolver.html#M000214">add_opt_rr (Dnsruby::SingleResolver)</a><br />
41
41
  <a href="classes/Dnsruby/Message.html#M000152">add_question (Dnsruby::Message)</a><br />
42
- <a href="classes/Dnsruby/Resolver.html#M000334">add_src_port (Dnsruby::Resolver)</a><br />
42
+ <a href="classes/Dnsruby/Resolver.html#M000335">add_src_port (Dnsruby::Resolver)</a><br />
43
43
  <a href="classes/Dnsruby/Dnssec.html#M000274">add_trust_anchor (Dnsruby::Dnssec)</a><br />
44
44
  <a href="classes/Dnsruby/Dnssec.html#M000275">add_trust_anchor_with_expiration (Dnsruby::Dnssec)</a><br />
45
45
  <a href="classes/Dnsruby/RR/NSEC3.html#M000101">add_type (Dnsruby::RR::NSEC3)</a><br />
46
46
  <a href="classes/Dnsruby/RR/NSEC.html#M000038">add_type (Dnsruby::RR::NSEC)</a><br />
47
47
  <a href="classes/Dnsruby/Message.html#M000168">add_zone (Dnsruby::Message)</a><br />
48
- <a href="classes/Dnsruby/RR/DNSKEY.html#M000052">algorithm= (Dnsruby::RR::DNSKEY)</a><br />
49
- <a href="classes/Dnsruby/RR/DS.html#M000045">algorithm= (Dnsruby::RR::DS)</a><br />
50
- <a href="classes/Dnsruby/RR/TSIG.html#M000082">algorithm= (Dnsruby::RR::TSIG)</a><br />
51
48
  <a href="classes/Dnsruby/RR/RRSIG.html#M000119">algorithm= (Dnsruby::RR::RRSIG)</a><br />
52
- <a href="classes/Dnsruby/Dnssec.html#M000291">anchor_verifier (Dnsruby::Dnssec)</a><br />
49
+ <a href="classes/Dnsruby/RR/TSIG.html#M000082">algorithm= (Dnsruby::RR::TSIG)</a><br />
50
+ <a href="classes/Dnsruby/RR/DS.html#M000045">algorithm= (Dnsruby::RR::DS)</a><br />
51
+ <a href="classes/Dnsruby/RR/DNSKEY.html#M000052">algorithm= (Dnsruby::RR::DNSKEY)</a><br />
52
+ <a href="classes/Dnsruby/Dnssec.html#M000292">anchor_verifier (Dnsruby::Dnssec)</a><br />
53
53
  <a href="classes/Dnsruby/RR/TSIG.html#M000076">apply (Dnsruby::RR::TSIG)</a><br />
54
54
  <a href="classes/Dnsruby/RR/NSEC3.html#M000097">calculate_hash (Dnsruby::RR::NSEC3)</a><br />
55
55
  <a href="classes/Dnsruby/RR/NSEC3.html#M000098">calculate_hash (Dnsruby::RR::NSEC3)</a><br />
@@ -57,41 +57,41 @@
57
57
  <a href="classes/Dnsruby/Name.html#M000131">canonical (Dnsruby::Name)</a><br />
58
58
  <a href="classes/Dnsruby/Name.html#M000133">canonically_before (Dnsruby::Name)</a><br />
59
59
  <a href="classes/Dnsruby/RR/DS.html#M000047">check_key (Dnsruby::RR::DS)</a><br />
60
- <a href="classes/Dnsruby/RR/NSEC3.html#M000095">check_name_in_range (Dnsruby::RR::NSEC3)</a><br />
61
60
  <a href="classes/Dnsruby/RR/NSEC.html#M000034">check_name_in_range (Dnsruby::RR::NSEC)</a><br />
62
- <a href="classes/Dnsruby/RR/NSEC3.html#M000096">check_name_in_wildcard_range (Dnsruby::RR::NSEC3)</a><br />
61
+ <a href="classes/Dnsruby/RR/NSEC3.html#M000095">check_name_in_range (Dnsruby::RR::NSEC3)</a><br />
63
62
  <a href="classes/Dnsruby/RR/NSEC.html#M000035">check_name_in_wildcard_range (Dnsruby::RR::NSEC)</a><br />
64
- <a href="classes/Dnsruby/Resolver.html#M000335">check_port (Dnsruby::Resolver)</a><br />
65
- <a href="classes/Dnsruby/Recursor.html#M000305">clear_caches (Dnsruby::Recursor)</a><br />
63
+ <a href="classes/Dnsruby/RR/NSEC3.html#M000096">check_name_in_wildcard_range (Dnsruby::RR::NSEC3)</a><br />
64
+ <a href="classes/Dnsruby/Resolver.html#M000336">check_port (Dnsruby::Resolver)</a><br />
65
+ <a href="classes/Dnsruby/Recursor.html#M000306">clear_caches (Dnsruby::Recursor)</a><br />
66
66
  <a href="classes/Dnsruby/Dnssec.html#M000277">clear_trust_anchors (Dnsruby::Dnssec)</a><br />
67
67
  <a href="classes/Dnsruby/Dnssec.html#M000279">clear_trusted_keys (Dnsruby::Dnssec)</a><br />
68
- <a href="classes/Dnsruby/Resolver.html#M000325">close (Dnsruby::Resolver)</a><br />
69
- <a href="classes/Dnsruby/DNS.html#M000309">close (Dnsruby::DNS)</a><br />
68
+ <a href="classes/Dnsruby/Resolver.html#M000326">close (Dnsruby::Resolver)</a><br />
69
+ <a href="classes/Dnsruby/DNS.html#M000310">close (Dnsruby::DNS)</a><br />
70
70
  <a href="classes/Dnsruby/IPv4.html#M000223">create (Dnsruby::IPv4)</a><br />
71
71
  <a href="classes/Dnsruby/IPv6.html#M000264">create (Dnsruby::IPv6)</a><br />
72
- <a href="classes/Dnsruby/Name.html#M000126">create (Dnsruby::Name)</a><br />
73
72
  <a href="classes/Dnsruby/RR.html#M000014">create (Dnsruby::RR)</a><br />
73
+ <a href="classes/Dnsruby/Name.html#M000126">create (Dnsruby::Name)</a><br />
74
74
  <a href="classes/Dnsruby/Header.html#M000257">data (Dnsruby::Header)</a><br />
75
75
  <a href="classes/Dnsruby/RR/TXT.html#M000069">data (Dnsruby::RR::TXT)</a><br />
76
76
  <a href="classes/Dnsruby/Header.html#M000263">decode (Dnsruby::Header)</a><br />
77
77
  <a href="classes/Dnsruby/Message.html#M000167">decode (Dnsruby::Message)</a><br />
78
- <a href="classes/Base32.html#M000350">decode32hex (Base32)</a><br />
79
- <a href="classes/Dnsruby/RR/NSEC3.html#M000109">decode_next_hashed (Dnsruby::RR::NSEC3)</a><br />
78
+ <a href="classes/Base32.html#M000351">decode32hex (Base32)</a><br />
80
79
  <a href="classes/Dnsruby/RR/NSEC3.html#M000110">decode_next_hashed (Dnsruby::RR::NSEC3)</a><br />
80
+ <a href="classes/Dnsruby/RR/NSEC3.html#M000109">decode_next_hashed (Dnsruby::RR::NSEC3)</a><br />
81
81
  <a href="classes/Dnsruby/RR/NSEC3.html#M000107">decode_salt (Dnsruby::RR::NSEC3)</a><br />
82
82
  <a href="classes/Dnsruby/RR/NSEC.html#M000039">decode_types (Dnsruby::RR::NSEC)</a><br />
83
83
  <a href="classes/Dnsruby/Header.html#M000259">decrement_arcount_encoded (Dnsruby::Header)</a><br />
84
- <a href="classes/Dnsruby/Dnssec.html#M000284">default_resolver (Dnsruby::Dnssec)</a><br />
85
- <a href="classes/Dnsruby/Dnssec.html#M000283">default_resolver= (Dnsruby::Dnssec)</a><br />
84
+ <a href="classes/Dnsruby/Dnssec.html#M000285">default_resolver (Dnsruby::Dnssec)</a><br />
85
+ <a href="classes/Dnsruby/Dnssec.html#M000284">default_resolver= (Dnsruby::Dnssec)</a><br />
86
86
  <a href="classes/Dnsruby/RRSet.html#M000237">delete (Dnsruby::RRSet)</a><br />
87
- <a href="classes/Dnsruby/Update.html#M000299">delete (Dnsruby::Update)</a><br />
87
+ <a href="classes/Dnsruby/Update.html#M000300">delete (Dnsruby::Update)</a><br />
88
88
  <a href="classes/Dnsruby/RR/DS.html#M000046">digest_key (Dnsruby::RR::DS)</a><br />
89
89
  <a href="classes/Dnsruby/RR/DS.html#M000043">digest_type= (Dnsruby::RR::DS)</a><br />
90
- <a href="classes/Dnsruby/Dnssec.html#M000292">dlv_verifier (Dnsruby::Dnssec)</a><br />
90
+ <a href="classes/Dnsruby/Dnssec.html#M000293">dlv_verifier (Dnsruby::Dnssec)</a><br />
91
91
  <a href="classes/Dnsruby/RR/LOC.html#M000028">dms2latlon (Dnsruby::RR::LOC)</a><br />
92
- <a href="classes/Dnsruby/Resolver.html#M000347">dnssec= (Dnsruby::Resolver)</a><br />
93
- <a href="classes/Dnsruby/Dnssec.html#M000281">do_validation_with_recursor (Dnsruby::Dnssec)</a><br />
94
- <a href="classes/Dnsruby/Dnssec.html#M000282">do_validation_with_recursor? (Dnsruby::Dnssec)</a><br />
92
+ <a href="classes/Dnsruby/Resolver.html#M000348">dnssec= (Dnsruby::Resolver)</a><br />
93
+ <a href="classes/Dnsruby/Dnssec.html#M000282">do_validation_with_recursor (Dnsruby::Dnssec)</a><br />
94
+ <a href="classes/Dnsruby/Dnssec.html#M000283">do_validation_with_recursor? (Dnsruby::Dnssec)</a><br />
95
95
  <a href="classes/Dnsruby/Config.html#M000195">domain (Dnsruby::Config)</a><br />
96
96
  <a href="classes/Dnsruby/Config.html#M000188">domain= (Dnsruby::Config)</a><br />
97
97
  <a href="classes/Dnsruby/RR/DomainName.html#M000094">domainname= (Dnsruby::RR::DomainName)</a><br />
@@ -100,101 +100,101 @@
100
100
  <a href="classes/Dnsruby/RR/NSAP.html#M000115">dsp (Dnsruby::RR::NSAP)</a><br />
101
101
  <a href="classes/Dnsruby/RRSet.html#M000238">each (Dnsruby::RRSet)</a><br />
102
102
  <a href="classes/Dnsruby/Message.html#M000156">each_additional (Dnsruby::Message)</a><br />
103
- <a href="classes/Dnsruby/Resolv.html#M000199">each_address (Dnsruby::Resolv)</a><br />
103
+ <a href="classes/Dnsruby/DNS.html#M000315">each_address (Dnsruby::DNS)</a><br />
104
104
  <a href="classes/Dnsruby/Resolv.html#M000206">each_address (Dnsruby::Resolv)</a><br />
105
- <a href="classes/Dnsruby/DNS.html#M000314">each_address (Dnsruby::DNS)</a><br />
106
105
  <a href="classes/Dnsruby/Hosts.html#M000219">each_address (Dnsruby::Hosts)</a><br />
106
+ <a href="classes/Dnsruby/Resolv.html#M000199">each_address (Dnsruby::Resolv)</a><br />
107
107
  <a href="classes/Dnsruby/Message.html#M000154">each_answer (Dnsruby::Message)</a><br />
108
108
  <a href="classes/Dnsruby/Message.html#M000155">each_authority (Dnsruby::Message)</a><br />
109
+ <a href="classes/Dnsruby/Hosts.html#M000222">each_name (Dnsruby::Hosts)</a><br />
109
110
  <a href="classes/Dnsruby/Resolv.html#M000209">each_name (Dnsruby::Resolv)</a><br />
111
+ <a href="classes/Dnsruby/DNS.html#M000318">each_name (Dnsruby::DNS)</a><br />
110
112
  <a href="classes/Dnsruby/Resolv.html#M000202">each_name (Dnsruby::Resolv)</a><br />
111
- <a href="classes/Dnsruby/DNS.html#M000317">each_name (Dnsruby::DNS)</a><br />
112
- <a href="classes/Dnsruby/Hosts.html#M000222">each_name (Dnsruby::Hosts)</a><br />
113
113
  <a href="classes/Dnsruby/Message.html#M000170">each_pre (Dnsruby::Message)</a><br />
114
114
  <a href="classes/Dnsruby/Message.html#M000171">each_prerequisite (Dnsruby::Message)</a><br />
115
115
  <a href="classes/Dnsruby/Message.html#M000153">each_question (Dnsruby::Message)</a><br />
116
+ <a href="classes/Dnsruby/DNS.html#M000321">each_resource (Dnsruby::DNS)</a><br />
116
117
  <a href="classes/Dnsruby/Message.html#M000158">each_resource (Dnsruby::Message)</a><br />
117
- <a href="classes/Dnsruby/DNS.html#M000320">each_resource (Dnsruby::DNS)</a><br />
118
118
  <a href="classes/Dnsruby/Message.html#M000157">each_section (Dnsruby::Message)</a><br />
119
119
  <a href="classes/Dnsruby/Message.html#M000172">each_update (Dnsruby::Message)</a><br />
120
120
  <a href="classes/Dnsruby/Message.html#M000169">each_zone (Dnsruby::Message)</a><br />
121
- <a href="classes/Dnsruby/Message.html#M000166">encode (Dnsruby::Message)</a><br />
122
121
  <a href="classes/Dnsruby/Header.html#M000258">encode (Dnsruby::Header)</a><br />
123
- <a href="classes/Base32.html#M000349">encode32hex (Base32)</a><br />
122
+ <a href="classes/Dnsruby/Message.html#M000166">encode (Dnsruby::Message)</a><br />
123
+ <a href="classes/Base32.html#M000350">encode32hex (Base32)</a><br />
124
124
  <a href="classes/Dnsruby/RR/NSEC3.html#M000111">encode_next_hashed (Dnsruby::RR::NSEC3)</a><br />
125
125
  <a href="classes/Dnsruby/RR/NSEC3.html#M000112">encode_next_hashed (Dnsruby::RR::NSEC3)</a><br />
126
126
  <a href="classes/Dnsruby/RR/NSEC3.html#M000108">encode_salt (Dnsruby::RR::NSEC3)</a><br />
127
- <a href="classes/Dnsruby/RR/NSEC.html#M000040">encode_types (Dnsruby::RR::NSEC)</a><br />
128
127
  <a href="classes/Dnsruby/RR/NSEC.html#M000041">encode_types (Dnsruby::RR::NSEC)</a><br />
129
- <a href="classes/Dnsruby/IPv4.html#M000226">eql? (Dnsruby::IPv4)</a><br />
128
+ <a href="classes/Dnsruby/RR/NSEC.html#M000040">encode_types (Dnsruby::RR::NSEC)</a><br />
130
129
  <a href="classes/Dnsruby/Name/Label.html#M000144">eql? (Dnsruby::Name::Label)</a><br />
131
- <a href="classes/Dnsruby/RR/DNSKEY.html#M000059">flags= (Dnsruby::RR::DNSKEY)</a><br />
130
+ <a href="classes/Dnsruby/IPv4.html#M000226">eql? (Dnsruby::IPv4)</a><br />
132
131
  <a href="classes/Dnsruby/RR/NSEC3PARAM.html#M000089">flags= (Dnsruby::RR::NSEC3PARAM)</a><br />
133
132
  <a href="classes/Dnsruby/RR/NSEC3.html#M000102">flags= (Dnsruby::RR::NSEC3)</a><br />
133
+ <a href="classes/Dnsruby/RR/DNSKEY.html#M000059">flags= (Dnsruby::RR::DNSKEY)</a><br />
134
134
  <a href="classes/Dnsruby/RR/RRSIG.html#M000124">format_time (Dnsruby::RR::RRSIG)</a><br />
135
135
  <a href="classes/Dnsruby/RR/X25.html#M000066">from_data (Dnsruby::RR::X25)</a><br />
136
136
  <a href="classes/Dnsruby/RR/TXT.html#M000070">from_data (Dnsruby::RR::TXT)</a><br />
137
+ <a href="classes/Dnsruby/RR/RP.html#M000091">from_hash (Dnsruby::RR::RP)</a><br />
137
138
  <a href="classes/Dnsruby/RR/TKEY.html#M000025">from_hash (Dnsruby::RR::TKEY)</a><br />
139
+ <a href="classes/Dnsruby/RR/IN/SRV.html#M000016">from_hash (Dnsruby::RR::IN::SRV)</a><br />
138
140
  <a href="classes/Dnsruby/RR/SOA.html#M000074">from_hash (Dnsruby::RR::SOA)</a><br />
139
- <a href="classes/Dnsruby/RR/IN/A.html#M000019">from_hash (Dnsruby::RR::IN::A)</a><br />
140
- <a href="classes/Dnsruby/RR/RP.html#M000091">from_hash (Dnsruby::RR::RP)</a><br />
141
141
  <a href="classes/Dnsruby/RR/TXT.html#M000071">from_hash (Dnsruby::RR::TXT)</a><br />
142
- <a href="classes/Dnsruby/RR/IN/SRV.html#M000016">from_hash (Dnsruby::RR::IN::SRV)</a><br />
142
+ <a href="classes/Dnsruby/RR/IN/A.html#M000019">from_hash (Dnsruby::RR::IN::A)</a><br />
143
143
  <a href="classes/Dnsruby/RR/DS.html#M000048">from_key (Dnsruby::RR::DS)</a><br />
144
+ <a href="classes/Dnsruby/RR/NSEC.html#M000042">from_string (Dnsruby::RR::NSEC)</a><br />
144
145
  <a href="classes/Dnsruby/RR/DS.html#M000049">from_string (Dnsruby::RR::DS)</a><br />
146
+ <a href="classes/Dnsruby/RR/IN/A.html#M000020">from_string (Dnsruby::RR::IN::A)</a><br />
145
147
  <a href="classes/Dnsruby/RR/RRSIG.html#M000122">from_string (Dnsruby::RR::RRSIG)</a><br />
146
- <a href="classes/Dnsruby/RR/SOA.html#M000075">from_string (Dnsruby::RR::SOA)</a><br />
147
- <a href="classes/Dnsruby/RR/NSEC.html#M000042">from_string (Dnsruby::RR::NSEC)</a><br />
148
148
  <a href="classes/Dnsruby/RR/NSEC3.html#M000113">from_string (Dnsruby::RR::NSEC3)</a><br />
149
- <a href="classes/Dnsruby/RR/IN/SRV.html#M000017">from_string (Dnsruby::RR::IN::SRV)</a><br />
150
- <a href="classes/Dnsruby/RR/TXT.html#M000072">from_string (Dnsruby::RR::TXT)</a><br />
151
149
  <a href="classes/Dnsruby/RR/X25.html#M000067">from_string (Dnsruby::RR::X25)</a><br />
152
150
  <a href="classes/Dnsruby/RR/NSEC3PARAM.html#M000090">from_string (Dnsruby::RR::NSEC3PARAM)</a><br />
153
- <a href="classes/Dnsruby/RR/IN/A.html#M000020">from_string (Dnsruby::RR::IN::A)</a><br />
151
+ <a href="classes/Dnsruby/RR/IN/SRV.html#M000017">from_string (Dnsruby::RR::IN::SRV)</a><br />
152
+ <a href="classes/Dnsruby/RR/SOA.html#M000075">from_string (Dnsruby::RR::SOA)</a><br />
154
153
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000060">from_string (Dnsruby::RR::DNSKEY)</a><br />
154
+ <a href="classes/Dnsruby/RR/TXT.html#M000072">from_string (Dnsruby::RR::TXT)</a><br />
155
155
  <a href="classes/Dnsruby/RR/TSIG.html#M000083">fudge= (Dnsruby::RR::TSIG)</a><br />
156
156
  <a href="classes/Dnsruby/RR/DS.html#M000044">get_digest_type (Dnsruby::RR::DS)</a><br />
157
157
  <a href="classes/Dnsruby/Message.html#M000147">get_exception (Dnsruby::Message)</a><br />
158
158
  <a href="classes/Dnsruby/Header.html#M000252">get_header_rcode (Dnsruby::Header)</a><br />
159
159
  <a href="classes/Dnsruby/RR.html#M000015">get_num (Dnsruby::RR)</a><br />
160
160
  <a href="classes/Dnsruby/Message.html#M000163">get_opt (Dnsruby::Message)</a><br />
161
- <a href="classes/Dnsruby/Resolver.html#M000337">get_ports_from (Dnsruby::Resolver)</a><br />
161
+ <a href="classes/Dnsruby/Resolver.html#M000338">get_ports_from (Dnsruby::Resolver)</a><br />
162
162
  <a href="classes/Dnsruby/Config.html#M000196">get_ready (Dnsruby::Config)</a><br />
163
163
  <a href="classes/Dnsruby/RR/RRSIG.html#M000123">get_time (Dnsruby::RR::RRSIG)</a><br />
164
- <a href="classes/Dnsruby/Resolver.html#M000340">get_tsig (Dnsruby::Resolver)</a><br />
164
+ <a href="classes/Dnsruby/Resolver.html#M000341">get_tsig (Dnsruby::Resolver)</a><br />
165
165
  <a href="classes/Dnsruby/RR/NSEC.html#M000037">get_types (Dnsruby::RR::NSEC)</a><br />
166
- <a href="classes/Dnsruby/Resolv.html#M000204">getaddress (Dnsruby::Resolv)</a><br />
167
- <a href="classes/Dnsruby/DNS.html#M000312">getaddress (Dnsruby::DNS)</a><br />
168
166
  <a href="classes/Dnsruby/Hosts.html#M000217">getaddress (Dnsruby::Hosts)</a><br />
167
+ <a href="classes/Dnsruby/DNS.html#M000313">getaddress (Dnsruby::DNS)</a><br />
168
+ <a href="classes/Dnsruby/Resolv.html#M000204">getaddress (Dnsruby::Resolv)</a><br />
169
169
  <a href="classes/Dnsruby/Resolv.html#M000197">getaddress (Dnsruby::Resolv)</a><br />
170
- <a href="classes/Dnsruby/Hosts.html#M000218">getaddresses (Dnsruby::Hosts)</a><br />
171
170
  <a href="classes/Dnsruby/Resolv.html#M000198">getaddresses (Dnsruby::Resolv)</a><br />
172
- <a href="classes/Dnsruby/DNS.html#M000313">getaddresses (Dnsruby::DNS)</a><br />
171
+ <a href="classes/Dnsruby/DNS.html#M000314">getaddresses (Dnsruby::DNS)</a><br />
173
172
  <a href="classes/Dnsruby/Resolv.html#M000205">getaddresses (Dnsruby::Resolv)</a><br />
174
- <a href="classes/Dnsruby/Resolv.html#M000207">getname (Dnsruby::Resolv)</a><br />
175
- <a href="classes/Dnsruby/DNS.html#M000315">getname (Dnsruby::DNS)</a><br />
176
- <a href="classes/Dnsruby/Resolv.html#M000200">getname (Dnsruby::Resolv)</a><br />
173
+ <a href="classes/Dnsruby/Hosts.html#M000218">getaddresses (Dnsruby::Hosts)</a><br />
177
174
  <a href="classes/Dnsruby/Hosts.html#M000220">getname (Dnsruby::Hosts)</a><br />
175
+ <a href="classes/Dnsruby/DNS.html#M000316">getname (Dnsruby::DNS)</a><br />
176
+ <a href="classes/Dnsruby/Resolv.html#M000200">getname (Dnsruby::Resolv)</a><br />
177
+ <a href="classes/Dnsruby/Resolv.html#M000207">getname (Dnsruby::Resolv)</a><br />
178
+ <a href="classes/Dnsruby/Resolv.html#M000208">getnames (Dnsruby::Resolv)</a><br />
179
+ <a href="classes/Dnsruby/DNS.html#M000317">getnames (Dnsruby::DNS)</a><br />
178
180
  <a href="classes/Dnsruby/Resolv.html#M000201">getnames (Dnsruby::Resolv)</a><br />
179
181
  <a href="classes/Dnsruby/Hosts.html#M000221">getnames (Dnsruby::Hosts)</a><br />
180
- <a href="classes/Dnsruby/DNS.html#M000316">getnames (Dnsruby::DNS)</a><br />
181
- <a href="classes/Dnsruby/Resolv.html#M000208">getnames (Dnsruby::Resolv)</a><br />
182
- <a href="classes/Dnsruby/DNS.html#M000318">getresource (Dnsruby::DNS)</a><br />
183
- <a href="classes/Dnsruby/DNS.html#M000319">getresources (Dnsruby::DNS)</a><br />
182
+ <a href="classes/Dnsruby/DNS.html#M000319">getresource (Dnsruby::DNS)</a><br />
183
+ <a href="classes/Dnsruby/DNS.html#M000320">getresources (Dnsruby::DNS)</a><br />
184
184
  <a href="classes/Dnsruby/Name/Label.html#M000145">hash (Dnsruby::Name::Label)</a><br />
185
185
  <a href="classes/Dnsruby/IPv6.html#M000267">hash (Dnsruby::IPv6)</a><br />
186
186
  <a href="classes/Dnsruby/IPv4.html#M000227">hash (Dnsruby::IPv4)</a><br />
187
- <a href="classes/Dnsruby/RR/NSEC3PARAM.html#M000087">hash_alg= (Dnsruby::RR::NSEC3PARAM)</a><br />
188
187
  <a href="classes/Dnsruby/RR/NSEC3.html#M000099">hash_alg= (Dnsruby::RR::NSEC3)</a><br />
188
+ <a href="classes/Dnsruby/RR/NSEC3PARAM.html#M000087">hash_alg= (Dnsruby::RR::NSEC3PARAM)</a><br />
189
189
  <a href="classes/Dnsruby/RR/NSEC3.html#M000104">hash_length= (Dnsruby::RR::NSEC3)</a><br />
190
- <a href="classes/Dnsruby/Recursor.html#M000301">hints= (Dnsruby::Recursor)</a><br />
190
+ <a href="classes/Dnsruby/Recursor.html#M000302">hints= (Dnsruby::Recursor)</a><br />
191
191
  <a href="classes/Dnsruby/RR/NSAP.html#M000114">idp (Dnsruby::RR::NSAP)</a><br />
192
- <a href="classes/Dnsruby/Resolver.html#M000341">ignore_truncation= (Dnsruby::Resolver)</a><br />
192
+ <a href="classes/Dnsruby/Resolver.html#M000342">ignore_truncation= (Dnsruby::Resolver)</a><br />
193
193
  <a href="classes/Dnsruby/RR.html#M000010">implemented_rrs (Dnsruby::RR)</a><br />
194
- <a href="classes/Dnsruby/RR.html#M000007">init_defaults (Dnsruby::RR)</a><br />
195
- <a href="classes/Dnsruby/RR/TSIG.html#M000080">init_defaults (Dnsruby::RR::TSIG)</a><br />
196
194
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000050">init_defaults (Dnsruby::RR::DNSKEY)</a><br />
197
195
  <a href="classes/Dnsruby/RR/RRSIG.html#M000118">init_defaults (Dnsruby::RR::RRSIG)</a><br />
196
+ <a href="classes/Dnsruby/RR.html#M000007">init_defaults (Dnsruby::RR)</a><br />
197
+ <a href="classes/Dnsruby/RR/TSIG.html#M000080">init_defaults (Dnsruby::RR::TSIG)</a><br />
198
198
  <a href="classes/Dnsruby/Name/Label.html#M000141">inspect (Dnsruby::Name::Label)</a><br />
199
199
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000062">key= (Dnsruby::RR::DNSKEY)</a><br />
200
200
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000061">key_tag (Dnsruby::RR::DNSKEY)</a><br />
@@ -207,107 +207,108 @@
207
207
  <a href="classes/Dnsruby/Name/Label.html#M000140">length (Dnsruby::Name::Label)</a><br />
208
208
  <a href="classes/Dnsruby/TheLog.html#M000270">level (Dnsruby::TheLog)</a><br />
209
209
  <a href="classes/Dnsruby/TheLog.html#M000269">level= (Dnsruby::TheLog)</a><br />
210
- <a href="classes/Dnsruby/Dnssec.html#M000280">load_itar (Dnsruby::Dnssec)</a><br />
210
+ <a href="classes/Dnsruby/Dnssec.html#M000281">load_itar (Dnsruby::Dnssec)</a><br />
211
211
  <a href="classes/Dnsruby.html#M000001">log (Dnsruby)</a><br />
212
212
  <a href="classes/Dnsruby/RRSet.html#M000244">name (Dnsruby::RRSet)</a><br />
213
- <a href="classes/Dnsruby/RR.html#M000003">name= (Dnsruby::RR)</a><br />
214
213
  <a href="classes/Dnsruby/RR/TSIG.html#M000081">name= (Dnsruby::RR::TSIG)</a><br />
214
+ <a href="classes/Dnsruby/RR.html#M000003">name= (Dnsruby::RR)</a><br />
215
215
  <a href="classes/Dnsruby/Config.html#M000183">nameserver (Dnsruby::Config)</a><br />
216
- <a href="classes/Dnsruby/Resolver.html#M000330">nameserver= (Dnsruby::Resolver)</a><br />
216
+ <a href="classes/Dnsruby/Resolver.html#M000331">nameserver= (Dnsruby::Resolver)</a><br />
217
217
  <a href="classes/Dnsruby/Config.html#M000192">nameserver= (Dnsruby::Config)</a><br />
218
- <a href="classes/Dnsruby/Resolver.html#M000329">nameservers= (Dnsruby::Resolver)</a><br />
218
+ <a href="classes/Dnsruby/Resolver.html#M000330">nameservers= (Dnsruby::Resolver)</a><br />
219
219
  <a href="classes/Dnsruby/Config.html#M000184">ndots (Dnsruby::Config)</a><br />
220
220
  <a href="classes/Dnsruby/Config.html#M000189">ndots= (Dnsruby::Config)</a><br />
221
+ <a href="classes/Dnsruby/RR/OPT/Option.html#M000092">new (Dnsruby::RR::OPT::Option)</a><br />
222
+ <a href="classes/Dnsruby/RR/IN/WKS.html#M000022">new (Dnsruby::RR::IN::WKS)</a><br />
223
+ <a href="classes/Dnsruby/RRSet.html#M000230">new (Dnsruby::RRSet)</a><br />
224
+ <a href="classes/Dnsruby/RR/TKEY.html#M000024">new (Dnsruby::RR::TKEY)</a><br />
221
225
  <a href="classes/Dnsruby/Resolv.html#M000203">new (Dnsruby::Resolv)</a><br />
222
- <a href="classes/Dnsruby/Question.html#M000247">new (Dnsruby::Question)</a><br />
223
- <a href="classes/Dnsruby/Header.html#M000253">new (Dnsruby::Header)</a><br />
224
- <a href="classes/Dnsruby/Message.html#M000146">new (Dnsruby::Message)</a><br />
226
+ <a href="classes/Dnsruby/DNS.html#M000312">new (Dnsruby::DNS)</a><br />
227
+ <a href="classes/Dnsruby/Resolver.html#M000327">new (Dnsruby::Resolver)</a><br />
228
+ <a href="classes/Dnsruby/Name/Label.html#M000138">new (Dnsruby::Name::Label)</a><br />
229
+ <a href="classes/Dnsruby/Update.html#M000296">new (Dnsruby::Update)</a><br />
225
230
  <a href="classes/Dnsruby/Config.html#M000186">new (Dnsruby::Config)</a><br />
226
- <a href="classes/Dnsruby/Recursor.html#M000300">new (Dnsruby::Recursor)</a><br />
231
+ <a href="classes/Dnsruby/Message.html#M000146">new (Dnsruby::Message)</a><br />
227
232
  <a href="classes/Dnsruby/ZoneTransfer/Delta.html#M000181">new (Dnsruby::ZoneTransfer::Delta)</a><br />
228
- <a href="classes/Dnsruby/DNS.html#M000311">new (Dnsruby::DNS)</a><br />
229
233
  <a href="classes/Dnsruby/ZoneTransfer.html#M000179">new (Dnsruby::ZoneTransfer)</a><br />
230
- <a href="classes/Dnsruby/RR/OPT/Option.html#M000092">new (Dnsruby::RR::OPT::Option)</a><br />
231
- <a href="classes/Dnsruby/RRSet.html#M000230">new (Dnsruby::RRSet)</a><br />
234
+ <a href="classes/Dnsruby/Recursor.html#M000301">new (Dnsruby::Recursor)</a><br />
232
235
  <a href="classes/Dnsruby/Message/Section.html#M000173">new (Dnsruby::Message::Section)</a><br />
233
- <a href="classes/Dnsruby/Update.html#M000295">new (Dnsruby::Update)</a><br />
234
- <a href="classes/Dnsruby/Name/Label.html#M000138">new (Dnsruby::Name::Label)</a><br />
235
- <a href="classes/Dnsruby/Resolver.html#M000326">new (Dnsruby::Resolver)</a><br />
236
- <a href="classes/Dnsruby/RR/TKEY.html#M000024">new (Dnsruby::RR::TKEY)</a><br />
237
- <a href="classes/Dnsruby/RR/IN/WKS.html#M000022">new (Dnsruby::RR::IN::WKS)</a><br />
236
+ <a href="classes/Dnsruby/Header.html#M000253">new (Dnsruby::Header)</a><br />
237
+ <a href="classes/Dnsruby/Question.html#M000247">new (Dnsruby::Question)</a><br />
238
238
  <a href="classes/Dnsruby/Hosts.html#M000216">new (Dnsruby::Hosts)</a><br />
239
239
  <a href="classes/Dnsruby/SingleResolver.html#M000210">new (Dnsruby::SingleResolver)</a><br />
240
240
  <a href="classes/Dnsruby/Header.html#M000256">new_from_data (Dnsruby::Header)</a><br />
241
241
  <a href="classes/Dnsruby/RR.html#M000008">new_from_hash (Dnsruby::RR)</a><br />
242
242
  <a href="classes/Dnsruby/RR.html#M000009">new_from_string (Dnsruby::RR)</a><br />
243
243
  <a href="classes/Dnsruby/RR/NSEC.html#M000033">next_domain= (Dnsruby::RR::NSEC)</a><br />
244
+ <a href="classes/Dnsruby/Dnssec.html#M000280">no_keys? (Dnsruby::Dnssec)</a><br />
244
245
  <a href="classes/Dnsruby/Header.html#M000254">opcode= (Dnsruby::Header)</a><br />
245
- <a href="classes/Dnsruby/DNS.html#M000308">open (Dnsruby::DNS)</a><br />
246
+ <a href="classes/Dnsruby/DNS.html#M000309">open (Dnsruby::DNS)</a><br />
246
247
  <a href="classes/Dnsruby/RR/NSEC3.html#M000103">opt_out? (Dnsruby::RR::NSEC3)</a><br />
247
248
  <a href="classes/Dnsruby/RR/TKEY.html#M000023">other_data= (Dnsruby::RR::TKEY)</a><br />
248
- <a href="classes/Dnsruby/Resolver.html#M000331">packet_timeout= (Dnsruby::Resolver)</a><br />
249
249
  <a href="classes/Dnsruby/SingleResolver.html#M000213">packet_timeout= (Dnsruby::SingleResolver)</a><br />
250
- <a href="classes/Dnsruby/Resolver.html#M000344">persistent_tcp= (Dnsruby::Resolver)</a><br />
251
- <a href="classes/Dnsruby/Resolver.html#M000345">persistent_udp= (Dnsruby::Resolver)</a><br />
252
- <a href="classes/Dnsruby/Resolver.html#M000343">port= (Dnsruby::Resolver)</a><br />
253
- <a href="classes/Dnsruby/Resolver.html#M000336">port_in_range (Dnsruby::Resolver)</a><br />
250
+ <a href="classes/Dnsruby/Resolver.html#M000332">packet_timeout= (Dnsruby::Resolver)</a><br />
251
+ <a href="classes/Dnsruby/Resolver.html#M000345">persistent_tcp= (Dnsruby::Resolver)</a><br />
252
+ <a href="classes/Dnsruby/Resolver.html#M000346">persistent_udp= (Dnsruby::Resolver)</a><br />
253
+ <a href="classes/Dnsruby/Resolver.html#M000344">port= (Dnsruby::Resolver)</a><br />
254
+ <a href="classes/Dnsruby/Resolver.html#M000337">port_in_range (Dnsruby::Resolver)</a><br />
254
255
  <a href="classes/Dnsruby/RR/LOC.html#M000031">precsize_ntoval (Dnsruby::RR::LOC)</a><br />
255
256
  <a href="classes/Dnsruby/RR/LOC.html#M000032">precsize_valton (Dnsruby::RR::LOC)</a><br />
256
- <a href="classes/Dnsruby/Update.html#M000296">present (Dnsruby::Update)</a><br />
257
+ <a href="classes/Dnsruby/Update.html#M000297">present (Dnsruby::Update)</a><br />
257
258
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000051">protocol= (Dnsruby::RR::DNSKEY)</a><br />
258
- <a href="classes/Dnsruby/Recursor.html#M000307">prune_rrsets_to_rfc5452 (Dnsruby::Recursor)</a><br />
259
+ <a href="classes/Dnsruby/Recursor.html#M000308">prune_rrsets_to_rfc5452 (Dnsruby::Recursor)</a><br />
259
260
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000063">public_key (Dnsruby::RR::DNSKEY)</a><br />
260
261
  <a href="classes/Dnsruby/Question.html#M000249">qclass= (Dnsruby::Question)</a><br />
261
262
  <a href="classes/Dnsruby/Question.html#M000250">qname= (Dnsruby::Question)</a><br />
262
263
  <a href="classes/Dnsruby/Question.html#M000248">qtype= (Dnsruby::Question)</a><br />
263
- <a href="classes/Dnsruby/Recursor.html#M000306">query (Dnsruby::Recursor)</a><br />
264
- <a href="classes/Dnsruby/Resolver.html#M000321">query (Dnsruby::Resolver)</a><br />
264
+ <a href="classes/Dnsruby/Recursor.html#M000307">query (Dnsruby::Recursor)</a><br />
265
+ <a href="classes/Dnsruby/Resolver.html#M000322">query (Dnsruby::Resolver)</a><br />
265
266
  <a href="classes/Dnsruby/SingleResolver.html#M000215">query_timeout= (Dnsruby::SingleResolver)</a><br />
266
267
  <a href="classes/Dnsruby/Message.html#M000164">rcode (Dnsruby::Message)</a><br />
267
268
  <a href="classes/Dnsruby/Header.html#M000255">rcode= (Dnsruby::Header)</a><br />
268
- <a href="classes/Dnsruby/RR/IN/SRV.html#M000018">rdata_to_string (Dnsruby::RR::IN::SRV)</a><br />
269
- <a href="classes/Dnsruby/RR/TXT.html#M000073">rdata_to_string (Dnsruby::RR::TXT)</a><br />
270
- <a href="classes/Dnsruby/RR/TKEY.html#M000026">rdata_to_string (Dnsruby::RR::TKEY)</a><br />
271
- <a href="classes/Dnsruby/RR/X25.html#M000068">rdata_to_string (Dnsruby::RR::X25)</a><br />
272
269
  <a href="classes/Dnsruby/RR/IN/A.html#M000021">rdata_to_string (Dnsruby::RR::IN::A)</a><br />
270
+ <a href="classes/Dnsruby/RR/TKEY.html#M000026">rdata_to_string (Dnsruby::RR::TKEY)</a><br />
271
+ <a href="classes/Dnsruby/RR/TXT.html#M000073">rdata_to_string (Dnsruby::RR::TXT)</a><br />
272
+ <a href="classes/Dnsruby/RR/IN/SRV.html#M000018">rdata_to_string (Dnsruby::RR::IN::SRV)</a><br />
273
273
  <a href="classes/Dnsruby/RR.html#M000012">rdata_to_string (Dnsruby::RR)</a><br />
274
274
  <a href="classes/Dnsruby/RR/TSIG.html#M000084">rdata_to_string (Dnsruby::RR::TSIG)</a><br />
275
+ <a href="classes/Dnsruby/RR/X25.html#M000068">rdata_to_string (Dnsruby::RR::X25)</a><br />
275
276
  <a href="classes/Dnsruby/RR.html#M000002">rdlength (Dnsruby::RR)</a><br />
276
- <a href="classes/Dnsruby/Resolver.html#M000346">recurse= (Dnsruby::Resolver)</a><br />
277
- <a href="classes/Dnsruby/Recursor.html#M000304">recursion_callback (Dnsruby::Recursor)</a><br />
278
- <a href="classes/Dnsruby/Recursor.html#M000303">recursion_callback= (Dnsruby::Recursor)</a><br />
277
+ <a href="classes/Dnsruby/Resolver.html#M000347">recurse= (Dnsruby::Resolver)</a><br />
278
+ <a href="classes/Dnsruby/Recursor.html#M000305">recursion_callback (Dnsruby::Recursor)</a><br />
279
+ <a href="classes/Dnsruby/Recursor.html#M000304">recursion_callback= (Dnsruby::Recursor)</a><br />
279
280
  <a href="classes/Dnsruby/Message/Section.html#M000177">remove_rrset (Dnsruby::Message::Section)</a><br />
280
281
  <a href="classes/Dnsruby/Dnssec.html#M000276">remove_trust_anchor (Dnsruby::Dnssec)</a><br />
281
282
  <a href="classes/Dnsruby/Config.html#M000187">reset (Dnsruby::Config)</a><br />
282
283
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000053">revoked= (Dnsruby::RR::DNSKEY)</a><br />
283
284
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000054">revoked? (Dnsruby::RR::DNSKEY)</a><br />
284
- <a href="classes/Dnsruby/Dnssec.html#M000293">root_verifier (Dnsruby::Dnssec)</a><br />
285
+ <a href="classes/Dnsruby/Dnssec.html#M000294">root_verifier (Dnsruby::Dnssec)</a><br />
285
286
  <a href="classes/Dnsruby/RRSet.html#M000232">rrs (Dnsruby::RRSet)</a><br />
286
- <a href="classes/Dnsruby/Message.html#M000149">rrset (Dnsruby::Message)</a><br />
287
287
  <a href="classes/Dnsruby/Message/Section.html#M000174">rrset (Dnsruby::Message::Section)</a><br />
288
- <a href="classes/Dnsruby/Message/Section.html#M000175">rrsets (Dnsruby::Message::Section)</a><br />
288
+ <a href="classes/Dnsruby/Message.html#M000149">rrset (Dnsruby::Message)</a><br />
289
289
  <a href="classes/Dnsruby/Message.html#M000150">rrsets (Dnsruby::Message)</a><br />
290
+ <a href="classes/Dnsruby/Message/Section.html#M000175">rrsets (Dnsruby::Message::Section)</a><br />
290
291
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000064">rsa_key (Dnsruby::RR::DNSKEY)</a><br />
291
292
  <a href="classes/Dnsruby/RR/NSAP.html#M000116">rsvd (Dnsruby::RR::NSAP)</a><br />
292
- <a href="classes/Dnsruby/RR/NSEC3.html#M000105">salt (Dnsruby::RR::NSEC3)</a><br />
293
293
  <a href="classes/Dnsruby/RR/NSEC3PARAM.html#M000085">salt (Dnsruby::RR::NSEC3PARAM)</a><br />
294
+ <a href="classes/Dnsruby/RR/NSEC3.html#M000105">salt (Dnsruby::RR::NSEC3)</a><br />
294
295
  <a href="classes/Dnsruby/RR/NSEC3.html#M000106">salt= (Dnsruby::RR::NSEC3)</a><br />
295
296
  <a href="classes/Dnsruby/RR/NSEC3PARAM.html#M000086">salt= (Dnsruby::RR::NSEC3PARAM)</a><br />
296
297
  <a href="classes/Dnsruby/RR.html#M000006">sameRRset (Dnsruby::RR)</a><br />
297
298
  <a href="classes/Dnsruby/Config.html#M000194">search (Dnsruby::Config)</a><br />
298
299
  <a href="classes/Dnsruby/Config.html#M000190">search= (Dnsruby::Config)</a><br />
299
300
  <a href="classes/Dnsruby/Message.html#M000151">section_rrsets (Dnsruby::Message)</a><br />
300
- <a href="classes/Dnsruby/Resolver.html#M000324">send_async (Dnsruby::Resolver)</a><br />
301
- <a href="classes/Dnsruby/Resolver.html#M000322">send_message (Dnsruby::Resolver)</a><br />
302
- <a href="classes/Dnsruby/Resolver.html#M000323">send_plain_message (Dnsruby::Resolver)</a><br />
301
+ <a href="classes/Dnsruby/Resolver.html#M000325">send_async (Dnsruby::Resolver)</a><br />
302
+ <a href="classes/Dnsruby/Resolver.html#M000323">send_message (Dnsruby::Resolver)</a><br />
303
+ <a href="classes/Dnsruby/Resolver.html#M000324">send_plain_message (Dnsruby::Resolver)</a><br />
303
304
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000057">sep_key= (Dnsruby::RR::DNSKEY)</a><br />
304
305
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000058">sep_key? (Dnsruby::RR::DNSKEY)</a><br />
305
306
  <a href="classes/Dnsruby/SingleResolver.html#M000212">server (Dnsruby::SingleResolver)</a><br />
306
307
  <a href="classes/Dnsruby/SingleResolver.html#M000211">server= (Dnsruby::SingleResolver)</a><br />
307
308
  <a href="classes/Dnsruby/Config.html#M000185">set_config_info (Dnsruby::Config)</a><br />
308
- <a href="classes/Dnsruby/Resolver.html#M000327">set_config_nameserver (Dnsruby::Resolver)</a><br />
309
+ <a href="classes/Dnsruby/Resolver.html#M000328">set_config_nameserver (Dnsruby::Resolver)</a><br />
309
310
  <a href="classes/Dnsruby/RR/DomainName.html#M000093">set_domain_name (Dnsruby::RR::DomainName)</a><br />
310
- <a href="classes/Dnsruby/Recursor.html#M000302">set_hints (Dnsruby::Recursor)</a><br />
311
+ <a href="classes/Dnsruby/Recursor.html#M000303">set_hints (Dnsruby::Recursor)</a><br />
311
312
  <a href="classes/Dnsruby/TheLog.html#M000268">set_logger (Dnsruby::TheLog)</a><br />
312
313
  <a href="classes/Dnsruby/Name/Label.html#M000137">set_max_length (Dnsruby::Name::Label)</a><br />
313
314
  <a href="classes/Dnsruby/Message.html#M000160">set_tsig (Dnsruby::Message)</a><br />
@@ -316,57 +317,57 @@
316
317
  <a href="classes/Dnsruby/RR/RRSIG.html#M000121">signers_name= (Dnsruby::RR::RRSIG)</a><br />
317
318
  <a href="classes/Dnsruby/RRSet.html#M000231">sigs (Dnsruby::RRSet)</a><br />
318
319
  <a href="classes/Dnsruby/RRSet.html#M000235">sort_canonical (Dnsruby::RRSet)</a><br />
319
- <a href="classes/Dnsruby/Name/Label.html#M000136">split (Dnsruby::Name::Label)</a><br />
320
320
  <a href="classes/Dnsruby/Name.html#M000127">split (Dnsruby::Name)</a><br />
321
- <a href="classes/Dnsruby/Resolver.html#M000342">src_address= (Dnsruby::Resolver)</a><br />
322
- <a href="classes/Dnsruby/Resolver.html#M000332">src_port (Dnsruby::Resolver)</a><br />
323
- <a href="classes/Dnsruby/Resolver.html#M000333">src_port= (Dnsruby::Resolver)</a><br />
321
+ <a href="classes/Dnsruby/Name/Label.html#M000136">split (Dnsruby::Name::Label)</a><br />
322
+ <a href="classes/Dnsruby/Resolver.html#M000343">src_address= (Dnsruby::Resolver)</a><br />
323
+ <a href="classes/Dnsruby/Resolver.html#M000333">src_port (Dnsruby::Resolver)</a><br />
324
+ <a href="classes/Dnsruby/Resolver.html#M000334">src_port= (Dnsruby::Resolver)</a><br />
324
325
  <a href="classes/Dnsruby/RR/NSAP.html#M000117">str2bcd (Dnsruby::RR::NSAP)</a><br />
325
326
  <a href="classes/Dnsruby/Name.html#M000134">subdomain_of? (Dnsruby::Name)</a><br />
326
327
  <a href="classes/Dnsruby/IPv4.html#M000224">to_name (Dnsruby::IPv4)</a><br />
327
328
  <a href="classes/Dnsruby/IPv6.html#M000266">to_name (Dnsruby::IPv6)</a><br />
328
- <a href="classes/Dnsruby/Question.html#M000251">to_s (Dnsruby::Question)</a><br />
329
- <a href="classes/Dnsruby/Name.html#M000135">to_s (Dnsruby::Name)</a><br />
330
- <a href="classes/Dnsruby/Header.html#M000261">to_s (Dnsruby::Header)</a><br />
331
329
  <a href="classes/Dnsruby/ZoneTransfer/Delta.html#M000182">to_s (Dnsruby::ZoneTransfer::Delta)</a><br />
332
- <a href="classes/Dnsruby/DNS.html#M000310">to_s (Dnsruby::DNS)</a><br />
333
- <a href="classes/Dnsruby/RR.html#M000011">to_s (Dnsruby::RR)</a><br />
330
+ <a href="classes/Dnsruby/Question.html#M000251">to_s (Dnsruby::Question)</a><br />
334
331
  <a href="classes/Dnsruby/RRSet.html#M000245">to_s (Dnsruby::RRSet)</a><br />
335
- <a href="classes/Dnsruby/Message.html#M000165">to_s (Dnsruby::Message)</a><br />
336
332
  <a href="classes/Dnsruby/Config.html#M000193">to_s (Dnsruby::Config)</a><br />
337
- <a href="classes/Dnsruby/Name/Label.html#M000139">to_s (Dnsruby::Name::Label)</a><br />
333
+ <a href="classes/Dnsruby/DNS.html#M000311">to_s (Dnsruby::DNS)</a><br />
334
+ <a href="classes/Dnsruby/RR.html#M000011">to_s (Dnsruby::RR)</a><br />
335
+ <a href="classes/Dnsruby/Name.html#M000135">to_s (Dnsruby::Name)</a><br />
336
+ <a href="classes/Dnsruby/Header.html#M000261">to_s (Dnsruby::Header)</a><br />
338
337
  <a href="classes/Dnsruby/IPv6.html#M000265">to_s (Dnsruby::IPv6)</a><br />
338
+ <a href="classes/Dnsruby/Name/Label.html#M000139">to_s (Dnsruby::Name::Label)</a><br />
339
+ <a href="classes/Dnsruby/Message.html#M000165">to_s (Dnsruby::Message)</a><br />
339
340
  <a href="classes/Dnsruby/Header.html#M000262">to_s_with_rcode (Dnsruby::Header)</a><br />
340
341
  <a href="classes/Dnsruby/ZoneTransfer.html#M000180">transfer (Dnsruby::ZoneTransfer)</a><br />
341
342
  <a href="classes/Dnsruby/Dnssec.html#M000278">trust_anchors (Dnsruby::Dnssec)</a><br />
342
343
  <a href="classes/Dnsruby/Message.html#M000159">tsig (Dnsruby::Message)</a><br />
343
- <a href="classes/Dnsruby/Resolver.html#M000339">tsig= (Dnsruby::Resolver)</a><br />
344
+ <a href="classes/Dnsruby/Resolver.html#M000340">tsig= (Dnsruby::Resolver)</a><br />
344
345
  <a href="classes/Dnsruby/ZoneTransfer.html#M000178">tsig= (Dnsruby::ZoneTransfer)</a><br />
345
346
  <a href="classes/Dnsruby/RRSet.html#M000242">ttl (Dnsruby::RRSet)</a><br />
346
347
  <a href="classes/Dnsruby/RRSet.html#M000243">ttl= (Dnsruby::RRSet)</a><br />
347
348
  <a href="classes/Dnsruby/RRSet.html#M000240">type (Dnsruby::RRSet)</a><br />
348
349
  <a href="classes/Dnsruby/RR.html#M000004">type= (Dnsruby::RR)</a><br />
349
350
  <a href="classes/Dnsruby/RR/RRSIG.html#M000120">type_covered= (Dnsruby::RR::RRSIG)</a><br />
350
- <a href="classes/Dnsruby/RR/NSEC3.html#M000100">types= (Dnsruby::RR::NSEC3)</a><br />
351
- <a href="classes/Dnsruby/RR/NSEC3PARAM.html#M000088">types= (Dnsruby::RR::NSEC3PARAM)</a><br />
352
351
  <a href="classes/Dnsruby/RR/NSEC.html#M000036">types= (Dnsruby::RR::NSEC)</a><br />
353
- <a href="classes/Dnsruby/Resolver.html#M000348">udp_size= (Dnsruby::Resolver)</a><br />
352
+ <a href="classes/Dnsruby/RR/NSEC3PARAM.html#M000088">types= (Dnsruby::RR::NSEC3PARAM)</a><br />
353
+ <a href="classes/Dnsruby/RR/NSEC3.html#M000100">types= (Dnsruby::RR::NSEC3)</a><br />
354
+ <a href="classes/Dnsruby/Resolver.html#M000349">udp_size= (Dnsruby::Resolver)</a><br />
354
355
  <a href="classes/Dnsruby/Classes.html#M000229">unknown_code (Dnsruby::Classes)</a><br />
355
356
  <a href="classes/Dnsruby/Classes.html#M000228">unknown_string (Dnsruby::Classes)</a><br />
356
- <a href="classes/Dnsruby/Resolver.html#M000328">update_internal_res (Dnsruby::Resolver)</a><br />
357
- <a href="classes/Dnsruby/Resolver.html#M000338">use_tcp= (Dnsruby::Resolver)</a><br />
358
- <a href="classes/Dnsruby/Dnssec.html#M000285">validate (Dnsruby::Dnssec)</a><br />
359
- <a href="classes/Dnsruby/Dnssec.html#M000287">validate_with_anchors (Dnsruby::Dnssec)</a><br />
360
- <a href="classes/Dnsruby/Dnssec.html#M000289">validate_with_dlv (Dnsruby::Dnssec)</a><br />
361
- <a href="classes/Dnsruby/Dnssec.html#M000286">validate_with_query (Dnsruby::Dnssec)</a><br />
362
- <a href="classes/Dnsruby/Dnssec.html#M000288">validate_with_root (Dnsruby::Dnssec)</a><br />
357
+ <a href="classes/Dnsruby/Resolver.html#M000329">update_internal_res (Dnsruby::Resolver)</a><br />
358
+ <a href="classes/Dnsruby/Resolver.html#M000339">use_tcp= (Dnsruby::Resolver)</a><br />
359
+ <a href="classes/Dnsruby/Dnssec.html#M000286">validate (Dnsruby::Dnssec)</a><br />
360
+ <a href="classes/Dnsruby/Dnssec.html#M000288">validate_with_anchors (Dnsruby::Dnssec)</a><br />
361
+ <a href="classes/Dnsruby/Dnssec.html#M000290">validate_with_dlv (Dnsruby::Dnssec)</a><br />
362
+ <a href="classes/Dnsruby/Dnssec.html#M000287">validate_with_query (Dnsruby::Dnssec)</a><br />
363
+ <a href="classes/Dnsruby/Dnssec.html#M000289">validate_with_root (Dnsruby::Dnssec)</a><br />
363
364
  <a href="classes/Dnsruby/Dnssec.html#M000272">validation_policy (Dnsruby::Dnssec)</a><br />
364
365
  <a href="classes/Dnsruby/Dnssec.html#M000271">validation_policy= (Dnsruby::Dnssec)</a><br />
365
366
  <a href="classes/Dnsruby/Message.html#M000162">verified? (Dnsruby::Message)</a><br />
366
- <a href="classes/Dnsruby/Dnssec.html#M000290">verify (Dnsruby::Dnssec)</a><br />
367
367
  <a href="classes/Dnsruby/RR/TSIG.html#M000078">verify (Dnsruby::RR::TSIG)</a><br />
368
+ <a href="classes/Dnsruby/Dnssec.html#M000291">verify (Dnsruby::Dnssec)</a><br />
368
369
  <a href="classes/Dnsruby/RR/TSIG.html#M000079">verify_envelope (Dnsruby::RR::TSIG)</a><br />
369
- <a href="classes/Dnsruby/Dnssec.html#M000294">verify_rrset (Dnsruby::Dnssec)</a><br />
370
+ <a href="classes/Dnsruby/Dnssec.html#M000295">verify_rrset (Dnsruby::Dnssec)</a><br />
370
371
  <a href="classes/Dnsruby/Name.html#M000130">wild? (Dnsruby::Name)</a><br />
371
372
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000055">zone_key= (Dnsruby::RR::DNSKEY)</a><br />
372
373
  <a href="classes/Dnsruby/RR/DNSKEY.html#M000056">zone_key? (Dnsruby::RR::DNSKEY)</a><br />
@@ -234,7 +234,7 @@ module Dnsruby
234
234
  # @nameserver = ['0.0.0.0'] if (@nameserver.class != Array || @nameserver.empty?)
235
235
  # Now go through and ensure that all ns point to IP addresses, not domain names
236
236
  @nameserver=ns
237
- Dnsruby.log.debug{"Nameservers = #{@nameserver.join(", ")}"}
237
+ Dnsruby.log.debug{'Nameservers = #{@nameserver.join(", ")}'}
238
238
  end
239
239
 
240
240
  def Config.resolve_server(ns) #:nodoc: all
@@ -232,6 +232,9 @@ module Dnsruby
232
232
  msg = Message.new(msg)
233
233
  if (@dnssec)
234
234
  msg.header.cd = @dnssec # we'll do our own validation by default
235
+ if (Dnssec.no_keys?)
236
+ msg.header.cd = false
237
+ end
235
238
  end
236
239
  end
237
240
  if (args.length > 1)
@@ -303,7 +306,7 @@ module Dnsruby
303
306
  if (use_tcp)
304
307
  begin
305
308
  socket = TCPSocket.new(@server, @port, @src_address, src_port)
306
- rescue Errno::EBADF=> e
309
+ rescue Errno::EBADF, Errno::ENETUNREACH => e
307
310
  # Can't create a connection
308
311
  err=IOError.new("TCP connection error to #{@server}:#{@port} from #{@src_address}:#{src_port}, use_tcp=#{use_tcp}, exception = #{e.class}, #{e}")
309
312
  Dnsruby.log.error{"#{err}"}
@@ -467,7 +470,7 @@ module Dnsruby
467
470
  # Try to resend over tcp
468
471
  Dnsruby.log.debug{"Truncated - resending over TCP"}
469
472
  # @TODO@ Are the query options used correctly here? DNSSEC in particular...
470
- # query.send_raw = true # Make sure that the packet is not messed with.
473
+ # query.send_raw = true # Make sure that the packet is not messed with.
471
474
  send_async(query, client_queue, client_query_id, true)
472
475
  return false
473
476
  end
@@ -552,6 +555,9 @@ module Dnsruby
552
555
  if (packet.do_validation)
553
556
  packet.header.cd = true
554
557
  end
558
+ if (Dnssec.no_keys?)
559
+ packet.header.cd = false
560
+ end
555
561
 
556
562
  end
557
563
 
@@ -116,6 +116,17 @@ module Dnsruby
116
116
  v.clear_trusted_keys
117
117
  }
118
118
  end
119
+
120
+ def self.no_keys?
121
+ no_keys = true
122
+ [@@anchor_verifier, @@root_verifier, @@dlv_verifier].each {|v|
123
+ if (v.trusted_keys.length() > 0 ||
124
+ v.trust_anchors.length() > 0)
125
+ no_keys = false
126
+ end
127
+ }
128
+ return no_keys
129
+ end
119
130
  # Load the IANA TAR.
120
131
  # THIS METHOD IS NOT SECURE!!!
121
132
  def self.load_itar
@@ -148,9 +148,9 @@ module Dnsruby
148
148
  end
149
149
  def ==(other)
150
150
  return false unless (other.instance_of?Message::Section)
151
- return false if (other.rrsets(true).length != self.rrsets(true).length)
152
- otherrrsets = other.rrsets(true)
153
- self.rrsets(true).each {|rrset|
151
+ return false if (other.rrsets(nil, true).length != self.rrsets(nil, true).length)
152
+ otherrrsets = other.rrsets(nil, true)
153
+ self.rrsets(nil, true).each {|rrset|
154
154
  return false unless otherrrsets.include?rrset
155
155
  }
156
156
  return true
@@ -185,7 +185,8 @@ module Dnsruby
185
185
  #
186
186
  def initialize(*args)
187
187
  @header = Header.new()
188
- @question = Section.new(self)
188
+ # @question = Section.new(self)
189
+ @question = []
189
190
  @answer = Section.new(self)
190
191
  @authority = Section.new(self)
191
192
  @additional = Section.new(self)
@@ -302,7 +303,7 @@ module Dnsruby
302
303
  ret = false
303
304
  if (other.kind_of?Message)
304
305
  ret = @header == other.header &&
305
- @question == other.question &&
306
+ @question[0] == other.question[0] &&
306
307
  @answer == other.answer &&
307
308
  @authority == other.authority &&
308
309
  @additional == other.additional
@@ -72,7 +72,7 @@ module Dnsruby
72
72
  # r = RR.create(r.to_s) # clone the record
73
73
  r = nil
74
74
  if do_clone
75
- Message::MessageDecoder.new(MessageEncoder.new {|msg|
75
+ MessageDecoder.new(MessageEncoder.new {|msg|
76
76
  msg.put_rr(rin, true)}.to_s) {|msg|
77
77
  r = msg.get_rr
78
78
  }
@@ -528,12 +528,14 @@ module Dnsruby
528
528
  ivars.each {|i| s_ivars << i.to_s} # Ruby 1.9
529
529
  s_ivars.sort!
530
530
  s_ivars.delete "@ttl" # RFC 2136 section 1.1
531
+ s_ivars.delete "@rdata"
531
532
 
532
533
  ivars = other.instance_variables
533
534
  o_ivars = []
534
535
  ivars.each {|i| o_ivars << i.to_s} # Ruby 1.9
535
536
  o_ivars.sort!
536
537
  o_ivars.delete "@ttl" # RFC 2136 section 1.1
538
+ o_ivars.delete "@rdata"
537
539
 
538
540
  return s_ivars == o_ivars &&
539
541
  s_ivars.collect {|name| self.instance_variable_get name} ==
@@ -52,10 +52,12 @@ module Dnsruby
52
52
  @@query_hash = Hash.new
53
53
  @@socket_hash = Hash.new
54
54
  @@observers = Hash.new
55
+ @@tcp_buffers=Hash.new
55
56
  @@tick_observers = []
56
57
  @@queued_exceptions=[]
57
58
  @@queued_responses=[]
58
59
  @@queued_validation_responses=[]
60
+ @@wakeup_sockets = get_socket_pair
59
61
  # end
60
62
  # Now start the select thread
61
63
  @@select_thread = Thread.new {
@@ -66,6 +68,21 @@ module Dnsruby
66
68
  }
67
69
  end
68
70
 
71
+ def get_socket_pair
72
+ begin
73
+ pair = Socket::socketpair(Socket::AF_LOCAL, Socket::SOCK_DGRAM, 0)
74
+ return pair
75
+
76
+ # Emulate socketpair on platforms which don't support it
77
+ rescue Exception
78
+ srv = TCPServer.new('localhost', 0)
79
+ rsock = TCPSocket.new(srv.addr[3], srv.addr[1])
80
+ lsock = srv.accept
81
+ srv.close
82
+ return [lsock, rsock]
83
+ end
84
+ end
85
+
69
86
  class QuerySettings
70
87
  attr_accessor :query_bytes, :query, :ignore_truncation, :client_queue,
71
88
  :client_query_id, :socket, :dest_server, :dest_port, :endtime, :udp_packet_size,
@@ -98,6 +115,11 @@ module Dnsruby
98
115
  @@timeouts[query_settings.client_query_id]=query_settings.endtime
99
116
  @@sockets.push(query_settings.socket)
100
117
  }
118
+ begin
119
+ @@wakeup_sockets[0].send("wakeup!", 0)
120
+ rescue Exception => e
121
+ # do nothing
122
+ end
101
123
  end
102
124
 
103
125
  def check_select_thread_synchronized
@@ -137,6 +159,7 @@ module Dnsruby
137
159
  timeouts = @@timeouts.values
138
160
  has_observer = !@@observers.empty?
139
161
  }
162
+ sockets << @@wakeup_sockets[1]
140
163
  if (timeouts.length > 0)
141
164
  timeouts.sort!
142
165
  timeout = timeouts[0] - Time.now
@@ -156,9 +179,21 @@ module Dnsruby
156
179
  rescue SelectWakeup
157
180
  # If SelectWakeup, then just restart this loop - the select call will be made with the new data
158
181
  next
159
- rescue IOError # Don't worry if the socket was closed already
182
+ rescue IOError => e# Don't worry if the socket was closed already
183
+ # print "IO Error =: #{e}\n"
160
184
  next
161
185
  end
186
+ if ready && ready.include?(@@wakeup_sockets[1])
187
+ ready.delete(@@wakeup_sockets[1])
188
+ wakeup_msg = "loop"
189
+ begin
190
+ while wakeup_msg && wakeup_msg.length > 0
191
+ wakeup_msg = @@wakeup_sockets[1].recv_nonblock(20)
192
+ end
193
+ rescue
194
+ # do nothing
195
+ end
196
+ end
162
197
  if (ready == nil)
163
198
  # proces the timeouts
164
199
  process_timeouts
@@ -202,8 +237,8 @@ module Dnsruby
202
237
  answerfrom = msg.answerfrom.downcase
203
238
  dest_server = query_settings.dest_server
204
239
  if (dest_server && (dest_server != '0.0.0.0') &&
205
- (answerip != query_settings.dest_server.downcase) &&
206
- (answerfrom != query_settings.dest_server.downcase))
240
+ (answerip != query_settings.dest_server.downcase) &&
241
+ (answerfrom != query_settings.dest_server.downcase))
207
242
  Dnsruby.log.warn("Unsolicited response received from #{answerip} instead of #{query_settings.dest_server}")
208
243
  else
209
244
  send_response_to_client(msg, bytes, socket)
@@ -270,7 +305,7 @@ module Dnsruby
270
305
  }
271
306
  Dnsruby.log.debug{"Closing socket #{socket}"}
272
307
  begin
273
- socket.close # @TODO@ Not if persistent!
308
+ socket.close # @TODO@ Not if persistent!
274
309
  rescue IOError # Don't worry if the socket was closed already
275
310
  end
276
311
  end
@@ -288,17 +323,56 @@ module Dnsruby
288
323
  end
289
324
  end
290
325
 
291
- def tcp_read(socket, len)
326
+ def tcp_read(socket)
327
+ # Keep buffer for all TCP sockets, and return
328
+ # to select after reading available data. Once all data has been received,
329
+ # then process message.
292
330
  buf=""
293
- while (buf.length < len) do
294
- input = socket.recv(len-buf.length)
331
+ expected_length = 0
332
+ @@mutex.synchronize {
333
+ buf, expected_length = @@tcp_buffers[socket]
334
+ if (!buf)
335
+ buf = ""
336
+ expected_length = 2
337
+ @@tcp_buffers[socket]=[buf, expected_length]
338
+ end
339
+ }
340
+ if (buf.length() < expected_length)
341
+ begin
342
+ input, = socket.recv_nonblock(expected_length-buf.length)
295
343
  if (input=="")
296
344
  TheLog.info("Bad response from server - no bytes read - ignoring")
345
+ # @TODO@ Should we do anything about this?
297
346
  return false
298
347
  end
299
348
  buf += input
349
+ rescue
350
+ # Oh well - better luck next time!
351
+ return false
352
+ end
353
+ end
354
+ # If data is complete, then return it.
355
+ if (buf.length == expected_length)
356
+ if (expected_length == 2)
357
+ # We just read the data_length field. Now we need to start reading that many bytes.
358
+ @@mutex.synchronize {
359
+ answersize = buf.unpack('n')[0]
360
+ @@tcp_buffers[socket] = ["", answersize]
361
+ }
362
+ return tcp_read(socket)
363
+ else
364
+ # We just read the data - now return it
365
+ @@mutex.synchronize {
366
+ @@tcp_buffers.delete(socket)
367
+ }
368
+ return buf
369
+ end
370
+ else
371
+ @@mutex.synchronize {
372
+ @@tcp_buffers[socket]=[buf, expected_length]
373
+ }
374
+ return false
300
375
  end
301
- return buf
302
376
  end
303
377
 
304
378
  def get_incoming_data(socket, packet_size)
@@ -318,15 +392,12 @@ module Dnsruby
318
392
  answerip = answerfrom
319
393
  answerport = @@query_hash[client_id].dest_port
320
394
  }
321
- buf = tcp_read(socket, 2)
322
- if (!buf)
323
- handle_recvfrom_failure(socket, "")
324
- return
325
- end
326
- answersize = buf.unpack('n')[0]
327
- buf = tcp_read(socket,answersize)
328
- if (!buf)
329
- handle_recvfrom_failure(socket, "")
395
+
396
+ # Call TCP read here - that will take care of reading the 2 byte length,
397
+ # and then the full packet - without blocking select.
398
+ buf = tcp_read(socket)
399
+ if (!buf) # Wait for the buffer to comletely fill
400
+ # handle_recvfrom_failure(socket, "")
330
401
  return
331
402
  end
332
403
  else
@@ -353,7 +424,7 @@ module Dnsruby
353
424
  begin
354
425
  ans = Message.decode(buf)
355
426
  rescue Exception => e
356
- # print "DECODE ERROR\n"
427
+ # print "DECODE ERROR\n"
357
428
  Dnsruby.log.error{"Decode error! #{e.class}, #{e}\nfor msg (length=#{buf.length}) : #{buf}"}
358
429
  # @TODO@ Should know this from the socket!
359
430
  client_id=get_client_id_from_answerfrom(socket, answerip, answerport)
@@ -502,8 +573,8 @@ module Dnsruby
502
573
  # So, if we need to validate it, send it to the validation thread
503
574
  # Otherwise, send VALIDATED to the requester.
504
575
  if (((msg.security_level == Message::SecurityLevel::UNCHECKED) ||
505
- (msg.security_level == Message::SecurityLevel::INDETERMINATE)) &&
506
- (ValidatorThread.requires_validation?(query, msg, err, res)))
576
+ (msg.security_level == Message::SecurityLevel::INDETERMINATE)) &&
577
+ (ValidatorThread.requires_validation?(query, msg, err, res)))
507
578
  validator = ValidatorThread.new(client_id, client_queue, msg, err, query ,self, res)
508
579
  validator.run
509
580
  else
@@ -538,13 +609,13 @@ module Dnsruby
538
609
  notify_queue_observers(client_queue, client_id)
539
610
 
540
611
  if (!err || (err.instance_of?(NXDomain)))
541
- #
542
- # This method now needs to push the response to the validator,
543
- # which will then take responsibility for delivering it to the client.
544
- # The validator will need access to the queue observers -
545
- validator = ValidatorThread.new(client_id, client_queue, msg, err, query ,self, res)
546
- validator.run
547
- # @@validator.add_to_queue([client_id, client_queue, msg, err, query, self, res])
612
+ #
613
+ # This method now needs to push the response to the validator,
614
+ # which will then take responsibility for delivering it to the client.
615
+ # The validator will need access to the queue observers -
616
+ validator = ValidatorThread.new(client_id, client_queue, msg, err, query ,self, res)
617
+ validator.run
618
+ # @@validator.add_to_queue([client_id, client_queue, msg, err, query, self, res])
548
619
  end
549
620
  end
550
621
 
data/test/tc_dlv.rb CHANGED
@@ -17,13 +17,15 @@ class TestDlv < Test::Unit::TestCase
17
17
  res.add_server("b.ns.se")
18
18
  res.dnssec=true
19
19
  ret = res.query("se.", Dnsruby::Types.ANY)
20
- assert(ret.security_level == Dnsruby::Message::SecurityLevel::INSECURE)
20
+ # assert(ret.security_level == Dnsruby::Message::SecurityLevel::INSECURE)
21
+ # With no keys configured, checking will not be performed
22
+ assert(ret.security_level == Dnsruby::Message::SecurityLevel::UNCHECKED)
21
23
 
22
24
  res = Dnsruby::Resolver.new("ns3.nic.se")
23
25
  res.add_server("ns2.nic.se")
24
26
  res.dnssec = true
25
27
  ret = res.query("ns2.nic.se", Dnsruby::Types.A)
26
- assert(ret.security_level == Dnsruby::Message::SecurityLevel::INSECURE)
28
+ assert(ret.security_level == Dnsruby::Message::SecurityLevel::UNCHECKED)
27
29
 
28
30
  # Load DLV key
29
31
  dlv_key = RR.create("dlv.isc.org. IN DNSKEY 257 3 5 BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2 brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+ 1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5 ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt TDN0YUuWrBNh")
data/test/tc_itar.rb CHANGED
@@ -26,13 +26,7 @@ class TestItar < Test::Unit::TestCase
26
26
  Dnsruby::PacketSender.clear_caches
27
27
  Dnsruby::Recursor.clear_caches
28
28
  # Make sure we don't have any other anchors configured!
29
- # @TODO@ Should use whole RRSet of authoritative NS for these resolvers,
30
- # not individual servers!
31
- # res = Dnsruby::Resolver.new("a.ns.se")
32
29
  res = Dnsruby::Recursor.new
33
- # res.add_server("b.ns.se")
34
- # res.dnssec=true
35
- # TheLog.level = Logger::DEBUG
36
30
  ret = res.query("frobbit.se.", Dnsruby::Types.A)
37
31
  assert(ret.security_level == Dnsruby::Message::SecurityLevel::INSECURE, "Level = #{ret.security_level.string}")
38
32
  Dnsruby::Dnssec.clear_trusted_keys
@@ -45,7 +39,6 @@ class TestItar < Test::Unit::TestCase
45
39
  assert(ret.security_level == Dnsruby::Message::SecurityLevel::SECURE)
46
40
 
47
41
  res = Dnsruby::Recursor.new
48
- # res.dnssec = true
49
42
  ret = res.query("ns2.nic.se.", Dnsruby::Types.A)
50
43
  assert(ret.security_level == Dnsruby::Message::SecurityLevel::SECURE)
51
44
  end
@@ -55,23 +55,60 @@ class TestSingleResolver < Test::Unit::TestCase
55
55
  end
56
56
 
57
57
  def test_timeout
58
- if (!RUBY_PLATFORM=~/darwin/)
59
- # Run a query which will not respond, and check that the timeout works
60
- begin
61
- res = SingleResolver.new("10.0.1.128")
62
- res.port = 12345
63
- res.packet_timeout=1
64
- m = res.query("a.t.dnsruby.validation-test-servers.nominet.org.uk")
65
- fail
66
- rescue ResolvTimeout
67
- end
58
+ # if ((RUBY_PLATFORM=~/darwin/) == nil)
59
+ # Run a query which will not respond, and check that the timeout works
60
+ start_time = 0
61
+ begin
62
+ udps = UDPSocket.new
63
+ udps.bind("127.0.0.1", 0)
64
+ port = *udps.addr.values_at(3,1)
65
+
66
+ begin
67
+ Dnsruby::PacketSender.clear_caches
68
+ res = SingleResolver.new("127.0.0.1")
69
+ res.port = port
70
+ res.packet_timeout=1
71
+ start_time = Time.now.to_i
72
+ m = res.query("a.t.dnsruby.validation-test-servers.nominet.org.uk")
73
+ fail "Got response when should have got none"
74
+ rescue ResolvTimeout
75
+ stop_time = Time.now.to_i
76
+ assert((stop_time - start_time) <= (res.packet_timeout * 2),
77
+ "UDP timeout too long : #{stop_time - start_time}" +
78
+ ", should be #{res.packet_timeout}")
68
79
  end
80
+ begin
81
+ Dnsruby::PacketSender.clear_caches
82
+ res = SingleResolver.new("127.0.0.1")
83
+ res.port = port
84
+ res.use_tcp = true
85
+ res.packet_timeout=1
86
+ start_time = Time.now.to_i
87
+ # TheLog.level = Logger::DEBUG
88
+ m = res.query("a.t.dnsruby.validation-test-servers.nominet.org.uk")
89
+ fail "TCP timeouts"
90
+ rescue ResolvTimeout
91
+ # print "Got Timeout for TCP\n"
92
+ stop_time = Time.now.to_i
93
+ assert((stop_time - start_time) <= (res.packet_timeout * 2),
94
+ "TCP timeout too long : #{stop_time - start_time}, should be #{res.packet_timeout}")
95
+ rescue Exception => e
96
+ fail(e)
97
+ end
98
+ TheLog.level = Logger::ERROR
99
+ rescue
100
+ udps.close
101
+ end
69
102
  end
70
103
 
71
104
  def test_queue_timeout
72
105
  port = 46129
73
- if (!RUBY_PLATFORM=~/darwin/)
74
- res = SingleResolver.new("10.0.1.128")
106
+ # if (!RUBY_PLATFORM=~/darwin/)
107
+ begin
108
+ udps = UDPSocket.new
109
+ udps.bind("127.0.0.1", 0)
110
+ port = *udps.addr.values_at(3,1)
111
+ res = SingleResolver.new("127.0.0.1")
75
112
  res.port = port
76
113
  res.packet_timeout=1
77
114
  q = Queue.new
@@ -81,7 +118,10 @@ class TestSingleResolver < Test::Unit::TestCase
81
118
  assert(id==msg)
82
119
  assert(ret==nil)
83
120
  assert(error.class == ResolvTimeout)
121
+ rescue
122
+ udps.close
84
123
  end
124
+ # end
85
125
  end
86
126
 
87
127
  def test_queries
@@ -241,9 +281,9 @@ class TestSingleResolver < Test::Unit::TestCase
241
281
  }
242
282
  ret = nil
243
283
  thread2 = Thread.new {
244
- r = SingleResolver.new("127.0.0.1")
245
- r.port = port
246
- ret = r.query("example.com")
284
+ r = SingleResolver.new("127.0.0.1")
285
+ r.port = port
286
+ ret = r.query("example.com")
247
287
  }
248
288
  thread.join
249
289
  thread2.join
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dnsruby
3
3
  version: !ruby/object:Gem::Version
4
- version: "1.34"
4
+ version: "1.35"
5
5
  platform: ruby
6
6
  authors:
7
7
  - AlexD
@@ -9,7 +9,7 @@ autorequire: dnsruby
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-17 00:00:00 +01:00
12
+ date: 2009-08-21 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies: []
15
15