dnsruby 1.1
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/EVENTMACHINE +64 -0
- data/README +63 -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/Config.rb +363 -0
- data/lib/Dnsruby/DNS.rb +293 -0
- data/lib/Dnsruby/Hosts.rb +126 -0
- data/lib/Dnsruby/Resolver.rb +999 -0
- data/lib/Dnsruby/SingleResolver.rb +493 -0
- data/lib/Dnsruby/TheLog.rb +60 -0
- data/lib/Dnsruby/code_mapper.rb +165 -0
- data/lib/Dnsruby/dnssec.rb +357 -0
- data/lib/Dnsruby/event_machine_interface.rb +264 -0
- data/lib/Dnsruby/ipv4.rb +74 -0
- data/lib/Dnsruby/ipv6.rb +144 -0
- data/lib/Dnsruby/message.rb +961 -0
- data/lib/Dnsruby/name.rb +332 -0
- data/lib/Dnsruby/resource/A.rb +56 -0
- data/lib/Dnsruby/resource/AAAA.rb +54 -0
- data/lib/Dnsruby/resource/AFSDB.rb +68 -0
- data/lib/Dnsruby/resource/CERT.rb +89 -0
- data/lib/Dnsruby/resource/DNSKEY.rb +242 -0
- data/lib/Dnsruby/resource/DS.rb +162 -0
- data/lib/Dnsruby/resource/HINFO.rb +52 -0
- data/lib/Dnsruby/resource/IN.rb +70 -0
- data/lib/Dnsruby/resource/ISDN.rb +54 -0
- data/lib/Dnsruby/resource/LOC.rb +255 -0
- data/lib/Dnsruby/resource/MINFO.rb +70 -0
- data/lib/Dnsruby/resource/MX.rb +66 -0
- data/lib/Dnsruby/resource/NAPTR.rb +90 -0
- data/lib/Dnsruby/resource/NSAP.rb +172 -0
- data/lib/Dnsruby/resource/NSEC.rb +243 -0
- data/lib/Dnsruby/resource/NSEC3.rb +173 -0
- data/lib/Dnsruby/resource/NSEC3PARAM.rb +120 -0
- data/lib/Dnsruby/resource/OPT.rb +210 -0
- data/lib/Dnsruby/resource/PX.rb +71 -0
- data/lib/Dnsruby/resource/RP.rb +67 -0
- data/lib/Dnsruby/resource/RRSIG.rb +256 -0
- data/lib/Dnsruby/resource/RT.rb +67 -0
- data/lib/Dnsruby/resource/SOA.rb +95 -0
- data/lib/Dnsruby/resource/SPF.rb +29 -0
- data/lib/Dnsruby/resource/SRV.rb +112 -0
- data/lib/Dnsruby/resource/TKEY.rb +163 -0
- data/lib/Dnsruby/resource/TSIG.rb +584 -0
- data/lib/Dnsruby/resource/TXT.rb +76 -0
- data/lib/Dnsruby/resource/X25.rb +53 -0
- data/lib/Dnsruby/resource/domain_name.rb +54 -0
- data/lib/Dnsruby/resource/generic.rb +151 -0
- data/lib/Dnsruby/resource/resource.rb +561 -0
- data/lib/Dnsruby/select_thread.rb +449 -0
- data/lib/Dnsruby/update.rb +262 -0
- data/lib/Dnsruby/zone_transfer.rb +332 -0
- data/lib/dnsruby.rb +512 -0
- data/test/custom.txt +4 -0
- data/test/resolv.conf +4 -0
- data/test/tc_axfr.rb +32 -0
- data/test/tc_dns.rb +230 -0
- data/test/tc_dnskey.rb +52 -0
- data/test/tc_dnsruby.rb +42 -0
- data/test/tc_dnssec.rb +88 -0
- data/test/tc_ds.rb +38 -0
- data/test/tc_escapedchars.rb +484 -0
- data/test/tc_event_machine_deferrable.rb +85 -0
- data/test/tc_event_machine_res.rb +174 -0
- data/test/tc_event_machine_single_res.rb +101 -0
- data/test/tc_event_machine_soak.rb +98 -0
- data/test/tc_header.rb +104 -0
- data/test/tc_misc.rb +139 -0
- data/test/tc_name.rb +53 -0
- data/test/tc_nsec.rb +36 -0
- data/test/tc_nsec3.rb +63 -0
- data/test/tc_nsec3param.rb +30 -0
- data/test/tc_packet.rb +179 -0
- data/test/tc_packet_unique_push.rb +102 -0
- data/test/tc_question.rb +51 -0
- data/test/tc_res_config.rb +92 -0
- data/test/tc_res_env.rb +51 -0
- data/test/tc_res_file.rb +42 -0
- data/test/tc_res_opt.rb +187 -0
- data/test/tc_resolver.rb +184 -0
- data/test/tc_rr-opt.rb +82 -0
- data/test/tc_rr-txt.rb +137 -0
- data/test/tc_rr-unknown.rb +99 -0
- data/test/tc_rr.rb +258 -0
- data/test/tc_rrset.rb +58 -0
- data/test/tc_rrsig.rb +32 -0
- data/test/tc_single_resolver.rb +169 -0
- data/test/tc_soak.rb +200 -0
- data/test/tc_soak_base.rb +136 -0
- data/test/tc_tcp.rb +35 -0
- data/test/tc_tkey.rb +75 -0
- data/test/tc_tsig.rb +237 -0
- data/test/tc_update.rb +215 -0
- data/test/ts_dnsruby.rb +17 -0
- data/test/ts_offline.rb +42 -0
- data/test/ts_online.rb +107 -0
- metadata +627 -0
|
@@ -0,0 +1,71 @@
|
|
|
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
|
+
module Dnsruby
|
|
17
|
+
class RR
|
|
18
|
+
module IN
|
|
19
|
+
class PX < RR
|
|
20
|
+
ClassHash[[TypeValue = Types::PX, ClassValue = Classes::IN]] = self #:nodoc: all
|
|
21
|
+
|
|
22
|
+
#The preference given to this RR.
|
|
23
|
+
attr_accessor :preference
|
|
24
|
+
#The RFC822 part of the RFC1327 mapping information.
|
|
25
|
+
attr_accessor :map822
|
|
26
|
+
#The X.400 part of the RFC1327 mapping information.
|
|
27
|
+
attr_accessor :mapx400
|
|
28
|
+
|
|
29
|
+
def from_hash(hash) #:nodoc: all
|
|
30
|
+
@preference = hash[:preference]
|
|
31
|
+
@map822 = Name.create(hash[:map822])
|
|
32
|
+
@mapx400 = Name.create(hash[:mapx400])
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def from_data(data) #:nodoc: all
|
|
36
|
+
@preference, @map822, @mapx400 = data
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def from_string(input) #:nodoc: all
|
|
40
|
+
if (input.length > 0)
|
|
41
|
+
names = input.split(" ")
|
|
42
|
+
@preference = names[0]
|
|
43
|
+
@map822 = Name.create(names[1])
|
|
44
|
+
@mapx400 = Name.create(names[2])
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def rdata_to_string #:nodoc: all
|
|
49
|
+
if (@preference!=nil)
|
|
50
|
+
return "#{@preference} #{@map822} #{@mapx400}"
|
|
51
|
+
else
|
|
52
|
+
return ""
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def encode_rdata(msg, canonical=false) #:nodoc: all
|
|
57
|
+
msg.put_pack('n', @preference)
|
|
58
|
+
msg.put_name(@map822, canonical)
|
|
59
|
+
msg.put_name(@mapx400, canonical)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def self.decode_rdata(msg) #:nodoc: all
|
|
63
|
+
preference = msg.get_unpack('n')
|
|
64
|
+
map822 = msg.get_name
|
|
65
|
+
mapx400 = msg.get_name
|
|
66
|
+
return self.new([preference, map822, mapx400])
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
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
|
+
module Dnsruby
|
|
17
|
+
class RR
|
|
18
|
+
#Class for DNS Responsible Person (RP) resource records.
|
|
19
|
+
#RFC 1183 Section 2.2
|
|
20
|
+
class RP < RR
|
|
21
|
+
ClassValue = nil #:nodoc: all
|
|
22
|
+
TypeValue = Types::RP #:nodoc: all
|
|
23
|
+
|
|
24
|
+
#Returns a domain name that specifies the mailbox for the responsible person.
|
|
25
|
+
attr_accessor :mailbox
|
|
26
|
+
#A domain name that specifies a TXT record containing further
|
|
27
|
+
#information about the responsible person.
|
|
28
|
+
attr_accessor :txtdomain
|
|
29
|
+
|
|
30
|
+
def from_hash(hash)
|
|
31
|
+
@mailbox = Name.create(hash[:mailbox])
|
|
32
|
+
@txtdomain = Name.create(hash[:txtdomain])
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def from_data(data) #:nodoc: all
|
|
36
|
+
@mailbox, @txtdomain= data
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def from_string(input) #:nodoc: all
|
|
40
|
+
if (input.length > 0)
|
|
41
|
+
names = input.split(" ")
|
|
42
|
+
@mailbox = Name.create(names[0])
|
|
43
|
+
@txtdomain = Name.create(names[1])
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def rdata_to_string #:nodoc: all
|
|
48
|
+
if (@mailbox!=nil)
|
|
49
|
+
return "#{@mailbox} #{@txtdomain}"
|
|
50
|
+
else
|
|
51
|
+
return ""
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def encode_rdata(msg, canonical=false) #:nodoc: all
|
|
56
|
+
msg.put_name(@mailbox, canonical)
|
|
57
|
+
msg.put_name(@txtdomain, canonical)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def self.decode_rdata(msg) #:nodoc: all
|
|
61
|
+
mailbox = msg.get_name
|
|
62
|
+
txtdomain = msg.get_name
|
|
63
|
+
return self.new([mailbox, txtdomain])
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,256 @@
|
|
|
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
|
+
module Dnsruby
|
|
17
|
+
class RR
|
|
18
|
+
# (RFC4034, section 3)
|
|
19
|
+
#DNSSEC uses public key cryptography to sign and authenticate DNS
|
|
20
|
+
#resource record sets (RRsets). Digital signatures are stored in
|
|
21
|
+
#RRSIG resource records and are used in the DNSSEC authentication
|
|
22
|
+
#process described in [RFC4035]. A validator can use these RRSIG RRs
|
|
23
|
+
#to authenticate RRsets from the zone. The RRSIG RR MUST only be used
|
|
24
|
+
#to carry verification material (digital signatures) used to secure
|
|
25
|
+
#DNS operations.
|
|
26
|
+
#
|
|
27
|
+
#An RRSIG record contains the signature for an RRset with a particular
|
|
28
|
+
#name, class, and type. The RRSIG RR specifies a validity interval
|
|
29
|
+
#for the signature and uses the Algorithm, the Signer's Name, and the
|
|
30
|
+
#Key Tag to identify the DNSKEY RR containing the public key that a
|
|
31
|
+
#validator can use to verify the signature.
|
|
32
|
+
class RRSIG < RR
|
|
33
|
+
ClassValue = nil #:nodoc: all
|
|
34
|
+
TypeValue = Types::RRSIG #:nodoc: all
|
|
35
|
+
|
|
36
|
+
# 3.1. RRSIG RDATA Wire Format
|
|
37
|
+
#
|
|
38
|
+
# The RDATA for an RRSIG RR consists of a 2 octet Type Covered field, a
|
|
39
|
+
# 1 octet Algorithm field, a 1 octet Labels field, a 4 octet Original
|
|
40
|
+
# TTL field, a 4 octet Signature Expiration field, a 4 octet Signature
|
|
41
|
+
# Inception field, a 2 octet Key tag, the Signer's Name field, and the
|
|
42
|
+
# Signature field.
|
|
43
|
+
#
|
|
44
|
+
# 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
|
|
45
|
+
# 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
|
46
|
+
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
47
|
+
# | Type Covered | Algorithm | Labels |
|
|
48
|
+
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
49
|
+
# | Original TTL |
|
|
50
|
+
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
51
|
+
# | Signature Expiration |
|
|
52
|
+
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
53
|
+
# | Signature Inception |
|
|
54
|
+
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
55
|
+
# | Key Tag | /
|
|
56
|
+
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Signer's Name /
|
|
57
|
+
# / /
|
|
58
|
+
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
59
|
+
# / /
|
|
60
|
+
# / Signature /
|
|
61
|
+
# / /
|
|
62
|
+
# +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
63
|
+
|
|
64
|
+
#The type covered by this RRSIG
|
|
65
|
+
attr_reader :type_covered
|
|
66
|
+
#The algorithm used for this RRSIG
|
|
67
|
+
#See Dnsruby::Algorithms for permitted values
|
|
68
|
+
attr_reader :algorithm
|
|
69
|
+
#The number of labels in the original RRSIG RR owner name
|
|
70
|
+
#Can be used to determine if name was synthesised from a wildcard.
|
|
71
|
+
attr_accessor :labels
|
|
72
|
+
#The TTL of the covered RRSet as it appears in the authoritative zone
|
|
73
|
+
attr_accessor :original_ttl
|
|
74
|
+
#The signature expiration
|
|
75
|
+
attr_accessor :expiration
|
|
76
|
+
#The signature inception
|
|
77
|
+
attr_accessor :inception
|
|
78
|
+
#The key tag value of the DNSKEY RR that validates this signature
|
|
79
|
+
attr_accessor :key_tag
|
|
80
|
+
#identifies the owner name of the DNSKEY RR that a validator is
|
|
81
|
+
#supposed to use to validate this signature
|
|
82
|
+
attr_reader :signers_name
|
|
83
|
+
|
|
84
|
+
#contains the cryptographic signature that covers
|
|
85
|
+
#the RRSIG RDATA (excluding the Signature field) and the RRset
|
|
86
|
+
#specified by the RRSIG owner name, RRSIG class, and RRSIG Type
|
|
87
|
+
#Covered field
|
|
88
|
+
attr_accessor :signature
|
|
89
|
+
|
|
90
|
+
def init_defaults
|
|
91
|
+
@algorithm=Algorithms.RSASHA1
|
|
92
|
+
@type_covered = Types.A
|
|
93
|
+
@original_ttl = 3600
|
|
94
|
+
@inception = Time.now.to_i
|
|
95
|
+
@expiration = Time.now.to_i
|
|
96
|
+
@key_tag = 0
|
|
97
|
+
@labels = 0
|
|
98
|
+
self.signers_name="."
|
|
99
|
+
@signature = "\0"
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def algorithm=(a)
|
|
103
|
+
if (a.instance_of?String)
|
|
104
|
+
if (a.length == 1)
|
|
105
|
+
a = a.to_i
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
begin
|
|
109
|
+
alg = Algorithms.new(a)
|
|
110
|
+
@algorithm = alg
|
|
111
|
+
rescue ArgumentError => e
|
|
112
|
+
raise DecodeError.new(e)
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def type_covered=(t)
|
|
117
|
+
begin
|
|
118
|
+
type = Types.new(t)
|
|
119
|
+
@type_covered = type
|
|
120
|
+
rescue ArgumentError => e
|
|
121
|
+
raise DecodeError.new(e)
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def signers_name=(s)
|
|
126
|
+
begin
|
|
127
|
+
name = Name.create(s)
|
|
128
|
+
@signers_name = name
|
|
129
|
+
rescue ArgumentError => e
|
|
130
|
+
raise DecodeError.new(e)
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def from_data(data) #:nodoc: all
|
|
136
|
+
type_covered, algorithm, @labels, @original_ttl, @expiration, @inception,
|
|
137
|
+
@key_tag, signers_name, @signature = data
|
|
138
|
+
self.type_covered=(type_covered)
|
|
139
|
+
self.signers_name=(signers_name)
|
|
140
|
+
self.algorithm=(algorithm)
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
def from_string(input)
|
|
144
|
+
if (input.length > 0)
|
|
145
|
+
data = input.split(" ")
|
|
146
|
+
self.type_covered=(data[0])
|
|
147
|
+
self.algorithm=(data[1])
|
|
148
|
+
self.labels=data[2].to_i
|
|
149
|
+
self.original_ttl=data[3].to_i
|
|
150
|
+
self.expiration=get_time(data[4])
|
|
151
|
+
# Brackets may also be present
|
|
152
|
+
index = 5
|
|
153
|
+
end_index = data.length - 1
|
|
154
|
+
if (data[index]=="(")
|
|
155
|
+
index = 6
|
|
156
|
+
end_index = data.length - 2
|
|
157
|
+
end
|
|
158
|
+
self.inception=get_time(data[index])
|
|
159
|
+
self.key_tag=data[index+1].to_i
|
|
160
|
+
self.signers_name=(data[index+2])
|
|
161
|
+
# signature can include whitespace - include all text
|
|
162
|
+
# until we come to " )" at the end, and then gsub
|
|
163
|
+
# the white space out
|
|
164
|
+
buf=""
|
|
165
|
+
(index+3..end_index).each {|i|
|
|
166
|
+
buf += data[i]
|
|
167
|
+
}
|
|
168
|
+
buf.gsub!(/\n/, "")
|
|
169
|
+
buf.gsub!(/ /, "")
|
|
170
|
+
#self.signature=Base64.decode64(buf)
|
|
171
|
+
self.signature=buf.unpack("m*")[0]
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def get_time(input)
|
|
176
|
+
if (input.kind_of?Fixnum)
|
|
177
|
+
return input
|
|
178
|
+
end
|
|
179
|
+
# RFC 4034, section 3.2
|
|
180
|
+
#The Signature Expiration Time and Inception Time field values MUST be
|
|
181
|
+
# represented either as an unsigned decimal integer indicating seconds
|
|
182
|
+
# since 1 January 1970 00:00:00 UTC, or in the form YYYYMMDDHHmmSS in
|
|
183
|
+
# UTC, where:
|
|
184
|
+
#
|
|
185
|
+
# YYYY is the year (0001-9999, but see Section 3.1.5);
|
|
186
|
+
# MM is the month number (01-12);
|
|
187
|
+
# DD is the day of the month (01-31);
|
|
188
|
+
# HH is the hour, in 24 hour notation (00-23);
|
|
189
|
+
# mm is the minute (00-59); and
|
|
190
|
+
# SS is the second (00-59).
|
|
191
|
+
#
|
|
192
|
+
# Note that it is always possible to distinguish between these two
|
|
193
|
+
# formats because the YYYYMMDDHHmmSS format will always be exactly 14
|
|
194
|
+
# digits, while the decimal representation of a 32-bit unsigned integer
|
|
195
|
+
# can never be longer than 10 digits.
|
|
196
|
+
if (input.length == 10)
|
|
197
|
+
return input.to_i
|
|
198
|
+
elsif (input.length == 14)
|
|
199
|
+
year = input[0,4]
|
|
200
|
+
mon=input[4,2]
|
|
201
|
+
day=input[6,2]
|
|
202
|
+
hour=input[8,2]
|
|
203
|
+
min=input[10,2]
|
|
204
|
+
sec=input[12,2]
|
|
205
|
+
return Time.mktime(year, mon, day, hour, min, sec).to_i
|
|
206
|
+
else
|
|
207
|
+
raise DecodeError.new("RRSIG : Illegal time value #{input} - see RFC 4034 section 3.2")
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
def rdata_to_string #:nodoc: all
|
|
212
|
+
if (@type_covered!=nil)
|
|
213
|
+
# signature = Base64.encode64(@signature) # .gsub(/\n/, "")
|
|
214
|
+
signature = [@signature].pack("m*") # .gsub(/\n/, "")
|
|
215
|
+
return "#{@type_covered.string} #{@algorithm.string} #{@labels} #{@original_ttl} " +
|
|
216
|
+
"#{@expiration} ( #{@inception} #{@key_tag} #{@signers_name} #{signature} )"
|
|
217
|
+
else
|
|
218
|
+
return ""
|
|
219
|
+
end
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
def encode_rdata(msg, canonical=false) #:nodoc: all
|
|
223
|
+
# 2 octets, then 2 sets of 1 octet
|
|
224
|
+
msg.put_pack('ncc', @type_covered.to_i, @algorithm.to_i, @labels)
|
|
225
|
+
msg.put_pack("NNN", @original_ttl, @expiration, @inception)
|
|
226
|
+
msg.put_pack("n", @key_tag)
|
|
227
|
+
msg.put_name(@signers_name, canonical)
|
|
228
|
+
msg.put_bytes(@signature)
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
def self.decode_rdata(msg) #:nodoc: all
|
|
232
|
+
type_covered, algorithm, labels = msg.get_unpack('ncc')
|
|
233
|
+
original_ttl, expiration, inception = msg.get_unpack('NNN')
|
|
234
|
+
key_tag, = msg.get_unpack('n')
|
|
235
|
+
signers_name = msg.get_name
|
|
236
|
+
signature = msg.get_bytes
|
|
237
|
+
return self.new(
|
|
238
|
+
[type_covered, algorithm, labels, original_ttl, expiration,
|
|
239
|
+
inception, key_tag, signers_name, signature])
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
def sig_data
|
|
243
|
+
#RRSIG_RDATA is the wire format of the RRSIG RDATA fields
|
|
244
|
+
#with the Signer's Name field in canonical form and
|
|
245
|
+
#the Signature field excluded;
|
|
246
|
+
data = MessageEncoder.new { |msg|
|
|
247
|
+
msg.put_pack('ncc', @type_covered.to_i, @algorithm.to_i, @labels)
|
|
248
|
+
msg.put_pack("NNN", @original_ttl, @expiration, @inception)
|
|
249
|
+
msg.put_pack("n", @key_tag)
|
|
250
|
+
msg.put_name(@signers_name, true)
|
|
251
|
+
}.to_s
|
|
252
|
+
return data
|
|
253
|
+
end
|
|
254
|
+
end
|
|
255
|
+
end
|
|
256
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
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
|
+
module Dnsruby
|
|
17
|
+
class RR
|
|
18
|
+
#Class for DNS Route Through (RT) resource records.
|
|
19
|
+
#RFC 1183 Section 3.3
|
|
20
|
+
class RT < RR
|
|
21
|
+
ClassValue = nil #:nodoc: all
|
|
22
|
+
TypeValue = Types::RT #:nodoc: all
|
|
23
|
+
|
|
24
|
+
#The preference for this route.
|
|
25
|
+
attr_accessor :preference
|
|
26
|
+
|
|
27
|
+
#The domain name of the intermediate host.
|
|
28
|
+
attr_accessor :intermediate
|
|
29
|
+
|
|
30
|
+
def from_hash(hash) #:nodoc: all
|
|
31
|
+
@preference = hash[:preference]
|
|
32
|
+
@intermediate = Name.create(hash[:intermediate])
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def from_data(data) #:nodoc: all
|
|
36
|
+
@preference, @intermediate = data
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def from_string(input) #:nodoc: all
|
|
40
|
+
if (input.length > 0)
|
|
41
|
+
names = input.split(" ")
|
|
42
|
+
@preference = names[0]
|
|
43
|
+
@intermediate = Name.create(names[1])
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def rdata_to_string #:nodoc: all
|
|
48
|
+
if (@preference!=nil)
|
|
49
|
+
return "#{@preference} #{@intermediate}"
|
|
50
|
+
else
|
|
51
|
+
return ""
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def encode_rdata(msg, canonical = false) #:nodoc: all
|
|
56
|
+
msg.put_pack('n', @preference)
|
|
57
|
+
msg.put_name(@intermediate, canonical)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def self.decode_rdata(msg) #:nodoc: all
|
|
61
|
+
preference = msg.get_unpack('n')
|
|
62
|
+
intermediate = msg.get_name
|
|
63
|
+
return self.new([preference, intermediate])
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|