dnsruby 1.1 → 1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README +3 -3
- data/lib/Dnsruby/Config.rb +3 -3
- data/lib/Dnsruby/DNS.rb +4 -2
- data/lib/Dnsruby/Resolver.rb +42 -38
- data/lib/Dnsruby/SingleResolver.rb +29 -21
- data/lib/Dnsruby/TheLog.rb +5 -21
- data/lib/Dnsruby/dnssec.rb +1 -1
- data/lib/Dnsruby/event_machine_interface.rb +23 -22
- data/lib/Dnsruby/message.rb +1 -1
- data/lib/Dnsruby/name.rb +1 -0
- data/lib/Dnsruby/resource/TKEY.rb +1 -1
- data/lib/Dnsruby/resource/TSIG.rb +8 -8
- data/lib/Dnsruby/select_thread.rb +19 -17
- data/lib/Dnsruby/zone_transfer.rb +6 -6
- data/lib/dnsruby.rb +10 -1
- data/test/tc_dns.rb +5 -1
- data/test/tc_event_machine_deferrable.rb +1 -1
- data/test/tc_event_machine_res.rb +1 -1
- data/test/tc_event_machine_single_res.rb +1 -1
- data/test/tc_event_machine_soak.rb +4 -4
- data/test/tc_res_opt.rb +4 -4
- data/test/tc_single_resolver.rb +1 -6
- data/test/tc_soak_base.rb +2 -2
- data/test/tc_tsig.rb +3 -3
- data/test/ts_offline.rb +1 -1
- data/test/ts_online.rb +1 -1
- metadata +2 -480
- data/doc/classes/Dnsruby/Algorithms.html +0 -171
- data/doc/classes/Dnsruby/Classes.html +0 -197
- data/doc/classes/Dnsruby/Classes.src/M000209.html +0 -23
- data/doc/classes/Dnsruby/Classes.src/M000210.html +0 -19
- data/doc/classes/Dnsruby/CodeMapper.html +0 -375
- data/doc/classes/Dnsruby/CodeMapper.src/M000186.html +0 -18
- data/doc/classes/Dnsruby/CodeMapper.src/M000187.html +0 -33
- data/doc/classes/Dnsruby/CodeMapper.src/M000188.html +0 -21
- data/doc/classes/Dnsruby/CodeMapper.src/M000189.html +0 -19
- data/doc/classes/Dnsruby/CodeMapper.src/M000190.html +0 -19
- data/doc/classes/Dnsruby/CodeMapper.src/M000191.html +0 -18
- data/doc/classes/Dnsruby/CodeMapper.src/M000192.html +0 -22
- data/doc/classes/Dnsruby/CodeMapper.src/M000193.html +0 -22
- data/doc/classes/Dnsruby/CodeMapper.src/M000194.html +0 -22
- data/doc/classes/Dnsruby/CodeMapper.src/M000195.html +0 -31
- data/doc/classes/Dnsruby/CodeMapper.src/M000196.html +0 -19
- data/doc/classes/Dnsruby/Config.html +0 -413
- data/doc/classes/Dnsruby/Config.src/M000148.html +0 -18
- data/doc/classes/Dnsruby/Config.src/M000149.html +0 -19
- data/doc/classes/Dnsruby/Config.src/M000150.html +0 -19
- data/doc/classes/Dnsruby/Config.src/M000151.html +0 -25
- data/doc/classes/Dnsruby/Config.src/M000152.html +0 -21
- data/doc/classes/Dnsruby/Config.src/M000153.html +0 -38
- data/doc/classes/Dnsruby/Config.src/M000154.html +0 -26
- data/doc/classes/Dnsruby/Config.src/M000155.html +0 -22
- data/doc/classes/Dnsruby/Config.src/M000156.html +0 -27
- data/doc/classes/Dnsruby/Config.src/M000157.html +0 -22
- data/doc/classes/Dnsruby/Config.src/M000158.html +0 -21
- data/doc/classes/Dnsruby/DNS.html +0 -571
- data/doc/classes/Dnsruby/DNS.src/M000258.html +0 -24
- data/doc/classes/Dnsruby/DNS.src/M000259.html +0 -18
- data/doc/classes/Dnsruby/DNS.src/M000260.html +0 -18
- data/doc/classes/Dnsruby/DNS.src/M000261.html +0 -20
- data/doc/classes/Dnsruby/DNS.src/M000262.html +0 -19
- data/doc/classes/Dnsruby/DNS.src/M000263.html +0 -20
- data/doc/classes/Dnsruby/DNS.src/M000264.html +0 -18
- data/doc/classes/Dnsruby/DNS.src/M000265.html +0 -19
- data/doc/classes/Dnsruby/DNS.src/M000266.html +0 -20
- data/doc/classes/Dnsruby/DNS.src/M000267.html +0 -28
- data/doc/classes/Dnsruby/DNS.src/M000268.html +0 -19
- data/doc/classes/Dnsruby/DNS.src/M000269.html +0 -20
- data/doc/classes/Dnsruby/DNS.src/M000270.html +0 -31
- data/doc/classes/Dnsruby/DecodeError.html +0 -120
- data/doc/classes/Dnsruby/Dnssec.html +0 -287
- data/doc/classes/Dnsruby/Dnssec.src/M000249.html +0 -23
- data/doc/classes/Dnsruby/Dnssec.src/M000250.html +0 -19
- data/doc/classes/Dnsruby/Dnssec.src/M000251.html +0 -90
- data/doc/classes/Dnsruby/Dnssec.src/M000252.html +0 -76
- data/doc/classes/Dnsruby/EncodeError.html +0 -120
- data/doc/classes/Dnsruby/FormErr.html +0 -119
- data/doc/classes/Dnsruby/Header.html +0 -501
- data/doc/classes/Dnsruby/Header.src/M000231.html +0 -35
- data/doc/classes/Dnsruby/Header.src/M000232.html +0 -18
- data/doc/classes/Dnsruby/Header.src/M000233.html +0 -18
- data/doc/classes/Dnsruby/Header.src/M000234.html +0 -21
- data/doc/classes/Dnsruby/Header.src/M000235.html +0 -20
- data/doc/classes/Dnsruby/Header.src/M000236.html +0 -32
- data/doc/classes/Dnsruby/Header.src/M000237.html +0 -27
- data/doc/classes/Dnsruby/Header.src/M000238.html +0 -26
- data/doc/classes/Dnsruby/Header.src/M000239.html +0 -47
- data/doc/classes/Dnsruby/Header.src/M000240.html +0 -28
- data/doc/classes/Dnsruby/Header.src/M000241.html +0 -30
- data/doc/classes/Dnsruby/Hosts.html +0 -316
- data/doc/classes/Dnsruby/Hosts.src/M000197.html +0 -20
- data/doc/classes/Dnsruby/Hosts.src/M000198.html +0 -19
- data/doc/classes/Dnsruby/Hosts.src/M000199.html +0 -20
- data/doc/classes/Dnsruby/Hosts.src/M000200.html +0 -21
- data/doc/classes/Dnsruby/Hosts.src/M000201.html +0 -19
- data/doc/classes/Dnsruby/Hosts.src/M000202.html +0 -20
- data/doc/classes/Dnsruby/Hosts.src/M000203.html +0 -21
- data/doc/classes/Dnsruby/IPv4.html +0 -233
- data/doc/classes/Dnsruby/IPv4.src/M000204.html +0 -32
- data/doc/classes/Dnsruby/IPv4.src/M000205.html +0 -19
- data/doc/classes/Dnsruby/IPv4.src/M000206.html +0 -18
- data/doc/classes/Dnsruby/IPv4.src/M000207.html +0 -18
- data/doc/classes/Dnsruby/IPv4.src/M000208.html +0 -18
- data/doc/classes/Dnsruby/IPv6.html +0 -281
- data/doc/classes/Dnsruby/IPv6.src/M000242.html +0 -60
- data/doc/classes/Dnsruby/IPv6.src/M000243.html +0 -22
- data/doc/classes/Dnsruby/IPv6.src/M000244.html +0 -20
- data/doc/classes/Dnsruby/IPv6.src/M000245.html +0 -18
- data/doc/classes/Dnsruby/Message/Section.html +0 -160
- data/doc/classes/Dnsruby/Message/Section.src/M000141.html +0 -29
- data/doc/classes/Dnsruby/Message/Section.src/M000142.html +0 -30
- data/doc/classes/Dnsruby/Message.html +0 -803
- data/doc/classes/Dnsruby/Message.src/M000119.html +0 -38
- data/doc/classes/Dnsruby/Message.src/M000120.html +0 -26
- data/doc/classes/Dnsruby/Message.src/M000121.html +0 -22
- data/doc/classes/Dnsruby/Message.src/M000122.html +0 -22
- data/doc/classes/Dnsruby/Message.src/M000123.html +0 -20
- data/doc/classes/Dnsruby/Message.src/M000124.html +0 -20
- data/doc/classes/Dnsruby/Message.src/M000125.html +0 -20
- data/doc/classes/Dnsruby/Message.src/M000126.html +0 -20
- data/doc/classes/Dnsruby/Message.src/M000127.html +0 -18
- data/doc/classes/Dnsruby/Message.src/M000128.html +0 -20
- data/doc/classes/Dnsruby/Message.src/M000129.html +0 -23
- data/doc/classes/Dnsruby/Message.src/M000130.html +0 -30
- data/doc/classes/Dnsruby/Message.src/M000131.html +0 -20
- data/doc/classes/Dnsruby/Message.src/M000132.html +0 -18
- data/doc/classes/Dnsruby/Message.src/M000133.html +0 -56
- data/doc/classes/Dnsruby/Message.src/M000134.html +0 -35
- data/doc/classes/Dnsruby/Message.src/M000135.html +0 -46
- data/doc/classes/Dnsruby/MetaTypes.html +0 -136
- data/doc/classes/Dnsruby/Modes.html +0 -171
- data/doc/classes/Dnsruby/NXDomain.html +0 -119
- data/doc/classes/Dnsruby/Name/Label.html +0 -300
- data/doc/classes/Dnsruby/Name/Label.src/M000110.html +0 -21
- data/doc/classes/Dnsruby/Name/Label.src/M000111.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000112.html +0 -22
- data/doc/classes/Dnsruby/Name/Label.src/M000113.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000114.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000115.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000116.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000117.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000118.html +0 -18
- data/doc/classes/Dnsruby/Name.html +0 -330
- data/doc/classes/Dnsruby/Name.src/M000104.html +0 -28
- data/doc/classes/Dnsruby/Name.src/M000105.html +0 -20
- data/doc/classes/Dnsruby/Name.src/M000106.html +0 -18
- data/doc/classes/Dnsruby/Name.src/M000107.html +0 -21
- data/doc/classes/Dnsruby/Name.src/M000108.html +0 -22
- data/doc/classes/Dnsruby/Name.src/M000109.html +0 -18
- data/doc/classes/Dnsruby/NotImp.html +0 -119
- data/doc/classes/Dnsruby/OpCode.html +0 -146
- data/doc/classes/Dnsruby/OtherResolvError.html +0 -119
- data/doc/classes/Dnsruby/QTypes.html +0 -146
- data/doc/classes/Dnsruby/Question.html +0 -301
- data/doc/classes/Dnsruby/Question.src/M000226.html +0 -47
- data/doc/classes/Dnsruby/Question.src/M000227.html +0 -18
- data/doc/classes/Dnsruby/Question.src/M000228.html +0 -18
- data/doc/classes/Dnsruby/Question.src/M000229.html +0 -32
- data/doc/classes/Dnsruby/Question.src/M000230.html +0 -18
- data/doc/classes/Dnsruby/RCode.html +0 -211
- data/doc/classes/Dnsruby/RR/ANY.html +0 -133
- data/doc/classes/Dnsruby/RR/CERT/CertificateTypes.html +0 -169
- data/doc/classes/Dnsruby/RR/CERT.html +0 -180
- data/doc/classes/Dnsruby/RR/CNAME.html +0 -151
- data/doc/classes/Dnsruby/RR/DNAME.html +0 -150
- data/doc/classes/Dnsruby/RR/DNSKEY.html +0 -422
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000044.html +0 -20
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000045.html +0 -21
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000046.html +0 -28
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000047.html +0 -22
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000048.html +0 -18
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000049.html +0 -22
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000050.html +0 -18
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000051.html +0 -26
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000052.html +0 -38
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000053.html +0 -45
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000054.html +0 -21
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000055.html +0 -24
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000056.html +0 -32
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000057.html +0 -24
- data/doc/classes/Dnsruby/RR/DS.html +0 -286
- data/doc/classes/Dnsruby/RR/DS.src/M000039.html +0 -22
- data/doc/classes/Dnsruby/RR/DS.src/M000040.html +0 -28
- data/doc/classes/Dnsruby/RR/DS.src/M000041.html +0 -24
- data/doc/classes/Dnsruby/RR/DS.src/M000042.html +0 -28
- data/doc/classes/Dnsruby/RR/DS.src/M000043.html +0 -36
- data/doc/classes/Dnsruby/RR/DomainName.html +0 -175
- data/doc/classes/Dnsruby/RR/DomainName.src/M000083.html +0 -18
- data/doc/classes/Dnsruby/RR/Generic.html +0 -133
- data/doc/classes/Dnsruby/RR/HINFO.html +0 -155
- data/doc/classes/Dnsruby/RR/IN/A.html +0 -200
- data/doc/classes/Dnsruby/RR/IN/A.src/M000017.html +0 -18
- data/doc/classes/Dnsruby/RR/IN/A.src/M000018.html +0 -18
- data/doc/classes/Dnsruby/RR/IN/A.src/M000019.html +0 -18
- data/doc/classes/Dnsruby/RR/IN/AAAA.html +0 -139
- data/doc/classes/Dnsruby/RR/IN/AFSDB.html +0 -145
- data/doc/classes/Dnsruby/RR/IN/PX.html +0 -143
- data/doc/classes/Dnsruby/RR/IN/SRV.html +0 -238
- data/doc/classes/Dnsruby/RR/IN/SRV.src/M000014.html +0 -29
- data/doc/classes/Dnsruby/RR/IN/SRV.src/M000015.html +0 -26
- data/doc/classes/Dnsruby/RR/IN/SRV.src/M000016.html +0 -22
- data/doc/classes/Dnsruby/RR/IN/WKS.html +0 -166
- data/doc/classes/Dnsruby/RR/IN/WKS.src/M000020.html +0 -20
- data/doc/classes/Dnsruby/RR/IN.html +0 -155
- data/doc/classes/Dnsruby/RR/ISDN.html +0 -155
- data/doc/classes/Dnsruby/RR/LOC.html +0 -395
- data/doc/classes/Dnsruby/RR/LOC.src/M000025.html +0 -32
- data/doc/classes/Dnsruby/RR/LOC.src/M000026.html +0 -23
- data/doc/classes/Dnsruby/RR/LOC.src/M000027.html +0 -25
- data/doc/classes/Dnsruby/RR/LOC.src/M000028.html +0 -21
- data/doc/classes/Dnsruby/RR/LOC.src/M000029.html +0 -20
- data/doc/classes/Dnsruby/RR/LOC.src/M000030.html +0 -23
- data/doc/classes/Dnsruby/RR/MB.html +0 -150
- data/doc/classes/Dnsruby/RR/MG.html +0 -150
- data/doc/classes/Dnsruby/RR/MINFO.html +0 -156
- data/doc/classes/Dnsruby/RR/MR.html +0 -150
- data/doc/classes/Dnsruby/RR/MX.html +0 -155
- data/doc/classes/Dnsruby/RR/NAPTR.html +0 -190
- data/doc/classes/Dnsruby/RR/NS.html +0 -151
- data/doc/classes/Dnsruby/RR/NSAP.html +0 -293
- data/doc/classes/Dnsruby/RR/NSAP.src/M000093.html +0 -19
- data/doc/classes/Dnsruby/RR/NSAP.src/M000094.html +0 -19
- data/doc/classes/Dnsruby/RR/NSAP.src/M000095.html +0 -22
- data/doc/classes/Dnsruby/RR/NSAP.src/M000096.html +0 -31
- data/doc/classes/Dnsruby/RR/NSEC.html +0 -301
- data/doc/classes/Dnsruby/RR/NSEC.src/M000031.html +0 -19
- data/doc/classes/Dnsruby/RR/NSEC.src/M000032.html +0 -18
- data/doc/classes/Dnsruby/RR/NSEC.src/M000033.html +0 -34
- data/doc/classes/Dnsruby/RR/NSEC.src/M000034.html +0 -18
- data/doc/classes/Dnsruby/RR/NSEC.src/M000035.html +0 -71
- data/doc/classes/Dnsruby/RR/NSEC.src/M000036.html +0 -18
- data/doc/classes/Dnsruby/RR/NSEC.src/M000037.html +0 -80
- data/doc/classes/Dnsruby/RR/NSEC.src/M000038.html +0 -23
- data/doc/classes/Dnsruby/RR/NSEC3.html +0 -366
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000085.html +0 -28
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000086.html +0 -18
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000087.html +0 -18
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000088.html +0 -22
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000089.html +0 -18
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000090.html +0 -21
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000091.html +0 -21
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000092.html +0 -29
- data/doc/classes/Dnsruby/RR/NSEC3PARAM.html +0 -279
- data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000077.html +0 -28
- data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000078.html +0 -18
- data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000079.html +0 -22
- data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000080.html +0 -21
- data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000081.html +0 -25
- data/doc/classes/Dnsruby/RR/PTR.html +0 -132
- data/doc/classes/Dnsruby/RR/RP.html +0 -183
- data/doc/classes/Dnsruby/RR/RP.src/M000082.html +0 -19
- data/doc/classes/Dnsruby/RR/RRSIG.html +0 -357
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000097.html +0 -26
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000098.html +0 -28
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000099.html +0 -23
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000100.html +0 -23
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000101.html +0 -46
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000102.html +0 -50
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000103.html +0 -27
- data/doc/classes/Dnsruby/RR/RT.html +0 -155
- data/doc/classes/Dnsruby/RR/SOA.html +0 -233
- data/doc/classes/Dnsruby/RR/SOA.src/M000066.html +0 -24
- data/doc/classes/Dnsruby/RR/SOA.src/M000067.html +0 -27
- data/doc/classes/Dnsruby/RR/SPF.html +0 -138
- data/doc/classes/Dnsruby/RR/TKEY.html +0 -313
- data/doc/classes/Dnsruby/RR/TKEY.src/M000021.html +0 -19
- data/doc/classes/Dnsruby/RR/TKEY.src/M000022.html +0 -29
- data/doc/classes/Dnsruby/RR/TKEY.src/M000023.html +0 -21
- data/doc/classes/Dnsruby/RR/TKEY.src/M000024.html +0 -29
- data/doc/classes/Dnsruby/RR/TSIG.html +0 -524
- data/doc/classes/Dnsruby/RR/TSIG.src/M000068.html +0 -24
- data/doc/classes/Dnsruby/RR/TSIG.src/M000069.html +0 -32
- data/doc/classes/Dnsruby/RR/TSIG.src/M000070.html +0 -54
- data/doc/classes/Dnsruby/RR/TSIG.src/M000071.html +0 -121
- data/doc/classes/Dnsruby/RR/TSIG.src/M000072.html +0 -33
- data/doc/classes/Dnsruby/RR/TSIG.src/M000073.html +0 -25
- data/doc/classes/Dnsruby/RR/TSIG.src/M000074.html +0 -36
- data/doc/classes/Dnsruby/RR/TSIG.src/M000075.html +0 -22
- data/doc/classes/Dnsruby/RR/TSIG.src/M000076.html +0 -29
- data/doc/classes/Dnsruby/RR/TXT.html +0 -233
- data/doc/classes/Dnsruby/RR/TXT.src/M000061.html +0 -18
- data/doc/classes/Dnsruby/RR/TXT.src/M000062.html +0 -18
- data/doc/classes/Dnsruby/RR/TXT.src/M000063.html +0 -20
- data/doc/classes/Dnsruby/RR/TXT.src/M000064.html +0 -27
- data/doc/classes/Dnsruby/RR/TXT.src/M000065.html +0 -25
- data/doc/classes/Dnsruby/RR/X25.html +0 -203
- data/doc/classes/Dnsruby/RR/X25.src/M000058.html +0 -18
- data/doc/classes/Dnsruby/RR/X25.src/M000059.html +0 -18
- data/doc/classes/Dnsruby/RR/X25.src/M000060.html +0 -22
- data/doc/classes/Dnsruby/RR.html +0 -648
- data/doc/classes/Dnsruby/RR.src/M000001.html +0 -18
- data/doc/classes/Dnsruby/RR.src/M000002.html +0 -22
- data/doc/classes/Dnsruby/RR.src/M000003.html +0 -18
- data/doc/classes/Dnsruby/RR.src/M000004.html +0 -18
- data/doc/classes/Dnsruby/RR.src/M000005.html +0 -26
- data/doc/classes/Dnsruby/RR.src/M000006.html +0 -18
- data/doc/classes/Dnsruby/RR.src/M000007.html +0 -36
- data/doc/classes/Dnsruby/RR.src/M000008.html +0 -100
- data/doc/classes/Dnsruby/RR.src/M000009.html +0 -18
- data/doc/classes/Dnsruby/RR.src/M000010.html +0 -18
- data/doc/classes/Dnsruby/RR.src/M000011.html +0 -22
- data/doc/classes/Dnsruby/RR.src/M000012.html +0 -29
- data/doc/classes/Dnsruby/RR.src/M000013.html +0 -24
- data/doc/classes/Dnsruby/RRSet.html +0 -404
- data/doc/classes/Dnsruby/RRSet.src/M000211.html +0 -23
- data/doc/classes/Dnsruby/RRSet.src/M000212.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000213.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000214.html +0 -47
- data/doc/classes/Dnsruby/RRSet.src/M000215.html +0 -42
- data/doc/classes/Dnsruby/RRSet.src/M000216.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000217.html +0 -20
- data/doc/classes/Dnsruby/RRSet.src/M000218.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000219.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000220.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000221.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000222.html +0 -22
- data/doc/classes/Dnsruby/RRSet.src/M000223.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000224.html +0 -22
- data/doc/classes/Dnsruby/RRSet.src/M000225.html +0 -18
- data/doc/classes/Dnsruby/Refused.html +0 -119
- data/doc/classes/Dnsruby/Resolv.html +0 -401
- data/doc/classes/Dnsruby/Resolv.src/M000159.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000160.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000161.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000162.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000163.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000164.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000165.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000166.html +0 -19
- data/doc/classes/Dnsruby/Resolv.src/M000167.html +0 -20
- data/doc/classes/Dnsruby/Resolv.src/M000168.html +0 -29
- data/doc/classes/Dnsruby/Resolv.src/M000169.html +0 -19
- data/doc/classes/Dnsruby/Resolv.src/M000170.html +0 -20
- data/doc/classes/Dnsruby/Resolv.src/M000171.html +0 -25
- data/doc/classes/Dnsruby/ResolvError.html +0 -117
- data/doc/classes/Dnsruby/ResolvTimeout.html +0 -117
- data/doc/classes/Dnsruby/Resolver.html +0 -1055
- data/doc/classes/Dnsruby/Resolver.src/M000271.html +0 -21
- data/doc/classes/Dnsruby/Resolver.src/M000272.html +0 -27
- data/doc/classes/Dnsruby/Resolver.src/M000273.html +0 -28
- data/doc/classes/Dnsruby/Resolver.src/M000274.html +0 -18
- data/doc/classes/Dnsruby/Resolver.src/M000275.html +0 -51
- data/doc/classes/Dnsruby/Resolver.src/M000276.html +0 -21
- data/doc/classes/Dnsruby/Resolver.src/M000277.html +0 -22
- data/doc/classes/Dnsruby/Resolver.src/M000278.html +0 -18
- data/doc/classes/Dnsruby/Resolver.src/M000279.html +0 -20
- data/doc/classes/Dnsruby/Resolver.src/M000280.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000281.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000282.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000283.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000284.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000285.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000286.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000287.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000288.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000289.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000290.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000291.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000292.html +0 -26
- data/doc/classes/Dnsruby/Resolver.src/M000293.html +0 -18
- data/doc/classes/Dnsruby/Resolver.src/M000294.html +0 -23
- data/doc/classes/Dnsruby/Resolver.src/M000295.html +0 -18
- data/doc/classes/Dnsruby/ServFail.html +0 -119
- data/doc/classes/Dnsruby/SingleResolver.html +0 -674
- data/doc/classes/Dnsruby/SingleResolver.src/M000172.html +0 -18
- data/doc/classes/Dnsruby/SingleResolver.src/M000173.html +0 -24
- data/doc/classes/Dnsruby/SingleResolver.src/M000174.html +0 -36
- data/doc/classes/Dnsruby/SingleResolver.src/M000175.html +0 -18
- data/doc/classes/Dnsruby/SingleResolver.src/M000176.html +0 -19
- data/doc/classes/Dnsruby/SingleResolver.src/M000177.html +0 -50
- data/doc/classes/Dnsruby/SingleResolver.src/M000178.html +0 -19
- data/doc/classes/Dnsruby/SingleResolver.src/M000179.html +0 -21
- data/doc/classes/Dnsruby/SingleResolver.src/M000180.html +0 -25
- data/doc/classes/Dnsruby/SingleResolver.src/M000181.html +0 -54
- data/doc/classes/Dnsruby/SingleResolver.src/M000182.html +0 -27
- data/doc/classes/Dnsruby/SingleResolver.src/M000183.html +0 -27
- data/doc/classes/Dnsruby/SingleResolver.src/M000184.html +0 -35
- data/doc/classes/Dnsruby/SingleResolver.src/M000185.html +0 -21
- data/doc/classes/Dnsruby/TheLog.html +0 -196
- data/doc/classes/Dnsruby/TheLog.src/M000246.html +0 -20
- data/doc/classes/Dnsruby/TheLog.src/M000247.html +0 -20
- data/doc/classes/Dnsruby/TheLog.src/M000248.html +0 -20
- data/doc/classes/Dnsruby/Types.html +0 -436
- data/doc/classes/Dnsruby/Update.html +0 -368
- data/doc/classes/Dnsruby/Update.src/M000253.html +0 -32
- data/doc/classes/Dnsruby/Update.src/M000254.html +0 -36
- data/doc/classes/Dnsruby/Update.src/M000255.html +0 -32
- data/doc/classes/Dnsruby/Update.src/M000256.html +0 -41
- data/doc/classes/Dnsruby/Update.src/M000257.html +0 -34
- data/doc/classes/Dnsruby/VerifyError.html +0 -119
- data/doc/classes/Dnsruby/ZoneTransfer/Delta.html +0 -200
- data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/M000146.html +0 -19
- data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/M000147.html +0 -19
- data/doc/classes/Dnsruby/ZoneTransfer.html +0 -300
- data/doc/classes/Dnsruby/ZoneTransfer.src/M000143.html +0 -18
- data/doc/classes/Dnsruby/ZoneTransfer.src/M000144.html +0 -24
- data/doc/classes/Dnsruby/ZoneTransfer.src/M000145.html +0 -35
- data/doc/classes/Dnsruby.html +0 -463
- data/doc/created.rid +0 -1
- data/doc/files/lib/Dnsruby/Config_rb.html +0 -101
- data/doc/files/lib/Dnsruby/DNS_rb.html +0 -110
- data/doc/files/lib/Dnsruby/Hosts_rb.html +0 -108
- data/doc/files/lib/Dnsruby/Resolver_rb.html +0 -109
- data/doc/files/lib/Dnsruby/SingleResolver_rb.html +0 -108
- data/doc/files/lib/Dnsruby/TheLog_rb.html +0 -110
- data/doc/files/lib/Dnsruby/code_mapper_rb.html +0 -101
- data/doc/files/lib/Dnsruby/dnssec_rb.html +0 -107
- data/doc/files/lib/Dnsruby/event_machine_interface_rb.html +0 -108
- data/doc/files/lib/Dnsruby/ipv4_rb.html +0 -101
- data/doc/files/lib/Dnsruby/ipv6_rb.html +0 -101
- data/doc/files/lib/Dnsruby/message_rb.html +0 -109
- data/doc/files/lib/Dnsruby/name_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/AAAA_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/AFSDB_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/A_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/CERT_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/DNSKEY_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/DS_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/HINFO_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/IN_rb.html +0 -112
- data/doc/files/lib/Dnsruby/resource/ISDN_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/LOC_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/MINFO_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/MX_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/NAPTR_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/NSAP_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/NSEC3PARAM_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/NSEC3_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/NSEC_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/OPT_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/PX_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/RP_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/RRSIG_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/RT_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/SOA_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/SPF_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/SRV_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/TKEY_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/TSIG_rb.html +0 -114
- data/doc/files/lib/Dnsruby/resource/TXT_rb.html +0 -108
- data/doc/files/lib/Dnsruby/resource/X25_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/domain_name_rb.html +0 -101
- data/doc/files/lib/Dnsruby/resource/generic_rb.html +0 -131
- data/doc/files/lib/Dnsruby/resource/resource_rb.html +0 -110
- data/doc/files/lib/Dnsruby/select_thread_rb.html +0 -111
- data/doc/files/lib/Dnsruby/update_rb.html +0 -101
- data/doc/files/lib/Dnsruby/zone_transfer_rb.html +0 -101
- data/doc/files/lib/dnsruby_rb.html +0 -118
- data/doc/fr_class_index.html +0 -108
- data/doc/fr_file_index.html +0 -75
- data/doc/fr_method_index.html +0 -321
- data/doc/index.html +0 -24
@@ -23,9 +23,9 @@ module Dnsruby
|
|
23
23
|
break
|
24
24
|
end
|
25
25
|
c, proc = @@timer_procs[timeout]
|
26
|
-
proc.call
|
27
26
|
@@timer_procs.delete(timeout)
|
28
27
|
@@timer_keys_sorted.delete(timeout)
|
28
|
+
proc.call
|
29
29
|
end
|
30
30
|
|
31
31
|
if (!@@outstanding_sends.empty?)
|
@@ -71,21 +71,22 @@ module Dnsruby
|
|
71
71
|
def EventMachineInterface::start_eventmachine
|
72
72
|
if (!eventmachine_running?)
|
73
73
|
if Resolver.start_eventmachine_loop?
|
74
|
-
|
74
|
+
Dnsruby.log.debug("Starting EventMachine")
|
75
75
|
@@started_em_here = true
|
76
76
|
@@em_thread = Thread.new {
|
77
77
|
EM.run {
|
78
|
-
EventMachine::add_periodic_timer(0.1) {EventMachineInterface::process_timers}
|
78
|
+
# EventMachine::add_periodic_timer(0.1) {EventMachineInterface::process_timers}
|
79
|
+
EventMachine::add_timer(0.1) {EventMachineInterface::process_timers}
|
79
80
|
@@df = EventMachine::DefaultDeferrable.new
|
80
81
|
@@df.callback{
|
81
|
-
|
82
|
+
Dnsruby.log.debug("Stopping EventMachine")
|
82
83
|
EM.stop
|
83
84
|
@@em_thread=nil
|
84
85
|
}
|
85
86
|
}
|
86
87
|
}
|
87
88
|
else
|
88
|
-
|
89
|
+
Dnsruby.log.debug("Not trying to start event loop")
|
89
90
|
end
|
90
91
|
end
|
91
92
|
end
|
@@ -130,12 +131,12 @@ module Dnsruby
|
|
130
131
|
end
|
131
132
|
rescue Exception
|
132
133
|
#@TODO@ EM::reactor_running? only introduced in EM v0.9.0 - if it's not there, we simply don't know what to do...
|
133
|
-
|
134
|
+
Dnsruby.log.error("EventMachine::reactor_running? not available.")
|
134
135
|
# if Resolver.start_eventmachine_loop?
|
135
|
-
#
|
136
|
+
# Dnsruby.log.debug("Trying to start event loop - may prove fatal...")
|
136
137
|
start_eventmachine
|
137
138
|
# else
|
138
|
-
#
|
139
|
+
# Dnsruby.log.debug("Not trying to start event loop.")
|
139
140
|
# end
|
140
141
|
end
|
141
142
|
df = nil
|
@@ -157,8 +158,8 @@ module Dnsruby
|
|
157
158
|
lenmsg = [args[:msg].length].pack('n')
|
158
159
|
c.send_data(lenmsg)
|
159
160
|
c.send_data args[:msg] # , args[:server], args[:port]
|
160
|
-
|
161
|
-
", timeout=#{args[:timeout]}"
|
161
|
+
Dnsruby.log.debug {"EventMachine : Sent TCP packet to #{args[:server]}:#{args[:port]}" + # from #{args[:src_addr]}:#{args[:src_port]}, timeout=#{args[:timeout]}"
|
162
|
+
", timeout=#{args[:timeout]}"}
|
162
163
|
}
|
163
164
|
return connection # allows clients to set callback, errback, etc., if desired
|
164
165
|
end
|
@@ -168,7 +169,7 @@ module Dnsruby
|
|
168
169
|
c.timeout_time=Time.now + args[:timeout]
|
169
170
|
c.instance_eval {@args = args}
|
170
171
|
c.send_datagram args[:msg], args[:server], args[:port]
|
171
|
-
|
172
|
+
Dnsruby.log.debug{"EventMachine : Sent datagram to #{args[:server]}:#{args[:port]} from #{args[:src_addr]}:#{args[:src_port]}, timeout=#{args[:timeout]}"}
|
172
173
|
}
|
173
174
|
return connection # allows clients to set callback, errback, etc., if desired
|
174
175
|
end
|
@@ -181,23 +182,23 @@ module Dnsruby
|
|
181
182
|
@closing=false
|
182
183
|
end
|
183
184
|
def receive_data(dgm)
|
184
|
-
|
185
|
+
Dnsruby.log.debug{"UDP receive_data called"}
|
185
186
|
process_incoming_message(dgm)
|
186
187
|
end
|
187
188
|
|
188
189
|
def process_incoming_message(data)
|
189
|
-
|
190
|
+
Dnsruby.log.debug{"Processing incoming message, #{data.length} bytes"}
|
190
191
|
ans=nil
|
191
192
|
begin
|
192
193
|
ans = Message.decode(data)
|
193
194
|
rescue Exception => e
|
194
|
-
|
195
|
+
Dnsruby.log.error{"Decode error! #{e.class}, #{e}\nfor msg (length=#{data.length}) : #{data}"}
|
195
196
|
@closing=true
|
196
197
|
close_connection
|
197
198
|
send_to_client(nil, nil, e)
|
198
199
|
return
|
199
200
|
end
|
200
|
-
|
201
|
+
Dnsruby.log.debug{"#{ans}"}
|
201
202
|
ans.answerfrom=(@args[:server])
|
202
203
|
ans.answersize=(data.length)
|
203
204
|
exception = ans.header.get_exception
|
@@ -207,12 +208,12 @@ module Dnsruby
|
|
207
208
|
end
|
208
209
|
|
209
210
|
def unbind
|
210
|
-
|
211
|
+
Dnsruby.log.debug{"Unbind called"}
|
211
212
|
if (!@closing)
|
212
213
|
if (@timeout_time <= Time.now + 1)
|
213
214
|
send_timeout
|
214
215
|
else
|
215
|
-
|
216
|
+
Dnsruby.log.debug{"Sending IOError to client"}
|
216
217
|
send_to_client(nil, nil, IOError.new("Network error"))
|
217
218
|
end
|
218
219
|
end
|
@@ -221,7 +222,7 @@ module Dnsruby
|
|
221
222
|
EventMachineInterface.remove_from_outstanding(self)
|
222
223
|
end
|
223
224
|
def send_timeout
|
224
|
-
|
225
|
+
Dnsruby.log.debug{"Sending timeout to client"}
|
225
226
|
send_to_client(nil, nil, ResolvTimeout.new("Query timed out"))
|
226
227
|
end
|
227
228
|
def send_to_client(msg, bytes, err)
|
@@ -242,19 +243,19 @@ module Dnsruby
|
|
242
243
|
@answersize = 0
|
243
244
|
end
|
244
245
|
def receive_data(data)
|
245
|
-
|
246
|
+
Dnsruby.log.debug{"TCP receive_data called"}
|
246
247
|
#Buffer up the incoming data until we have a complete packet
|
247
248
|
@data << data
|
248
249
|
if (@data.length >= 2)
|
249
250
|
if (@answersize == 0)
|
250
251
|
@answersize = @data[0..1].unpack('n')[0]
|
251
|
-
|
252
|
+
Dnsruby.log.debug{"TCP - expecting #{@answersize} bytes"}
|
252
253
|
end
|
253
254
|
if (@answersize == @data.length - 2)
|
254
|
-
|
255
|
+
Dnsruby.log.debug{"TCP - got all #{@answersize} bytes "}
|
255
256
|
process_incoming_message(@data[2..@data.length])
|
256
257
|
else
|
257
|
-
|
258
|
+
Dnsruby.log.debug{"TCP - got #{@data.length-2} message bytes"}
|
258
259
|
end
|
259
260
|
end
|
260
261
|
end
|
data/lib/Dnsruby/message.rb
CHANGED
@@ -411,7 +411,7 @@ module Dnsruby
|
|
411
411
|
rr = msg.get_rr
|
412
412
|
if (rr.type == Types.TSIG)
|
413
413
|
if (count!=o.header.arcount-1)
|
414
|
-
|
414
|
+
Dnsruby.log.Error("Incoming message has TSIG record before last record")
|
415
415
|
raise DecodeError.new("TSIG record present before last record")
|
416
416
|
end
|
417
417
|
o.tsigstart = start # needed for TSIG verification
|
data/lib/Dnsruby/name.rb
CHANGED
@@ -46,6 +46,7 @@ module Dnsruby
|
|
46
46
|
when String
|
47
47
|
# arg.gsub!(/\.$/o, "")
|
48
48
|
return Name.new(split_escaped(arg), /\.\z/ =~ arg ? true : false)
|
49
|
+
# return Name.new(Label.split(arg), /\.\z/ =~ arg ? true : false)
|
49
50
|
when Array
|
50
51
|
return Name.new(arg, /\.\z/ =~ ((arg.last.kind_of?String)?arg.last : arg.last.string) ? true : false)
|
51
52
|
else
|
@@ -122,7 +122,7 @@ module Dnsruby
|
|
122
122
|
|
123
123
|
# Create the RR from a standard string
|
124
124
|
def from_string(string) #:nodoc: all
|
125
|
-
|
125
|
+
Dnsruby.log.error("Dnsruby::RR::TKEY#from_string called, but no text format defined for TKEY")
|
126
126
|
end
|
127
127
|
|
128
128
|
def rdata_to_string
|
@@ -238,7 +238,7 @@ module Dnsruby
|
|
238
238
|
end
|
239
239
|
|
240
240
|
if ((tsig_rr.name != @name) || (tsig_rr.algorithm.downcase != @algorithm.downcase))
|
241
|
-
|
241
|
+
Dnsruby.log.error("BADKEY failure")
|
242
242
|
response.tsigstate = :Failed
|
243
243
|
response.tsigerror = RCode.BADKEY
|
244
244
|
return false
|
@@ -247,7 +247,7 @@ module Dnsruby
|
|
247
247
|
# Check time_signed (RFC2845, 4.5.2) - only really necessary for server
|
248
248
|
if (Time.now.to_i > tsig_rr.time_signed + tsig_rr.fudge ||
|
249
249
|
Time.now.to_i < tsig_rr.time_signed - tsig_rr.fudge)
|
250
|
-
|
250
|
+
Dnsruby.log.error("TSIG failed with BADTIME")
|
251
251
|
response.tsigstate = :Failed
|
252
252
|
response.tsigerror = RCode.BADTIME
|
253
253
|
return false
|
@@ -307,14 +307,14 @@ module Dnsruby
|
|
307
307
|
@num_envelopes += 1
|
308
308
|
if (!response.tsig)
|
309
309
|
if ((@num_envelopes > 1) && (@num_envelopes - @last_signed < 100))
|
310
|
-
|
310
|
+
Dnsruby.log.debug("Receiving intermediate envelope in TSIG TCP session")
|
311
311
|
response.tsigstate = :Intermediate
|
312
312
|
response.tsigerror = RCode.NOERROR
|
313
313
|
@buf = @buf + response_bytes
|
314
314
|
return
|
315
315
|
else
|
316
316
|
response.tsigstate = :Failed
|
317
|
-
|
317
|
+
Dnsruby.log.error("Expecting signed packet")
|
318
318
|
return false
|
319
319
|
end
|
320
320
|
end
|
@@ -323,7 +323,7 @@ module Dnsruby
|
|
323
323
|
# We have a TSIG - process it!
|
324
324
|
tsig = response.tsig
|
325
325
|
if (@num_envelopes == 1)
|
326
|
-
|
326
|
+
Dnsruby.log.debug("First response in TSIG TCP session - verifying normally")
|
327
327
|
# Process it as a standard answer
|
328
328
|
ok = verify(@query, response, response_bytes)
|
329
329
|
if (ok)
|
@@ -336,7 +336,7 @@ module Dnsruby
|
|
336
336
|
end
|
337
337
|
return ok
|
338
338
|
end
|
339
|
-
|
339
|
+
Dnsruby.log.debug("Processing TSIG on TSIG TCP session")
|
340
340
|
|
341
341
|
if (!verify_common(response))
|
342
342
|
return false
|
@@ -358,7 +358,7 @@ module Dnsruby
|
|
358
358
|
mac = calculate_mac(tsig.algorithm, @buf)
|
359
359
|
|
360
360
|
if (mac != tsig.mac)
|
361
|
-
|
361
|
+
Dnsruby.log.error("TSIG Verify error on TSIG TCP session")
|
362
362
|
response.tsigstate = :Failed
|
363
363
|
return false
|
364
364
|
end
|
@@ -525,7 +525,7 @@ module Dnsruby
|
|
525
525
|
else
|
526
526
|
raise ArgumentError.new("#{alg.class} not valid type for Dnsruby::RR::TSIG#algorithm= - use String or Name")
|
527
527
|
end
|
528
|
-
|
528
|
+
Dnsruby.log.debug{"Using #{@algorithm.to_s} algorithm"}
|
529
529
|
end
|
530
530
|
|
531
531
|
def fudge=(f)
|
@@ -100,7 +100,7 @@ module Dnsruby
|
|
100
100
|
|
101
101
|
def check_select_thread_synchronized
|
102
102
|
if (!@@select_thread.alive?)
|
103
|
-
|
103
|
+
Dnsruby.log.debug{"Restarting select thread"}
|
104
104
|
@@select_thread = Thread.new {
|
105
105
|
do_select
|
106
106
|
}
|
@@ -120,7 +120,7 @@ module Dnsruby
|
|
120
120
|
while true do
|
121
121
|
send_tick_to_observers
|
122
122
|
send_queued_exceptions
|
123
|
-
timeout = tick_time =
|
123
|
+
timeout = tick_time = 0.1 # We provide a timer service to various Dnsruby classes
|
124
124
|
sockets=[]
|
125
125
|
timeouts=[]
|
126
126
|
has_observer = false
|
@@ -160,7 +160,7 @@ module Dnsruby
|
|
160
160
|
end
|
161
161
|
@@mutex.synchronize{
|
162
162
|
if (unused_loop_count > 10 && @@query_hash.empty? && @@observers.empty?)
|
163
|
-
|
163
|
+
Dnsruby.log.debug{"Stopping select loop"}
|
164
164
|
return
|
165
165
|
end
|
166
166
|
}
|
@@ -169,7 +169,7 @@ module Dnsruby
|
|
169
169
|
end
|
170
170
|
|
171
171
|
def process_error(errors)
|
172
|
-
|
172
|
+
Dnsruby.log.debug{"Error! #{errors.inspect}"}
|
173
173
|
# @todo@ Process errors [can we do this in single socket environment?]
|
174
174
|
end
|
175
175
|
|
@@ -220,7 +220,7 @@ module Dnsruby
|
|
220
220
|
if (res.check_response(msg, bytes, query, client_queue, id, tcp))
|
221
221
|
remove_id(id)
|
222
222
|
exception = msg.header.get_exception
|
223
|
-
|
223
|
+
Dnsruby.log.debug{"Pushing response to client queue"}
|
224
224
|
client_queue.push([id, msg, exception])
|
225
225
|
notify_queue_observers(client_queue, id)
|
226
226
|
else
|
@@ -230,7 +230,7 @@ module Dnsruby
|
|
230
230
|
end
|
231
231
|
end
|
232
232
|
# If not, then we have an error
|
233
|
-
|
233
|
+
Dnsruby.log.error{"Stray packet - " + msg.inspect + "\n from " + socket.inspect}
|
234
234
|
end
|
235
235
|
|
236
236
|
def remove_id(id)
|
@@ -238,10 +238,11 @@ module Dnsruby
|
|
238
238
|
@@mutex.synchronize{
|
239
239
|
socket = @@query_hash[id].socket
|
240
240
|
@@timeouts.delete(id)
|
241
|
-
@@query_hash.delete(id)
|
241
|
+
@@query_hash.delete(id)
|
242
|
+
@@socket_hash.delete(socket)
|
242
243
|
@@sockets.delete(socket) # @TODO@ Not if persistent!
|
243
244
|
}
|
244
|
-
|
245
|
+
Dnsruby.log.debug{"Closing socket #{socket}"}
|
245
246
|
socket.close # @TODO@ Not if persistent!
|
246
247
|
end
|
247
248
|
|
@@ -295,33 +296,33 @@ module Dnsruby
|
|
295
296
|
answersize=(buf.length)
|
296
297
|
else
|
297
298
|
# recvfrom failed - why?
|
298
|
-
|
299
|
+
Dnsruby.log.error{"Error - recvfrom failed from #{socket}"}
|
299
300
|
handle_recvfrom_failure(socket)
|
300
301
|
return
|
301
302
|
end
|
302
303
|
end
|
303
304
|
rescue Exception => e
|
304
|
-
|
305
|
+
Dnsruby.log.error{"Error - recvfrom failed from #{socket}, exception : #{e}"}
|
305
306
|
handle_recvfrom_failure(socket)
|
306
307
|
return
|
307
308
|
end
|
308
|
-
|
309
|
+
Dnsruby.log.debug{";; answer from #{answerfrom} : #{answersize} bytes\n"}
|
309
310
|
|
310
311
|
begin
|
311
312
|
ans = Message.decode(buf)
|
312
313
|
rescue Exception => e
|
313
|
-
|
314
|
+
Dnsruby.log.error{"Decode error! #{e.class}, #{e}\nfor msg (length=#{buf.length}) : #{buf}"}
|
314
315
|
client_id=get_client_id_from_answerfrom(socket, answerip, answerport)
|
315
316
|
if (client_id != nil)
|
316
317
|
send_exception_to_client(e, socket, client_id)
|
317
318
|
else
|
318
|
-
|
319
|
+
Dnsruby.log.error{"Decode error from #{answerfrom} but can't determine packet id"}
|
319
320
|
end
|
320
321
|
return
|
321
322
|
end
|
322
323
|
|
323
324
|
if (ans!= nil)
|
324
|
-
|
325
|
+
Dnsruby.log.debug{"#{ans}"}
|
325
326
|
ans.answerfrom=(answerfrom)
|
326
327
|
ans.answersize=(answersize)
|
327
328
|
end
|
@@ -342,7 +343,7 @@ module Dnsruby
|
|
342
343
|
}
|
343
344
|
send_exception_to_client(OtherResolvError.new("recvfrom failed from #{answerfrom}"), socket, ids_for_socket[0])
|
344
345
|
else
|
345
|
-
|
346
|
+
Dnsruby.log.fatal{"Recvfrom failed from #{socket}, no way to tell query id"}
|
346
347
|
end
|
347
348
|
end
|
348
349
|
|
@@ -413,9 +414,10 @@ module Dnsruby
|
|
413
414
|
def remove_observer(client_queue, observer)
|
414
415
|
@@mutex.synchronize {
|
415
416
|
if (@@observers[client_queue]==observer)
|
416
|
-
@@observers.delete(observer)
|
417
|
+
# @@observers.delete(observer)
|
418
|
+
@@observers.delete(client_queue)
|
417
419
|
else
|
418
|
-
|
420
|
+
Dnsruby.log.error{"remove_observer called with wrong observer for queue"}
|
419
421
|
raise ArgumentError.new("remove_observer called with wrong observer for queue")
|
420
422
|
end
|
421
423
|
if (!@@observers.values.include?observer)
|
@@ -106,7 +106,7 @@ module Dnsruby
|
|
106
106
|
if (@transfer_type == Types.IXFR &&
|
107
107
|
rcode == RCode.NOTIMP)
|
108
108
|
# IXFR didn't work - let's try AXFR
|
109
|
-
|
109
|
+
Dnsruby.log.debug("IXFR DID NOT WORK (rcode = NOTIMP) - TRYING AXFR!!")
|
110
110
|
@state = :InitialSoa
|
111
111
|
@transfer_type=Types.AXFR
|
112
112
|
# Send an initial AXFR query
|
@@ -122,7 +122,7 @@ module Dnsruby
|
|
122
122
|
end
|
123
123
|
|
124
124
|
if (response.header.ancount == 0 && @transfer_type == Types.IXFR)
|
125
|
-
|
125
|
+
Dnsruby.log.debug("IXFR DID NOT WORK (ancount = 0) - TRYING AXFR!!")
|
126
126
|
# IXFR didn't work - let's try AXFR
|
127
127
|
@transfer_type=Types.AXFR
|
128
128
|
# Send an initial AXFR query
|
@@ -213,7 +213,7 @@ module Dnsruby
|
|
213
213
|
# to recognize the end of an IXFR.
|
214
214
|
@end_serial = rec.serial
|
215
215
|
if (@transfer_type == Types.IXFR && @end_serial <= @serial)
|
216
|
-
|
216
|
+
Dnsruby.log.debug("zone up to date")
|
217
217
|
@state = :End
|
218
218
|
else
|
219
219
|
@state = :FirstData
|
@@ -223,12 +223,12 @@ module Dnsruby
|
|
223
223
|
# If it begins with 2 SOAs, it's an IXFR.
|
224
224
|
if (@transfer_type == Types.IXFR && type == Types.SOA &&
|
225
225
|
rec.serial == @serial)
|
226
|
-
|
226
|
+
Dnsruby.log.debug("IXFR response - using IXFR")
|
227
227
|
@rtype = Types.IXFR
|
228
228
|
@ixfr = []
|
229
229
|
@state = :Ixfr_DelSoa
|
230
230
|
else
|
231
|
-
|
231
|
+
Dnsruby.log.debug("AXFR response - using AXFR")
|
232
232
|
@rtype = Types.AXFR
|
233
233
|
@axfr = []
|
234
234
|
@axfr << @initialsoa
|
@@ -322,7 +322,7 @@ module Dnsruby
|
|
322
322
|
msg = Message.decode(buf)
|
323
323
|
if (@tsig)
|
324
324
|
if !@tsig.verify_envelope(msg, buf)
|
325
|
-
|
325
|
+
Dnsruby.log.error("Bad signature on zone transfer - closing connection")
|
326
326
|
raise ResolvError.new("Bad signature on zone transfer")
|
327
327
|
end
|
328
328
|
end
|
data/lib/dnsruby.rb
CHANGED
@@ -13,11 +13,11 @@
|
|
13
13
|
#See the License for the specific language governing permissions and
|
14
14
|
#limitations under the License.
|
15
15
|
#++
|
16
|
-
require 'Dnsruby/TheLog'
|
17
16
|
require 'Dnsruby/code_mapper'
|
18
17
|
require 'Dnsruby/ipv4'
|
19
18
|
require 'Dnsruby/ipv6'
|
20
19
|
require 'timeout'
|
20
|
+
require 'Dnsruby/TheLog'
|
21
21
|
#= Dnsruby library
|
22
22
|
#Dnsruby is a thread-aware DNS stub resolver library written in Ruby.
|
23
23
|
#
|
@@ -90,6 +90,15 @@ require 'timeout'
|
|
90
90
|
#* /etc/nsswitch.conf is not supported.
|
91
91
|
#* IPv6 is not supported.
|
92
92
|
module Dnsruby
|
93
|
+
|
94
|
+
@@logger = Logger.new(STDOUT)
|
95
|
+
@@logger.level = Logger::FATAL
|
96
|
+
#Get the log for Dnsruby
|
97
|
+
#Use this to set the log level
|
98
|
+
#e.g. Dnsruby.log.level = Logger::INFO
|
99
|
+
def Dnsruby.log
|
100
|
+
@@logger
|
101
|
+
end
|
93
102
|
class OpCode < CodeMapper
|
94
103
|
Query = 0 # RFC 1035
|
95
104
|
IQuery = 1 # RFC 1035
|
data/test/tc_dns.rb
CHANGED
@@ -22,6 +22,10 @@ class TestDNS < Test::Unit::TestCase
|
|
22
22
|
Dnsruby::Config.reset
|
23
23
|
end
|
24
24
|
|
25
|
+
def test_ipv4_address
|
26
|
+
Dnsruby::DNS.open { |dns| dns.getnames(Dnsruby::IPv4.create("221.186.184.68")) }
|
27
|
+
end
|
28
|
+
|
25
29
|
def test_resolv_rb_api
|
26
30
|
DNS.open {|dns|
|
27
31
|
dns.getresources("www.ruby-lang.org", Types.A).each {|r| assert_equal(r.address.to_s, "221.186.184.68")}
|
@@ -74,7 +78,7 @@ class TestDNS < Test::Unit::TestCase
|
|
74
78
|
#
|
75
79
|
# Check that new() is vetting things properly.
|
76
80
|
#
|
77
|
-
Dnsruby
|
81
|
+
Dnsruby.log.level=Logger::FATAL
|
78
82
|
[:nameserver].each do |test|
|
79
83
|
[{}, 'string',1,'\1',nil].each do |input|
|
80
84
|
res=nil
|
@@ -8,7 +8,7 @@ require 'dnsruby'
|
|
8
8
|
class EventMachineTestDeferrable < Test::Unit::TestCase
|
9
9
|
Dnsruby::Resolver.use_eventmachine(true)
|
10
10
|
def setup
|
11
|
-
# Dnsruby
|
11
|
+
# Dnsruby.log.level=Logger::DEBUG
|
12
12
|
Dnsruby::Resolver.use_eventmachine(true)
|
13
13
|
Dnsruby::Resolver.start_eventmachine_loop(true)
|
14
14
|
end
|
@@ -11,7 +11,7 @@ class EventMachineTestResolver < Test::Unit::TestCase
|
|
11
11
|
Thread::abort_on_exception = true
|
12
12
|
def setup
|
13
13
|
Dnsruby::Config.reset
|
14
|
-
# Dnsruby
|
14
|
+
# Dnsruby.log.level=Logger::DEBUG
|
15
15
|
Dnsruby::Resolver.use_eventmachine(true)
|
16
16
|
Dnsruby::Resolver.start_eventmachine_loop(true)
|
17
17
|
end
|
@@ -8,7 +8,7 @@ require 'dnsruby'
|
|
8
8
|
class EventMachineTestSingleResolver < Test::Unit::TestCase
|
9
9
|
Dnsruby::Resolver.use_eventmachine(true)
|
10
10
|
def setup
|
11
|
-
# Dnsruby
|
11
|
+
# Dnsruby.log.level=Logger::DEBUG
|
12
12
|
Dnsruby::Resolver.use_eventmachine(true)
|
13
13
|
Dnsruby::Resolver.start_eventmachine_loop(true)
|
14
14
|
sleep(0.01)
|
@@ -10,7 +10,7 @@ end
|
|
10
10
|
|
11
11
|
class TestEventMachineSoak < Test::Unit::TestCase
|
12
12
|
def setup
|
13
|
-
# Dnsruby
|
13
|
+
# Dnsruby.log.level=Logger::DEBUG
|
14
14
|
Dnsruby::Resolver.use_eventmachine(true)
|
15
15
|
end
|
16
16
|
def teardown
|
@@ -23,7 +23,7 @@ class TestEventMachineSoak < Test::Unit::TestCase
|
|
23
23
|
sleep(0.1)
|
24
24
|
@@dfs = {}
|
25
25
|
@@num_sent = 0
|
26
|
-
#Dnsruby
|
26
|
+
#Dnsruby.log.level=Logger::DEBUG
|
27
27
|
res = Dnsruby::SingleResolver.new
|
28
28
|
Dnsruby::Resolver.use_eventmachine
|
29
29
|
Dnsruby::Resolver.start_eventmachine_loop(false)
|
@@ -39,7 +39,7 @@ class TestEventMachineSoak < Test::Unit::TestCase
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def test_sequential
|
42
|
-
#Dnsruby
|
42
|
+
#Dnsruby.log.level=Logger::DEBUG
|
43
43
|
Dnsruby::Resolver.use_eventmachine(true)
|
44
44
|
Dnsruby::Resolver.start_eventmachine_loop(true)
|
45
45
|
res = Dnsruby::SingleResolver.new
|
@@ -62,7 +62,7 @@ class TestEventMachineSoak < Test::Unit::TestCase
|
|
62
62
|
sleep(0.1)
|
63
63
|
@@dfs = {}
|
64
64
|
@@num_sent = 0
|
65
|
-
#Dnsruby
|
65
|
+
#Dnsruby.log.level=Logger::DEBUG
|
66
66
|
res = Dnsruby::Resolver.new
|
67
67
|
Dnsruby::Resolver.use_eventmachine
|
68
68
|
Dnsruby::Resolver.start_eventmachine_loop(false)
|
data/test/tc_res_opt.rb
CHANGED
@@ -47,7 +47,7 @@ class TestResOpt < Test::Unit::TestCase
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def test_no_file
|
50
|
-
Dnsruby
|
50
|
+
Dnsruby.log.level=Logger::FATAL
|
51
51
|
res=nil
|
52
52
|
begin
|
53
53
|
res = DNS.new('nosuch.txt')
|
@@ -59,7 +59,7 @@ class TestResOpt < Test::Unit::TestCase
|
|
59
59
|
assert_equal(["0.0.0.0"], res.nameserver,"No nameservers should be set for #{test} = #{input}")
|
60
60
|
rescue Exception
|
61
61
|
end
|
62
|
-
# Dnsruby
|
62
|
+
# Dnsruby.log.level=Logger::ERROR
|
63
63
|
end
|
64
64
|
|
65
65
|
def test_config_hash_singleresolver
|
@@ -141,7 +141,7 @@ class TestResOpt < Test::Unit::TestCase
|
|
141
141
|
|
142
142
|
def test_bad_config
|
143
143
|
res=nil
|
144
|
-
Dnsruby
|
144
|
+
Dnsruby.log.level=Logger::FATAL
|
145
145
|
|
146
146
|
bad_input = {
|
147
147
|
:tsig_rr => 'set',
|
@@ -181,7 +181,7 @@ class TestResOpt < Test::Unit::TestCase
|
|
181
181
|
rescue Exception
|
182
182
|
end
|
183
183
|
end
|
184
|
-
# Dnsruby
|
184
|
+
# Dnsruby.log.level=Logger::ERROR
|
185
185
|
end
|
186
186
|
end
|
187
187
|
end
|
data/test/tc_single_resolver.rb
CHANGED
@@ -19,7 +19,7 @@ require 'dnsruby'
|
|
19
19
|
include Dnsruby
|
20
20
|
class TestSingleResolver < Test::Unit::TestCase
|
21
21
|
Thread::abort_on_exception = true
|
22
|
-
# Dnsruby
|
22
|
+
# Dnsruby.log.level=Logger::DEBUG
|
23
23
|
|
24
24
|
def setup
|
25
25
|
Dnsruby::Config.reset
|
@@ -141,11 +141,6 @@ class TestSingleResolver < Test::Unit::TestCase
|
|
141
141
|
# assert(Dnsruby::SelectThread.instance.select_thread_alive?)
|
142
142
|
# end
|
143
143
|
|
144
|
-
def test_persistent_socket
|
145
|
-
#@TODO@ Really need a test server for this one!
|
146
|
-
p "Implement persistent sockets!"
|
147
|
-
end
|
148
|
-
|
149
144
|
def test_res_config
|
150
145
|
res = Dnsruby::SingleResolver.new
|
151
146
|
|
data/test/tc_soak_base.rb
CHANGED
@@ -69,7 +69,7 @@ class TestSoakBase # < Test::Unit::TestCase
|
|
69
69
|
timed_out+=1
|
70
70
|
# p "Number #{i} timed out!"
|
71
71
|
elsif (ret.class != Message)
|
72
|
-
|
72
|
+
Dnsruby.log.debug("tc_single_resolver : Query #{i} ERROR RETURNED : #{error.class}, #{error}")
|
73
73
|
end
|
74
74
|
end
|
75
75
|
}
|
@@ -120,7 +120,7 @@ class TestSoakBase # < Test::Unit::TestCase
|
|
120
120
|
# p "Number #{i} timed out!"
|
121
121
|
elsif (ret.class != Message)
|
122
122
|
error_count+=1
|
123
|
-
|
123
|
+
Dnsruby.log.error("tc_single_resolver : Query #{i} ERROR RETURNED : #{error.class}, #{error}")
|
124
124
|
end
|
125
125
|
end
|
126
126
|
}
|
data/test/tc_tsig.rb
CHANGED
@@ -32,7 +32,7 @@ class TestTSig < Test::Unit::TestCase
|
|
32
32
|
begin
|
33
33
|
Dnsruby::Resolver::use_eventmachine(true)
|
34
34
|
rescue RuntimeError
|
35
|
-
Dnsruby
|
35
|
+
Dnsruby.log.error("EventMachine not installed - not running tsig EM tests")
|
36
36
|
return
|
37
37
|
end
|
38
38
|
run_test_client_signs
|
@@ -67,7 +67,7 @@ class TestTSig < Test::Unit::TestCase
|
|
67
67
|
res.udp_size=512 # Or else we needed to add OPT record already
|
68
68
|
res.dnssec=false
|
69
69
|
res.recurse=false
|
70
|
-
res.query_timeout =
|
70
|
+
res.query_timeout = 20
|
71
71
|
response = res.send_message(update)
|
72
72
|
|
73
73
|
assert_equal( Dnsruby::RCode.NOERROR, response.header.rcode)
|
@@ -105,7 +105,7 @@ class TestTSig < Test::Unit::TestCase
|
|
105
105
|
|
106
106
|
def run_test_resolver_signs
|
107
107
|
res = Dnsruby::Resolver.new("ns0.validation-test-servers.nominet.org.uk")
|
108
|
-
res.query_timeout=
|
108
|
+
res.query_timeout=20
|
109
109
|
res.tsig=KEY_NAME, KEY
|
110
110
|
|
111
111
|
update = Dnsruby::Update.new("validation-test-servers.nominet.org.uk")
|
data/test/ts_offline.rb
CHANGED