Dnsruby 0.6.0 → 1.0
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 +1 -1
- data/README +36 -7
- data/doc/classes/Dnsruby.html +49 -18
- data/doc/classes/Dnsruby/Classes.html +10 -10
- data/doc/classes/Dnsruby/Classes.src/{M000158.html → M000156.html} +1 -1
- data/doc/classes/Dnsruby/Classes.src/M000157.html +5 -9
- data/doc/classes/Dnsruby/CodeMapper.html +55 -55
- data/doc/classes/Dnsruby/CodeMapper.src/M000133.html +4 -7
- data/doc/classes/Dnsruby/CodeMapper.src/M000134.html +19 -5
- data/doc/classes/Dnsruby/CodeMapper.src/M000135.html +7 -5
- data/doc/classes/Dnsruby/CodeMapper.src/M000136.html +5 -4
- data/doc/classes/Dnsruby/CodeMapper.src/M000137.html +5 -8
- data/doc/classes/Dnsruby/CodeMapper.src/M000138.html +4 -8
- data/doc/classes/Dnsruby/CodeMapper.src/M000139.html +6 -6
- data/doc/classes/Dnsruby/CodeMapper.src/M000140.html +7 -16
- data/doc/classes/Dnsruby/CodeMapper.src/M000141.html +8 -5
- data/doc/classes/Dnsruby/CodeMapper.src/{M000167.html → M000142.html} +0 -0
- data/doc/classes/Dnsruby/CodeMapper.src/{M000168.html → M000143.html} +0 -0
- data/doc/classes/Dnsruby/Config.html +66 -63
- data/doc/classes/Dnsruby/Config.src/{M000125.html → M000097.html} +1 -1
- data/doc/classes/Dnsruby/Config.src/M000098.html +5 -4
- data/doc/classes/Dnsruby/Config.src/M000099.html +5 -5
- data/doc/classes/Dnsruby/Config.src/M000100.html +11 -5
- data/doc/classes/Dnsruby/Config.src/M000101.html +6 -6
- data/doc/classes/Dnsruby/Config.src/M000102.html +23 -6
- data/doc/classes/Dnsruby/Config.src/M000103.html +10 -22
- data/doc/classes/Dnsruby/Config.src/M000104.html +7 -11
- data/doc/classes/Dnsruby/Config.src/M000105.html +13 -8
- data/doc/classes/Dnsruby/Config.src/M000106.html +7 -12
- data/doc/classes/Dnsruby/Config.src/M000107.html +6 -7
- data/doc/classes/Dnsruby/DNS.html +220 -118
- data/doc/classes/Dnsruby/DNS.src/{M000224.html → M000190.html} +1 -1
- data/doc/classes/Dnsruby/DNS.src/{M000225.html → M000191.html} +1 -1
- data/doc/classes/Dnsruby/DNS.src/{M000226.html → M000192.html} +1 -1
- data/doc/classes/Dnsruby/DNS.src/M000193.html +24 -0
- data/doc/classes/Dnsruby/{SingleResolver.src/M000152.html → DNS.src/M000194.html} +3 -3
- data/doc/classes/Dnsruby/{IPv4.src/M000156.html → DNS.src/M000195.html} +4 -4
- data/doc/classes/Dnsruby/DNS.src/M000196.html +6 -10
- data/doc/classes/Dnsruby/DNS.src/M000197.html +5 -10
- data/doc/classes/Dnsruby/DNS.src/M000198.html +6 -4
- data/doc/classes/Dnsruby/DNS.src/M000199.html +4 -4
- data/doc/classes/Dnsruby/DNS.src/M000200.html +5 -6
- data/doc/classes/Dnsruby/DNS.src/M000201.html +6 -5
- data/doc/classes/Dnsruby/DNS.src/M000202.html +14 -6
- data/doc/classes/Dnsruby/DNS.src/M000203.html +5 -4
- data/doc/classes/Dnsruby/DNS.src/M000204.html +6 -5
- data/doc/classes/Dnsruby/DNS.src/M000205.html +17 -6
- data/doc/classes/Dnsruby/DecodeError.html +11 -0
- data/doc/classes/Dnsruby/EncodeError.html +11 -0
- data/doc/classes/Dnsruby/FormErr.html +6 -0
- data/doc/classes/Dnsruby/Header.html +51 -66
- data/doc/classes/Dnsruby/Header.src/{M000196.html → M000167.html} +1 -1
- data/doc/classes/Dnsruby/Header.src/M000168.html +4 -21
- data/doc/classes/Dnsruby/Header.src/M000169.html +4 -21
- data/doc/classes/Dnsruby/Header.src/M000170.html +21 -4
- data/doc/classes/Dnsruby/Header.src/M000171.html +4 -4
- data/doc/classes/Dnsruby/Header.src/M000172.html +4 -7
- data/doc/classes/Dnsruby/Header.src/M000173.html +7 -6
- data/doc/classes/Dnsruby/Header.src/M000174.html +6 -18
- data/doc/classes/Dnsruby/Header.src/M000175.html +18 -12
- data/doc/classes/Dnsruby/Header.src/M000176.html +13 -33
- data/doc/classes/Dnsruby/Header.src/M000177.html +12 -14
- data/doc/classes/Dnsruby/Header.src/M000178.html +33 -4
- data/doc/classes/Dnsruby/Header.src/M000179.html +14 -4
- data/doc/classes/Dnsruby/Header.src/M000180.html +1 -1
- data/doc/classes/Dnsruby/Hosts.html +65 -54
- data/doc/classes/Dnsruby/Hosts.src/M000144.html +6 -5
- data/doc/classes/Dnsruby/Hosts.src/M000145.html +5 -6
- data/doc/classes/Dnsruby/Hosts.src/M000146.html +6 -7
- data/doc/classes/Dnsruby/Hosts.src/M000147.html +7 -5
- data/doc/classes/Dnsruby/Hosts.src/M000148.html +4 -5
- data/doc/classes/Dnsruby/Hosts.src/M000149.html +5 -6
- data/doc/classes/Dnsruby/Hosts.src/{M000176.html → M000150.html} +1 -1
- data/doc/classes/Dnsruby/IPv4.html +28 -93
- data/doc/classes/Dnsruby/IPv4.src/M000151.html +17 -6
- data/doc/classes/Dnsruby/IPv4.src/M000152.html +5 -4
- data/doc/classes/Dnsruby/IPv4.src/M000153.html +3 -3
- data/doc/classes/Dnsruby/IPv4.src/M000154.html +3 -4
- data/doc/classes/Dnsruby/IPv4.src/M000155.html +4 -4
- data/doc/classes/Dnsruby/IPv6.html +59 -96
- data/doc/classes/Dnsruby/IPv6.src/{M000208.html → M000178.html} +2 -2
- data/doc/classes/Dnsruby/IPv6.src/{M000210.html → M000179.html} +0 -0
- data/doc/classes/Dnsruby/IPv6.src/M000180.html +6 -46
- data/doc/classes/Dnsruby/IPv6.src/M000181.html +2 -2
- data/doc/classes/Dnsruby/IPv6.src/M000182.html +7 -6
- data/doc/classes/Dnsruby/IPv6.src/M000183.html +6 -8
- data/doc/classes/Dnsruby/IPv6.src/M000184.html +4 -4
- data/doc/classes/Dnsruby/Message.html +216 -123
- data/doc/classes/Dnsruby/Message.src/M000071.html +38 -0
- data/doc/classes/Dnsruby/Message.src/M000072.html +26 -0
- data/doc/classes/Dnsruby/Message.src/M000073.html +22 -0
- data/doc/classes/Dnsruby/{Header.src/M000198.html → Message.src/M000074.html} +6 -4
- data/doc/classes/Dnsruby/{Header.src/M000197.html → Message.src/M000075.html} +6 -4
- data/doc/classes/Dnsruby/Message.src/M000076.html +6 -20
- data/doc/classes/Dnsruby/Message.src/M000077.html +6 -12
- data/doc/classes/Dnsruby/Message.src/M000078.html +6 -8
- data/doc/classes/Dnsruby/Message.src/M000079.html +9 -6
- data/doc/classes/Dnsruby/Message.src/M000080.html +16 -6
- data/doc/classes/Dnsruby/Message.src/M000081.html +6 -6
- data/doc/classes/Dnsruby/Message.src/M000082.html +4 -6
- data/doc/classes/Dnsruby/Message.src/M000083.html +40 -6
- data/doc/classes/Dnsruby/Message.src/M000084.html +10 -6
- data/doc/classes/Dnsruby/Message.src/M000085.html +29 -6
- data/doc/classes/Dnsruby/Message.src/M000086.html +32 -4
- data/doc/classes/Dnsruby/NXDomain.html +6 -0
- data/doc/classes/Dnsruby/Name.html +60 -87
- data/doc/classes/Dnsruby/Name.src/M000056.html +28 -0
- data/doc/classes/Dnsruby/Name.src/M000057.html +6 -14
- data/doc/classes/Dnsruby/Name.src/M000058.html +4 -6
- data/doc/classes/Dnsruby/Name.src/M000059.html +7 -4
- data/doc/classes/Dnsruby/Name.src/M000060.html +8 -4
- data/doc/classes/Dnsruby/Name.src/M000061.html +5 -7
- data/doc/classes/Dnsruby/Name/Label.html +45 -45
- data/doc/classes/Dnsruby/Name/Label.src/M000062.html +21 -0
- data/doc/classes/Dnsruby/Name/Label.src/{M000075.html → M000063.html} +4 -4
- data/doc/classes/Dnsruby/Name/Label.src/{M000076.html → M000064.html} +1 -1
- data/doc/classes/Dnsruby/Name/Label.src/{M000077.html → M000065.html} +1 -1
- data/doc/classes/Dnsruby/Name/Label.src/{M000078.html → M000066.html} +1 -1
- data/doc/classes/Dnsruby/Name/Label.src/M000067.html +4 -7
- data/doc/classes/Dnsruby/Name/Label.src/M000068.html +4 -4
- data/doc/classes/Dnsruby/Name/Label.src/M000069.html +4 -8
- data/doc/classes/Dnsruby/Name/Label.src/M000070.html +4 -4
- data/doc/classes/Dnsruby/NotImp.html +6 -0
- data/doc/classes/Dnsruby/OtherResolvError.html +6 -0
- data/doc/classes/Dnsruby/Question.html +53 -8
- data/doc/classes/Dnsruby/Question.src/{M000194.html → M000165.html} +1 -1
- data/doc/classes/Dnsruby/Question.src/M000166.html +4 -33
- data/doc/classes/Dnsruby/Question.src/M000167.html +4 -33
- data/doc/classes/Dnsruby/Question.src/M000168.html +18 -4
- data/doc/classes/Dnsruby/Question.src/{M000195.html → M000169.html} +1 -1
- data/doc/classes/Dnsruby/RR.html +62 -64
- data/doc/classes/Dnsruby/RR.src/M000004.html +1 -1
- data/doc/classes/Dnsruby/RR.src/M000005.html +1 -1
- data/doc/classes/Dnsruby/RR.src/M000006.html +4 -22
- data/doc/classes/Dnsruby/RR.src/M000007.html +22 -86
- data/doc/classes/Dnsruby/RR.src/M000008.html +86 -4
- data/doc/classes/Dnsruby/RR.src/M000009.html +4 -4
- data/doc/classes/Dnsruby/RR.src/M000010.html +4 -8
- data/doc/classes/Dnsruby/RR.src/M000011.html +8 -8
- data/doc/classes/Dnsruby/RR.src/M000012.html +15 -4
- data/doc/classes/Dnsruby/RR.src/M000013.html +10 -8
- data/doc/classes/Dnsruby/RR/ANY.html +1 -1
- data/doc/classes/Dnsruby/RR/CNAME.html +2 -1
- data/doc/classes/Dnsruby/RR/DomainName.html +10 -10
- data/doc/classes/Dnsruby/RR/DomainName.src/{M000051.html → M000050.html} +0 -4
- data/doc/classes/Dnsruby/RR/Generic.html +4 -27
- data/doc/classes/Dnsruby/RR/IN.html +1 -1
- data/doc/classes/Dnsruby/RR/IN/A.html +17 -16
- data/doc/classes/Dnsruby/RR/IN/A.src/{M000025.html → M000017.html} +0 -0
- data/doc/classes/Dnsruby/RR/IN/A.src/M000018.html +4 -4
- data/doc/classes/Dnsruby/RR/IN/A.src/M000019.html +4 -4
- data/doc/classes/Dnsruby/RR/IN/AAAA.html +2 -1
- data/doc/classes/Dnsruby/RR/IN/SRV.html +43 -48
- data/doc/classes/Dnsruby/RR/IN/SRV.src/{M000022.html → M000014.html} +1 -1
- data/doc/classes/Dnsruby/RR/IN/SRV.src/M000015.html +11 -14
- data/doc/classes/Dnsruby/RR/IN/SRV.src/M000016.html +7 -11
- data/doc/classes/Dnsruby/RR/IN/WKS.html +5 -5
- data/doc/classes/Dnsruby/RR/IN/WKS.src/{M000021.html → M000020.html} +0 -0
- data/doc/classes/Dnsruby/RR/NS.html +2 -1
- data/doc/classes/Dnsruby/RR/NSAP.html +20 -20
- data/doc/classes/Dnsruby/RR/NSAP.src/{M000060.html → M000052.html} +0 -0
- data/doc/classes/Dnsruby/RR/NSAP.src/M000053.html +4 -4
- data/doc/classes/Dnsruby/RR/NSAP.src/M000054.html +8 -5
- data/doc/classes/Dnsruby/RR/NSAP.src/M000055.html +16 -7
- data/doc/classes/Dnsruby/RR/RP.html +5 -5
- data/doc/classes/Dnsruby/RR/RP.src/{M000050.html → M000049.html} +0 -0
- data/doc/classes/Dnsruby/RR/SOA.html +6 -3
- data/doc/classes/Dnsruby/RR/SOA.src/M000039.html +1 -1
- data/doc/classes/Dnsruby/RR/SOA.src/M000040.html +1 -1
- data/doc/classes/Dnsruby/RR/TKEY.html +39 -11
- data/doc/classes/Dnsruby/RR/TKEY.src/{M000029.html → M000021.html} +1 -1
- data/doc/classes/Dnsruby/RR/TKEY.src/M000022.html +15 -5
- data/doc/classes/Dnsruby/RR/TKEY.src/M000023.html +7 -15
- data/doc/classes/Dnsruby/RR/TKEY.src/M000024.html +1 -1
- data/doc/classes/Dnsruby/RR/TSIG.html +128 -56
- data/doc/classes/Dnsruby/RR/TSIG.src/M000041.html +24 -0
- data/doc/classes/Dnsruby/RR/TSIG.src/M000042.html +39 -7
- data/doc/classes/Dnsruby/RR/TSIG.src/M000043.html +110 -48
- data/doc/classes/Dnsruby/RR/TSIG.src/M000044.html +19 -20
- data/doc/classes/Dnsruby/RR/TSIG.src/M000045.html +11 -23
- data/doc/classes/Dnsruby/RR/TSIG.src/M000046.html +22 -17
- data/doc/classes/Dnsruby/RR/TSIG.src/M000047.html +7 -19
- data/doc/classes/Dnsruby/RR/TSIG.src/M000048.html +14 -7
- data/doc/classes/Dnsruby/RRSet.html +39 -39
- data/doc/classes/Dnsruby/RRSet.src/{M000187.html → M000158.html} +0 -0
- data/doc/classes/Dnsruby/RRSet.src/M000159.html +30 -4
- data/doc/classes/Dnsruby/RRSet.src/M000160.html +4 -4
- data/doc/classes/Dnsruby/RRSet.src/M000161.html +5 -29
- data/doc/classes/Dnsruby/RRSet.src/M000162.html +4 -4
- data/doc/classes/Dnsruby/RRSet.src/M000163.html +4 -6
- data/doc/classes/Dnsruby/RRSet.src/M000164.html +4 -4
- data/doc/classes/Dnsruby/Refused.html +6 -0
- data/doc/classes/Dnsruby/Resolv.html +120 -119
- data/doc/classes/Dnsruby/Resolv.src/{M000136.html → M000108.html} +1 -1
- data/doc/classes/Dnsruby/Resolv.src/M000109.html +4 -4
- data/doc/classes/Dnsruby/Resolv.src/M000110.html +4 -4
- data/doc/classes/Dnsruby/Resolv.src/M000111.html +4 -4
- data/doc/classes/Dnsruby/Resolv.src/M000112.html +4 -4
- data/doc/classes/Dnsruby/Resolv.src/M000113.html +4 -4
- data/doc/classes/Dnsruby/Resolv.src/M000114.html +4 -4
- data/doc/classes/Dnsruby/Resolv.src/M000115.html +5 -4
- data/doc/classes/Dnsruby/Resolv.src/M000116.html +6 -5
- data/doc/classes/Dnsruby/Resolv.src/M000117.html +15 -6
- data/doc/classes/Dnsruby/Resolv.src/M000118.html +5 -15
- data/doc/classes/Dnsruby/Resolv.src/M000119.html +6 -5
- data/doc/classes/Dnsruby/Resolv.src/M000120.html +11 -6
- data/doc/classes/Dnsruby/ResolvError.html +6 -0
- data/doc/classes/Dnsruby/ResolvTimeout.html +6 -0
- data/doc/classes/Dnsruby/Resolver.html +292 -179
- data/doc/classes/Dnsruby/Resolver.src/{M000239.html → M000203.html} +1 -1
- data/doc/classes/Dnsruby/Resolver.src/{M000240.html → M000204.html} +2 -2
- data/doc/classes/Dnsruby/Resolver.src/{M000241.html → M000205.html} +1 -1
- data/doc/classes/Dnsruby/{SingleResolver.src/M000153.html → Resolver.src/M000206.html} +2 -2
- data/doc/classes/Dnsruby/{SingleResolver.src/M000154.html → Resolver.src/M000207.html} +8 -6
- data/doc/classes/Dnsruby/Resolver.src/M000208.html +28 -0
- data/doc/classes/Dnsruby/Resolver.src/{M000242.html → M000209.html} +1 -1
- data/doc/classes/Dnsruby/Resolver.src/{M000243.html → M000210.html} +5 -2
- data/doc/classes/Dnsruby/Resolver.src/M000211.html +7 -7
- data/doc/classes/Dnsruby/Resolver.src/M000212.html +8 -7
- data/doc/classes/Dnsruby/Resolver.src/M000213.html +4 -13
- data/doc/classes/Dnsruby/Resolver.src/M000214.html +6 -14
- data/doc/classes/Dnsruby/Resolver.src/M000215.html +5 -4
- data/doc/classes/Dnsruby/Resolver.src/M000216.html +4 -33
- data/doc/classes/Dnsruby/Resolver.src/M000217.html +5 -7
- data/doc/classes/Dnsruby/Resolver.src/M000218.html +5 -8
- data/doc/classes/Dnsruby/Resolver.src/M000219.html +5 -4
- data/doc/classes/Dnsruby/Resolver.src/M000220.html +5 -6
- data/doc/classes/Dnsruby/Resolver.src/M000221.html +4 -4
- data/doc/classes/Dnsruby/Resolver.src/M000222.html +4 -4
- data/doc/classes/Dnsruby/Resolver.src/M000223.html +4 -4
- data/doc/classes/Dnsruby/Resolver.src/M000224.html +4 -4
- data/doc/classes/Dnsruby/Resolver.src/M000225.html +4 -4
- data/doc/classes/Dnsruby/Resolver.src/M000226.html +12 -5
- data/doc/classes/Dnsruby/Resolver.src/M000227.html +4 -5
- data/doc/classes/Dnsruby/Resolver.src/M000228.html +9 -5
- data/doc/classes/Dnsruby/Resolver.src/M000229.html +4 -5
- data/doc/classes/Dnsruby/ServFail.html +6 -0
- data/doc/classes/Dnsruby/SingleResolver.html +182 -77
- data/doc/classes/Dnsruby/SingleResolver.src/{M000149.html → M000121.html} +4 -4
- data/doc/classes/Dnsruby/SingleResolver.src/M000122.html +22 -4
- data/doc/classes/Dnsruby/SingleResolver.src/M000123.html +4 -5
- data/doc/classes/Dnsruby/SingleResolver.src/M000124.html +5 -35
- data/doc/classes/Dnsruby/SingleResolver.src/M000125.html +36 -4
- data/doc/classes/Dnsruby/SingleResolver.src/M000126.html +4 -7
- data/doc/classes/Dnsruby/SingleResolver.src/M000127.html +7 -11
- data/doc/classes/Dnsruby/SingleResolver.src/M000128.html +9 -35
- data/doc/classes/Dnsruby/SingleResolver.src/M000129.html +39 -11
- data/doc/classes/Dnsruby/SingleResolver.src/M000130.html +13 -7
- data/doc/classes/Dnsruby/SingleResolver.src/M000131.html +35 -0
- data/doc/classes/Dnsruby/SingleResolver.src/{M000157.html → M000132.html} +1 -1
- data/doc/classes/Dnsruby/TheLog.html +17 -17
- data/doc/classes/Dnsruby/TheLog.src/{M000188.html → M000182.html} +0 -0
- data/doc/classes/Dnsruby/TheLog.src/{M000190.html → M000183.html} +0 -0
- data/doc/classes/Dnsruby/TheLog.src/{M000191.html → M000184.html} +0 -0
- data/doc/classes/Dnsruby/TheLog.src/{M000189.html → M000185.html} +0 -0
- data/doc/classes/Dnsruby/TheLog.src/{M000217.html → M000186.html} +0 -0
- data/doc/classes/Dnsruby/TheLog.src/{M000218.html → M000187.html} +0 -0
- data/doc/classes/Dnsruby/Update.html +34 -34
- data/doc/classes/Dnsruby/Update.src/{M000219.html → M000185.html} +0 -0
- data/doc/classes/Dnsruby/Update.src/{M000193.html → M000186.html} +0 -1
- data/doc/classes/Dnsruby/Update.src/{M000194.html → M000187.html} +1 -1
- data/doc/classes/Dnsruby/Update.src/M000188.html +32 -0
- data/doc/classes/Dnsruby/Update.src/{M000220.html → M000189.html} +0 -1
- data/doc/classes/Dnsruby/Update.src/{M000221.html → M000190.html} +1 -1
- data/doc/classes/Dnsruby/Update.src/M000191.html +26 -17
- data/doc/classes/Dnsruby/Update.src/M000192.html +19 -17
- data/doc/classes/Dnsruby/ZoneTransfer.html +65 -13
- data/doc/classes/Dnsruby/{CodeMapper.src/M000163.html → ZoneTransfer.src/M000092.html} +4 -4
- data/doc/classes/Dnsruby/ZoneTransfer.src/{M000095.html → M000093.html} +3 -1
- data/doc/classes/Dnsruby/ZoneTransfer.src/{M000103.html → M000094.html} +1 -1
- data/doc/classes/Dnsruby/ZoneTransfer/Delta.html +22 -5
- data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/{M000104.html → M000095.html} +1 -1
- data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/M000096.html +19 -0
- data/doc/created.rid +1 -1
- data/doc/files/lib/Dnsruby/Config_rb.html +1 -1
- data/doc/files/lib/Dnsruby/DNSSEC_rb.html +1 -1
- data/doc/files/lib/Dnsruby/DNS_rb.html +1 -1
- data/doc/files/lib/Dnsruby/Hosts_rb.html +1 -1
- data/doc/files/lib/Dnsruby/Resolver_rb.html +1 -1
- data/doc/files/lib/Dnsruby/SingleResolver_rb.html +1 -1
- data/doc/files/lib/Dnsruby/TheLog_rb.html +1 -1
- data/doc/files/lib/Dnsruby/code_mapper_rb.html +1 -1
- data/doc/files/lib/Dnsruby/event_machine_interface_rb.html +1 -1
- data/doc/files/lib/Dnsruby/ipv4_rb.html +1 -1
- data/doc/files/lib/Dnsruby/ipv6_rb.html +1 -1
- data/doc/files/lib/Dnsruby/message_rb.html +1 -1
- data/doc/files/lib/Dnsruby/name_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/AAAA_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/AFSDB_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/A_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/CERT_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/HINFO_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/IN_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/ISDN_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/LOC_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/MINFO_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/MX_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/NAPTR_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/NSAP_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/OPT_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/PX_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/RP_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/RT_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/SOA_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/SPF_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/SRV_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/TKEY_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/TSIG_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/TXT_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/X25_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/domain_name_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/generic_rb.html +1 -1
- data/doc/files/lib/Dnsruby/resource/resource_rb.html +1 -1
- data/doc/files/lib/Dnsruby/select_thread_rb.html +1 -1
- data/doc/files/lib/Dnsruby/update_rb.html +1 -1
- data/doc/files/lib/Dnsruby/zone_transfer_rb.html +1 -1
- data/doc/files/lib/dnsruby_rb.html +1 -1
- data/doc/fr_class_index.html +0 -2
- data/doc/fr_method_index.html +207 -213
- data/doc/index.html +1 -1
- data/lib/Dnsruby/Config.rb +11 -5
- data/lib/Dnsruby/DNS.rb +97 -50
- data/lib/Dnsruby/Hosts.rb +9 -2
- data/lib/Dnsruby/Resolver.rb +116 -31
- data/lib/Dnsruby/SingleResolver.rb +131 -75
- data/lib/Dnsruby/TheLog.rb +1 -2
- data/lib/Dnsruby/event_machine_interface.rb +9 -9
- data/lib/Dnsruby/ipv4.rb +6 -15
- data/lib/Dnsruby/ipv6.rb +23 -21
- data/lib/Dnsruby/message.rb +141 -56
- data/lib/Dnsruby/name.rb +15 -7
- data/lib/Dnsruby/resource/A.rb +1 -1
- data/lib/Dnsruby/resource/AAAA.rb +1 -1
- data/lib/Dnsruby/resource/IN.rb +5 -5
- data/lib/Dnsruby/resource/MINFO.rb +6 -2
- data/lib/Dnsruby/resource/OPT.rb +76 -19
- data/lib/Dnsruby/resource/SOA.rb +6 -0
- data/lib/Dnsruby/resource/SRV.rb +25 -21
- data/lib/Dnsruby/resource/TKEY.rb +14 -6
- data/lib/Dnsruby/resource/TSIG.rb +367 -120
- data/lib/Dnsruby/resource/domain_name.rb +1 -5
- data/lib/Dnsruby/resource/generic.rb +5 -2
- data/lib/Dnsruby/resource/resource.rb +35 -17
- data/lib/Dnsruby/select_thread.rb +33 -26
- data/lib/Dnsruby/update.rb +3 -4
- data/lib/Dnsruby/zone_transfer.rb +46 -12
- data/lib/dnsruby.rb +56 -44
- data/test/tc_axfr.rb +45 -7
- data/test/tc_dns.rb +1 -2
- data/test/tc_em_deferrable.rb +7 -16
- data/test/tc_escapedchars.rb +5 -21
- data/test/tc_event_machine_deferrable.rb +1 -1
- data/test/tc_event_machine_res.rb +1 -1
- data/test/tc_event_machine_single_res.rb +4 -4
- data/test/tc_event_machine_soak.rb +1 -1
- data/test/tc_packet_unique_push.rb +1 -1
- data/test/tc_question.rb +16 -17
- data/test/tc_res_config.rb +1 -1
- data/test/tc_res_opt.rb +4 -0
- data/test/tc_resolver.rb +0 -1
- data/test/tc_rr-opt.rb +45 -6
- data/test/tc_single_resolver.rb +1 -3
- data/test/tc_soak.rb +1 -5
- data/test/tc_soak_base.rb +1 -1
- data/test/tc_tcp.rb +1 -1
- data/test/tc_tkey.rb +1 -32
- data/test/tc_tsig.rb +196 -0
- data/test/ts_offline.rb +3 -2
- data/test/ts_online.rb +59 -14
- metadata +69 -318
- data/doc/classes/Dnsruby/Classes.src/M000159.html +0 -19
- data/doc/classes/Dnsruby/Classes.src/M000185.html +0 -23
- data/doc/classes/Dnsruby/Classes.src/M000186.html +0 -19
- data/doc/classes/Dnsruby/CodeMapper.src/M000130.html +0 -18
- data/doc/classes/Dnsruby/CodeMapper.src/M000131.html +0 -18
- data/doc/classes/Dnsruby/CodeMapper.src/M000132.html +0 -33
- data/doc/classes/Dnsruby/CodeMapper.src/M000158.html +0 -18
- data/doc/classes/Dnsruby/CodeMapper.src/M000159.html +0 -33
- data/doc/classes/Dnsruby/CodeMapper.src/M000160.html +0 -21
- data/doc/classes/Dnsruby/CodeMapper.src/M000161.html +0 -19
- data/doc/classes/Dnsruby/CodeMapper.src/M000162.html +0 -19
- data/doc/classes/Dnsruby/CodeMapper.src/M000164.html +0 -22
- data/doc/classes/Dnsruby/CodeMapper.src/M000165.html +0 -22
- data/doc/classes/Dnsruby/CodeMapper.src/M000166.html +0 -22
- data/doc/classes/Dnsruby/Config.src/M000108.html +0 -21
- data/doc/classes/Dnsruby/Config.src/M000126.html +0 -19
- data/doc/classes/Dnsruby/Config.src/M000127.html +0 -19
- data/doc/classes/Dnsruby/Config.src/M000128.html +0 -21
- data/doc/classes/Dnsruby/Config.src/M000129.html +0 -21
- data/doc/classes/Dnsruby/Config.src/M000130.html +0 -38
- data/doc/classes/Dnsruby/Config.src/M000131.html +0 -26
- data/doc/classes/Dnsruby/Config.src/M000132.html +0 -22
- data/doc/classes/Dnsruby/Config.src/M000133.html +0 -27
- data/doc/classes/Dnsruby/Config.src/M000134.html +0 -22
- data/doc/classes/Dnsruby/Config.src/M000135.html +0 -21
- data/doc/classes/Dnsruby/DNS.src/M000206.html +0 -28
- data/doc/classes/Dnsruby/DNS.src/M000207.html +0 -19
- data/doc/classes/Dnsruby/DNS.src/M000208.html +0 -20
- data/doc/classes/Dnsruby/DNS.src/M000209.html +0 -41
- data/doc/classes/Dnsruby/DNS.src/M000210.html +0 -32
- data/doc/classes/Dnsruby/DNS.src/M000211.html +0 -50
- data/doc/classes/Dnsruby/DNS.src/M000227.html +0 -20
- data/doc/classes/Dnsruby/DNS.src/M000228.html +0 -19
- data/doc/classes/Dnsruby/DNS.src/M000229.html +0 -20
- data/doc/classes/Dnsruby/DNS.src/M000230.html +0 -18
- data/doc/classes/Dnsruby/DNS.src/M000231.html +0 -19
- data/doc/classes/Dnsruby/DNS.src/M000232.html +0 -20
- data/doc/classes/Dnsruby/DNS.src/M000233.html +0 -28
- data/doc/classes/Dnsruby/DNS.src/M000234.html +0 -19
- data/doc/classes/Dnsruby/DNS.src/M000235.html +0 -20
- data/doc/classes/Dnsruby/DNS.src/M000236.html +0 -41
- data/doc/classes/Dnsruby/DNS.src/M000237.html +0 -32
- data/doc/classes/Dnsruby/DNS.src/M000238.html +0 -50
- data/doc/classes/Dnsruby/DNS/DecodeError.html +0 -111
- data/doc/classes/Dnsruby/DNS/EncodeError.html +0 -111
- data/doc/classes/Dnsruby/EventMachineInterface.html +0 -327
- data/doc/classes/Dnsruby/EventMachineInterface.src/M000105.html +0 -32
- data/doc/classes/Dnsruby/EventMachineInterface.src/M000106.html +0 -25
- data/doc/classes/Dnsruby/EventMachineInterface.src/M000107.html +0 -29
- data/doc/classes/Dnsruby/EventMachineInterface.src/M000108.html +0 -21
- data/doc/classes/Dnsruby/EventMachineInterface.src/M000109.html +0 -35
- data/doc/classes/Dnsruby/EventMachineInterface.src/M000110.html +0 -19
- data/doc/classes/Dnsruby/EventMachineInterface.src/M000111.html +0 -23
- data/doc/classes/Dnsruby/EventMachineInterface.src/M000112.html +0 -18
- data/doc/classes/Dnsruby/EventMachineInterface.src/M000113.html +0 -28
- data/doc/classes/Dnsruby/EventMachineInterface.src/M000114.html +0 -41
- data/doc/classes/Dnsruby/EventMachineInterface.src/M000115.html +0 -28
- data/doc/classes/Dnsruby/EventMachineInterface.src/M000116.html +0 -24
- data/doc/classes/Dnsruby/EventMachineInterface/EmTcpHandler.html +0 -154
- data/doc/classes/Dnsruby/EventMachineInterface/EmTcpHandler.src/M000123.html +0 -20
- data/doc/classes/Dnsruby/EventMachineInterface/EmTcpHandler.src/M000124.html +0 -32
- data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.html +0 -237
- data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.src/M000117.html +0 -18
- data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.src/M000118.html +0 -19
- data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.src/M000119.html +0 -35
- data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.src/M000120.html +0 -30
- data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.src/M000121.html +0 -19
- data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.src/M000122.html +0 -23
- data/doc/classes/Dnsruby/Header.src/M000199.html +0 -21
- data/doc/classes/Dnsruby/Header.src/M000200.html +0 -20
- data/doc/classes/Dnsruby/Header.src/M000201.html +0 -32
- data/doc/classes/Dnsruby/Header.src/M000202.html +0 -26
- data/doc/classes/Dnsruby/Header.src/M000203.html +0 -47
- data/doc/classes/Dnsruby/Header.src/M000204.html +0 -28
- data/doc/classes/Dnsruby/Header.src/M000205.html +0 -18
- data/doc/classes/Dnsruby/Header.src/M000206.html +0 -18
- data/doc/classes/Dnsruby/Header.src/M000207.html +0 -30
- data/doc/classes/Dnsruby/Hosts.src/M000141.html +0 -20
- data/doc/classes/Dnsruby/Hosts.src/M000142.html +0 -20
- data/doc/classes/Dnsruby/Hosts.src/M000143.html +0 -49
- data/doc/classes/Dnsruby/Hosts.src/M000169.html +0 -20
- data/doc/classes/Dnsruby/Hosts.src/M000170.html +0 -49
- data/doc/classes/Dnsruby/Hosts.src/M000171.html +0 -19
- data/doc/classes/Dnsruby/Hosts.src/M000172.html +0 -20
- data/doc/classes/Dnsruby/Hosts.src/M000173.html +0 -21
- data/doc/classes/Dnsruby/Hosts.src/M000174.html +0 -19
- data/doc/classes/Dnsruby/Hosts.src/M000175.html +0 -20
- data/doc/classes/Dnsruby/IPv4.src/M000149.html +0 -32
- data/doc/classes/Dnsruby/IPv4.src/M000150.html +0 -32
- data/doc/classes/Dnsruby/IPv4.src/M000157.html +0 -18
- data/doc/classes/Dnsruby/IPv4.src/M000177.html +0 -32
- data/doc/classes/Dnsruby/IPv4.src/M000178.html +0 -21
- data/doc/classes/Dnsruby/IPv4.src/M000179.html +0 -18
- data/doc/classes/Dnsruby/IPv4.src/M000180.html +0 -18
- data/doc/classes/Dnsruby/IPv4.src/M000181.html +0 -19
- data/doc/classes/Dnsruby/IPv4.src/M000182.html +0 -18
- data/doc/classes/Dnsruby/IPv4.src/M000183.html +0 -18
- data/doc/classes/Dnsruby/IPv4.src/M000184.html +0 -18
- data/doc/classes/Dnsruby/IPv6.src/M000185.html +0 -21
- data/doc/classes/Dnsruby/IPv6.src/M000186.html +0 -18
- data/doc/classes/Dnsruby/IPv6.src/M000187.html +0 -18
- data/doc/classes/Dnsruby/IPv6.src/M000188.html +0 -18
- data/doc/classes/Dnsruby/IPv6.src/M000209.html +0 -21
- data/doc/classes/Dnsruby/IPv6.src/M000211.html +0 -18
- data/doc/classes/Dnsruby/IPv6.src/M000212.html +0 -21
- data/doc/classes/Dnsruby/IPv6.src/M000213.html +0 -18
- data/doc/classes/Dnsruby/IPv6.src/M000214.html +0 -18
- data/doc/classes/Dnsruby/IPv6.src/M000215.html +0 -18
- data/doc/classes/Dnsruby/Message.src/M000087.html +0 -54
- data/doc/classes/Dnsruby/Message.src/M000088.html +0 -42
- data/doc/classes/Dnsruby/Message.src/M000089.html +0 -45
- data/doc/classes/Dnsruby/Message.src/M000090.html +0 -20
- data/doc/classes/Dnsruby/Message.src/M000091.html +0 -21
- data/doc/classes/Dnsruby/Message.src/M000092.html +0 -20
- data/doc/classes/Dnsruby/Message.src/M000093.html +0 -18
- data/doc/classes/Dnsruby/Message.src/M000094.html +0 -54
- data/doc/classes/Dnsruby/Message.src/M000095.html +0 -42
- data/doc/classes/Dnsruby/Message.src/M000096.html +0 -45
- data/doc/classes/Dnsruby/Name.src/M000062.html +0 -19
- data/doc/classes/Dnsruby/Name.src/M000064.html +0 -22
- data/doc/classes/Dnsruby/Name.src/M000065.html +0 -18
- data/doc/classes/Dnsruby/Name.src/M000066.html +0 -20
- data/doc/classes/Dnsruby/Name.src/M000067.html +0 -18
- data/doc/classes/Dnsruby/Name.src/M000068.html +0 -21
- data/doc/classes/Dnsruby/Name.src/M000069.html +0 -19
- data/doc/classes/Dnsruby/Name.src/M000071.html +0 -22
- data/doc/classes/Dnsruby/Name.src/M000072.html +0 -18
- data/doc/classes/Dnsruby/Name.src/M000073.html +0 -20
- data/doc/classes/Dnsruby/Name/Label.src/M000071.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000072.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000073.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000074.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000079.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000080.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000081.html +0 -18
- data/doc/classes/Dnsruby/Name/Label.src/M000082.html +0 -18
- data/doc/classes/Dnsruby/RR.src/M000014.html +0 -24
- data/doc/classes/Dnsruby/RR.src/M000015.html +0 -18
- data/doc/classes/Dnsruby/RR.src/M000016.html +0 -18
- data/doc/classes/Dnsruby/RR.src/M000017.html +0 -22
- data/doc/classes/Dnsruby/RR.src/M000018.html +0 -22
- data/doc/classes/Dnsruby/RR.src/M000019.html +0 -18
- data/doc/classes/Dnsruby/RR.src/M000020.html +0 -22
- data/doc/classes/Dnsruby/RR.src/M000021.html +0 -24
- data/doc/classes/Dnsruby/RR/DomainName.src/M000058.html +0 -22
- data/doc/classes/Dnsruby/RR/Generic.src/M000041.html +0 -25
- data/doc/classes/Dnsruby/RR/Generic.src/M000048.html +0 -25
- data/doc/classes/Dnsruby/RR/IN/A.src/M000020.html +0 -18
- data/doc/classes/Dnsruby/RR/IN/A.src/M000026.html +0 -18
- data/doc/classes/Dnsruby/RR/IN/A.src/M000027.html +0 -18
- data/doc/classes/Dnsruby/RR/IN/SRV.src/M000017.html +0 -22
- data/doc/classes/Dnsruby/RR/IN/SRV.src/M000023.html +0 -26
- data/doc/classes/Dnsruby/RR/IN/SRV.src/M000024.html +0 -22
- data/doc/classes/Dnsruby/RR/IN/WKS.src/M000028.html +0 -20
- data/doc/classes/Dnsruby/RR/LOC.src/M000032.html +0 -32
- data/doc/classes/Dnsruby/RR/LOC.src/M000033.html +0 -23
- data/doc/classes/Dnsruby/RR/LOC.src/M000034.html +0 -25
- data/doc/classes/Dnsruby/RR/LOC.src/M000035.html +0 -21
- data/doc/classes/Dnsruby/RR/LOC.src/M000036.html +0 -20
- data/doc/classes/Dnsruby/RR/LOC.src/M000037.html +0 -23
- data/doc/classes/Dnsruby/RR/NSAP.src/M000056.html +0 -31
- data/doc/classes/Dnsruby/RR/NSAP.src/M000061.html +0 -19
- data/doc/classes/Dnsruby/RR/NSAP.src/M000062.html +0 -22
- data/doc/classes/Dnsruby/RR/NSAP.src/M000063.html +0 -31
- data/doc/classes/Dnsruby/RR/RP.src/M000057.html +0 -19
- data/doc/classes/Dnsruby/RR/SOA.src/M000046.html +0 -24
- data/doc/classes/Dnsruby/RR/SOA.src/M000047.html +0 -27
- data/doc/classes/Dnsruby/RR/TKEY.src/M000030.html +0 -29
- data/doc/classes/Dnsruby/RR/TKEY.src/M000031.html +0 -30
- data/doc/classes/Dnsruby/RR/TSIG.src/M000049.html +0 -29
- data/doc/classes/Dnsruby/RR/TSIG.src/M000050.html +0 -71
- data/doc/classes/Dnsruby/RR/TSIG.src/M000051.html +0 -34
- data/doc/classes/Dnsruby/RR/TSIG.src/M000052.html +0 -37
- data/doc/classes/Dnsruby/RR/TSIG.src/M000053.html +0 -31
- data/doc/classes/Dnsruby/RR/TSIG.src/M000054.html +0 -34
- data/doc/classes/Dnsruby/RR/TSIG.src/M000055.html +0 -22
- data/doc/classes/Dnsruby/RR/TSIG.src/M000056.html +0 -29
- data/doc/classes/Dnsruby/RR/TXT.src/M000041.html +0 -18
- data/doc/classes/Dnsruby/RR/TXT.src/M000042.html +0 -18
- data/doc/classes/Dnsruby/RR/TXT.src/M000043.html +0 -20
- data/doc/classes/Dnsruby/RR/TXT.src/M000044.html +0 -27
- data/doc/classes/Dnsruby/RR/TXT.src/M000045.html +0 -25
- data/doc/classes/Dnsruby/RR/X25.src/M000038.html +0 -18
- data/doc/classes/Dnsruby/RR/X25.src/M000039.html +0 -18
- data/doc/classes/Dnsruby/RR/X25.src/M000040.html +0 -22
- data/doc/classes/Dnsruby/RRSet.src/M000165.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000166.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000188.html +0 -44
- data/doc/classes/Dnsruby/RRSet.src/M000189.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000190.html +0 -20
- data/doc/classes/Dnsruby/RRSet.src/M000191.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000192.html +0 -18
- data/doc/classes/Dnsruby/RRSet.src/M000193.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000121.html +0 -25
- data/doc/classes/Dnsruby/Resolv.src/M000137.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000138.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000139.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000140.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000141.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000142.html +0 -18
- data/doc/classes/Dnsruby/Resolv.src/M000143.html +0 -19
- data/doc/classes/Dnsruby/Resolv.src/M000144.html +0 -20
- data/doc/classes/Dnsruby/Resolv.src/M000145.html +0 -29
- data/doc/classes/Dnsruby/Resolv.src/M000146.html +0 -19
- data/doc/classes/Dnsruby/Resolv.src/M000147.html +0 -20
- data/doc/classes/Dnsruby/Resolv.src/M000148.html +0 -25
- data/doc/classes/Dnsruby/Resolver.src/M000230.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000231.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000232.html +0 -26
- data/doc/classes/Dnsruby/Resolver.src/M000233.html +0 -18
- data/doc/classes/Dnsruby/Resolver.src/M000234.html +0 -23
- data/doc/classes/Dnsruby/Resolver.src/M000235.html +0 -18
- data/doc/classes/Dnsruby/Resolver.src/M000236.html +0 -42
- data/doc/classes/Dnsruby/Resolver.src/M000244.html +0 -21
- data/doc/classes/Dnsruby/Resolver.src/M000245.html +0 -22
- data/doc/classes/Dnsruby/Resolver.src/M000246.html +0 -18
- data/doc/classes/Dnsruby/Resolver.src/M000247.html +0 -20
- data/doc/classes/Dnsruby/Resolver.src/M000248.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000249.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000250.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000251.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000252.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000253.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000254.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000255.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000256.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000257.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000258.html +0 -19
- data/doc/classes/Dnsruby/Resolver.src/M000259.html +0 -26
- data/doc/classes/Dnsruby/Resolver.src/M000260.html +0 -18
- data/doc/classes/Dnsruby/Resolver.src/M000261.html +0 -23
- data/doc/classes/Dnsruby/Resolver.src/M000262.html +0 -18
- data/doc/classes/Dnsruby/Resolver.src/M000263.html +0 -42
- data/doc/classes/Dnsruby/SelectInterface.html +0 -236
- data/doc/classes/Dnsruby/SelectInterface.src/M000001.html +0 -19
- data/doc/classes/Dnsruby/SelectInterface.src/M000002.html +0 -18
- data/doc/classes/Dnsruby/SelectInterface.src/M000003.html +0 -18
- data/doc/classes/Dnsruby/SelectInterface.src/M000004.html +0 -18
- data/doc/classes/Dnsruby/SelectInterface.src/M000005.html +0 -21
- data/doc/classes/Dnsruby/SelectInterface.src/M000006.html +0 -19
- data/doc/classes/Dnsruby/SelectInterface.src/M000007.html +0 -18
- data/doc/classes/Dnsruby/SingleResolver.src/M000150.html +0 -19
- data/doc/classes/Dnsruby/SingleResolver.src/M000151.html +0 -49
- data/doc/classes/Dnsruby/SingleResolver.src/M000155.html +0 -51
- data/doc/classes/Dnsruby/SingleResolver.src/M000156.html +0 -26
- data/doc/classes/Dnsruby/TheLog.src/M000216.html +0 -20
- data/doc/classes/Dnsruby/Update.src/M000195.html +0 -41
- data/doc/classes/Dnsruby/Update.src/M000196.html +0 -34
- data/doc/classes/Dnsruby/Update.src/M000222.html +0 -41
- data/doc/classes/Dnsruby/Update.src/M000223.html +0 -34
- data/doc/classes/Dnsruby/ZoneTransfer.src/M000096.html +0 -35
- data/doc/classes/Dnsruby/ZoneTransfer.src/M000102.html +0 -22
- data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/M000097.html +0 -19
- data/doc/files/lib/Dnsruby/SelectInterface_rb.html +0 -108
|
@@ -30,9 +30,13 @@ module Dnsruby
|
|
|
30
30
|
#* Dnsruby::SingleResolver#query(name [, type [, klass]])
|
|
31
31
|
#
|
|
32
32
|
#=== Asynchronous
|
|
33
|
-
#These methods use a response queue
|
|
33
|
+
#These methods use a response queue, or an EventMachine::Deferrable
|
|
34
|
+
#to return the response and the error to the client. See Dnsruby::Resolver for
|
|
35
|
+
#details of how to enable the EventMachine implementation.
|
|
36
|
+
#More information about the EventMachine implementation is available in the
|
|
37
|
+
#EVENTMACHINE file in the Dnsruby distribution
|
|
34
38
|
#
|
|
35
|
-
#* Dnsruby::SingleResolver#send_async(
|
|
39
|
+
#* Dnsruby::SingleResolver#send_async(...)
|
|
36
40
|
#
|
|
37
41
|
class SingleResolver
|
|
38
42
|
attr_accessor :packet_timeout
|
|
@@ -47,7 +51,8 @@ module Dnsruby
|
|
|
47
51
|
# Defaults to false
|
|
48
52
|
attr_accessor :use_tcp
|
|
49
53
|
|
|
50
|
-
|
|
54
|
+
# The TSIG record to sign/verify messages with
|
|
55
|
+
attr_reader :tsig
|
|
51
56
|
|
|
52
57
|
# Don't worry if the response is truncated - return it anyway.
|
|
53
58
|
#
|
|
@@ -81,11 +86,46 @@ module Dnsruby
|
|
|
81
86
|
# The max UDP packet size
|
|
82
87
|
#
|
|
83
88
|
# Defaults to 512
|
|
84
|
-
|
|
89
|
+
attr_reader :udp_size
|
|
85
90
|
|
|
86
91
|
# The address of the resolver to send queries to
|
|
87
92
|
attr_reader :server
|
|
88
93
|
|
|
94
|
+
#Sets the TSIG to sign outgoing messages with.
|
|
95
|
+
#Pass in either a Dnsruby::RR::TSIG, or a key_name and key (or just a key)
|
|
96
|
+
#Pass in nil to stop tsig signing.
|
|
97
|
+
#It is possible for client code to sign packets prior to sending - see
|
|
98
|
+
#Dnsruby::RR::TSIG#apply and Dnsruby::Message#sign
|
|
99
|
+
#Note that pre-signed packets will not be signed by SingleResolver.
|
|
100
|
+
#* res.tsig=(tsig_rr)
|
|
101
|
+
#* res.tsig=(key_name, key)
|
|
102
|
+
#* res.tsig=nil # Stop the resolver from signing
|
|
103
|
+
def tsig=(*args)
|
|
104
|
+
@tsig = SingleResolver.get_tsig(args)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def SingleResolver.get_tsig(args)
|
|
108
|
+
tsig = nil
|
|
109
|
+
if (args.length == 1)
|
|
110
|
+
if (args[0])
|
|
111
|
+
if (args[0].instance_of?RR::TSIG)
|
|
112
|
+
tsig = args[0]
|
|
113
|
+
elsif (args[0].instance_of?Array)
|
|
114
|
+
tsig = RR.new_from_hash({:type => Types.TSIG, :klass => Classes.ANY, :name => args[0][0], :key => args[0][1]})
|
|
115
|
+
end
|
|
116
|
+
else
|
|
117
|
+
TheLog.info("TSIG signing switched off")
|
|
118
|
+
return nil
|
|
119
|
+
end
|
|
120
|
+
elsif (args.length ==2)
|
|
121
|
+
tsig = RR.new_from_hash({:type => Types.TSIG, :klass => Classes.ANY, :name => args[0], :key => args[1]})
|
|
122
|
+
else
|
|
123
|
+
raise ArgumentError.new("Wrong number of arguments to tsig=")
|
|
124
|
+
end
|
|
125
|
+
TheLog.info("TSIG signing now using #{tsig.name}, key=#{tsig.key}")
|
|
126
|
+
return tsig
|
|
127
|
+
end
|
|
128
|
+
|
|
89
129
|
def udp_size=(size)
|
|
90
130
|
@udp_size = size
|
|
91
131
|
end
|
|
@@ -106,7 +146,7 @@ module Dnsruby
|
|
|
106
146
|
# * :udp_size
|
|
107
147
|
# * :persistent_tcp
|
|
108
148
|
# * :persistent_udp
|
|
109
|
-
# * :
|
|
149
|
+
# * :tsig
|
|
110
150
|
# * :packet_timeout
|
|
111
151
|
# * :recurse
|
|
112
152
|
def initialize(*args)
|
|
@@ -115,13 +155,14 @@ module Dnsruby
|
|
|
115
155
|
@port = Resolver::DefaultPort
|
|
116
156
|
@udp_size = Resolver::DefaultUDPSize
|
|
117
157
|
@use_tcp = false
|
|
118
|
-
@
|
|
158
|
+
@tsig = nil
|
|
119
159
|
@ignore_truncation = false
|
|
120
160
|
@src_addr = '0.0.0.0'
|
|
121
161
|
@src_port = 0
|
|
122
162
|
@recurse = true
|
|
123
163
|
@persistent_udp = false
|
|
124
164
|
@persistent_tcp = false
|
|
165
|
+
@dnssec = false
|
|
125
166
|
|
|
126
167
|
if (arg==nil)
|
|
127
168
|
# Get default config
|
|
@@ -166,7 +207,7 @@ module Dnsruby
|
|
|
166
207
|
# SingleResolver.use_tcp
|
|
167
208
|
def send_message(msg, use_tcp=@use_tcp)
|
|
168
209
|
q = Queue.new
|
|
169
|
-
send_async(msg, q,
|
|
210
|
+
send_async(msg, q, Time.now + rand(10000), use_tcp)
|
|
170
211
|
id, msg, error = q.pop
|
|
171
212
|
if (error != nil)
|
|
172
213
|
raise error
|
|
@@ -176,43 +217,51 @@ module Dnsruby
|
|
|
176
217
|
end
|
|
177
218
|
|
|
178
219
|
|
|
179
|
-
#
|
|
180
|
-
#
|
|
220
|
+
#Asynchronously send a Message to the server. The send can be done using just
|
|
221
|
+
#Dnsruby, or using EventMachine.
|
|
222
|
+
#
|
|
223
|
+
#== Dnsruby pure Ruby event loop :
|
|
224
|
+
#
|
|
225
|
+
#A client_queue is supplied by the client,
|
|
226
|
+
#along with an optional client_query_id to identify the response. The client_query_id
|
|
227
|
+
#is generated, if not supplied, and returned to the client.
|
|
228
|
+
#When the response is known, the tuple
|
|
229
|
+
#(query_id, response_message, response_exception) is put in the queue for the client to process.
|
|
181
230
|
#
|
|
182
|
-
|
|
231
|
+
#The query is sent synchronously in the caller's thread. The select thread is then used to
|
|
232
|
+
#listen for and process the response (up to pushing it to the client_queue). The client thread
|
|
233
|
+
#is then used to retrieve the response and deal with it.
|
|
183
234
|
#
|
|
184
|
-
#
|
|
185
|
-
# along with a client_query_id to identify the response. When the response is known, the tuple
|
|
186
|
-
# (query_id, response_message, response_exception) is put in the queue for the client to process.
|
|
235
|
+
#Takes :
|
|
187
236
|
#
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
237
|
+
#* msg - the message to send
|
|
238
|
+
#* client_queue - a Queue to push the response to, when it arrives
|
|
239
|
+
#* client_query_id - an optional ID to identify the query to the client
|
|
240
|
+
#* use_tcp - whether to use TCP (defaults to SingleResolver.use_tcp)
|
|
191
241
|
#
|
|
192
|
-
#
|
|
242
|
+
#Returns :
|
|
193
243
|
#
|
|
194
|
-
|
|
195
|
-
#
|
|
196
|
-
# * client_query_id - an ID to identify the query to the client
|
|
197
|
-
# * use_tcp - whether to use TCP (defaults to SingleResolver.use_tcp)
|
|
244
|
+
#* client_query_id - to identify the query response to the client. This ID is
|
|
245
|
+
#generated if it is not passed in by the client
|
|
198
246
|
#
|
|
199
|
-
#
|
|
247
|
+
#If the native Dsnruby networking layer is being used, then this method returns the client_query_id
|
|
200
248
|
#
|
|
201
249
|
# id = res.send_async(msg, queue)
|
|
202
250
|
# NOT SUPPORTED : id = res.send_async(msg, queue, use_tcp)
|
|
203
251
|
# id = res.send_async(msg, queue, id)
|
|
204
252
|
# id = res.send_async(msg, queue, id, use_tcp)
|
|
205
253
|
#
|
|
206
|
-
|
|
254
|
+
#== If EventMachine is being used :
|
|
207
255
|
#
|
|
208
|
-
#
|
|
209
|
-
#
|
|
210
|
-
#
|
|
256
|
+
#If EventMachine is being used (see Dnsruby::Resolver::use_eventmachine),then this method returns
|
|
257
|
+
#an EM::Deferrable object. If a queue (and ID) is passed in, then the response will also be
|
|
258
|
+
#pushed to the Queue (as well as the deferrable completing).
|
|
211
259
|
#
|
|
212
260
|
# deferrable = res.send_async(msg)
|
|
213
261
|
# deferrable = res.send_async(msg, use_tcp)
|
|
214
262
|
# deferrable = res.send_async(msg, q, id, use_tcp)
|
|
215
263
|
def send_async(*args) # msg, client_queue, client_query_id, use_tcp=@use_tcp)
|
|
264
|
+
# @TODO@ Need to select a good Header ID here - see forgery-resilience RFC draft for details
|
|
216
265
|
msg = args[0]
|
|
217
266
|
client_query_id = nil
|
|
218
267
|
client_queue = nil
|
|
@@ -220,8 +269,9 @@ module Dnsruby
|
|
|
220
269
|
if (msg.kind_of?String)
|
|
221
270
|
msg = Message.new(msg)
|
|
222
271
|
end
|
|
223
|
-
query_packet = make_query_packet(msg)
|
|
272
|
+
query_packet = make_query_packet(msg, use_tcp)
|
|
224
273
|
if (udp_packet_size < query_packet.length)
|
|
274
|
+
TheLog.debug("Query packet length exceeds max UDP packet size - using TCP")
|
|
225
275
|
use_tcp = true
|
|
226
276
|
end
|
|
227
277
|
if (args.length > 1)
|
|
@@ -237,33 +287,37 @@ module Dnsruby
|
|
|
237
287
|
end
|
|
238
288
|
end
|
|
239
289
|
end
|
|
290
|
+
# Need to keep track of the request mac (if using tsig) so we can validate the response (RFC2845 4.1)
|
|
240
291
|
#Are we using EventMachine or native Dnsruby?
|
|
241
292
|
if (Resolver.eventmachine?)
|
|
242
|
-
return send_eventmachine(query_packet, msg
|
|
293
|
+
return send_eventmachine(query_packet, msg, client_query_id, client_queue, use_tcp)
|
|
243
294
|
else
|
|
244
295
|
if (!client_query_id)
|
|
245
|
-
client_query_id =
|
|
296
|
+
client_query_id = Time.now + rand(10000)
|
|
246
297
|
end
|
|
247
|
-
send_dnsruby(query_packet, msg
|
|
298
|
+
send_dnsruby(query_packet, msg, client_query_id, client_queue, use_tcp)
|
|
248
299
|
return client_query_id
|
|
249
300
|
end
|
|
250
301
|
end
|
|
251
302
|
|
|
252
303
|
# This method sends the packet using EventMachine
|
|
253
|
-
def send_eventmachine(
|
|
304
|
+
def send_eventmachine(msg_bytes, msg, client_query_id, client_queue, use_tcp, client_deferrable=nil, packet_timeout = @packet_timeout) #:nodoc: all
|
|
305
|
+
start_time = Time.now
|
|
254
306
|
if (!client_deferrable)
|
|
255
307
|
client_deferrable = EventMachine::DefaultDeferrable.new
|
|
256
308
|
end
|
|
257
|
-
packet_deferrable = EventMachineInterface.send(:msg=>
|
|
258
|
-
packet_deferrable.callback { |response|
|
|
259
|
-
TheLog.debug("EM callback #{response}")
|
|
260
|
-
# @TODO@ Check TSIG!
|
|
309
|
+
packet_deferrable = EventMachineInterface.send(:msg=>msg_bytes, :timeout=>packet_timeout, :server=>@server, :port=>@port, :src_addr=>@src_addr, :src_port=>@src_port, :use_tcp=>use_tcp)
|
|
310
|
+
packet_deferrable.callback { |response, response_bytes|
|
|
261
311
|
ret = true
|
|
262
|
-
if (response.header.tc && !use_tcp)
|
|
312
|
+
if (response.header.tc && !use_tcp && !@ignore_truncation)
|
|
263
313
|
# Try to resend over tcp
|
|
264
314
|
TheLog.debug("Truncated - resending over TCP")
|
|
265
|
-
send_eventmachine(
|
|
315
|
+
send_eventmachine(msg_bytes, msg, client_query_id, client_queue, true, client_deferrable, packet_timeout - (Time.now-start_time))
|
|
266
316
|
else
|
|
317
|
+
if (!check_tsig(msg, response, response_bytes))
|
|
318
|
+
send_eventmachine(msg_bytes, msg, client_query_id, client_queue, true, client_deferrable, packet_timeout - (Time.now-start_time))
|
|
319
|
+
return
|
|
320
|
+
end
|
|
267
321
|
client_deferrable.set_deferred_status :succeeded, response
|
|
268
322
|
if (client_queue)
|
|
269
323
|
client_queue.push([client_query_id, response, nil])
|
|
@@ -271,7 +325,6 @@ module Dnsruby
|
|
|
271
325
|
end
|
|
272
326
|
}
|
|
273
327
|
packet_deferrable.errback { |response, error|
|
|
274
|
-
TheLog.debug("EM errback #{error}, #{response}")
|
|
275
328
|
client_deferrable.set_deferred_status :failed, response, error
|
|
276
329
|
if (client_queue)
|
|
277
330
|
client_queue.push([client_query_id, response, error])
|
|
@@ -281,7 +334,7 @@ module Dnsruby
|
|
|
281
334
|
end
|
|
282
335
|
|
|
283
336
|
# This method sends the packet using the built-in pure Ruby event loop, with no dependencies.
|
|
284
|
-
def send_dnsruby(
|
|
337
|
+
def send_dnsruby(query_bytes, query, client_query_id, client_queue, use_tcp) #:nodoc: all
|
|
285
338
|
endtime = Time.now + @packet_timeout
|
|
286
339
|
# First send the query (synchronously)
|
|
287
340
|
# @TODO@ persisent sockets
|
|
@@ -310,7 +363,7 @@ module Dnsruby
|
|
|
310
363
|
return
|
|
311
364
|
end
|
|
312
365
|
if (socket==nil)
|
|
313
|
-
err=IOError.new("dnsruby can't connect to #{@server}:#{port} from #{@src_addr}:#{@src_port}, use_tcp=#{use_tcp}")
|
|
366
|
+
err=IOError.new("dnsruby can't connect to #{@server}:#{@port} from #{@src_addr}:#{@src_port}, use_tcp=#{use_tcp}")
|
|
314
367
|
TheLog.error("#{err}")
|
|
315
368
|
st.push_exception_to_select(client_query_id, client_queue, err, nil) # @TODO Do we still need this? Can we not just send it from here?
|
|
316
369
|
return
|
|
@@ -318,10 +371,10 @@ module Dnsruby
|
|
|
318
371
|
TheLog.debug("Sending packet to #{@server}:#{@port} from #{@src_addr}:#{@src_port}, use_tcp=#{use_tcp}")
|
|
319
372
|
begin
|
|
320
373
|
if (use_tcp)
|
|
321
|
-
lenmsg = [
|
|
374
|
+
lenmsg = [query_bytes.length].pack('n')
|
|
322
375
|
socket.send(lenmsg, 0)
|
|
323
376
|
end
|
|
324
|
-
socket.send(
|
|
377
|
+
socket.send(query_bytes, 0)
|
|
325
378
|
rescue Exception => e
|
|
326
379
|
socket.close
|
|
327
380
|
err=IOError.new("Send failed to #{@server}:#{@port} from #{@src_addr}:#{@src_port}, use_tcp=#{use_tcp}, exception : #{e}")
|
|
@@ -331,26 +384,48 @@ module Dnsruby
|
|
|
331
384
|
end
|
|
332
385
|
|
|
333
386
|
# Then listen for the response
|
|
334
|
-
query_settings = SelectThread::QuerySettings.new(
|
|
387
|
+
query_settings = SelectThread::QuerySettings.new(query_bytes, query, @ignore_truncation, client_queue, client_query_id, socket, @server, @port, endtime, udp_packet_size, self)
|
|
335
388
|
# The select thread will now wait for the response and send that or a timeout
|
|
336
389
|
# back to the client_queue.
|
|
337
390
|
st.add_to_select(query_settings)
|
|
338
391
|
end
|
|
339
392
|
|
|
340
|
-
def check_response(response, query, client_queue, client_query_id, tcp)
|
|
341
|
-
|
|
342
|
-
|
|
393
|
+
def check_response(response, response_bytes, query, client_queue, client_query_id, tcp)
|
|
394
|
+
if (!check_tsig(query, response, response_bytes))
|
|
395
|
+
return false
|
|
396
|
+
end
|
|
343
397
|
if (response.header.tc && !tcp)
|
|
344
398
|
# Try to resend over tcp
|
|
345
399
|
TheLog.debug("Truncated - resending over TCP")
|
|
346
|
-
send_async(
|
|
347
|
-
|
|
400
|
+
send_async(query, client_queue, client_query_id, true)
|
|
401
|
+
return false
|
|
348
402
|
end
|
|
349
|
-
return
|
|
403
|
+
return true
|
|
404
|
+
end
|
|
405
|
+
|
|
406
|
+
def check_tsig(query, response, response_bytes)
|
|
407
|
+
if (query.tsig)
|
|
408
|
+
if (response.tsig)
|
|
409
|
+
if !query.tsig.verify(query, response, response_bytes)
|
|
410
|
+
# Discard packet and wait for correctly signed response
|
|
411
|
+
TheLog.error("TSIG authentication failed!")
|
|
412
|
+
return false
|
|
413
|
+
end
|
|
414
|
+
else
|
|
415
|
+
# Treated as having format error and discarded (RFC2845, 4.6)
|
|
416
|
+
TheLog.error("Expecting TSIG signed response, but got unsigned response - discarding")
|
|
417
|
+
return false
|
|
418
|
+
end
|
|
419
|
+
elsif (response.tsig)
|
|
420
|
+
# Error - signed response to unsigned query
|
|
421
|
+
TheLog.error("Signed response to unsigned query")
|
|
422
|
+
return false
|
|
423
|
+
end
|
|
424
|
+
return true
|
|
350
425
|
end
|
|
351
426
|
|
|
352
427
|
# Prepare the packet for sending
|
|
353
|
-
def make_query_packet(packet) #:nodoc: all
|
|
428
|
+
def make_query_packet(packet, use_tcp) #:nodoc: all
|
|
354
429
|
if (packet.header.opcode == OpCode.QUERY || @recurse)
|
|
355
430
|
packet.header.rd=true
|
|
356
431
|
end
|
|
@@ -358,41 +433,22 @@ module Dnsruby
|
|
|
358
433
|
if (@dnssec)
|
|
359
434
|
# RFC 3225
|
|
360
435
|
TheLog.debug(";; Adding EDNS extention with UDP packetsize #{udp_packet_size} and DNS OK bit set\n")
|
|
361
|
-
|
|
362
|
-
optrr
|
|
363
|
-
:type => 'OPT',
|
|
364
|
-
:name => '',
|
|
365
|
-
:rrclass => udp_packet_size, # Decimal UDPpayload
|
|
366
|
-
:ednsflags => 0x8000, # first bit set see RFC 3225
|
|
367
|
-
})
|
|
436
|
+
optrr = RR::OPT.new(udp_packet_size) # Decimal UDPpayload
|
|
437
|
+
optrr.d_o=true
|
|
368
438
|
|
|
369
439
|
packet.add_additional(optrr)
|
|
370
440
|
|
|
371
|
-
elsif (udp_packet_size > Resolver::DefaultUDPSize)
|
|
441
|
+
elsif ((udp_packet_size > Resolver::DefaultUDPSize) && !use_tcp)
|
|
372
442
|
TheLog.debug(";; Adding EDNS extention with UDP packetsize #{udp_packet_size}.\n")
|
|
373
443
|
# RFC 3225
|
|
374
|
-
optrr =
|
|
375
|
-
:type => 'OPT',
|
|
376
|
-
:name => '',
|
|
377
|
-
:rrclass => udp_packet_size, # Decimal UDPpayload
|
|
378
|
-
:ttl => 0x0000 # RCODE 32bit Hex
|
|
379
|
-
})
|
|
444
|
+
optrr = RR::OPT.new(udp_packet_size)
|
|
380
445
|
|
|
381
446
|
packet.add_additional(optrr)
|
|
382
447
|
end
|
|
383
448
|
|
|
384
|
-
if (@
|
|
385
|
-
@
|
|
449
|
+
if (@tsig && !packet.signed?)
|
|
450
|
+
@tsig.apply(packet)
|
|
386
451
|
end
|
|
387
|
-
# @TODO@ TSIG!!!
|
|
388
|
-
# if (@tsig_rr != nil && @tsig_rr.length > 0)
|
|
389
|
-
# # if (!grep { $_.type == 'TSIG' } packet.additional)
|
|
390
|
-
# if (packet.additional.select { |i| i.type == 'TSIG' }.length > 0)
|
|
391
|
-
# packet.push('additional', @tsig_rr)
|
|
392
|
-
# end
|
|
393
|
-
# end
|
|
394
|
-
|
|
395
|
-
# TheLog.debug("#{packet}")
|
|
396
452
|
return packet.encode
|
|
397
453
|
end
|
|
398
454
|
|
data/lib/Dnsruby/TheLog.rb
CHANGED
|
@@ -52,10 +52,9 @@ module Dnsruby
|
|
|
52
52
|
def self.method_missing(symbol, *args) #:nodoc: all
|
|
53
53
|
@@mutex.synchronize{
|
|
54
54
|
now = Time.now
|
|
55
|
-
# p "#{now.hour}:#{now.min}:#{now.sec} - #{args}"
|
|
56
55
|
@@logger.send(symbol, *args)
|
|
57
56
|
}
|
|
58
57
|
end
|
|
59
|
-
log = TheLog.instance
|
|
58
|
+
log = TheLog.instance
|
|
60
59
|
end
|
|
61
60
|
end
|
|
@@ -122,7 +122,7 @@ module Dnsruby
|
|
|
122
122
|
end
|
|
123
123
|
end
|
|
124
124
|
|
|
125
|
-
def EventMachineInterface::send(args={})#msg, timeout, server, port, src_add, src_port,
|
|
125
|
+
def EventMachineInterface::send(args={})#msg, timeout, server, port, src_add, src_port, use_tcp)
|
|
126
126
|
# Is the EventMachine loop running? If not, we need to start it (and mark that we started it)
|
|
127
127
|
begin
|
|
128
128
|
if (!EventMachine.reactor_running?)
|
|
@@ -149,7 +149,7 @@ module Dnsruby
|
|
|
149
149
|
return df
|
|
150
150
|
end
|
|
151
151
|
|
|
152
|
-
def EventMachineInterface::send_tcp(args={})#msg, timeout, server, port, src_add, src_port,
|
|
152
|
+
def EventMachineInterface::send_tcp(args={})#msg, timeout, server, port, src_add, src_port, use_tcp)
|
|
153
153
|
connection = EventMachine::connect(args[:server], args[:port], EmTcpHandler) { |c|
|
|
154
154
|
#@TODO SRC_PORT FOR TCP!!!
|
|
155
155
|
c.timeout_time=Time.now + args[:timeout]
|
|
@@ -163,7 +163,7 @@ module Dnsruby
|
|
|
163
163
|
return connection # allows clients to set callback, errback, etc., if desired
|
|
164
164
|
end
|
|
165
165
|
|
|
166
|
-
def EventMachineInterface::send_udp(args={})# msg, timeout, server, port, src_add, src_port,
|
|
166
|
+
def EventMachineInterface::send_udp(args={})# msg, timeout, server, port, src_add, src_port, use_tcp)
|
|
167
167
|
connection = EventMachine::open_datagram_socket(args[:src_addr], args[:src_port], EmUdpHandler) { |c|
|
|
168
168
|
c.timeout_time=Time.now + args[:timeout]
|
|
169
169
|
c.instance_eval {@args = args}
|
|
@@ -194,7 +194,7 @@ module Dnsruby
|
|
|
194
194
|
TheLog.error("Decode error! #{e.class}, #{e}\nfor msg (length=#{data.length}) : #{data}")
|
|
195
195
|
@closing=true
|
|
196
196
|
close_connection
|
|
197
|
-
send_to_client(nil, e)
|
|
197
|
+
send_to_client(nil, nil, e)
|
|
198
198
|
return
|
|
199
199
|
end
|
|
200
200
|
TheLog.debug("#{ans}")
|
|
@@ -203,7 +203,7 @@ module Dnsruby
|
|
|
203
203
|
exception = ans.header.get_exception
|
|
204
204
|
@closing=true
|
|
205
205
|
close_connection
|
|
206
|
-
send_to_client(ans, exception)
|
|
206
|
+
send_to_client(ans, data, exception)
|
|
207
207
|
end
|
|
208
208
|
|
|
209
209
|
def unbind
|
|
@@ -214,7 +214,7 @@ module Dnsruby
|
|
|
214
214
|
else
|
|
215
215
|
#@TODO@ RAISE OTHER NETWORK ERROR!
|
|
216
216
|
TheLog.debug("Sending IOError to client")
|
|
217
|
-
send_to_client(nil, IOError.new("Network error"))
|
|
217
|
+
send_to_client(nil, nil, IOError.new("Network error"))
|
|
218
218
|
end
|
|
219
219
|
end
|
|
220
220
|
@closing=false
|
|
@@ -223,14 +223,14 @@ module Dnsruby
|
|
|
223
223
|
end
|
|
224
224
|
def send_timeout
|
|
225
225
|
TheLog.debug("Sending timeout to client")
|
|
226
|
-
send_to_client(nil, ResolvTimeout.new("Query timed out"))
|
|
226
|
+
send_to_client(nil, nil, ResolvTimeout.new("Query timed out"))
|
|
227
227
|
end
|
|
228
|
-
def send_to_client(msg, err)
|
|
228
|
+
def send_to_client(msg, bytes, err)
|
|
229
229
|
# We call set_defered_status when done
|
|
230
230
|
if (err != nil)
|
|
231
231
|
set_deferred_status :failed, msg, err
|
|
232
232
|
else
|
|
233
|
-
set_deferred_status :succeeded, msg
|
|
233
|
+
set_deferred_status :succeeded, msg, bytes
|
|
234
234
|
end
|
|
235
235
|
end
|
|
236
236
|
end
|