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 +1 -1
- data/html/fr_method_index.html +129 -128
- data/lib/Dnsruby/Config.rb +1 -1
- data/lib/Dnsruby/PacketSender.rb +8 -2
- data/lib/Dnsruby/dnssec.rb +11 -0
- data/lib/Dnsruby/message.rb +6 -5
- data/lib/Dnsruby/resource/resource.rb +3 -1
- data/lib/Dnsruby/select_thread.rb +98 -27
- data/test/tc_dlv.rb +4 -2
- data/test/tc_itar.rb +0 -7
- data/test/tc_single_resolver.rb +55 -15
- metadata +2 -2
data/html/created.rid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Fri,
|
1
|
+
Fri, 21 Aug 2009 11:23:21 +0100
|
data/html/fr_method_index.html
CHANGED
@@ -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#
|
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#
|
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#
|
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/
|
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#
|
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/
|
65
|
-
<a href="classes/Dnsruby/
|
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#
|
69
|
-
<a href="classes/Dnsruby/DNS.html#
|
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#
|
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#
|
85
|
-
<a href="classes/Dnsruby/Dnssec.html#
|
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#
|
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#
|
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#
|
93
|
-
<a href="classes/Dnsruby/Dnssec.html#
|
94
|
-
<a href="classes/Dnsruby/Dnssec.html#
|
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/
|
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/
|
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/
|
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/
|
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/
|
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/
|
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#
|
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#
|
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#
|
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/
|
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#
|
181
|
-
<a href="classes/Dnsruby/
|
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#
|
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#
|
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#
|
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#
|
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#
|
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/
|
223
|
-
<a href="classes/Dnsruby/
|
224
|
-
<a href="classes/Dnsruby/
|
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/
|
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/
|
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/
|
234
|
-
<a href="classes/Dnsruby/
|
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#
|
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#
|
251
|
-
<a href="classes/Dnsruby/Resolver.html#M000345">
|
252
|
-
<a href="classes/Dnsruby/Resolver.html#
|
253
|
-
<a href="classes/Dnsruby/Resolver.html#
|
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#
|
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#
|
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#
|
264
|
-
<a href="classes/Dnsruby/Resolver.html#
|
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#
|
277
|
-
<a href="classes/Dnsruby/Recursor.html#
|
278
|
-
<a href="classes/Dnsruby/Recursor.html#
|
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#
|
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
|
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#
|
301
|
-
<a href="classes/Dnsruby/Resolver.html#
|
302
|
-
<a href="classes/Dnsruby/Resolver.html#
|
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#
|
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#
|
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/
|
322
|
-
<a href="classes/Dnsruby/Resolver.html#
|
323
|
-
<a href="classes/Dnsruby/Resolver.html#M000333">src_port
|
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/
|
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/
|
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#
|
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/
|
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#
|
357
|
-
<a href="classes/Dnsruby/Resolver.html#
|
358
|
-
<a href="classes/Dnsruby/Dnssec.html#
|
359
|
-
<a href="classes/Dnsruby/Dnssec.html#
|
360
|
-
<a href="classes/Dnsruby/Dnssec.html#
|
361
|
-
<a href="classes/Dnsruby/Dnssec.html#
|
362
|
-
<a href="classes/Dnsruby/Dnssec.html#
|
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#
|
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 />
|
data/lib/Dnsruby/Config.rb
CHANGED
@@ -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{
|
237
|
+
Dnsruby.log.debug{'Nameservers = #{@nameserver.join(", ")}'}
|
238
238
|
end
|
239
239
|
|
240
240
|
def Config.resolve_server(ns) #:nodoc: all
|
data/lib/Dnsruby/PacketSender.rb
CHANGED
@@ -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
|
|
data/lib/Dnsruby/dnssec.rb
CHANGED
@@ -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
|
data/lib/Dnsruby/message.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
206
|
-
|
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
|
-
|
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
|
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
|
-
|
294
|
-
|
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
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
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
|
-
|
506
|
-
|
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
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
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::
|
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
|
data/test/tc_single_resolver.rb
CHANGED
@@ -55,23 +55,60 @@ class TestSingleResolver < Test::Unit::TestCase
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def test_timeout
|
58
|
-
if (
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
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
|
-
|
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
|
-
|
245
|
-
|
246
|
-
|
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.
|
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-
|
12
|
+
date: 2009-08-21 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|