Dnsruby 0.6.0 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (624) hide show
  1. data/EVENTMACHINE +1 -1
  2. data/README +36 -7
  3. data/doc/classes/Dnsruby.html +49 -18
  4. data/doc/classes/Dnsruby/Classes.html +10 -10
  5. data/doc/classes/Dnsruby/Classes.src/{M000158.html → M000156.html} +1 -1
  6. data/doc/classes/Dnsruby/Classes.src/M000157.html +5 -9
  7. data/doc/classes/Dnsruby/CodeMapper.html +55 -55
  8. data/doc/classes/Dnsruby/CodeMapper.src/M000133.html +4 -7
  9. data/doc/classes/Dnsruby/CodeMapper.src/M000134.html +19 -5
  10. data/doc/classes/Dnsruby/CodeMapper.src/M000135.html +7 -5
  11. data/doc/classes/Dnsruby/CodeMapper.src/M000136.html +5 -4
  12. data/doc/classes/Dnsruby/CodeMapper.src/M000137.html +5 -8
  13. data/doc/classes/Dnsruby/CodeMapper.src/M000138.html +4 -8
  14. data/doc/classes/Dnsruby/CodeMapper.src/M000139.html +6 -6
  15. data/doc/classes/Dnsruby/CodeMapper.src/M000140.html +7 -16
  16. data/doc/classes/Dnsruby/CodeMapper.src/M000141.html +8 -5
  17. data/doc/classes/Dnsruby/CodeMapper.src/{M000167.html → M000142.html} +0 -0
  18. data/doc/classes/Dnsruby/CodeMapper.src/{M000168.html → M000143.html} +0 -0
  19. data/doc/classes/Dnsruby/Config.html +66 -63
  20. data/doc/classes/Dnsruby/Config.src/{M000125.html → M000097.html} +1 -1
  21. data/doc/classes/Dnsruby/Config.src/M000098.html +5 -4
  22. data/doc/classes/Dnsruby/Config.src/M000099.html +5 -5
  23. data/doc/classes/Dnsruby/Config.src/M000100.html +11 -5
  24. data/doc/classes/Dnsruby/Config.src/M000101.html +6 -6
  25. data/doc/classes/Dnsruby/Config.src/M000102.html +23 -6
  26. data/doc/classes/Dnsruby/Config.src/M000103.html +10 -22
  27. data/doc/classes/Dnsruby/Config.src/M000104.html +7 -11
  28. data/doc/classes/Dnsruby/Config.src/M000105.html +13 -8
  29. data/doc/classes/Dnsruby/Config.src/M000106.html +7 -12
  30. data/doc/classes/Dnsruby/Config.src/M000107.html +6 -7
  31. data/doc/classes/Dnsruby/DNS.html +220 -118
  32. data/doc/classes/Dnsruby/DNS.src/{M000224.html → M000190.html} +1 -1
  33. data/doc/classes/Dnsruby/DNS.src/{M000225.html → M000191.html} +1 -1
  34. data/doc/classes/Dnsruby/DNS.src/{M000226.html → M000192.html} +1 -1
  35. data/doc/classes/Dnsruby/DNS.src/M000193.html +24 -0
  36. data/doc/classes/Dnsruby/{SingleResolver.src/M000152.html → DNS.src/M000194.html} +3 -3
  37. data/doc/classes/Dnsruby/{IPv4.src/M000156.html → DNS.src/M000195.html} +4 -4
  38. data/doc/classes/Dnsruby/DNS.src/M000196.html +6 -10
  39. data/doc/classes/Dnsruby/DNS.src/M000197.html +5 -10
  40. data/doc/classes/Dnsruby/DNS.src/M000198.html +6 -4
  41. data/doc/classes/Dnsruby/DNS.src/M000199.html +4 -4
  42. data/doc/classes/Dnsruby/DNS.src/M000200.html +5 -6
  43. data/doc/classes/Dnsruby/DNS.src/M000201.html +6 -5
  44. data/doc/classes/Dnsruby/DNS.src/M000202.html +14 -6
  45. data/doc/classes/Dnsruby/DNS.src/M000203.html +5 -4
  46. data/doc/classes/Dnsruby/DNS.src/M000204.html +6 -5
  47. data/doc/classes/Dnsruby/DNS.src/M000205.html +17 -6
  48. data/doc/classes/Dnsruby/DecodeError.html +11 -0
  49. data/doc/classes/Dnsruby/EncodeError.html +11 -0
  50. data/doc/classes/Dnsruby/FormErr.html +6 -0
  51. data/doc/classes/Dnsruby/Header.html +51 -66
  52. data/doc/classes/Dnsruby/Header.src/{M000196.html → M000167.html} +1 -1
  53. data/doc/classes/Dnsruby/Header.src/M000168.html +4 -21
  54. data/doc/classes/Dnsruby/Header.src/M000169.html +4 -21
  55. data/doc/classes/Dnsruby/Header.src/M000170.html +21 -4
  56. data/doc/classes/Dnsruby/Header.src/M000171.html +4 -4
  57. data/doc/classes/Dnsruby/Header.src/M000172.html +4 -7
  58. data/doc/classes/Dnsruby/Header.src/M000173.html +7 -6
  59. data/doc/classes/Dnsruby/Header.src/M000174.html +6 -18
  60. data/doc/classes/Dnsruby/Header.src/M000175.html +18 -12
  61. data/doc/classes/Dnsruby/Header.src/M000176.html +13 -33
  62. data/doc/classes/Dnsruby/Header.src/M000177.html +12 -14
  63. data/doc/classes/Dnsruby/Header.src/M000178.html +33 -4
  64. data/doc/classes/Dnsruby/Header.src/M000179.html +14 -4
  65. data/doc/classes/Dnsruby/Header.src/M000180.html +1 -1
  66. data/doc/classes/Dnsruby/Hosts.html +65 -54
  67. data/doc/classes/Dnsruby/Hosts.src/M000144.html +6 -5
  68. data/doc/classes/Dnsruby/Hosts.src/M000145.html +5 -6
  69. data/doc/classes/Dnsruby/Hosts.src/M000146.html +6 -7
  70. data/doc/classes/Dnsruby/Hosts.src/M000147.html +7 -5
  71. data/doc/classes/Dnsruby/Hosts.src/M000148.html +4 -5
  72. data/doc/classes/Dnsruby/Hosts.src/M000149.html +5 -6
  73. data/doc/classes/Dnsruby/Hosts.src/{M000176.html → M000150.html} +1 -1
  74. data/doc/classes/Dnsruby/IPv4.html +28 -93
  75. data/doc/classes/Dnsruby/IPv4.src/M000151.html +17 -6
  76. data/doc/classes/Dnsruby/IPv4.src/M000152.html +5 -4
  77. data/doc/classes/Dnsruby/IPv4.src/M000153.html +3 -3
  78. data/doc/classes/Dnsruby/IPv4.src/M000154.html +3 -4
  79. data/doc/classes/Dnsruby/IPv4.src/M000155.html +4 -4
  80. data/doc/classes/Dnsruby/IPv6.html +59 -96
  81. data/doc/classes/Dnsruby/IPv6.src/{M000208.html → M000178.html} +2 -2
  82. data/doc/classes/Dnsruby/IPv6.src/{M000210.html → M000179.html} +0 -0
  83. data/doc/classes/Dnsruby/IPv6.src/M000180.html +6 -46
  84. data/doc/classes/Dnsruby/IPv6.src/M000181.html +2 -2
  85. data/doc/classes/Dnsruby/IPv6.src/M000182.html +7 -6
  86. data/doc/classes/Dnsruby/IPv6.src/M000183.html +6 -8
  87. data/doc/classes/Dnsruby/IPv6.src/M000184.html +4 -4
  88. data/doc/classes/Dnsruby/Message.html +216 -123
  89. data/doc/classes/Dnsruby/Message.src/M000071.html +38 -0
  90. data/doc/classes/Dnsruby/Message.src/M000072.html +26 -0
  91. data/doc/classes/Dnsruby/Message.src/M000073.html +22 -0
  92. data/doc/classes/Dnsruby/{Header.src/M000198.html → Message.src/M000074.html} +6 -4
  93. data/doc/classes/Dnsruby/{Header.src/M000197.html → Message.src/M000075.html} +6 -4
  94. data/doc/classes/Dnsruby/Message.src/M000076.html +6 -20
  95. data/doc/classes/Dnsruby/Message.src/M000077.html +6 -12
  96. data/doc/classes/Dnsruby/Message.src/M000078.html +6 -8
  97. data/doc/classes/Dnsruby/Message.src/M000079.html +9 -6
  98. data/doc/classes/Dnsruby/Message.src/M000080.html +16 -6
  99. data/doc/classes/Dnsruby/Message.src/M000081.html +6 -6
  100. data/doc/classes/Dnsruby/Message.src/M000082.html +4 -6
  101. data/doc/classes/Dnsruby/Message.src/M000083.html +40 -6
  102. data/doc/classes/Dnsruby/Message.src/M000084.html +10 -6
  103. data/doc/classes/Dnsruby/Message.src/M000085.html +29 -6
  104. data/doc/classes/Dnsruby/Message.src/M000086.html +32 -4
  105. data/doc/classes/Dnsruby/NXDomain.html +6 -0
  106. data/doc/classes/Dnsruby/Name.html +60 -87
  107. data/doc/classes/Dnsruby/Name.src/M000056.html +28 -0
  108. data/doc/classes/Dnsruby/Name.src/M000057.html +6 -14
  109. data/doc/classes/Dnsruby/Name.src/M000058.html +4 -6
  110. data/doc/classes/Dnsruby/Name.src/M000059.html +7 -4
  111. data/doc/classes/Dnsruby/Name.src/M000060.html +8 -4
  112. data/doc/classes/Dnsruby/Name.src/M000061.html +5 -7
  113. data/doc/classes/Dnsruby/Name/Label.html +45 -45
  114. data/doc/classes/Dnsruby/Name/Label.src/M000062.html +21 -0
  115. data/doc/classes/Dnsruby/Name/Label.src/{M000075.html → M000063.html} +4 -4
  116. data/doc/classes/Dnsruby/Name/Label.src/{M000076.html → M000064.html} +1 -1
  117. data/doc/classes/Dnsruby/Name/Label.src/{M000077.html → M000065.html} +1 -1
  118. data/doc/classes/Dnsruby/Name/Label.src/{M000078.html → M000066.html} +1 -1
  119. data/doc/classes/Dnsruby/Name/Label.src/M000067.html +4 -7
  120. data/doc/classes/Dnsruby/Name/Label.src/M000068.html +4 -4
  121. data/doc/classes/Dnsruby/Name/Label.src/M000069.html +4 -8
  122. data/doc/classes/Dnsruby/Name/Label.src/M000070.html +4 -4
  123. data/doc/classes/Dnsruby/NotImp.html +6 -0
  124. data/doc/classes/Dnsruby/OtherResolvError.html +6 -0
  125. data/doc/classes/Dnsruby/Question.html +53 -8
  126. data/doc/classes/Dnsruby/Question.src/{M000194.html → M000165.html} +1 -1
  127. data/doc/classes/Dnsruby/Question.src/M000166.html +4 -33
  128. data/doc/classes/Dnsruby/Question.src/M000167.html +4 -33
  129. data/doc/classes/Dnsruby/Question.src/M000168.html +18 -4
  130. data/doc/classes/Dnsruby/Question.src/{M000195.html → M000169.html} +1 -1
  131. data/doc/classes/Dnsruby/RR.html +62 -64
  132. data/doc/classes/Dnsruby/RR.src/M000004.html +1 -1
  133. data/doc/classes/Dnsruby/RR.src/M000005.html +1 -1
  134. data/doc/classes/Dnsruby/RR.src/M000006.html +4 -22
  135. data/doc/classes/Dnsruby/RR.src/M000007.html +22 -86
  136. data/doc/classes/Dnsruby/RR.src/M000008.html +86 -4
  137. data/doc/classes/Dnsruby/RR.src/M000009.html +4 -4
  138. data/doc/classes/Dnsruby/RR.src/M000010.html +4 -8
  139. data/doc/classes/Dnsruby/RR.src/M000011.html +8 -8
  140. data/doc/classes/Dnsruby/RR.src/M000012.html +15 -4
  141. data/doc/classes/Dnsruby/RR.src/M000013.html +10 -8
  142. data/doc/classes/Dnsruby/RR/ANY.html +1 -1
  143. data/doc/classes/Dnsruby/RR/CNAME.html +2 -1
  144. data/doc/classes/Dnsruby/RR/DomainName.html +10 -10
  145. data/doc/classes/Dnsruby/RR/DomainName.src/{M000051.html → M000050.html} +0 -4
  146. data/doc/classes/Dnsruby/RR/Generic.html +4 -27
  147. data/doc/classes/Dnsruby/RR/IN.html +1 -1
  148. data/doc/classes/Dnsruby/RR/IN/A.html +17 -16
  149. data/doc/classes/Dnsruby/RR/IN/A.src/{M000025.html → M000017.html} +0 -0
  150. data/doc/classes/Dnsruby/RR/IN/A.src/M000018.html +4 -4
  151. data/doc/classes/Dnsruby/RR/IN/A.src/M000019.html +4 -4
  152. data/doc/classes/Dnsruby/RR/IN/AAAA.html +2 -1
  153. data/doc/classes/Dnsruby/RR/IN/SRV.html +43 -48
  154. data/doc/classes/Dnsruby/RR/IN/SRV.src/{M000022.html → M000014.html} +1 -1
  155. data/doc/classes/Dnsruby/RR/IN/SRV.src/M000015.html +11 -14
  156. data/doc/classes/Dnsruby/RR/IN/SRV.src/M000016.html +7 -11
  157. data/doc/classes/Dnsruby/RR/IN/WKS.html +5 -5
  158. data/doc/classes/Dnsruby/RR/IN/WKS.src/{M000021.html → M000020.html} +0 -0
  159. data/doc/classes/Dnsruby/RR/NS.html +2 -1
  160. data/doc/classes/Dnsruby/RR/NSAP.html +20 -20
  161. data/doc/classes/Dnsruby/RR/NSAP.src/{M000060.html → M000052.html} +0 -0
  162. data/doc/classes/Dnsruby/RR/NSAP.src/M000053.html +4 -4
  163. data/doc/classes/Dnsruby/RR/NSAP.src/M000054.html +8 -5
  164. data/doc/classes/Dnsruby/RR/NSAP.src/M000055.html +16 -7
  165. data/doc/classes/Dnsruby/RR/RP.html +5 -5
  166. data/doc/classes/Dnsruby/RR/RP.src/{M000050.html → M000049.html} +0 -0
  167. data/doc/classes/Dnsruby/RR/SOA.html +6 -3
  168. data/doc/classes/Dnsruby/RR/SOA.src/M000039.html +1 -1
  169. data/doc/classes/Dnsruby/RR/SOA.src/M000040.html +1 -1
  170. data/doc/classes/Dnsruby/RR/TKEY.html +39 -11
  171. data/doc/classes/Dnsruby/RR/TKEY.src/{M000029.html → M000021.html} +1 -1
  172. data/doc/classes/Dnsruby/RR/TKEY.src/M000022.html +15 -5
  173. data/doc/classes/Dnsruby/RR/TKEY.src/M000023.html +7 -15
  174. data/doc/classes/Dnsruby/RR/TKEY.src/M000024.html +1 -1
  175. data/doc/classes/Dnsruby/RR/TSIG.html +128 -56
  176. data/doc/classes/Dnsruby/RR/TSIG.src/M000041.html +24 -0
  177. data/doc/classes/Dnsruby/RR/TSIG.src/M000042.html +39 -7
  178. data/doc/classes/Dnsruby/RR/TSIG.src/M000043.html +110 -48
  179. data/doc/classes/Dnsruby/RR/TSIG.src/M000044.html +19 -20
  180. data/doc/classes/Dnsruby/RR/TSIG.src/M000045.html +11 -23
  181. data/doc/classes/Dnsruby/RR/TSIG.src/M000046.html +22 -17
  182. data/doc/classes/Dnsruby/RR/TSIG.src/M000047.html +7 -19
  183. data/doc/classes/Dnsruby/RR/TSIG.src/M000048.html +14 -7
  184. data/doc/classes/Dnsruby/RRSet.html +39 -39
  185. data/doc/classes/Dnsruby/RRSet.src/{M000187.html → M000158.html} +0 -0
  186. data/doc/classes/Dnsruby/RRSet.src/M000159.html +30 -4
  187. data/doc/classes/Dnsruby/RRSet.src/M000160.html +4 -4
  188. data/doc/classes/Dnsruby/RRSet.src/M000161.html +5 -29
  189. data/doc/classes/Dnsruby/RRSet.src/M000162.html +4 -4
  190. data/doc/classes/Dnsruby/RRSet.src/M000163.html +4 -6
  191. data/doc/classes/Dnsruby/RRSet.src/M000164.html +4 -4
  192. data/doc/classes/Dnsruby/Refused.html +6 -0
  193. data/doc/classes/Dnsruby/Resolv.html +120 -119
  194. data/doc/classes/Dnsruby/Resolv.src/{M000136.html → M000108.html} +1 -1
  195. data/doc/classes/Dnsruby/Resolv.src/M000109.html +4 -4
  196. data/doc/classes/Dnsruby/Resolv.src/M000110.html +4 -4
  197. data/doc/classes/Dnsruby/Resolv.src/M000111.html +4 -4
  198. data/doc/classes/Dnsruby/Resolv.src/M000112.html +4 -4
  199. data/doc/classes/Dnsruby/Resolv.src/M000113.html +4 -4
  200. data/doc/classes/Dnsruby/Resolv.src/M000114.html +4 -4
  201. data/doc/classes/Dnsruby/Resolv.src/M000115.html +5 -4
  202. data/doc/classes/Dnsruby/Resolv.src/M000116.html +6 -5
  203. data/doc/classes/Dnsruby/Resolv.src/M000117.html +15 -6
  204. data/doc/classes/Dnsruby/Resolv.src/M000118.html +5 -15
  205. data/doc/classes/Dnsruby/Resolv.src/M000119.html +6 -5
  206. data/doc/classes/Dnsruby/Resolv.src/M000120.html +11 -6
  207. data/doc/classes/Dnsruby/ResolvError.html +6 -0
  208. data/doc/classes/Dnsruby/ResolvTimeout.html +6 -0
  209. data/doc/classes/Dnsruby/Resolver.html +292 -179
  210. data/doc/classes/Dnsruby/Resolver.src/{M000239.html → M000203.html} +1 -1
  211. data/doc/classes/Dnsruby/Resolver.src/{M000240.html → M000204.html} +2 -2
  212. data/doc/classes/Dnsruby/Resolver.src/{M000241.html → M000205.html} +1 -1
  213. data/doc/classes/Dnsruby/{SingleResolver.src/M000153.html → Resolver.src/M000206.html} +2 -2
  214. data/doc/classes/Dnsruby/{SingleResolver.src/M000154.html → Resolver.src/M000207.html} +8 -6
  215. data/doc/classes/Dnsruby/Resolver.src/M000208.html +28 -0
  216. data/doc/classes/Dnsruby/Resolver.src/{M000242.html → M000209.html} +1 -1
  217. data/doc/classes/Dnsruby/Resolver.src/{M000243.html → M000210.html} +5 -2
  218. data/doc/classes/Dnsruby/Resolver.src/M000211.html +7 -7
  219. data/doc/classes/Dnsruby/Resolver.src/M000212.html +8 -7
  220. data/doc/classes/Dnsruby/Resolver.src/M000213.html +4 -13
  221. data/doc/classes/Dnsruby/Resolver.src/M000214.html +6 -14
  222. data/doc/classes/Dnsruby/Resolver.src/M000215.html +5 -4
  223. data/doc/classes/Dnsruby/Resolver.src/M000216.html +4 -33
  224. data/doc/classes/Dnsruby/Resolver.src/M000217.html +5 -7
  225. data/doc/classes/Dnsruby/Resolver.src/M000218.html +5 -8
  226. data/doc/classes/Dnsruby/Resolver.src/M000219.html +5 -4
  227. data/doc/classes/Dnsruby/Resolver.src/M000220.html +5 -6
  228. data/doc/classes/Dnsruby/Resolver.src/M000221.html +4 -4
  229. data/doc/classes/Dnsruby/Resolver.src/M000222.html +4 -4
  230. data/doc/classes/Dnsruby/Resolver.src/M000223.html +4 -4
  231. data/doc/classes/Dnsruby/Resolver.src/M000224.html +4 -4
  232. data/doc/classes/Dnsruby/Resolver.src/M000225.html +4 -4
  233. data/doc/classes/Dnsruby/Resolver.src/M000226.html +12 -5
  234. data/doc/classes/Dnsruby/Resolver.src/M000227.html +4 -5
  235. data/doc/classes/Dnsruby/Resolver.src/M000228.html +9 -5
  236. data/doc/classes/Dnsruby/Resolver.src/M000229.html +4 -5
  237. data/doc/classes/Dnsruby/ServFail.html +6 -0
  238. data/doc/classes/Dnsruby/SingleResolver.html +182 -77
  239. data/doc/classes/Dnsruby/SingleResolver.src/{M000149.html → M000121.html} +4 -4
  240. data/doc/classes/Dnsruby/SingleResolver.src/M000122.html +22 -4
  241. data/doc/classes/Dnsruby/SingleResolver.src/M000123.html +4 -5
  242. data/doc/classes/Dnsruby/SingleResolver.src/M000124.html +5 -35
  243. data/doc/classes/Dnsruby/SingleResolver.src/M000125.html +36 -4
  244. data/doc/classes/Dnsruby/SingleResolver.src/M000126.html +4 -7
  245. data/doc/classes/Dnsruby/SingleResolver.src/M000127.html +7 -11
  246. data/doc/classes/Dnsruby/SingleResolver.src/M000128.html +9 -35
  247. data/doc/classes/Dnsruby/SingleResolver.src/M000129.html +39 -11
  248. data/doc/classes/Dnsruby/SingleResolver.src/M000130.html +13 -7
  249. data/doc/classes/Dnsruby/SingleResolver.src/M000131.html +35 -0
  250. data/doc/classes/Dnsruby/SingleResolver.src/{M000157.html → M000132.html} +1 -1
  251. data/doc/classes/Dnsruby/TheLog.html +17 -17
  252. data/doc/classes/Dnsruby/TheLog.src/{M000188.html → M000182.html} +0 -0
  253. data/doc/classes/Dnsruby/TheLog.src/{M000190.html → M000183.html} +0 -0
  254. data/doc/classes/Dnsruby/TheLog.src/{M000191.html → M000184.html} +0 -0
  255. data/doc/classes/Dnsruby/TheLog.src/{M000189.html → M000185.html} +0 -0
  256. data/doc/classes/Dnsruby/TheLog.src/{M000217.html → M000186.html} +0 -0
  257. data/doc/classes/Dnsruby/TheLog.src/{M000218.html → M000187.html} +0 -0
  258. data/doc/classes/Dnsruby/Update.html +34 -34
  259. data/doc/classes/Dnsruby/Update.src/{M000219.html → M000185.html} +0 -0
  260. data/doc/classes/Dnsruby/Update.src/{M000193.html → M000186.html} +0 -1
  261. data/doc/classes/Dnsruby/Update.src/{M000194.html → M000187.html} +1 -1
  262. data/doc/classes/Dnsruby/Update.src/M000188.html +32 -0
  263. data/doc/classes/Dnsruby/Update.src/{M000220.html → M000189.html} +0 -1
  264. data/doc/classes/Dnsruby/Update.src/{M000221.html → M000190.html} +1 -1
  265. data/doc/classes/Dnsruby/Update.src/M000191.html +26 -17
  266. data/doc/classes/Dnsruby/Update.src/M000192.html +19 -17
  267. data/doc/classes/Dnsruby/ZoneTransfer.html +65 -13
  268. data/doc/classes/Dnsruby/{CodeMapper.src/M000163.html → ZoneTransfer.src/M000092.html} +4 -4
  269. data/doc/classes/Dnsruby/ZoneTransfer.src/{M000095.html → M000093.html} +3 -1
  270. data/doc/classes/Dnsruby/ZoneTransfer.src/{M000103.html → M000094.html} +1 -1
  271. data/doc/classes/Dnsruby/ZoneTransfer/Delta.html +22 -5
  272. data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/{M000104.html → M000095.html} +1 -1
  273. data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/M000096.html +19 -0
  274. data/doc/created.rid +1 -1
  275. data/doc/files/lib/Dnsruby/Config_rb.html +1 -1
  276. data/doc/files/lib/Dnsruby/DNSSEC_rb.html +1 -1
  277. data/doc/files/lib/Dnsruby/DNS_rb.html +1 -1
  278. data/doc/files/lib/Dnsruby/Hosts_rb.html +1 -1
  279. data/doc/files/lib/Dnsruby/Resolver_rb.html +1 -1
  280. data/doc/files/lib/Dnsruby/SingleResolver_rb.html +1 -1
  281. data/doc/files/lib/Dnsruby/TheLog_rb.html +1 -1
  282. data/doc/files/lib/Dnsruby/code_mapper_rb.html +1 -1
  283. data/doc/files/lib/Dnsruby/event_machine_interface_rb.html +1 -1
  284. data/doc/files/lib/Dnsruby/ipv4_rb.html +1 -1
  285. data/doc/files/lib/Dnsruby/ipv6_rb.html +1 -1
  286. data/doc/files/lib/Dnsruby/message_rb.html +1 -1
  287. data/doc/files/lib/Dnsruby/name_rb.html +1 -1
  288. data/doc/files/lib/Dnsruby/resource/AAAA_rb.html +1 -1
  289. data/doc/files/lib/Dnsruby/resource/AFSDB_rb.html +1 -1
  290. data/doc/files/lib/Dnsruby/resource/A_rb.html +1 -1
  291. data/doc/files/lib/Dnsruby/resource/CERT_rb.html +1 -1
  292. data/doc/files/lib/Dnsruby/resource/HINFO_rb.html +1 -1
  293. data/doc/files/lib/Dnsruby/resource/IN_rb.html +1 -1
  294. data/doc/files/lib/Dnsruby/resource/ISDN_rb.html +1 -1
  295. data/doc/files/lib/Dnsruby/resource/LOC_rb.html +1 -1
  296. data/doc/files/lib/Dnsruby/resource/MINFO_rb.html +1 -1
  297. data/doc/files/lib/Dnsruby/resource/MX_rb.html +1 -1
  298. data/doc/files/lib/Dnsruby/resource/NAPTR_rb.html +1 -1
  299. data/doc/files/lib/Dnsruby/resource/NSAP_rb.html +1 -1
  300. data/doc/files/lib/Dnsruby/resource/OPT_rb.html +1 -1
  301. data/doc/files/lib/Dnsruby/resource/PX_rb.html +1 -1
  302. data/doc/files/lib/Dnsruby/resource/RP_rb.html +1 -1
  303. data/doc/files/lib/Dnsruby/resource/RT_rb.html +1 -1
  304. data/doc/files/lib/Dnsruby/resource/SOA_rb.html +1 -1
  305. data/doc/files/lib/Dnsruby/resource/SPF_rb.html +1 -1
  306. data/doc/files/lib/Dnsruby/resource/SRV_rb.html +1 -1
  307. data/doc/files/lib/Dnsruby/resource/TKEY_rb.html +1 -1
  308. data/doc/files/lib/Dnsruby/resource/TSIG_rb.html +1 -1
  309. data/doc/files/lib/Dnsruby/resource/TXT_rb.html +1 -1
  310. data/doc/files/lib/Dnsruby/resource/X25_rb.html +1 -1
  311. data/doc/files/lib/Dnsruby/resource/domain_name_rb.html +1 -1
  312. data/doc/files/lib/Dnsruby/resource/generic_rb.html +1 -1
  313. data/doc/files/lib/Dnsruby/resource/resource_rb.html +1 -1
  314. data/doc/files/lib/Dnsruby/select_thread_rb.html +1 -1
  315. data/doc/files/lib/Dnsruby/update_rb.html +1 -1
  316. data/doc/files/lib/Dnsruby/zone_transfer_rb.html +1 -1
  317. data/doc/files/lib/dnsruby_rb.html +1 -1
  318. data/doc/fr_class_index.html +0 -2
  319. data/doc/fr_method_index.html +207 -213
  320. data/doc/index.html +1 -1
  321. data/lib/Dnsruby/Config.rb +11 -5
  322. data/lib/Dnsruby/DNS.rb +97 -50
  323. data/lib/Dnsruby/Hosts.rb +9 -2
  324. data/lib/Dnsruby/Resolver.rb +116 -31
  325. data/lib/Dnsruby/SingleResolver.rb +131 -75
  326. data/lib/Dnsruby/TheLog.rb +1 -2
  327. data/lib/Dnsruby/event_machine_interface.rb +9 -9
  328. data/lib/Dnsruby/ipv4.rb +6 -15
  329. data/lib/Dnsruby/ipv6.rb +23 -21
  330. data/lib/Dnsruby/message.rb +141 -56
  331. data/lib/Dnsruby/name.rb +15 -7
  332. data/lib/Dnsruby/resource/A.rb +1 -1
  333. data/lib/Dnsruby/resource/AAAA.rb +1 -1
  334. data/lib/Dnsruby/resource/IN.rb +5 -5
  335. data/lib/Dnsruby/resource/MINFO.rb +6 -2
  336. data/lib/Dnsruby/resource/OPT.rb +76 -19
  337. data/lib/Dnsruby/resource/SOA.rb +6 -0
  338. data/lib/Dnsruby/resource/SRV.rb +25 -21
  339. data/lib/Dnsruby/resource/TKEY.rb +14 -6
  340. data/lib/Dnsruby/resource/TSIG.rb +367 -120
  341. data/lib/Dnsruby/resource/domain_name.rb +1 -5
  342. data/lib/Dnsruby/resource/generic.rb +5 -2
  343. data/lib/Dnsruby/resource/resource.rb +35 -17
  344. data/lib/Dnsruby/select_thread.rb +33 -26
  345. data/lib/Dnsruby/update.rb +3 -4
  346. data/lib/Dnsruby/zone_transfer.rb +46 -12
  347. data/lib/dnsruby.rb +56 -44
  348. data/test/tc_axfr.rb +45 -7
  349. data/test/tc_dns.rb +1 -2
  350. data/test/tc_em_deferrable.rb +7 -16
  351. data/test/tc_escapedchars.rb +5 -21
  352. data/test/tc_event_machine_deferrable.rb +1 -1
  353. data/test/tc_event_machine_res.rb +1 -1
  354. data/test/tc_event_machine_single_res.rb +4 -4
  355. data/test/tc_event_machine_soak.rb +1 -1
  356. data/test/tc_packet_unique_push.rb +1 -1
  357. data/test/tc_question.rb +16 -17
  358. data/test/tc_res_config.rb +1 -1
  359. data/test/tc_res_opt.rb +4 -0
  360. data/test/tc_resolver.rb +0 -1
  361. data/test/tc_rr-opt.rb +45 -6
  362. data/test/tc_single_resolver.rb +1 -3
  363. data/test/tc_soak.rb +1 -5
  364. data/test/tc_soak_base.rb +1 -1
  365. data/test/tc_tcp.rb +1 -1
  366. data/test/tc_tkey.rb +1 -32
  367. data/test/tc_tsig.rb +196 -0
  368. data/test/ts_offline.rb +3 -2
  369. data/test/ts_online.rb +59 -14
  370. metadata +69 -318
  371. data/doc/classes/Dnsruby/Classes.src/M000159.html +0 -19
  372. data/doc/classes/Dnsruby/Classes.src/M000185.html +0 -23
  373. data/doc/classes/Dnsruby/Classes.src/M000186.html +0 -19
  374. data/doc/classes/Dnsruby/CodeMapper.src/M000130.html +0 -18
  375. data/doc/classes/Dnsruby/CodeMapper.src/M000131.html +0 -18
  376. data/doc/classes/Dnsruby/CodeMapper.src/M000132.html +0 -33
  377. data/doc/classes/Dnsruby/CodeMapper.src/M000158.html +0 -18
  378. data/doc/classes/Dnsruby/CodeMapper.src/M000159.html +0 -33
  379. data/doc/classes/Dnsruby/CodeMapper.src/M000160.html +0 -21
  380. data/doc/classes/Dnsruby/CodeMapper.src/M000161.html +0 -19
  381. data/doc/classes/Dnsruby/CodeMapper.src/M000162.html +0 -19
  382. data/doc/classes/Dnsruby/CodeMapper.src/M000164.html +0 -22
  383. data/doc/classes/Dnsruby/CodeMapper.src/M000165.html +0 -22
  384. data/doc/classes/Dnsruby/CodeMapper.src/M000166.html +0 -22
  385. data/doc/classes/Dnsruby/Config.src/M000108.html +0 -21
  386. data/doc/classes/Dnsruby/Config.src/M000126.html +0 -19
  387. data/doc/classes/Dnsruby/Config.src/M000127.html +0 -19
  388. data/doc/classes/Dnsruby/Config.src/M000128.html +0 -21
  389. data/doc/classes/Dnsruby/Config.src/M000129.html +0 -21
  390. data/doc/classes/Dnsruby/Config.src/M000130.html +0 -38
  391. data/doc/classes/Dnsruby/Config.src/M000131.html +0 -26
  392. data/doc/classes/Dnsruby/Config.src/M000132.html +0 -22
  393. data/doc/classes/Dnsruby/Config.src/M000133.html +0 -27
  394. data/doc/classes/Dnsruby/Config.src/M000134.html +0 -22
  395. data/doc/classes/Dnsruby/Config.src/M000135.html +0 -21
  396. data/doc/classes/Dnsruby/DNS.src/M000206.html +0 -28
  397. data/doc/classes/Dnsruby/DNS.src/M000207.html +0 -19
  398. data/doc/classes/Dnsruby/DNS.src/M000208.html +0 -20
  399. data/doc/classes/Dnsruby/DNS.src/M000209.html +0 -41
  400. data/doc/classes/Dnsruby/DNS.src/M000210.html +0 -32
  401. data/doc/classes/Dnsruby/DNS.src/M000211.html +0 -50
  402. data/doc/classes/Dnsruby/DNS.src/M000227.html +0 -20
  403. data/doc/classes/Dnsruby/DNS.src/M000228.html +0 -19
  404. data/doc/classes/Dnsruby/DNS.src/M000229.html +0 -20
  405. data/doc/classes/Dnsruby/DNS.src/M000230.html +0 -18
  406. data/doc/classes/Dnsruby/DNS.src/M000231.html +0 -19
  407. data/doc/classes/Dnsruby/DNS.src/M000232.html +0 -20
  408. data/doc/classes/Dnsruby/DNS.src/M000233.html +0 -28
  409. data/doc/classes/Dnsruby/DNS.src/M000234.html +0 -19
  410. data/doc/classes/Dnsruby/DNS.src/M000235.html +0 -20
  411. data/doc/classes/Dnsruby/DNS.src/M000236.html +0 -41
  412. data/doc/classes/Dnsruby/DNS.src/M000237.html +0 -32
  413. data/doc/classes/Dnsruby/DNS.src/M000238.html +0 -50
  414. data/doc/classes/Dnsruby/DNS/DecodeError.html +0 -111
  415. data/doc/classes/Dnsruby/DNS/EncodeError.html +0 -111
  416. data/doc/classes/Dnsruby/EventMachineInterface.html +0 -327
  417. data/doc/classes/Dnsruby/EventMachineInterface.src/M000105.html +0 -32
  418. data/doc/classes/Dnsruby/EventMachineInterface.src/M000106.html +0 -25
  419. data/doc/classes/Dnsruby/EventMachineInterface.src/M000107.html +0 -29
  420. data/doc/classes/Dnsruby/EventMachineInterface.src/M000108.html +0 -21
  421. data/doc/classes/Dnsruby/EventMachineInterface.src/M000109.html +0 -35
  422. data/doc/classes/Dnsruby/EventMachineInterface.src/M000110.html +0 -19
  423. data/doc/classes/Dnsruby/EventMachineInterface.src/M000111.html +0 -23
  424. data/doc/classes/Dnsruby/EventMachineInterface.src/M000112.html +0 -18
  425. data/doc/classes/Dnsruby/EventMachineInterface.src/M000113.html +0 -28
  426. data/doc/classes/Dnsruby/EventMachineInterface.src/M000114.html +0 -41
  427. data/doc/classes/Dnsruby/EventMachineInterface.src/M000115.html +0 -28
  428. data/doc/classes/Dnsruby/EventMachineInterface.src/M000116.html +0 -24
  429. data/doc/classes/Dnsruby/EventMachineInterface/EmTcpHandler.html +0 -154
  430. data/doc/classes/Dnsruby/EventMachineInterface/EmTcpHandler.src/M000123.html +0 -20
  431. data/doc/classes/Dnsruby/EventMachineInterface/EmTcpHandler.src/M000124.html +0 -32
  432. data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.html +0 -237
  433. data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.src/M000117.html +0 -18
  434. data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.src/M000118.html +0 -19
  435. data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.src/M000119.html +0 -35
  436. data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.src/M000120.html +0 -30
  437. data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.src/M000121.html +0 -19
  438. data/doc/classes/Dnsruby/EventMachineInterface/EmUdpHandler.src/M000122.html +0 -23
  439. data/doc/classes/Dnsruby/Header.src/M000199.html +0 -21
  440. data/doc/classes/Dnsruby/Header.src/M000200.html +0 -20
  441. data/doc/classes/Dnsruby/Header.src/M000201.html +0 -32
  442. data/doc/classes/Dnsruby/Header.src/M000202.html +0 -26
  443. data/doc/classes/Dnsruby/Header.src/M000203.html +0 -47
  444. data/doc/classes/Dnsruby/Header.src/M000204.html +0 -28
  445. data/doc/classes/Dnsruby/Header.src/M000205.html +0 -18
  446. data/doc/classes/Dnsruby/Header.src/M000206.html +0 -18
  447. data/doc/classes/Dnsruby/Header.src/M000207.html +0 -30
  448. data/doc/classes/Dnsruby/Hosts.src/M000141.html +0 -20
  449. data/doc/classes/Dnsruby/Hosts.src/M000142.html +0 -20
  450. data/doc/classes/Dnsruby/Hosts.src/M000143.html +0 -49
  451. data/doc/classes/Dnsruby/Hosts.src/M000169.html +0 -20
  452. data/doc/classes/Dnsruby/Hosts.src/M000170.html +0 -49
  453. data/doc/classes/Dnsruby/Hosts.src/M000171.html +0 -19
  454. data/doc/classes/Dnsruby/Hosts.src/M000172.html +0 -20
  455. data/doc/classes/Dnsruby/Hosts.src/M000173.html +0 -21
  456. data/doc/classes/Dnsruby/Hosts.src/M000174.html +0 -19
  457. data/doc/classes/Dnsruby/Hosts.src/M000175.html +0 -20
  458. data/doc/classes/Dnsruby/IPv4.src/M000149.html +0 -32
  459. data/doc/classes/Dnsruby/IPv4.src/M000150.html +0 -32
  460. data/doc/classes/Dnsruby/IPv4.src/M000157.html +0 -18
  461. data/doc/classes/Dnsruby/IPv4.src/M000177.html +0 -32
  462. data/doc/classes/Dnsruby/IPv4.src/M000178.html +0 -21
  463. data/doc/classes/Dnsruby/IPv4.src/M000179.html +0 -18
  464. data/doc/classes/Dnsruby/IPv4.src/M000180.html +0 -18
  465. data/doc/classes/Dnsruby/IPv4.src/M000181.html +0 -19
  466. data/doc/classes/Dnsruby/IPv4.src/M000182.html +0 -18
  467. data/doc/classes/Dnsruby/IPv4.src/M000183.html +0 -18
  468. data/doc/classes/Dnsruby/IPv4.src/M000184.html +0 -18
  469. data/doc/classes/Dnsruby/IPv6.src/M000185.html +0 -21
  470. data/doc/classes/Dnsruby/IPv6.src/M000186.html +0 -18
  471. data/doc/classes/Dnsruby/IPv6.src/M000187.html +0 -18
  472. data/doc/classes/Dnsruby/IPv6.src/M000188.html +0 -18
  473. data/doc/classes/Dnsruby/IPv6.src/M000209.html +0 -21
  474. data/doc/classes/Dnsruby/IPv6.src/M000211.html +0 -18
  475. data/doc/classes/Dnsruby/IPv6.src/M000212.html +0 -21
  476. data/doc/classes/Dnsruby/IPv6.src/M000213.html +0 -18
  477. data/doc/classes/Dnsruby/IPv6.src/M000214.html +0 -18
  478. data/doc/classes/Dnsruby/IPv6.src/M000215.html +0 -18
  479. data/doc/classes/Dnsruby/Message.src/M000087.html +0 -54
  480. data/doc/classes/Dnsruby/Message.src/M000088.html +0 -42
  481. data/doc/classes/Dnsruby/Message.src/M000089.html +0 -45
  482. data/doc/classes/Dnsruby/Message.src/M000090.html +0 -20
  483. data/doc/classes/Dnsruby/Message.src/M000091.html +0 -21
  484. data/doc/classes/Dnsruby/Message.src/M000092.html +0 -20
  485. data/doc/classes/Dnsruby/Message.src/M000093.html +0 -18
  486. data/doc/classes/Dnsruby/Message.src/M000094.html +0 -54
  487. data/doc/classes/Dnsruby/Message.src/M000095.html +0 -42
  488. data/doc/classes/Dnsruby/Message.src/M000096.html +0 -45
  489. data/doc/classes/Dnsruby/Name.src/M000062.html +0 -19
  490. data/doc/classes/Dnsruby/Name.src/M000064.html +0 -22
  491. data/doc/classes/Dnsruby/Name.src/M000065.html +0 -18
  492. data/doc/classes/Dnsruby/Name.src/M000066.html +0 -20
  493. data/doc/classes/Dnsruby/Name.src/M000067.html +0 -18
  494. data/doc/classes/Dnsruby/Name.src/M000068.html +0 -21
  495. data/doc/classes/Dnsruby/Name.src/M000069.html +0 -19
  496. data/doc/classes/Dnsruby/Name.src/M000071.html +0 -22
  497. data/doc/classes/Dnsruby/Name.src/M000072.html +0 -18
  498. data/doc/classes/Dnsruby/Name.src/M000073.html +0 -20
  499. data/doc/classes/Dnsruby/Name/Label.src/M000071.html +0 -18
  500. data/doc/classes/Dnsruby/Name/Label.src/M000072.html +0 -18
  501. data/doc/classes/Dnsruby/Name/Label.src/M000073.html +0 -18
  502. data/doc/classes/Dnsruby/Name/Label.src/M000074.html +0 -18
  503. data/doc/classes/Dnsruby/Name/Label.src/M000079.html +0 -18
  504. data/doc/classes/Dnsruby/Name/Label.src/M000080.html +0 -18
  505. data/doc/classes/Dnsruby/Name/Label.src/M000081.html +0 -18
  506. data/doc/classes/Dnsruby/Name/Label.src/M000082.html +0 -18
  507. data/doc/classes/Dnsruby/RR.src/M000014.html +0 -24
  508. data/doc/classes/Dnsruby/RR.src/M000015.html +0 -18
  509. data/doc/classes/Dnsruby/RR.src/M000016.html +0 -18
  510. data/doc/classes/Dnsruby/RR.src/M000017.html +0 -22
  511. data/doc/classes/Dnsruby/RR.src/M000018.html +0 -22
  512. data/doc/classes/Dnsruby/RR.src/M000019.html +0 -18
  513. data/doc/classes/Dnsruby/RR.src/M000020.html +0 -22
  514. data/doc/classes/Dnsruby/RR.src/M000021.html +0 -24
  515. data/doc/classes/Dnsruby/RR/DomainName.src/M000058.html +0 -22
  516. data/doc/classes/Dnsruby/RR/Generic.src/M000041.html +0 -25
  517. data/doc/classes/Dnsruby/RR/Generic.src/M000048.html +0 -25
  518. data/doc/classes/Dnsruby/RR/IN/A.src/M000020.html +0 -18
  519. data/doc/classes/Dnsruby/RR/IN/A.src/M000026.html +0 -18
  520. data/doc/classes/Dnsruby/RR/IN/A.src/M000027.html +0 -18
  521. data/doc/classes/Dnsruby/RR/IN/SRV.src/M000017.html +0 -22
  522. data/doc/classes/Dnsruby/RR/IN/SRV.src/M000023.html +0 -26
  523. data/doc/classes/Dnsruby/RR/IN/SRV.src/M000024.html +0 -22
  524. data/doc/classes/Dnsruby/RR/IN/WKS.src/M000028.html +0 -20
  525. data/doc/classes/Dnsruby/RR/LOC.src/M000032.html +0 -32
  526. data/doc/classes/Dnsruby/RR/LOC.src/M000033.html +0 -23
  527. data/doc/classes/Dnsruby/RR/LOC.src/M000034.html +0 -25
  528. data/doc/classes/Dnsruby/RR/LOC.src/M000035.html +0 -21
  529. data/doc/classes/Dnsruby/RR/LOC.src/M000036.html +0 -20
  530. data/doc/classes/Dnsruby/RR/LOC.src/M000037.html +0 -23
  531. data/doc/classes/Dnsruby/RR/NSAP.src/M000056.html +0 -31
  532. data/doc/classes/Dnsruby/RR/NSAP.src/M000061.html +0 -19
  533. data/doc/classes/Dnsruby/RR/NSAP.src/M000062.html +0 -22
  534. data/doc/classes/Dnsruby/RR/NSAP.src/M000063.html +0 -31
  535. data/doc/classes/Dnsruby/RR/RP.src/M000057.html +0 -19
  536. data/doc/classes/Dnsruby/RR/SOA.src/M000046.html +0 -24
  537. data/doc/classes/Dnsruby/RR/SOA.src/M000047.html +0 -27
  538. data/doc/classes/Dnsruby/RR/TKEY.src/M000030.html +0 -29
  539. data/doc/classes/Dnsruby/RR/TKEY.src/M000031.html +0 -30
  540. data/doc/classes/Dnsruby/RR/TSIG.src/M000049.html +0 -29
  541. data/doc/classes/Dnsruby/RR/TSIG.src/M000050.html +0 -71
  542. data/doc/classes/Dnsruby/RR/TSIG.src/M000051.html +0 -34
  543. data/doc/classes/Dnsruby/RR/TSIG.src/M000052.html +0 -37
  544. data/doc/classes/Dnsruby/RR/TSIG.src/M000053.html +0 -31
  545. data/doc/classes/Dnsruby/RR/TSIG.src/M000054.html +0 -34
  546. data/doc/classes/Dnsruby/RR/TSIG.src/M000055.html +0 -22
  547. data/doc/classes/Dnsruby/RR/TSIG.src/M000056.html +0 -29
  548. data/doc/classes/Dnsruby/RR/TXT.src/M000041.html +0 -18
  549. data/doc/classes/Dnsruby/RR/TXT.src/M000042.html +0 -18
  550. data/doc/classes/Dnsruby/RR/TXT.src/M000043.html +0 -20
  551. data/doc/classes/Dnsruby/RR/TXT.src/M000044.html +0 -27
  552. data/doc/classes/Dnsruby/RR/TXT.src/M000045.html +0 -25
  553. data/doc/classes/Dnsruby/RR/X25.src/M000038.html +0 -18
  554. data/doc/classes/Dnsruby/RR/X25.src/M000039.html +0 -18
  555. data/doc/classes/Dnsruby/RR/X25.src/M000040.html +0 -22
  556. data/doc/classes/Dnsruby/RRSet.src/M000165.html +0 -18
  557. data/doc/classes/Dnsruby/RRSet.src/M000166.html +0 -18
  558. data/doc/classes/Dnsruby/RRSet.src/M000188.html +0 -44
  559. data/doc/classes/Dnsruby/RRSet.src/M000189.html +0 -18
  560. data/doc/classes/Dnsruby/RRSet.src/M000190.html +0 -20
  561. data/doc/classes/Dnsruby/RRSet.src/M000191.html +0 -18
  562. data/doc/classes/Dnsruby/RRSet.src/M000192.html +0 -18
  563. data/doc/classes/Dnsruby/RRSet.src/M000193.html +0 -18
  564. data/doc/classes/Dnsruby/Resolv.src/M000121.html +0 -25
  565. data/doc/classes/Dnsruby/Resolv.src/M000137.html +0 -18
  566. data/doc/classes/Dnsruby/Resolv.src/M000138.html +0 -18
  567. data/doc/classes/Dnsruby/Resolv.src/M000139.html +0 -18
  568. data/doc/classes/Dnsruby/Resolv.src/M000140.html +0 -18
  569. data/doc/classes/Dnsruby/Resolv.src/M000141.html +0 -18
  570. data/doc/classes/Dnsruby/Resolv.src/M000142.html +0 -18
  571. data/doc/classes/Dnsruby/Resolv.src/M000143.html +0 -19
  572. data/doc/classes/Dnsruby/Resolv.src/M000144.html +0 -20
  573. data/doc/classes/Dnsruby/Resolv.src/M000145.html +0 -29
  574. data/doc/classes/Dnsruby/Resolv.src/M000146.html +0 -19
  575. data/doc/classes/Dnsruby/Resolv.src/M000147.html +0 -20
  576. data/doc/classes/Dnsruby/Resolv.src/M000148.html +0 -25
  577. data/doc/classes/Dnsruby/Resolver.src/M000230.html +0 -19
  578. data/doc/classes/Dnsruby/Resolver.src/M000231.html +0 -19
  579. data/doc/classes/Dnsruby/Resolver.src/M000232.html +0 -26
  580. data/doc/classes/Dnsruby/Resolver.src/M000233.html +0 -18
  581. data/doc/classes/Dnsruby/Resolver.src/M000234.html +0 -23
  582. data/doc/classes/Dnsruby/Resolver.src/M000235.html +0 -18
  583. data/doc/classes/Dnsruby/Resolver.src/M000236.html +0 -42
  584. data/doc/classes/Dnsruby/Resolver.src/M000244.html +0 -21
  585. data/doc/classes/Dnsruby/Resolver.src/M000245.html +0 -22
  586. data/doc/classes/Dnsruby/Resolver.src/M000246.html +0 -18
  587. data/doc/classes/Dnsruby/Resolver.src/M000247.html +0 -20
  588. data/doc/classes/Dnsruby/Resolver.src/M000248.html +0 -19
  589. data/doc/classes/Dnsruby/Resolver.src/M000249.html +0 -19
  590. data/doc/classes/Dnsruby/Resolver.src/M000250.html +0 -19
  591. data/doc/classes/Dnsruby/Resolver.src/M000251.html +0 -19
  592. data/doc/classes/Dnsruby/Resolver.src/M000252.html +0 -19
  593. data/doc/classes/Dnsruby/Resolver.src/M000253.html +0 -19
  594. data/doc/classes/Dnsruby/Resolver.src/M000254.html +0 -19
  595. data/doc/classes/Dnsruby/Resolver.src/M000255.html +0 -19
  596. data/doc/classes/Dnsruby/Resolver.src/M000256.html +0 -19
  597. data/doc/classes/Dnsruby/Resolver.src/M000257.html +0 -19
  598. data/doc/classes/Dnsruby/Resolver.src/M000258.html +0 -19
  599. data/doc/classes/Dnsruby/Resolver.src/M000259.html +0 -26
  600. data/doc/classes/Dnsruby/Resolver.src/M000260.html +0 -18
  601. data/doc/classes/Dnsruby/Resolver.src/M000261.html +0 -23
  602. data/doc/classes/Dnsruby/Resolver.src/M000262.html +0 -18
  603. data/doc/classes/Dnsruby/Resolver.src/M000263.html +0 -42
  604. data/doc/classes/Dnsruby/SelectInterface.html +0 -236
  605. data/doc/classes/Dnsruby/SelectInterface.src/M000001.html +0 -19
  606. data/doc/classes/Dnsruby/SelectInterface.src/M000002.html +0 -18
  607. data/doc/classes/Dnsruby/SelectInterface.src/M000003.html +0 -18
  608. data/doc/classes/Dnsruby/SelectInterface.src/M000004.html +0 -18
  609. data/doc/classes/Dnsruby/SelectInterface.src/M000005.html +0 -21
  610. data/doc/classes/Dnsruby/SelectInterface.src/M000006.html +0 -19
  611. data/doc/classes/Dnsruby/SelectInterface.src/M000007.html +0 -18
  612. data/doc/classes/Dnsruby/SingleResolver.src/M000150.html +0 -19
  613. data/doc/classes/Dnsruby/SingleResolver.src/M000151.html +0 -49
  614. data/doc/classes/Dnsruby/SingleResolver.src/M000155.html +0 -51
  615. data/doc/classes/Dnsruby/SingleResolver.src/M000156.html +0 -26
  616. data/doc/classes/Dnsruby/TheLog.src/M000216.html +0 -20
  617. data/doc/classes/Dnsruby/Update.src/M000195.html +0 -41
  618. data/doc/classes/Dnsruby/Update.src/M000196.html +0 -34
  619. data/doc/classes/Dnsruby/Update.src/M000222.html +0 -41
  620. data/doc/classes/Dnsruby/Update.src/M000223.html +0 -34
  621. data/doc/classes/Dnsruby/ZoneTransfer.src/M000096.html +0 -35
  622. data/doc/classes/Dnsruby/ZoneTransfer.src/M000102.html +0 -22
  623. data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/M000097.html +0 -19
  624. data/doc/files/lib/Dnsruby/SelectInterface_rb.html +0 -108
data/doc/index.html CHANGED
@@ -19,6 +19,6 @@
19
19
  <frame src="fr_class_index.html" name="Classes" />
20
20
  <frame src="fr_method_index.html" name="Methods" />
21
21
  </frameset>
22
- <frame src="files/lib/dnsruby_rb.html" name="docwin" />
22
+ <frame src="classes/Dnsruby.html" name="docwin" />
23
23
  </frameset>
24
24
  </html>
@@ -60,6 +60,8 @@ module Dnsruby
60
60
  # domain (String)
61
61
  # search (String)
62
62
  # ndots (Fixnum)
63
+ #
64
+ # This method should not normally be called by client code.
63
65
  def set_config_info(config_info)
64
66
  parse_config(config_info)
65
67
  end
@@ -118,10 +120,14 @@ module Dnsruby
118
120
 
119
121
  # Set the default domain
120
122
  def domain=(dom)
121
- if !dom.kind_of?(String)
122
- raise ArgumentError.new("invalid domain config: #{@domain.inspect}")
123
+ if (dom)
124
+ if !dom.kind_of?(String)
125
+ raise ArgumentError.new("invalid domain config: #{@domain.inspect}")
126
+ end
127
+ @domain = Name::Label.split(dom)
128
+ else
129
+ @domain=nil
123
130
  end
124
- @domain = Name::Label.split(dom)
125
131
  end
126
132
 
127
133
  # Set ndots
@@ -151,7 +157,7 @@ module Dnsruby
151
157
  end
152
158
 
153
159
  if !@search.kind_of?(Array) ||
154
- # !@search.all? {|ls| ls.all? {|l| Label::Str === l } }
160
+ # !@search.all? {|ls| ls.all? {|l| Label::Str === l } }
155
161
  !@search.all? {|ls| ls.all? {|l| Name::Label === l } }
156
162
  raise ArgumentError.new("invalid search config: #{@search.inspect}")
157
163
  end
@@ -159,7 +165,7 @@ module Dnsruby
159
165
 
160
166
  def check_ns(ns) #:nodoc: all
161
167
  if !ns.kind_of?(Array) ||
162
- !ns.all? {|n| (String === n || IPv4 === n || IPv6 === n)}
168
+ !ns.all? {|n| (String === n || IPv4 === n || IPv6 === n)}
163
169
  raise ArgumentError.new("invalid nameserver config: #{ns.inspect}")
164
170
  end
165
171
  ns.each_index do |i|
data/lib/Dnsruby/DNS.rb CHANGED
@@ -17,19 +17,9 @@ require 'Dnsruby/Hosts'
17
17
  require 'Dnsruby/Config'
18
18
  require "Dnsruby/Resolver"
19
19
  module Dnsruby
20
- #--
21
- #@TODO@ Asynchronous interface. Do we want a callback (in a new thread) or a queue system?
22
- #Is there any point in taking a block? May as well...
23
- #e.g. getaddresses_async(name, Queue|Proc)
24
- #Could we make the final argument optional to all the standard calls? So they are either sync or async?
25
- #e.g. getaddresses(name{, Queue|Proc})
26
- #Yes to all but each_resource - would have to make a new each_resource_async or something...
27
- #@TODO@ BUT - need to pass in an ID as well as a queue to identify correct response
28
- #Proc can keep track of query ID itself
29
- #++
30
20
 
31
21
  #== Dnsruby::DNS class
32
- #DNS stub resolver.
22
+ #Resolv::DNS performs DNS queries.
33
23
  #
34
24
  #=== class methods
35
25
  #* Dnsruby::DNS.new(config_info=nil)
@@ -80,10 +70,17 @@ module Dnsruby
80
70
  #are tried (if there is no timely answer from the first).
81
71
  #
82
72
  #This class uses Resolver to perform the queries.
73
+ #
74
+ #Information taken from the following places :
75
+ #* STD0013
76
+ #* RFC 1035, etc.
77
+ #* ftp://ftp.isi.edu/in-notes/iana/assignments/dns-parameters
78
+ #* etc.
83
79
  class DNS
84
- # STD0013 (RFC 1035, etc.)
85
- # ftp://ftp.isi.edu/in-notes/iana/assignments/dns-parameters
86
80
 
81
+ #Creates a new DNS resolver. See Resolv::DNS.new for argument details.
82
+ #
83
+ #Yields the created DNS resolver to the block, if given, otherwise returns it.
87
84
  def self.open(*args)
88
85
  dns = new(*args)
89
86
  return dns unless block_given?
@@ -94,6 +91,7 @@ module Dnsruby
94
91
  end
95
92
  end
96
93
 
94
+ #Closes the resolver
97
95
  def close
98
96
  @resolver.close
99
97
  end
@@ -103,6 +101,18 @@ module Dnsruby
103
101
  return "DNS : " + @config.to_s
104
102
  end
105
103
 
104
+ #Creates a new DNS resolver
105
+ #
106
+ #+config_info+ can be:
107
+ #
108
+ #* nil:: Uses platform default (e.g. /etc/resolv.conf)
109
+ #* String:: Path to a file using /etc/resolv.conf's format
110
+ #* Hash:: Must contain :nameserver, :search and :ndots keys
111
+ # example :
112
+ #
113
+ # Dnsruby::DNS.new({:nameserver => ['210.251.121.21'],
114
+ # :search => ['ruby-lang.org'],
115
+ # :ndots => 1})
106
116
  def initialize(config_info=nil)
107
117
  @config = Config.new()
108
118
  @config.set_config_info(config_info)
@@ -111,32 +121,56 @@ module Dnsruby
111
121
 
112
122
  attr_reader :config
113
123
 
124
+ #Gets the first IP address of +name+ from the DNS resolver
125
+ #
126
+ #+name+ can be a Dnsruby::Name or a String. Retrieved address will be a
127
+ #Dnsruby::IPv4 or a Dnsruby::IPv6
114
128
  def getaddress(name)
115
129
  each_address(name) {|address| return address}
116
130
  raise ResolvError.new("DNS result has no information for #{name}")
117
131
  end
118
132
 
133
+ #Gets all IP addresses of +name+ from the DNS resolver
134
+ #
135
+ #+name+ can be a Dnsruby::Name or a String. Retrieved address will be a
136
+ #Dnsruby::IPv4 or a Dnsruby::IPv6
119
137
  def getaddresses(name)
120
138
  ret = []
121
139
  each_address(name) {|address| ret << address}
122
140
  return ret
123
141
  end
124
142
 
143
+ #Iterates over all IP addresses of +name+ retrieved from the DNS resolver
144
+ #
145
+ #+name+ can be a Dnsruby::Name or a String. Retrieved address will be a
146
+ #Dnsruby::IPv4 or a Dnsruby::IPv6
125
147
  def each_address(name)
126
148
  each_resource(name) {|resource| yield resource.address}
127
149
  end
128
150
 
151
+ #Gets the first hostname for +address+ from the DNS resolver
152
+ #
153
+ #+address+ must be a Dnsruby::IPv4, Dnsruby::IPv6 or a String. Retrieved
154
+ #name will be a Dnsruby::Name.
129
155
  def getname(address)
130
156
  each_name(address) {|name| return name}
131
157
  raise ResolvError.new("DNS result has no information for #{address}")
132
158
  end
133
159
 
160
+ #Gets all hostnames for +address+ from the DNS resolver
161
+ #
162
+ #+address+ must be a Dnsruby::IPv4, Dnsruby::IPv6 or a String. Retrieved
163
+ #name will be a Dnsruby::Name.
134
164
  def getnames(address)
135
165
  ret = []
136
166
  each_name(address) {|name| ret << name}
137
167
  return ret
138
168
  end
139
169
 
170
+ #Iterates over all hostnames for +address+ retrieved from the DNS resolver
171
+ #
172
+ #+address+ must be a Dnsruby::IPv4, Dnsruby::IPv6 or a String. Retrieved
173
+ #name will be a Dnsruby::Name.
140
174
  def each_name(address)
141
175
  case address
142
176
  when Name
@@ -151,44 +185,38 @@ module Dnsruby
151
185
  each_resource(ptr, Types.PTR, Classes.IN) {|resource| yield resource.domainname}
152
186
  end
153
187
 
188
+ #Look up the first +type+, +klass+ resource for +name+
189
+ #
190
+ #+type+ defaults to Dnsruby::Types.A
191
+ #+klass+ defaults to Dnsruby::Classes.IN
192
+ #
193
+ #Returned resource is represented as a Dnsruby::RR instance, e.g.
194
+ #Dnsruby::RR::IN::A
154
195
  def getresource(name, type=Types.A, klass=Classes.IN)
155
196
  each_resource(name, type, klass) {|resource| return resource}
156
197
  raise ResolvError.new("DNS result has no information for #{name}")
157
198
  end
158
199
 
200
+ #Look up all +type+, +klass+ resources for +name+
201
+ #
202
+ #+type+ defaults to Dnsruby::Types.A
203
+ #+klass+ defaults to Dnsruby::Classes.IN
204
+ #
205
+ #Returned resource is represented as a Dnsruby::RR instance, e.g.
206
+ #Dnsruby::RR::IN::A
159
207
  def getresources(name, type=Types.A, klass=Classes.IN)
160
208
  ret = []
161
209
  each_resource(name, type, klass) {|resource| ret << resource}
162
210
  return ret
163
211
  end
164
212
 
165
- def send_query(name, type=Types.A, klass=Classes.IN)
166
- q = Queue.new
167
- candidates = @config.generate_candidates(name)
168
- exception = nil
169
- candidates.each do |candidate|
170
- msg = Message.new
171
- msg.header.rd = 1
172
- msg.add_question(candidate, type, klass)
173
- @resolver.send_async(msg, q, q)
174
- id, ret, exception = q.pop
175
- if (exception == nil && ret.header.rcode == RCode.NOERROR)
176
- return ret, ret.question[0].qname
177
- end
178
- # if (ret.kind_of?Message)
179
- # exception = ret.header.rcode
180
- # if (ret.header.rcode==RCode.NOERROR)
181
- # return ret, ret.question[0].qname
182
- # end
183
- # else
184
- # #@TODO@ Keep trying until all the candidates are done
185
- # # raise ret
186
- # exception = ret
187
- # end
188
- end
189
- raise exception
190
- end
191
-
213
+ #Iterates over all +type+, +klass+ resources for +name+
214
+ #
215
+ #+type+ defaults to Dnsruby::Types.A
216
+ #+klass+ defaults to Dnsruby::Classes.IN
217
+ #
218
+ #Yielded resource is represented as a Dnsruby::RR instance, e.g.
219
+ #Dnsruby::RR::IN::A
192
220
  def each_resource(name, type=Types.A, klass=Classes.IN, &proc)
193
221
  type = Types.new(type)
194
222
  klass = Classes.new(klass)
@@ -203,12 +231,10 @@ module Dnsruby
203
231
  else
204
232
  TheLog.error("Unexpected rcode : #{reply.header.rcode.string}")
205
233
  raise Config::OtherResolvError.new(reply_name.to_s)
206
- end
207
-
234
+ end
208
235
  end
209
236
 
210
- def extract_resources(msg, name, type, klass)
211
- # if type < Types.ANY
237
+ def extract_resources(msg, name, type, klass) # :nodoc:
212
238
  if type == Types.ANY
213
239
  n0 = Name.create(name)
214
240
  msg.each_answer {|rec|
@@ -242,12 +268,33 @@ module Dnsruby
242
268
  end
243
269
  }
244
270
  end
245
-
246
- class DecodeError < StandardError
247
- end
248
271
 
249
- class EncodeError < StandardError
272
+ def send_query(name, type=Types.A, klass=Classes.IN) # :nodoc:
273
+ candidates = @config.generate_candidates(name)
274
+ exception = nil
275
+ candidates.each do |candidate|
276
+ q = Queue.new
277
+ msg = Message.new
278
+ msg.header.rd = 1
279
+ msg.add_question(candidate, type, klass)
280
+ @resolver.send_async(msg, q)
281
+ id, ret, exception = q.pop
282
+ if (exception == nil && ret.header.rcode == RCode.NOERROR)
283
+ return ret, ret.question[0].qname
284
+ end
285
+ end
286
+ raise exception
250
287
  end
251
-
288
+
252
289
  end
253
- end
290
+ end
291
+ #--
292
+ #@TODO@ Asynchronous interface. Do we want a callback (in a new thread) or a queue system?
293
+ #Is there any point in taking a block? May as well...
294
+ #e.g. getaddresses_async(name, Queue|Proc)
295
+ #Could we make the final argument optional to all the standard calls? So they are either sync or async?
296
+ #e.g. getaddresses(name{, Queue|Proc})
297
+ #Yes to all but each_resource - would have to make a new each_resource_async or something...
298
+ #@TODO@ BUT - need to pass in an ID as well as a queue to identify correct response
299
+ #Proc can keep track of query ID itself
300
+ #++
data/lib/Dnsruby/Hosts.rb CHANGED
@@ -15,7 +15,7 @@
15
15
  #++
16
16
  module Dnsruby
17
17
  #== Dnsruby::Hosts class
18
- #hostname resolver using /etc/hosts format.
18
+ #Dnsruby::Hosts is a hostname resolver that uses the system hosts file
19
19
  #
20
20
  #=== class methods
21
21
  #* Dnsruby::Hosts.new(hosts='/etc/hosts')
@@ -39,13 +39,14 @@ module Dnsruby
39
39
  DefaultFileName = '/etc/hosts'
40
40
  end
41
41
 
42
+ #Creates a new Dnsruby::Hosts using +filename+ for its data source
42
43
  def initialize(filename = DefaultFileName)
43
44
  @filename = filename
44
45
  @mutex = Mutex.new
45
46
  @initialized = nil
46
47
  end
47
48
 
48
- def lazy_initialize
49
+ def lazy_initialize# :nodoc:
49
50
  @mutex.synchronize {
50
51
  unless @initialized
51
52
  @name2addr = {}
@@ -80,17 +81,20 @@ module Dnsruby
80
81
  self
81
82
  end
82
83
 
84
+ #Gets the first IP address for +name+ from the hosts file
83
85
  def getaddress(name)
84
86
  each_address(name) {|address| return address}
85
87
  raise ResolvError.new("#{@filename} has no name: #{name}")
86
88
  end
87
89
 
90
+ #Gets all IP addresses for +name+ from the hosts file
88
91
  def getaddresses(name)
89
92
  ret = []
90
93
  each_address(name) {|address| ret << address}
91
94
  return ret
92
95
  end
93
96
 
97
+ #Iterates over all IP addresses for +name+ retrieved from the hosts file
94
98
  def each_address(name, &proc)
95
99
  lazy_initialize
96
100
  if @name2addr.include?(name)
@@ -98,17 +102,20 @@ module Dnsruby
98
102
  end
99
103
  end
100
104
 
105
+ #Gets the first hostname of +address+ from the hosts file
101
106
  def getname(address)
102
107
  each_name(address) {|name| return name}
103
108
  raise ResolvError.new("#{@filename} has no address: #{address}")
104
109
  end
105
110
 
111
+ #Gets all hostnames for +address+ from the hosts file
106
112
  def getnames(address)
107
113
  ret = []
108
114
  each_name(address) {|name| ret << name}
109
115
  return ret
110
116
  end
111
117
 
118
+ #Iterates over all hostnames for +address+ retrieved from the hosts file
112
119
  def each_name(address, &proc)
113
120
  lazy_initialize
114
121
  if @addr2name.include?(address)
@@ -16,18 +16,19 @@
16
16
  require "Dnsruby/SingleResolver"
17
17
  module Dnsruby
18
18
  #== Description
19
- # This class uses a set of SingleResolvers to perform queries with retries across multiple nameservers.
19
+ #Dnsruby::Resolver is a DNS stub resolver.
20
+ #This class uses a set of SingleResolvers to perform queries with retries across multiple nameservers.
20
21
  #
21
- # The retry policy is a combination of the Net::DNS and dnsjava approach, and has the option of :
22
+ #The retry policy is a combination of the Net::DNS and dnsjava approach, and has the option of :
22
23
  #* A total timeout for the query (defaults to 0, meaning "no total timeout")
23
24
  #* A retransmission system that targets the namervers concurrently once the first query round is
24
25
  # complete, but in which the total time per query round is split between the number of nameservers
25
26
  # targetted for the first round. and total time for query round is doubled for each query round
26
27
  #
27
- # Note that, if a total timeout is specified, then that will apply regardless of the retry policy
28
- # (i.e. it may cut retries short).
28
+ # Note that, if a total timeout is specified, then that will apply regardless of the retry policy
29
+ #(i.e. it may cut retries short).
29
30
  #
30
- # Note also that these timeouts are distinct from the SingleResolver's packet_timeout
31
+ # Note also that these timeouts are distinct from the SingleResolver's packet_timeout
31
32
  #
32
33
  #== Methods
33
34
  #
@@ -74,7 +75,7 @@ module Dnsruby
74
75
  attr_reader :use_tcp
75
76
 
76
77
 
77
- attr_reader :tsig_key
78
+ attr_reader :tsig
78
79
 
79
80
  # Should truncation be ignored?
80
81
  # i.e. the TC bit is ignored and thus the resolver will not requery over TCP if TC is set
@@ -159,7 +160,7 @@ module Dnsruby
159
160
  def send_message(message)
160
161
  TheLog.debug("Resolver : sending message")
161
162
  q = Queue.new
162
- send_async(message, q, q)
163
+ send_async(message, q)
163
164
  id, result, error = q.pop
164
165
  TheLog.debug("Resolver : result received")
165
166
  if (error != nil)
@@ -170,22 +171,48 @@ module Dnsruby
170
171
  end
171
172
 
172
173
 
173
- # Asynchronously sends a DNS packet (Dnsruby::Message). The client must pass in the
174
- # Message to be sent, a client_query_id to identify the message and a client_queue (of
175
- # class Queue) to pass the response back in.
174
+ #Asynchronously send a Message to the server. The send can be done using just
175
+ #Dnsruby, or using EventMachine.
176
176
  #
177
- # A tuple of (query_id, response_message, exception) will be added to the client_queue.
177
+ #== Dnsruby pure Ruby event loop :
178
+ #
179
+ #A client_queue is supplied by the client,
180
+ #along with an optional client_query_id to identify the response. The client_query_id
181
+ #is generated, if not supplied, and returned to the client.
182
+ #When the response is known,
183
+ #a tuple of (query_id, response_message, exception) will be added to the client_queue.
184
+ #
185
+ #The query is sent synchronously in the caller's thread. The select thread is then used to
186
+ #listen for and process the response (up to pushing it to the client_queue). The client thread
187
+ #is then used to retrieve the response and deal with it.
188
+ #
189
+ #Takes :
190
+ #
191
+ #* msg - the message to send
192
+ #* client_queue - a Queue to push the response to, when it arrives
193
+ #* client_query_id - an optional ID to identify the query to the client
194
+ #* use_tcp - whether to use TCP (defaults to SingleResolver.use_tcp)
178
195
  #
196
+ #Returns :
179
197
  #
180
- # example :
198
+ #* client_query_id - to identify the query response to the client. This ID is
199
+ #generated if it is not passed in by the client
181
200
  #
201
+ #=== Example invocations :
202
+ #
203
+ # id = res.send_async(msg, queue)
204
+ # NOT SUPPORTED : id = res.send_async(msg, queue, use_tcp)
205
+ # id = res.send_async(msg, queue, id)
206
+ # id = res.send_async(msg, queue, id, use_tcp)
207
+ #
208
+ #=== Example code :
209
+ #
182
210
  # require 'Dnsruby'
183
211
  # res = Dnsruby::Resolver.new
184
212
  # query_id = 10 # can be any object you like
185
213
  # query_queue = Queue.new
186
214
  # res.send_async(Message.new("example.com", Types.MX), query_queue, query_id)
187
- # query_id += 1
188
- # res.send_async(Message.new("example.com", Types.A), query_queue, query_id)
215
+ # query_id_2 = res.send_async(Message.new("example.com", Types.A), query_queue)
189
216
  # # ...do a load of other stuff here...
190
217
  # 2.times do
191
218
  # response_id, response, exception = query_queue.pop
@@ -196,7 +223,49 @@ module Dnsruby
196
223
  # # deal with problem
197
224
  # end
198
225
  # end
199
- # @TODO@ Sort out RDoc arguments to send_async!
226
+ #
227
+ #== If EventMachine is being used :
228
+ #
229
+ #If EventMachine is being used (see Dnsruby::Resolver::use_eventmachine, then this method returns
230
+ #an EM::Deferrable object. When the response is known, then the Deferrable will complete.
231
+ #If a queue (and ID) is passed in, then the response will also be
232
+ #pushed to the Queue. Note that an ID is not automatically generated by this version.
233
+ #
234
+ #=== Example invocations :
235
+ #
236
+ # deferrable = res.send_async(msg)
237
+ # deferrable = res.send_async(msg, use_tcp)
238
+ # deferrable = res.send_async(msg, q, id, use_tcp)
239
+ #
240
+ #=== Example code
241
+ #* Here is an example of using the code in an EventMachine style :
242
+ #
243
+ # require 'Dnsruby'
244
+ # require 'eventmachine'
245
+ # res = Dnsruby::Resolver.new
246
+ # Dnsruby::Resolver.use_eventmachine
247
+ # Dnsruby::Resolver.start_eventmachine_loop(false)
248
+ # EventMachine::run {
249
+ # df = res.send_async(Dnsruby::Message.new("example.com"))
250
+ # df.callback {|msg|
251
+ # puts "Response : #{msg}"
252
+ # EM.stop}
253
+ # df.errback {|msg, err|
254
+ # puts "Response : #{msg}"
255
+ # puts "Error: #{err}"
256
+ # EM.stop}
257
+ # }
258
+ #
259
+ #* And an example in a normal Dnsruby style :
260
+ #
261
+ # require 'Dnsruby'
262
+ # res = Dnsruby::Resolver.new
263
+ # Dnsruby::Resolver.use_eventmachine
264
+ # Dnsruby::Resolver.start_eventmachine_loop(true) # default
265
+ # q = Queue.new
266
+ # id = res.send_async(Dnsruby::Message.new("example.com"),q)
267
+ # id, response, error = q.pop
268
+ #
200
269
  def send_async(*args) # msg, client_queue, client_query_id)
201
270
  if (Resolver.eventmachine?)
202
271
  if (!@resolver_em)
@@ -223,7 +292,7 @@ module Dnsruby
223
292
  #
224
293
  # * :port
225
294
  # * :use_tcp
226
- # * :tsig_key
295
+ # * :tsig
227
296
  # * :ignore_truncation
228
297
  # * :src_address
229
298
  # * :src_port
@@ -238,6 +307,9 @@ module Dnsruby
238
307
  # * :retry_times
239
308
  # * :retry_delay
240
309
  def initialize(*args)
310
+ @resolver_em = nil
311
+ @resolver_ruby = nil
312
+ @src_address = nil
241
313
  reset_attributes
242
314
 
243
315
  # Process args
@@ -263,7 +335,7 @@ module Dnsruby
263
335
  @config = args[0]
264
336
  end
265
337
  else
266
- #@TODO@ ?
338
+ # Anything to do?
267
339
  end
268
340
  if (@single_resolvers==[])
269
341
  add_config_nameservers
@@ -302,7 +374,7 @@ module Dnsruby
302
374
  @port = DefaultPort
303
375
  @udp_size = DefaultUDPSize
304
376
  @use_tcp = false
305
- @tsig_key = nil
377
+ @tsig = nil
306
378
  @ignore_truncation = false
307
379
  @config = Config.new()
308
380
  @src_addr = '0.0.0.0'
@@ -316,7 +388,7 @@ module Dnsruby
316
388
  def update #:nodoc: all
317
389
  #Update any resolvers we have with the latest config
318
390
  @single_resolvers.each do |res|
319
- [:port, :use_tcp, :tsig_key, :ignore_truncation, :packet_timeout,
391
+ [:port, :use_tcp, :tsig, :ignore_truncation, :packet_timeout,
320
392
  :src_address, :src_port, :persistent_tcp, :persistent_udp, :recurse,
321
393
  :udp_size].each do |param|
322
394
 
@@ -337,6 +409,11 @@ module Dnsruby
337
409
  add_config_nameservers
338
410
  end
339
411
 
412
+ #--
413
+ #@TODO@ Should really auto-generate these methods.
414
+ #Also, any way to tie them up with SingleResolver RDoc?
415
+ #++
416
+
340
417
  def packet_timeout=(t)
341
418
  @packet_timeout = t
342
419
  update
@@ -352,8 +429,17 @@ module Dnsruby
352
429
  update
353
430
  end
354
431
 
355
- def tsig_key=(t)
356
- @tsig_key = t
432
+ #Sets the TSIG to sign outgoing messages with.
433
+ #Pass in either a Dnsruby::RR::TSIG, or a key_name and key (or just a key)
434
+ #Pass in nil to stop tsig signing.
435
+ #It is possible for client code to sign packets prior to sending - see
436
+ #Dnsruby::RR::TSIG#apply and Dnsruby::Message#sign
437
+ #Note that pre-signed packets will not be signed by SingleResolver.
438
+ #* res.tsig=(tsig_rr)
439
+ #* res.tsig=(key_name, key)
440
+ #* res.tsig=nil # Stop the resolver from signing
441
+ def tsig=(t)
442
+ @tsig=t
357
443
  update
358
444
  end
359
445
 
@@ -400,7 +486,7 @@ module Dnsruby
400
486
  #
401
487
  #Takes a bool to say whether or not to use EventMachine.
402
488
  def Resolver.use_eventmachine(on=true)
403
- if (!@@event_machine_available)
489
+ if (on && !@@event_machine_available)
404
490
  raise RuntimeError.new("EventMachine is not available in this environment!")
405
491
  end
406
492
  @@use_eventmachine = on
@@ -552,13 +638,13 @@ module Dnsruby
552
638
  df = single_resolver.send_async(msg) # client_queue, client_query_id)
553
639
  persistent_data.to_send-=1
554
640
  df.callback { |answer|
555
- TheLog.debug("Response returned, answer=#{answer}")
641
+ TheLog.debug("Response returned")
556
642
  persistent_data.outstanding.delete(df)
557
643
  cancel_queries(persistent_data)
558
644
  return_to_client(persistent_data.deferrable, client_queue, client_query_id, answer, nil)
559
645
  }
560
646
  df.errback { |response, error|
561
- TheLog.debug("Error #{error} returned, response=#{response}")
647
+ TheLog.debug("Error #{error} returned")
562
648
  persistent_data.outstanding.delete(df)
563
649
  if (response!="cancelling")
564
650
 
@@ -618,7 +704,6 @@ module Dnsruby
618
704
  end
619
705
 
620
706
  def return_to_client(deferrable, client_queue, client_query_id, answer, error)
621
- TheLog.debug("Returning answer=#{answer}, error=#{error} to client")
622
707
  if (client_queue)
623
708
  client_queue.push([client_query_id, answer, error])
624
709
  end
@@ -648,10 +733,11 @@ module Dnsruby
648
733
  msg=args[0]
649
734
  client_queue=nil
650
735
  client_query_id=nil
651
- client_queue=args[1]
652
- if (args.length > 2)
653
- client_query_id = args[2]
736
+ client_queue=args[1]
737
+ if (args.length > 2)
738
+ client_query_id = args[2]
654
739
  end
740
+
655
741
 
656
742
  # This is the whole point of the Resolver class.
657
743
  # We want to use multiple SingleResolvers to run a query.
@@ -664,7 +750,7 @@ module Dnsruby
664
750
 
665
751
  q = Queue.new
666
752
  if (client_query_id==nil)
667
- client_query_id = msg
753
+ client_query_id = Time.now + rand(10000)
668
754
  end
669
755
 
670
756
  if (!client_queue.kind_of?Queue)
@@ -711,7 +797,7 @@ module Dnsruby
711
797
  # These are created at the same time in case the parameters change during the life of the query.
712
798
  #
713
799
  # These should be absolute, rather than relative
714
- # The first value should be Time.now
800
+ # The first value should be Time.now[
715
801
  time_now = Time.now
716
802
  timeouts=@parent.generate_timeouts(time_now)
717
803
  return timeouts
@@ -732,7 +818,6 @@ module Dnsruby
732
818
  # Send the result back to the client, and close the socket for that query by removing
733
819
  # the query from the select thread.
734
820
  def send_result_and_close(client_queue, client_query_id, select_queue, msg, error) #:nodoc: all
735
- TheLog.debug("Sending result #{error} to client")
736
821
  # We might still get some callbacks, which we should ignore
737
822
  st = SelectThread.instance
738
823
  st.remove_observer(select_queue, self)