dnsruby 1.34 → 1.35

Sign up to get free protection for your applications and to get access to all the features.
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