dnsruby 1.2 → 1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/demo/axfr.rb +176 -0
- data/demo/check_soa.rb +141 -0
- data/demo/check_zone.rb +157 -0
- data/demo/example_recurse.rb +11 -0
- data/demo/mresolv.rb +67 -0
- data/demo/mx.rb +33 -0
- data/demo/rubydig.rb +58 -0
- data/demo/to_resolve.txt +3088 -0
- data/demo/trace_dns.rb +15 -0
- data/doc/classes/Dnsruby.html +463 -0
- data/doc/classes/Dnsruby/Algorithms.html +171 -0
- data/doc/classes/Dnsruby/Classes.html +197 -0
- data/doc/classes/Dnsruby/Classes.src/M000209.html +23 -0
- data/doc/classes/Dnsruby/Classes.src/M000210.html +19 -0
- data/doc/classes/Dnsruby/CodeMapper.html +375 -0
- data/doc/classes/Dnsruby/CodeMapper.src/M000186.html +18 -0
- data/doc/classes/Dnsruby/CodeMapper.src/M000187.html +33 -0
- data/doc/classes/Dnsruby/CodeMapper.src/M000188.html +21 -0
- data/doc/classes/Dnsruby/CodeMapper.src/M000189.html +19 -0
- data/doc/classes/Dnsruby/CodeMapper.src/M000190.html +19 -0
- data/doc/classes/Dnsruby/CodeMapper.src/M000191.html +18 -0
- data/doc/classes/Dnsruby/CodeMapper.src/M000192.html +22 -0
- data/doc/classes/Dnsruby/CodeMapper.src/M000193.html +22 -0
- data/doc/classes/Dnsruby/CodeMapper.src/M000194.html +22 -0
- data/doc/classes/Dnsruby/CodeMapper.src/M000195.html +31 -0
- data/doc/classes/Dnsruby/CodeMapper.src/M000196.html +19 -0
- data/doc/classes/Dnsruby/Config.html +413 -0
- data/doc/classes/Dnsruby/Config.src/M000148.html +18 -0
- data/doc/classes/Dnsruby/Config.src/M000149.html +19 -0
- data/doc/classes/Dnsruby/Config.src/M000150.html +19 -0
- data/doc/classes/Dnsruby/Config.src/M000151.html +25 -0
- data/doc/classes/Dnsruby/Config.src/M000152.html +21 -0
- data/doc/classes/Dnsruby/Config.src/M000153.html +38 -0
- data/doc/classes/Dnsruby/Config.src/M000154.html +26 -0
- data/doc/classes/Dnsruby/Config.src/M000155.html +22 -0
- data/doc/classes/Dnsruby/Config.src/M000156.html +27 -0
- data/doc/classes/Dnsruby/Config.src/M000157.html +22 -0
- data/doc/classes/Dnsruby/Config.src/M000158.html +21 -0
- data/doc/classes/Dnsruby/DNS.html +571 -0
- data/doc/classes/Dnsruby/DNS.src/M000258.html +24 -0
- data/doc/classes/Dnsruby/DNS.src/M000259.html +18 -0
- data/doc/classes/Dnsruby/DNS.src/M000260.html +18 -0
- data/doc/classes/Dnsruby/DNS.src/M000261.html +20 -0
- data/doc/classes/Dnsruby/DNS.src/M000262.html +19 -0
- data/doc/classes/Dnsruby/DNS.src/M000263.html +20 -0
- data/doc/classes/Dnsruby/DNS.src/M000264.html +18 -0
- data/doc/classes/Dnsruby/DNS.src/M000265.html +19 -0
- data/doc/classes/Dnsruby/DNS.src/M000266.html +20 -0
- data/doc/classes/Dnsruby/DNS.src/M000267.html +28 -0
- data/doc/classes/Dnsruby/DNS.src/M000268.html +19 -0
- data/doc/classes/Dnsruby/DNS.src/M000269.html +20 -0
- data/doc/classes/Dnsruby/DNS.src/M000270.html +31 -0
- data/doc/classes/Dnsruby/DecodeError.html +120 -0
- data/doc/classes/Dnsruby/Dnssec.html +287 -0
- data/doc/classes/Dnsruby/Dnssec.src/M000249.html +23 -0
- data/doc/classes/Dnsruby/Dnssec.src/M000250.html +19 -0
- data/doc/classes/Dnsruby/Dnssec.src/M000251.html +90 -0
- data/doc/classes/Dnsruby/Dnssec.src/M000252.html +76 -0
- data/doc/classes/Dnsruby/EncodeError.html +120 -0
- data/doc/classes/Dnsruby/FormErr.html +119 -0
- data/doc/classes/Dnsruby/Header.html +501 -0
- data/doc/classes/Dnsruby/Header.src/M000231.html +35 -0
- data/doc/classes/Dnsruby/Header.src/M000232.html +18 -0
- data/doc/classes/Dnsruby/Header.src/M000233.html +18 -0
- data/doc/classes/Dnsruby/Header.src/M000234.html +21 -0
- data/doc/classes/Dnsruby/Header.src/M000235.html +20 -0
- data/doc/classes/Dnsruby/Header.src/M000236.html +32 -0
- data/doc/classes/Dnsruby/Header.src/M000237.html +27 -0
- data/doc/classes/Dnsruby/Header.src/M000238.html +26 -0
- data/doc/classes/Dnsruby/Header.src/M000239.html +47 -0
- data/doc/classes/Dnsruby/Header.src/M000240.html +28 -0
- data/doc/classes/Dnsruby/Header.src/M000241.html +30 -0
- data/doc/classes/Dnsruby/Hosts.html +316 -0
- data/doc/classes/Dnsruby/Hosts.src/M000197.html +20 -0
- data/doc/classes/Dnsruby/Hosts.src/M000198.html +19 -0
- data/doc/classes/Dnsruby/Hosts.src/M000199.html +20 -0
- data/doc/classes/Dnsruby/Hosts.src/M000200.html +21 -0
- data/doc/classes/Dnsruby/Hosts.src/M000201.html +19 -0
- data/doc/classes/Dnsruby/Hosts.src/M000202.html +20 -0
- data/doc/classes/Dnsruby/Hosts.src/M000203.html +21 -0
- data/doc/classes/Dnsruby/IPv4.html +233 -0
- data/doc/classes/Dnsruby/IPv4.src/M000204.html +32 -0
- data/doc/classes/Dnsruby/IPv4.src/M000205.html +19 -0
- data/doc/classes/Dnsruby/IPv4.src/M000206.html +18 -0
- data/doc/classes/Dnsruby/IPv4.src/M000207.html +18 -0
- data/doc/classes/Dnsruby/IPv4.src/M000208.html +18 -0
- data/doc/classes/Dnsruby/IPv6.html +281 -0
- data/doc/classes/Dnsruby/IPv6.src/M000242.html +60 -0
- data/doc/classes/Dnsruby/IPv6.src/M000243.html +22 -0
- data/doc/classes/Dnsruby/IPv6.src/M000244.html +20 -0
- data/doc/classes/Dnsruby/IPv6.src/M000245.html +18 -0
- data/doc/classes/Dnsruby/Message.html +803 -0
- data/doc/classes/Dnsruby/Message.src/M000119.html +38 -0
- data/doc/classes/Dnsruby/Message.src/M000120.html +26 -0
- data/doc/classes/Dnsruby/Message.src/M000121.html +22 -0
- data/doc/classes/Dnsruby/Message.src/M000122.html +22 -0
- data/doc/classes/Dnsruby/Message.src/M000123.html +20 -0
- data/doc/classes/Dnsruby/Message.src/M000124.html +20 -0
- data/doc/classes/Dnsruby/Message.src/M000125.html +20 -0
- data/doc/classes/Dnsruby/Message.src/M000126.html +20 -0
- data/doc/classes/Dnsruby/Message.src/M000127.html +18 -0
- data/doc/classes/Dnsruby/Message.src/M000128.html +20 -0
- data/doc/classes/Dnsruby/Message.src/M000129.html +23 -0
- data/doc/classes/Dnsruby/Message.src/M000130.html +30 -0
- data/doc/classes/Dnsruby/Message.src/M000131.html +20 -0
- data/doc/classes/Dnsruby/Message.src/M000132.html +18 -0
- data/doc/classes/Dnsruby/Message.src/M000133.html +56 -0
- data/doc/classes/Dnsruby/Message.src/M000134.html +35 -0
- data/doc/classes/Dnsruby/Message.src/M000135.html +46 -0
- data/doc/classes/Dnsruby/Message/Section.html +160 -0
- data/doc/classes/Dnsruby/Message/Section.src/M000141.html +29 -0
- data/doc/classes/Dnsruby/Message/Section.src/M000142.html +30 -0
- data/doc/classes/Dnsruby/MetaTypes.html +136 -0
- data/doc/classes/Dnsruby/Modes.html +171 -0
- data/doc/classes/Dnsruby/NXDomain.html +119 -0
- data/doc/classes/Dnsruby/Name.html +330 -0
- data/doc/classes/Dnsruby/Name.src/M000104.html +28 -0
- data/doc/classes/Dnsruby/Name.src/M000105.html +20 -0
- data/doc/classes/Dnsruby/Name.src/M000106.html +18 -0
- data/doc/classes/Dnsruby/Name.src/M000107.html +21 -0
- data/doc/classes/Dnsruby/Name.src/M000108.html +22 -0
- data/doc/classes/Dnsruby/Name.src/M000109.html +18 -0
- data/doc/classes/Dnsruby/Name/Label.html +300 -0
- data/doc/classes/Dnsruby/Name/Label.src/M000110.html +21 -0
- data/doc/classes/Dnsruby/Name/Label.src/M000111.html +18 -0
- data/doc/classes/Dnsruby/Name/Label.src/M000112.html +22 -0
- data/doc/classes/Dnsruby/Name/Label.src/M000113.html +18 -0
- data/doc/classes/Dnsruby/Name/Label.src/M000114.html +18 -0
- data/doc/classes/Dnsruby/Name/Label.src/M000115.html +18 -0
- data/doc/classes/Dnsruby/Name/Label.src/M000116.html +18 -0
- data/doc/classes/Dnsruby/Name/Label.src/M000117.html +18 -0
- data/doc/classes/Dnsruby/Name/Label.src/M000118.html +18 -0
- data/doc/classes/Dnsruby/NotImp.html +119 -0
- data/doc/classes/Dnsruby/OpCode.html +146 -0
- data/doc/classes/Dnsruby/OtherResolvError.html +119 -0
- data/doc/classes/Dnsruby/QTypes.html +146 -0
- data/doc/classes/Dnsruby/Question.html +301 -0
- data/doc/classes/Dnsruby/Question.src/M000226.html +47 -0
- data/doc/classes/Dnsruby/Question.src/M000227.html +18 -0
- data/doc/classes/Dnsruby/Question.src/M000228.html +18 -0
- data/doc/classes/Dnsruby/Question.src/M000229.html +32 -0
- data/doc/classes/Dnsruby/Question.src/M000230.html +18 -0
- data/doc/classes/Dnsruby/RCode.html +211 -0
- data/doc/classes/Dnsruby/RR.html +648 -0
- data/doc/classes/Dnsruby/RR.src/M000001.html +18 -0
- data/doc/classes/Dnsruby/RR.src/M000002.html +22 -0
- data/doc/classes/Dnsruby/RR.src/M000003.html +18 -0
- data/doc/classes/Dnsruby/RR.src/M000004.html +18 -0
- data/doc/classes/Dnsruby/RR.src/M000005.html +26 -0
- data/doc/classes/Dnsruby/RR.src/M000006.html +18 -0
- data/doc/classes/Dnsruby/RR.src/M000007.html +36 -0
- data/doc/classes/Dnsruby/RR.src/M000008.html +100 -0
- data/doc/classes/Dnsruby/RR.src/M000009.html +18 -0
- data/doc/classes/Dnsruby/RR.src/M000010.html +18 -0
- data/doc/classes/Dnsruby/RR.src/M000011.html +22 -0
- data/doc/classes/Dnsruby/RR.src/M000012.html +29 -0
- data/doc/classes/Dnsruby/RR.src/M000013.html +24 -0
- data/doc/classes/Dnsruby/RR/ANY.html +133 -0
- data/doc/classes/Dnsruby/RR/CERT.html +180 -0
- data/doc/classes/Dnsruby/RR/CERT/CertificateTypes.html +169 -0
- data/doc/classes/Dnsruby/RR/CNAME.html +151 -0
- data/doc/classes/Dnsruby/RR/DNAME.html +150 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.html +422 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000044.html +20 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000045.html +21 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000046.html +28 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000047.html +22 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000048.html +18 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000049.html +22 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000050.html +18 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000051.html +26 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000052.html +38 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000053.html +45 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000054.html +21 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000055.html +24 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000056.html +32 -0
- data/doc/classes/Dnsruby/RR/DNSKEY.src/M000057.html +24 -0
- data/doc/classes/Dnsruby/RR/DS.html +286 -0
- data/doc/classes/Dnsruby/RR/DS.src/M000039.html +22 -0
- data/doc/classes/Dnsruby/RR/DS.src/M000040.html +28 -0
- data/doc/classes/Dnsruby/RR/DS.src/M000041.html +24 -0
- data/doc/classes/Dnsruby/RR/DS.src/M000042.html +28 -0
- data/doc/classes/Dnsruby/RR/DS.src/M000043.html +36 -0
- data/doc/classes/Dnsruby/RR/DomainName.html +175 -0
- data/doc/classes/Dnsruby/RR/DomainName.src/M000083.html +18 -0
- data/doc/classes/Dnsruby/RR/Generic.html +133 -0
- data/doc/classes/Dnsruby/RR/HINFO.html +155 -0
- data/doc/classes/Dnsruby/RR/IN.html +155 -0
- data/doc/classes/Dnsruby/RR/IN/A.html +200 -0
- data/doc/classes/Dnsruby/RR/IN/A.src/M000017.html +18 -0
- data/doc/classes/Dnsruby/RR/IN/A.src/M000018.html +18 -0
- data/doc/classes/Dnsruby/RR/IN/A.src/M000019.html +18 -0
- data/doc/classes/Dnsruby/RR/IN/AAAA.html +139 -0
- data/doc/classes/Dnsruby/RR/IN/AFSDB.html +145 -0
- data/doc/classes/Dnsruby/RR/IN/PX.html +143 -0
- data/doc/classes/Dnsruby/RR/IN/SRV.html +238 -0
- data/doc/classes/Dnsruby/RR/IN/SRV.src/M000014.html +29 -0
- data/doc/classes/Dnsruby/RR/IN/SRV.src/M000015.html +26 -0
- data/doc/classes/Dnsruby/RR/IN/SRV.src/M000016.html +22 -0
- data/doc/classes/Dnsruby/RR/IN/WKS.html +166 -0
- data/doc/classes/Dnsruby/RR/IN/WKS.src/M000020.html +20 -0
- data/doc/classes/Dnsruby/RR/ISDN.html +155 -0
- data/doc/classes/Dnsruby/RR/LOC.html +395 -0
- data/doc/classes/Dnsruby/RR/LOC.src/M000025.html +32 -0
- data/doc/classes/Dnsruby/RR/LOC.src/M000026.html +23 -0
- data/doc/classes/Dnsruby/RR/LOC.src/M000027.html +25 -0
- data/doc/classes/Dnsruby/RR/LOC.src/M000028.html +21 -0
- data/doc/classes/Dnsruby/RR/LOC.src/M000029.html +20 -0
- data/doc/classes/Dnsruby/RR/LOC.src/M000030.html +23 -0
- data/doc/classes/Dnsruby/RR/MB.html +150 -0
- data/doc/classes/Dnsruby/RR/MG.html +150 -0
- data/doc/classes/Dnsruby/RR/MINFO.html +156 -0
- data/doc/classes/Dnsruby/RR/MR.html +150 -0
- data/doc/classes/Dnsruby/RR/MX.html +155 -0
- data/doc/classes/Dnsruby/RR/NAPTR.html +190 -0
- data/doc/classes/Dnsruby/RR/NS.html +151 -0
- data/doc/classes/Dnsruby/RR/NSAP.html +293 -0
- data/doc/classes/Dnsruby/RR/NSAP.src/M000093.html +19 -0
- data/doc/classes/Dnsruby/RR/NSAP.src/M000094.html +19 -0
- data/doc/classes/Dnsruby/RR/NSAP.src/M000095.html +22 -0
- data/doc/classes/Dnsruby/RR/NSAP.src/M000096.html +31 -0
- data/doc/classes/Dnsruby/RR/NSEC.html +301 -0
- data/doc/classes/Dnsruby/RR/NSEC.src/M000031.html +19 -0
- data/doc/classes/Dnsruby/RR/NSEC.src/M000032.html +18 -0
- data/doc/classes/Dnsruby/RR/NSEC.src/M000033.html +34 -0
- data/doc/classes/Dnsruby/RR/NSEC.src/M000034.html +18 -0
- data/doc/classes/Dnsruby/RR/NSEC.src/M000035.html +71 -0
- data/doc/classes/Dnsruby/RR/NSEC.src/M000036.html +18 -0
- data/doc/classes/Dnsruby/RR/NSEC.src/M000037.html +80 -0
- data/doc/classes/Dnsruby/RR/NSEC.src/M000038.html +23 -0
- data/doc/classes/Dnsruby/RR/NSEC3.html +366 -0
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000085.html +28 -0
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000086.html +18 -0
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000087.html +18 -0
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000088.html +22 -0
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000089.html +18 -0
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000090.html +21 -0
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000091.html +21 -0
- data/doc/classes/Dnsruby/RR/NSEC3.src/M000092.html +29 -0
- data/doc/classes/Dnsruby/RR/NSEC3PARAM.html +279 -0
- data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000077.html +28 -0
- data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000078.html +18 -0
- data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000079.html +22 -0
- data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000080.html +21 -0
- data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000081.html +25 -0
- data/doc/classes/Dnsruby/RR/PTR.html +132 -0
- data/doc/classes/Dnsruby/RR/RP.html +183 -0
- data/doc/classes/Dnsruby/RR/RP.src/M000082.html +19 -0
- data/doc/classes/Dnsruby/RR/RRSIG.html +357 -0
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000097.html +26 -0
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000098.html +28 -0
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000099.html +23 -0
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000100.html +23 -0
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000101.html +46 -0
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000102.html +50 -0
- data/doc/classes/Dnsruby/RR/RRSIG.src/M000103.html +27 -0
- data/doc/classes/Dnsruby/RR/RT.html +155 -0
- data/doc/classes/Dnsruby/RR/SOA.html +233 -0
- data/doc/classes/Dnsruby/RR/SOA.src/M000066.html +24 -0
- data/doc/classes/Dnsruby/RR/SOA.src/M000067.html +27 -0
- data/doc/classes/Dnsruby/RR/SPF.html +138 -0
- data/doc/classes/Dnsruby/RR/TKEY.html +313 -0
- data/doc/classes/Dnsruby/RR/TKEY.src/M000021.html +19 -0
- data/doc/classes/Dnsruby/RR/TKEY.src/M000022.html +29 -0
- data/doc/classes/Dnsruby/RR/TKEY.src/M000023.html +21 -0
- data/doc/classes/Dnsruby/RR/TKEY.src/M000024.html +29 -0
- data/doc/classes/Dnsruby/RR/TSIG.html +524 -0
- data/doc/classes/Dnsruby/RR/TSIG.src/M000068.html +24 -0
- data/doc/classes/Dnsruby/RR/TSIG.src/M000069.html +32 -0
- data/doc/classes/Dnsruby/RR/TSIG.src/M000070.html +54 -0
- data/doc/classes/Dnsruby/RR/TSIG.src/M000071.html +121 -0
- data/doc/classes/Dnsruby/RR/TSIG.src/M000072.html +33 -0
- data/doc/classes/Dnsruby/RR/TSIG.src/M000073.html +25 -0
- data/doc/classes/Dnsruby/RR/TSIG.src/M000074.html +36 -0
- data/doc/classes/Dnsruby/RR/TSIG.src/M000075.html +22 -0
- data/doc/classes/Dnsruby/RR/TSIG.src/M000076.html +29 -0
- data/doc/classes/Dnsruby/RR/TXT.html +233 -0
- data/doc/classes/Dnsruby/RR/TXT.src/M000061.html +18 -0
- data/doc/classes/Dnsruby/RR/TXT.src/M000062.html +18 -0
- data/doc/classes/Dnsruby/RR/TXT.src/M000063.html +20 -0
- data/doc/classes/Dnsruby/RR/TXT.src/M000064.html +27 -0
- data/doc/classes/Dnsruby/RR/TXT.src/M000065.html +25 -0
- data/doc/classes/Dnsruby/RR/X25.html +203 -0
- data/doc/classes/Dnsruby/RR/X25.src/M000058.html +18 -0
- data/doc/classes/Dnsruby/RR/X25.src/M000059.html +18 -0
- data/doc/classes/Dnsruby/RR/X25.src/M000060.html +22 -0
- data/doc/classes/Dnsruby/RRSet.html +404 -0
- data/doc/classes/Dnsruby/RRSet.src/M000211.html +23 -0
- data/doc/classes/Dnsruby/RRSet.src/M000212.html +18 -0
- data/doc/classes/Dnsruby/RRSet.src/M000213.html +18 -0
- data/doc/classes/Dnsruby/RRSet.src/M000214.html +47 -0
- data/doc/classes/Dnsruby/RRSet.src/M000215.html +42 -0
- data/doc/classes/Dnsruby/RRSet.src/M000216.html +18 -0
- data/doc/classes/Dnsruby/RRSet.src/M000217.html +20 -0
- data/doc/classes/Dnsruby/RRSet.src/M000218.html +18 -0
- data/doc/classes/Dnsruby/RRSet.src/M000219.html +18 -0
- data/doc/classes/Dnsruby/RRSet.src/M000220.html +18 -0
- data/doc/classes/Dnsruby/RRSet.src/M000221.html +18 -0
- data/doc/classes/Dnsruby/RRSet.src/M000222.html +22 -0
- data/doc/classes/Dnsruby/RRSet.src/M000223.html +18 -0
- data/doc/classes/Dnsruby/RRSet.src/M000224.html +22 -0
- data/doc/classes/Dnsruby/RRSet.src/M000225.html +18 -0
- data/doc/classes/Dnsruby/Refused.html +119 -0
- data/doc/classes/Dnsruby/Resolv.html +401 -0
- data/doc/classes/Dnsruby/Resolv.src/M000159.html +18 -0
- data/doc/classes/Dnsruby/Resolv.src/M000160.html +18 -0
- data/doc/classes/Dnsruby/Resolv.src/M000161.html +18 -0
- data/doc/classes/Dnsruby/Resolv.src/M000162.html +18 -0
- data/doc/classes/Dnsruby/Resolv.src/M000163.html +18 -0
- data/doc/classes/Dnsruby/Resolv.src/M000164.html +18 -0
- data/doc/classes/Dnsruby/Resolv.src/M000165.html +18 -0
- data/doc/classes/Dnsruby/Resolv.src/M000166.html +19 -0
- data/doc/classes/Dnsruby/Resolv.src/M000167.html +20 -0
- data/doc/classes/Dnsruby/Resolv.src/M000168.html +29 -0
- data/doc/classes/Dnsruby/Resolv.src/M000169.html +19 -0
- data/doc/classes/Dnsruby/Resolv.src/M000170.html +20 -0
- data/doc/classes/Dnsruby/Resolv.src/M000171.html +25 -0
- data/doc/classes/Dnsruby/ResolvError.html +117 -0
- data/doc/classes/Dnsruby/ResolvTimeout.html +117 -0
- data/doc/classes/Dnsruby/Resolver.html +1055 -0
- data/doc/classes/Dnsruby/Resolver.src/M000271.html +21 -0
- data/doc/classes/Dnsruby/Resolver.src/M000272.html +27 -0
- data/doc/classes/Dnsruby/Resolver.src/M000273.html +28 -0
- data/doc/classes/Dnsruby/Resolver.src/M000274.html +18 -0
- data/doc/classes/Dnsruby/Resolver.src/M000275.html +51 -0
- data/doc/classes/Dnsruby/Resolver.src/M000276.html +21 -0
- data/doc/classes/Dnsruby/Resolver.src/M000277.html +22 -0
- data/doc/classes/Dnsruby/Resolver.src/M000278.html +18 -0
- data/doc/classes/Dnsruby/Resolver.src/M000279.html +20 -0
- data/doc/classes/Dnsruby/Resolver.src/M000280.html +19 -0
- data/doc/classes/Dnsruby/Resolver.src/M000281.html +19 -0
- data/doc/classes/Dnsruby/Resolver.src/M000282.html +19 -0
- data/doc/classes/Dnsruby/Resolver.src/M000283.html +19 -0
- data/doc/classes/Dnsruby/Resolver.src/M000284.html +19 -0
- data/doc/classes/Dnsruby/Resolver.src/M000285.html +19 -0
- data/doc/classes/Dnsruby/Resolver.src/M000286.html +19 -0
- data/doc/classes/Dnsruby/Resolver.src/M000287.html +19 -0
- data/doc/classes/Dnsruby/Resolver.src/M000288.html +19 -0
- data/doc/classes/Dnsruby/Resolver.src/M000289.html +19 -0
- data/doc/classes/Dnsruby/Resolver.src/M000290.html +19 -0
- data/doc/classes/Dnsruby/Resolver.src/M000291.html +19 -0
- data/doc/classes/Dnsruby/Resolver.src/M000292.html +26 -0
- data/doc/classes/Dnsruby/Resolver.src/M000293.html +18 -0
- data/doc/classes/Dnsruby/Resolver.src/M000294.html +23 -0
- data/doc/classes/Dnsruby/Resolver.src/M000295.html +18 -0
- data/doc/classes/Dnsruby/ServFail.html +119 -0
- data/doc/classes/Dnsruby/SingleResolver.html +674 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000172.html +18 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000173.html +24 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000174.html +36 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000175.html +18 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000176.html +19 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000177.html +50 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000178.html +19 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000179.html +21 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000180.html +25 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000181.html +54 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000182.html +27 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000183.html +27 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000184.html +35 -0
- data/doc/classes/Dnsruby/SingleResolver.src/M000185.html +21 -0
- data/doc/classes/Dnsruby/TheLog.html +196 -0
- data/doc/classes/Dnsruby/TheLog.src/M000246.html +20 -0
- data/doc/classes/Dnsruby/TheLog.src/M000247.html +20 -0
- data/doc/classes/Dnsruby/TheLog.src/M000248.html +20 -0
- data/doc/classes/Dnsruby/Types.html +436 -0
- data/doc/classes/Dnsruby/Update.html +368 -0
- data/doc/classes/Dnsruby/Update.src/M000253.html +32 -0
- data/doc/classes/Dnsruby/Update.src/M000254.html +36 -0
- data/doc/classes/Dnsruby/Update.src/M000255.html +32 -0
- data/doc/classes/Dnsruby/Update.src/M000256.html +41 -0
- data/doc/classes/Dnsruby/Update.src/M000257.html +34 -0
- data/doc/classes/Dnsruby/VerifyError.html +119 -0
- data/doc/classes/Dnsruby/ZoneTransfer.html +300 -0
- data/doc/classes/Dnsruby/ZoneTransfer.src/M000143.html +18 -0
- data/doc/classes/Dnsruby/ZoneTransfer.src/M000144.html +24 -0
- data/doc/classes/Dnsruby/ZoneTransfer.src/M000145.html +35 -0
- data/doc/classes/Dnsruby/ZoneTransfer/Delta.html +200 -0
- data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/M000146.html +19 -0
- data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/M000147.html +19 -0
- data/doc/created.rid +1 -0
- data/doc/files/lib/Dnsruby/Config_rb.html +101 -0
- data/doc/files/lib/Dnsruby/DNS_rb.html +110 -0
- data/doc/files/lib/Dnsruby/Hosts_rb.html +108 -0
- data/doc/files/lib/Dnsruby/Resolver_rb.html +109 -0
- data/doc/files/lib/Dnsruby/SingleResolver_rb.html +108 -0
- data/doc/files/lib/Dnsruby/TheLog_rb.html +110 -0
- data/doc/files/lib/Dnsruby/code_mapper_rb.html +101 -0
- data/doc/files/lib/Dnsruby/dnssec_rb.html +107 -0
- data/doc/files/lib/Dnsruby/event_machine_interface_rb.html +108 -0
- data/doc/files/lib/Dnsruby/ipv4_rb.html +101 -0
- data/doc/files/lib/Dnsruby/ipv6_rb.html +101 -0
- data/doc/files/lib/Dnsruby/message_rb.html +109 -0
- data/doc/files/lib/Dnsruby/name_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/AAAA_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/AFSDB_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/A_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/CERT_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/DNSKEY_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/DS_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/HINFO_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/IN_rb.html +112 -0
- data/doc/files/lib/Dnsruby/resource/ISDN_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/LOC_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/MINFO_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/MX_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/NAPTR_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/NSAP_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/NSEC3PARAM_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/NSEC3_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/NSEC_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/OPT_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/PX_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/RP_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/RRSIG_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/RT_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/SOA_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/SPF_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/SRV_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/TKEY_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/TSIG_rb.html +114 -0
- data/doc/files/lib/Dnsruby/resource/TXT_rb.html +108 -0
- data/doc/files/lib/Dnsruby/resource/X25_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/domain_name_rb.html +101 -0
- data/doc/files/lib/Dnsruby/resource/generic_rb.html +131 -0
- data/doc/files/lib/Dnsruby/resource/resource_rb.html +110 -0
- data/doc/files/lib/Dnsruby/select_thread_rb.html +111 -0
- data/doc/files/lib/Dnsruby/update_rb.html +101 -0
- data/doc/files/lib/Dnsruby/zone_transfer_rb.html +101 -0
- data/doc/files/lib/dnsruby_rb.html +118 -0
- data/doc/fr_class_index.html +108 -0
- data/doc/fr_file_index.html +75 -0
- data/doc/fr_method_index.html +321 -0
- data/doc/index.html +24 -0
- data/lib/Dnsruby/DNS.rb +3 -3
- data/lib/Dnsruby/Resolver.rb +11 -2
- data/lib/Dnsruby/SingleResolver.rb +28 -20
- data/lib/Dnsruby/code_mapper.rb +9 -4
- data/lib/Dnsruby/dnssec.rb +6 -3
- data/lib/Dnsruby/message.rb +108 -32
- data/lib/Dnsruby/resource/DLV.rb +27 -0
- data/lib/Dnsruby/resource/DNSKEY.rb +29 -7
- data/lib/Dnsruby/resource/DS.rb +97 -18
- data/lib/Dnsruby/resource/DS.rb.new +202 -0
- data/lib/Dnsruby/resource/DS.rb.orig +162 -0
- data/lib/Dnsruby/resource/NSEC.rb +22 -6
- data/lib/Dnsruby/resource/OPT.rb +14 -13
- data/lib/Dnsruby/resource/PX.rb +1 -1
- data/lib/Dnsruby/resource/RRSIG.rb +17 -9
- data/lib/Dnsruby/resource/RT.rb +1 -1
- data/lib/Dnsruby/resource/TSIG.rb +4 -0
- data/lib/Dnsruby/resource/generic.rb +2 -1
- data/lib/Dnsruby/resource/resource.rb +23 -8
- data/lib/Dnsruby/select_thread.rb +15 -7
- data/lib/Dnsruby/update.rb +3 -3
- data/lib/Dnsruby/zone_transfer.rb +1 -1
- data/lib/dnsruby.rb +4 -2
- data/test/tc_dns.rb +1 -1
- data/test/tc_ds.rb +47 -4
- data/test/tc_em_deferrable.rb +38 -0
- data/test/tc_event_machine_res.rb +1 -1
- data/test/tc_header.rb +2 -2
- data/test/tc_inet6.rb +170 -0
- data/test/tc_nsec3.rb +6 -5
- data/test/tc_packet.rb +18 -4
- data/test/tc_queue.rb +17 -0
- data/test/tc_resolver.rb +14 -14
- data/test/tc_rr-opt.rb +21 -2
- data/test/tc_rr.rb +4 -0
- data/test/tc_rrset.rb +2 -2
- data/test/tc_rrsig.rb +2 -2
- data/test/tc_tcp.rb +1 -1
- data/test/tc_tsig.rb +6 -6
- data/test/ts_offline.rb +17 -2
- data/test/ts_online.rb +4 -0
- metadata +496 -3
data/test/tc_header.rb
CHANGED
|
@@ -58,9 +58,9 @@ class TestHeader < Test::Unit::TestCase
|
|
|
58
58
|
assert_equal(header.qr, true, "qr() works")
|
|
59
59
|
|
|
60
60
|
header.rcode="NOERROR"
|
|
61
|
-
assert_equal(header.
|
|
61
|
+
assert_equal(header.get_header_rcode, RCode::NOERROR, "rcode() works")
|
|
62
62
|
header.rcode=RCode.NOERROR
|
|
63
|
-
assert_equal(header.
|
|
63
|
+
assert_equal(header.get_header_rcode.string, "NOERROR", "rcode() works")
|
|
64
64
|
|
|
65
65
|
header.qdcount=1
|
|
66
66
|
header.ancount=2
|
data/test/tc_inet6.rb
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
#--
|
|
2
|
+
#Copyright 2007 Nominet UK
|
|
3
|
+
#
|
|
4
|
+
#Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
#you may not use this file except in compliance with the License.
|
|
6
|
+
#You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
#Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
#distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
#See the License for the specific language governing permissions and
|
|
14
|
+
#limitations under the License.
|
|
15
|
+
#++
|
|
16
|
+
require 'rubygems'
|
|
17
|
+
require 'test/unit'
|
|
18
|
+
require 'Net/DNS'
|
|
19
|
+
require 'socket'
|
|
20
|
+
class TestInet6 < Test::Unit::TestCase
|
|
21
|
+
def ip6ok?
|
|
22
|
+
if (@checkedip6)
|
|
23
|
+
if !@ip6ok
|
|
24
|
+
return false
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
@checkedip6 = true
|
|
28
|
+
@ip6ok = true
|
|
29
|
+
# First use the local resolver to query for the AAAA record of a
|
|
30
|
+
# well known nameserver, than use v6 transport to get to that record.
|
|
31
|
+
puts ""
|
|
32
|
+
puts ""
|
|
33
|
+
puts "\tTesting for global IPv6 connectivity...\n"
|
|
34
|
+
puts "\t\t preparing..."
|
|
35
|
+
|
|
36
|
+
tstsock = UDPSocket.new()
|
|
37
|
+
begin
|
|
38
|
+
tstsock.bind("::1", 8765)
|
|
39
|
+
rescue Exception
|
|
40
|
+
# raise RuntimeError, "\n\n\t\tFailed to bind to ::1\n\t\t#{$!}\n\n\t\tWe assume there is no IPv6 connectivity and skip the tests\n\n"
|
|
41
|
+
puts "\n\n\t\tFailed to bind to ::1\n\t\t#{$!}\n\n\t\tWe assume there is no IPv6 connectivity and skip the tests\n\n"
|
|
42
|
+
@ip6ok=false
|
|
43
|
+
return false
|
|
44
|
+
ensure
|
|
45
|
+
tstsock.close
|
|
46
|
+
end
|
|
47
|
+
return true
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_inet6
|
|
51
|
+
if (!ip6ok?)
|
|
52
|
+
return
|
|
53
|
+
end
|
|
54
|
+
res=Net::DNS::Resolver.new
|
|
55
|
+
# res.debug(1)
|
|
56
|
+
nsanswer=res.send("ripe.net",'NS','IN')
|
|
57
|
+
assert_instance_of(Net::DNS::RR::NS, (nsanswer.answer)[0], "Preparing for v6 transport, got NS records for ripe.net")
|
|
58
|
+
|
|
59
|
+
# foreach ns (nsanswer.answer){
|
|
60
|
+
nsanswer.answer.each do |ns|
|
|
61
|
+
next if ns.nsdname !~ /ripe\.net/ # User ripe.net only
|
|
62
|
+
a_answer=res.send(ns.nsdname, 'A','IN')
|
|
63
|
+
next if (a_answer.header.ancount == 0)
|
|
64
|
+
assert_instance_of(Net::DNS::RR::A, (a_answer.answer)[0], "Preparing for v4 transport, got A records for " + ns.nsdname)
|
|
65
|
+
a_address=(a_answer.answer)[0].address
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
puts("\n\t\t Will try to connect to " + ns.nsdname + " (#{a_address})")
|
|
69
|
+
break
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
aaaa_address=""
|
|
74
|
+
# foreach ns (nsanswer.answer){
|
|
75
|
+
nsanswer.answer.each do |ns|
|
|
76
|
+
next if ns.nsdname !~ /ripe\.net/ # User ripe.net only
|
|
77
|
+
aaaa_answer=res.send(ns.nsdname,'AAAA','IN')
|
|
78
|
+
next if (aaaa_answer.header.ancount == 0)
|
|
79
|
+
assert_equal((aaaa_answer.answer)[0].type,"AAAA", "Preparing for v6 transport, got AAAA records for " + ns.nsdname)
|
|
80
|
+
aaaa_address=(aaaa_answer.answer)[0].address
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
puts("\n\t\t Will try to connect to #{ns.nsdname} (#{aaaa_address})")
|
|
84
|
+
break
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
res.nameservers=(aaaa_address)
|
|
88
|
+
# res.print
|
|
89
|
+
answer=res.send("ripe.net",'SOA','IN')
|
|
90
|
+
if(res.errorstring =~ /Send error: /)
|
|
91
|
+
puts "\n\t\t Connection failed: " + res.errorstring
|
|
92
|
+
puts "\n\t\t It seems you do not have global IPv6 connectivity' \n"
|
|
93
|
+
puts "\t\t This is not an error in Net::DNS \n"
|
|
94
|
+
|
|
95
|
+
puts "\t\t You can confirm this by trying 'ping6 " + aaaa_address + "' \n\n"
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
# answer.print
|
|
101
|
+
assert_equal((answer.answer)[0].type, "SOA","Query over udp6 succeeded")
|
|
102
|
+
|
|
103
|
+
res.usevc(1)
|
|
104
|
+
res.force_v4(1)
|
|
105
|
+
# res.print
|
|
106
|
+
# res.debug(1)
|
|
107
|
+
answer=res.send("ripe.net",'SOA','IN')
|
|
108
|
+
assert_equal(res.errorstring,"no nameservers","Correct errorstring when forcing v4")
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
res.force_v4(0)
|
|
112
|
+
answer=res.send("ripe.net",'NS','IN')
|
|
113
|
+
if (answer)
|
|
114
|
+
assert_equal((answer.answer)[0].type, "NS","Query over tcp6 succeeded")
|
|
115
|
+
else
|
|
116
|
+
puts "You can safely ignore the following message:"
|
|
117
|
+
puts(res.errorstring) if (res.errorstring != "connection failed(IPv6 socket failure)")
|
|
118
|
+
puts("configuring " + aaaa_address + " " + a_address + " as nameservers")
|
|
119
|
+
res.nameservers(aaaa_address,a_address)
|
|
120
|
+
answer = nil
|
|
121
|
+
# res.print
|
|
122
|
+
answer=res.send("ripe.net",'NS','IN')
|
|
123
|
+
assert_equal((answer.answer)[0].type, "NS","Fallback to V4 succeeded")
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def test_axfr
|
|
134
|
+
if (!ip6ok?)
|
|
135
|
+
return
|
|
136
|
+
end
|
|
137
|
+
#
|
|
138
|
+
# Now test AXFR functionality.
|
|
139
|
+
#
|
|
140
|
+
#
|
|
141
|
+
# First use the local resolver to query for the AAAA record of a
|
|
142
|
+
|
|
143
|
+
aaaa_address=""
|
|
144
|
+
res2=Net::DNS::Resolver.new
|
|
145
|
+
# res2.debug(1)
|
|
146
|
+
nsanswer=res2.send("net-dns.org",'NS','IN')
|
|
147
|
+
assert_equal((nsanswer.answer)[0].type, "NS","Preparing for v6 transport, got NS records for net-dns.org")
|
|
148
|
+
# foreach ns (nsanswer.answer){
|
|
149
|
+
nsanswer.answer.each do |ns|
|
|
150
|
+
# next if ns.nsdname !~ /ripe\.net/ # User rupe.net only
|
|
151
|
+
aaaa_answer=res2.send(ns.nsdname,'AAAA','IN')
|
|
152
|
+
next if (aaaa_answer.header.ancount == 0)
|
|
153
|
+
assert_equal((aaaa_answer.answer)[0].type,"AAAA", "Preparing for v6 transport, got AAAA records for " + ns.nsdname)
|
|
154
|
+
aaaa_address=(aaaa_answer.answer)[0].address
|
|
155
|
+
|
|
156
|
+
puts("\n\t\t Trying to connect to " + ns.nsdname + " (#{aaaa_address})")
|
|
157
|
+
break
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
res2.nameservers=(aaaa_address)
|
|
161
|
+
# res2.print
|
|
162
|
+
|
|
163
|
+
socket=res2.axfr_start('example.com')
|
|
164
|
+
|
|
165
|
+
assert_instance_of(Socket, socket,"axfr_start returns IPv6 Socket")
|
|
166
|
+
(rr,err)=res2.axfr_next
|
|
167
|
+
assert_equal(res2.errorstring,'Response code from server: NOTAUTH',"Transfer is not authorized (but our connection worked)")
|
|
168
|
+
|
|
169
|
+
end
|
|
170
|
+
end
|
data/test/tc_nsec3.rb
CHANGED
|
@@ -40,11 +40,12 @@ class Nsec3Test < Test::Unit::TestCase
|
|
|
40
40
|
fail
|
|
41
41
|
rescue DecodeError
|
|
42
42
|
end
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
# Be liberal in what you accept...
|
|
44
|
+
# begin
|
|
45
|
+
# nsec.hash_alg = 8
|
|
46
|
+
# fail
|
|
47
|
+
# rescue DecodeError
|
|
48
|
+
# end
|
|
48
49
|
begin
|
|
49
50
|
nsec.flags = 2
|
|
50
51
|
fail
|
data/test/tc_packet.rb
CHANGED
|
@@ -114,21 +114,35 @@ class TestPacket < Test::Unit::TestCase
|
|
|
114
114
|
00 00 38 40 00 05 46 00 00 00 1c 20 00 00 29 10
|
|
115
115
|
00 00 00 80 00 00 05 00 00 00 00 30
|
|
116
116
|
}
|
|
117
|
+
|
|
118
|
+
uuencodedPacket = %w{
|
|
119
|
+
ba 91 81 80 00 01
|
|
120
|
+
00 04 00 00 00 01 07 65 78 61 6d 70 6c 65 03 63
|
|
121
|
+
6f 6d 00 00 ff 00 01 c0 0c 00 02 00 01 00 02 9f
|
|
122
|
+
f4 00 14 01 61 0c 69 61 6e 61 2d 73 65 72 76 65
|
|
123
|
+
72 73 03 6e 65 74 00 c0 0c 00 02 00 01 00 02 9f
|
|
124
|
+
f4 00 04 01 62 c0 2b c0 0c 00 01 00 01 00 02 9f
|
|
125
|
+
7e 00 04 d0 4d bc a6 c0 0c 00 06 00 01 00 02 9f
|
|
126
|
+
f4 00 31 04 64 6e 73 31 05 69 63 61 6e 6e 03 6f
|
|
127
|
+
72 67 00 0a 68 6f 73 74 6d 61 73 74 65 72 c0 6e
|
|
128
|
+
77 a1 2d b7 00 00 1c 20 00 00 0e 10 00 12 75 00
|
|
129
|
+
00 01 51 80 00 00 29 05 00 00 00 00 00 00 00
|
|
130
|
+
}
|
|
117
131
|
uuencodedPacket.map!{|e| e.hex}
|
|
118
132
|
packetdata = uuencodedPacket.pack('c*')
|
|
119
133
|
|
|
120
134
|
packet3 = Message.decode(packetdata)
|
|
121
|
-
assert(packet3, 'new
|
|
135
|
+
assert(packet3, 'new data returned something'); #28
|
|
122
136
|
|
|
123
137
|
assert_equal(packet3.header.qdcount, 1, 'header question count in syntetic packet correct'); #29
|
|
124
|
-
assert_equal(packet3.header.ancount,
|
|
125
|
-
assert_equal(packet3.header.nscount,
|
|
138
|
+
assert_equal(packet3.header.ancount, 4, 'header answer count in syntetic packet correct'); #30
|
|
139
|
+
assert_equal(packet3.header.nscount, 0, 'header authority count in syntetic packet correct'); #31
|
|
126
140
|
assert_equal(packet3.header.adcount, 1, 'header additional in sytnetic packet correct'); #32
|
|
127
141
|
|
|
128
142
|
rr=packet3.additional;
|
|
129
143
|
|
|
130
144
|
assert_equal(Types.OPT, rr[0].type, "Additional section packet is EDNS0 type"); #33
|
|
131
|
-
assert_equal(
|
|
145
|
+
assert_equal(1280, rr[0].klass.code, "EDNS0 packet size correct"); #34
|
|
132
146
|
|
|
133
147
|
# In theory its valid to have multiple questions in the question section.
|
|
134
148
|
# Not many servers digest it though.
|
data/test/tc_queue.rb
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
require 'dnsruby'
|
|
3
|
+
|
|
4
|
+
class TestQueue < Test::Unit::TestCase
|
|
5
|
+
def test_queue
|
|
6
|
+
q = Queue.new
|
|
7
|
+
r = Dnsruby::Resolver.new
|
|
8
|
+
timeout = 5
|
|
9
|
+
num_queries = 1000
|
|
10
|
+
r.query_timeout = timeout
|
|
11
|
+
num_queries.times do |i|
|
|
12
|
+
r.send_async(Dnsruby::Message.new("example#{i}.com"), q, i)
|
|
13
|
+
end
|
|
14
|
+
sleep(timeout * 1.5)
|
|
15
|
+
assert(q.size == num_queries, "#{num_queries} expected, but got #{q.size}")
|
|
16
|
+
end
|
|
17
|
+
end
|
data/test/tc_resolver.rb
CHANGED
|
@@ -86,26 +86,26 @@ class TestResolver < Test::Unit::TestCase
|
|
|
86
86
|
assert(!no_pointer)
|
|
87
87
|
end
|
|
88
88
|
|
|
89
|
-
def test_bad_host
|
|
90
|
-
res = Resolver.new({:nameserver => "localhost"})
|
|
91
|
-
res.retry_times=1
|
|
92
|
-
res.retry_delay=0
|
|
93
|
-
res.query_timeout = 1
|
|
94
|
-
q = Queue.new
|
|
95
|
-
res.send_async(Message.new("example.com", Types.A), q, q)
|
|
96
|
-
id, m, err = q.pop
|
|
97
|
-
assert(id==q)
|
|
98
|
-
assert(m == nil)
|
|
99
|
-
assert(err.kind_of?(OtherResolvError) || err.kind_of?(IOError), "OtherResolvError or IOError expected : got #{err.class}")
|
|
100
|
-
end
|
|
101
|
-
|
|
89
|
+
# def test_bad_host
|
|
90
|
+
# res = Resolver.new({:nameserver => "localhost"})
|
|
91
|
+
# res.retry_times=1
|
|
92
|
+
# res.retry_delay=0
|
|
93
|
+
# res.query_timeout = 1
|
|
94
|
+
# q = Queue.new
|
|
95
|
+
# res.send_async(Message.new("example.com", Types.A), q, q)
|
|
96
|
+
# id, m, err = q.pop
|
|
97
|
+
# assert(id==q)
|
|
98
|
+
# assert(m == nil)
|
|
99
|
+
# assert(err.kind_of?(OtherResolvError) || err.kind_of?(IOError), "OtherResolvError or IOError expected : got #{err.class}")
|
|
100
|
+
# end
|
|
101
|
+
#
|
|
102
102
|
def test_nxdomain
|
|
103
103
|
res=Resolver.new
|
|
104
104
|
q = Queue.new
|
|
105
105
|
res.send_async(Message.new("dklfjhdFHFHDVVUIEWRFDSAJKVCNASDLFJHN.com", Types.A), q, 1)
|
|
106
106
|
id, m, err = q.pop
|
|
107
107
|
assert(id==1)
|
|
108
|
-
assert(m.
|
|
108
|
+
assert(m.rcode == RCode.NXDOMAIN)
|
|
109
109
|
assert(err.kind_of?(NXDomain))
|
|
110
110
|
end
|
|
111
111
|
|
data/test/tc_rr-opt.rb
CHANGED
|
@@ -49,7 +49,6 @@ class TestRrOpt < Test::Unit::TestCase
|
|
|
49
49
|
q = Queue.new
|
|
50
50
|
Thread.new {
|
|
51
51
|
s = socket.recvfrom(65536)
|
|
52
|
-
print s.length
|
|
53
52
|
received_query = s[0]
|
|
54
53
|
socket.connect(s[1][2], s[1][1])
|
|
55
54
|
q.push(Message.decode(received_query))
|
|
@@ -77,6 +76,26 @@ class TestRrOpt < Test::Unit::TestCase
|
|
|
77
76
|
res = SingleResolver.new
|
|
78
77
|
res.udp_size = 4096
|
|
79
78
|
ret = res.query("overflow.dnsruby.validation-test-servers.nominet.org.uk", Types.TXT)
|
|
80
|
-
assert(ret.
|
|
79
|
+
assert(ret.rcode == RCode.NoError)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def test_decode_opt
|
|
83
|
+
# Create an OPT RR
|
|
84
|
+
size=2048;
|
|
85
|
+
ednsflags=0x9e22;
|
|
86
|
+
optrr = RR::OPT.new(size, ednsflags)
|
|
87
|
+
|
|
88
|
+
# Add it to a message
|
|
89
|
+
m = Message.new
|
|
90
|
+
m.add_additional(optrr)
|
|
91
|
+
|
|
92
|
+
# Encode the message
|
|
93
|
+
data = m.encode
|
|
94
|
+
|
|
95
|
+
# Decode it
|
|
96
|
+
m2 = Message.decode(data)
|
|
97
|
+
|
|
98
|
+
# Make sure there is an OPT RR there
|
|
99
|
+
assert(m2.rcode == RCode.NOERROR )
|
|
81
100
|
end
|
|
82
101
|
end
|
data/test/tc_rr.rb
CHANGED
|
@@ -215,6 +215,8 @@ class TestRR < Test::Unit::TestCase
|
|
|
215
215
|
x = ret_rr.send(key)
|
|
216
216
|
if (ret_rr.kind_of?RR::CERT and (key == :alg or key == :certtype))
|
|
217
217
|
assert_equal(value.to_s, x.code.to_s.downcase, "Packet returned wrong answer section for #{ret_rr.to_s}, #{key}")
|
|
218
|
+
elsif (ret_rr.kind_of?RR::TXT and (key == :strings))
|
|
219
|
+
assert_equal(value.to_s.downcase, x[0].to_s.downcase, "TXT strings wrong")
|
|
218
220
|
else
|
|
219
221
|
if (key == :type)
|
|
220
222
|
assert_equal(Types.new(value).to_s.downcase, x.to_s.downcase, "Packet returned wrong answer section for #{ret_rr.to_s}, #{key}")
|
|
@@ -242,6 +244,8 @@ class TestRR < Test::Unit::TestCase
|
|
|
242
244
|
ret = rr.send(meth)
|
|
243
245
|
if (rr.kind_of?RR::CERT and (meth == :alg or meth == :certtype))
|
|
244
246
|
assert_equal(data[meth].to_s, ret.code.to_s.downcase, "#{type} - #{meth}() correct")
|
|
247
|
+
elsif (rr.kind_of?RR::TXT and (meth == :strings))
|
|
248
|
+
assert_equal(data[meth].to_s, ret[0].to_s.downcase, "TXT strings wrong")
|
|
245
249
|
else
|
|
246
250
|
if (meth == :type)
|
|
247
251
|
assert_equal(Types.new(data[meth]).to_s.downcase, ret.to_s.downcase, "#{type} - #{meth}() correct");
|
data/test/tc_rrset.rb
CHANGED
|
@@ -36,8 +36,8 @@ class RrsetTest < Test::Unit::TestCase
|
|
|
36
36
|
:original_ttl => 3600,
|
|
37
37
|
:algorithm => Dnsruby::Algorithms::RSASHA1,
|
|
38
38
|
:labels => 3,
|
|
39
|
-
:expiration => Time.mktime(2003,03,22,17,31, 03)
|
|
40
|
-
:inception => Time.mktime(2003,02,20,17,31,03)
|
|
39
|
+
:expiration => Time.mktime(2003,03,22,17,31, 03),
|
|
40
|
+
:inception => Time.mktime(2003,02,20,17,31,03),
|
|
41
41
|
:key_tag => 2642
|
|
42
42
|
})
|
|
43
43
|
assert(!rrset.add(sig))
|
data/test/tc_rrsig.rb
CHANGED
|
@@ -16,8 +16,8 @@ class RrsigTest < Test::Unit::TestCase
|
|
|
16
16
|
assert_equal(Dnsruby::Algorithms::RSASHA1, rrsig.algorithm)
|
|
17
17
|
assert_equal(3, rrsig.labels)
|
|
18
18
|
assert_equal(86400, rrsig.original_ttl)
|
|
19
|
-
assert_equal(Time.mktime(2003,03,22,17,31, 03)
|
|
20
|
-
assert_equal(Time.mktime(2003,02,20,17,31,03)
|
|
19
|
+
assert_equal(Time.mktime(2003,03,22,17,31, 03), rrsig.expiration)
|
|
20
|
+
assert_equal(Time.mktime(2003,02,20,17,31,03), rrsig.inception)
|
|
21
21
|
assert_equal(2642, rrsig.key_tag)
|
|
22
22
|
assert_equal(Dnsruby::Name.create("example.com."), rrsig.signers_name)
|
|
23
23
|
assert_equal("oJB1W6WNGv+ldvQ3WDG0MQkg5IEhjRip8WTr" +
|
data/test/tc_tcp.rb
CHANGED
|
@@ -27,7 +27,7 @@ class TestTcp < Test::Unit::TestCase
|
|
|
27
27
|
#@TODO@ Need a test server so we can tell what port this message was actually sent on!
|
|
28
28
|
res = Dnsruby::Resolver.new()
|
|
29
29
|
res.use_tcp = true
|
|
30
|
-
res.src_port=
|
|
30
|
+
res.src_port=rand(65535-1024) + 1024
|
|
31
31
|
ret=res.query("example.com")
|
|
32
32
|
assert(ret.is_a?(Dnsruby::Message))
|
|
33
33
|
end
|
data/test/tc_tsig.rb
CHANGED
|
@@ -70,7 +70,7 @@ class TestTSig < Test::Unit::TestCase
|
|
|
70
70
|
res.query_timeout = 20
|
|
71
71
|
response = res.send_message(update)
|
|
72
72
|
|
|
73
|
-
assert_equal( Dnsruby::RCode.NOERROR, response.
|
|
73
|
+
assert_equal( Dnsruby::RCode.NOERROR, response.rcode)
|
|
74
74
|
assert(response.verified?, "Response has not been verified")
|
|
75
75
|
|
|
76
76
|
# Now check the record exists
|
|
@@ -84,7 +84,7 @@ class TestTSig < Test::Unit::TestCase
|
|
|
84
84
|
tsig.apply(update)
|
|
85
85
|
assert(update.signed?, "Update has not been signed")
|
|
86
86
|
response = res.send_message(update)
|
|
87
|
-
assert_equal( Dnsruby::RCode.NOERROR, response.
|
|
87
|
+
assert_equal( Dnsruby::RCode.NOERROR, response.rcode)
|
|
88
88
|
assert(response.verified?, "Response has not been verified")
|
|
89
89
|
|
|
90
90
|
# Now check the record does not exist
|
|
@@ -117,7 +117,7 @@ class TestTSig < Test::Unit::TestCase
|
|
|
117
117
|
|
|
118
118
|
response = res.send_message(update)
|
|
119
119
|
|
|
120
|
-
assert_equal( Dnsruby::RCode.NOERROR, response.
|
|
120
|
+
assert_equal( Dnsruby::RCode.NOERROR, response.rcode)
|
|
121
121
|
assert(response.verified?, "Response has not been verified")
|
|
122
122
|
|
|
123
123
|
# Now check the record exists
|
|
@@ -138,7 +138,7 @@ class TestTSig < Test::Unit::TestCase
|
|
|
138
138
|
res.dnssec=false # Or else we needed to add OPT record already
|
|
139
139
|
res.udp_size = 512
|
|
140
140
|
response = res.send_message(update)
|
|
141
|
-
assert_equal( Dnsruby::RCode.NOERROR, response.
|
|
141
|
+
assert_equal( Dnsruby::RCode.NOERROR, response.rcode)
|
|
142
142
|
assert(response.verified?, "Response has not been verified")
|
|
143
143
|
|
|
144
144
|
# Now check the record does not exist
|
|
@@ -204,7 +204,7 @@ class TestTSig < Test::Unit::TestCase
|
|
|
204
204
|
assert(!update.signed?, "Update has been signed")
|
|
205
205
|
|
|
206
206
|
response = res.send_message(update)
|
|
207
|
-
assert(response.
|
|
207
|
+
assert(response.rcode == Dnsruby::RCode.NOERROR)
|
|
208
208
|
|
|
209
209
|
end_soa_serial = get_soa_serial("validation-test-servers.nominet.org.uk")
|
|
210
210
|
|
|
@@ -223,7 +223,7 @@ class TestTSig < Test::Unit::TestCase
|
|
|
223
223
|
update.present(update_name, 'TXT')
|
|
224
224
|
update.delete(update_name)
|
|
225
225
|
response = res.send_message(update)
|
|
226
|
-
assert_equal( Dnsruby::RCode.NOERROR, response.
|
|
226
|
+
assert_equal( Dnsruby::RCode.NOERROR, response.rcode)
|
|
227
227
|
end
|
|
228
228
|
|
|
229
229
|
def get_soa_serial(name)
|
data/test/ts_offline.rb
CHANGED
|
@@ -36,7 +36,22 @@ require "test/tc_update.rb"
|
|
|
36
36
|
require "test/tc_escapedchars.rb"
|
|
37
37
|
require "test/tc_dnskey.rb"
|
|
38
38
|
require "test/tc_rrsig.rb"
|
|
39
|
-
require "test/tc_ds.rb"
|
|
40
39
|
require "test/tc_nsec.rb"
|
|
41
40
|
require "test/tc_nsec3.rb"
|
|
42
|
-
require "test/tc_nsec3param.rb"
|
|
41
|
+
require "test/tc_nsec3param.rb"
|
|
42
|
+
|
|
43
|
+
begin
|
|
44
|
+
require "openssl"
|
|
45
|
+
OpenSSL::HMAC.digest(OpenSSL::Digest::MD5.new, "key", "data")
|
|
46
|
+
key = OpenSSL::PKey::RSA.new
|
|
47
|
+
key.e = 111
|
|
48
|
+
|
|
49
|
+
have_openssl=true
|
|
50
|
+
rescue Exception => e
|
|
51
|
+
puts "-----------------------------------------------------------------------"
|
|
52
|
+
puts "OpenSSL not present (with full functionality) - skipping DS digest test"
|
|
53
|
+
puts "-----------------------------------------------------------------------"
|
|
54
|
+
end
|
|
55
|
+
if (have_openssl)
|
|
56
|
+
require "test/tc_ds.rb"
|
|
57
|
+
end
|