pNet-DNS 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (789) hide show
  1. data/README +0 -20
  2. data/doc/classes/ConfigTable.html +500 -0
  3. data/doc/classes/ConfigTable.src/M000013.html +25 -0
  4. data/doc/classes/ConfigTable.src/M000014.html +18 -0
  5. data/doc/classes/ConfigTable.src/M000015.html +18 -0
  6. data/doc/classes/ConfigTable.src/M000016.html +18 -0
  7. data/doc/classes/ConfigTable.src/M000017.html +18 -0
  8. data/doc/classes/ConfigTable.src/M000018.html +18 -0
  9. data/doc/classes/ConfigTable.src/M000019.html +18 -0
  10. data/doc/classes/ConfigTable.src/M000020.html +18 -0
  11. data/doc/classes/ConfigTable.src/M000021.html +18 -0
  12. data/doc/classes/ConfigTable.src/M000022.html +19 -0
  13. data/doc/classes/ConfigTable.src/M000023.html +21 -0
  14. data/doc/classes/ConfigTable.src/M000024.html +20 -0
  15. data/doc/classes/ConfigTable.src/M000025.html +18 -0
  16. data/doc/classes/ConfigTable.src/M000026.html +25 -0
  17. data/doc/classes/ConfigTable.src/M000027.html +23 -0
  18. data/doc/classes/ConfigTable.src/M000028.html +20 -0
  19. data/doc/classes/ConfigTable.src/M000029.html +20 -0
  20. data/doc/classes/ConfigTable.src/M000030.html +23 -0
  21. data/doc/classes/ConfigTable.src/M000031.html +19 -0
  22. data/doc/classes/ConfigTable.src/M000032.html +18 -0
  23. data/doc/classes/ConfigTable.src/M000033.html +18 -0
  24. data/doc/classes/ConfigTable/BoolItem.html +154 -0
  25. data/doc/classes/ConfigTable/BoolItem.src/M000034.html +18 -0
  26. data/doc/classes/ConfigTable/BoolItem.src/M000035.html +18 -0
  27. data/doc/classes/ConfigTable/ExecItem.html +201 -0
  28. data/doc/classes/ConfigTable/ExecItem.src/M000053.html +20 -0
  29. data/doc/classes/ConfigTable/ExecItem.src/M000054.html +18 -0
  30. data/doc/classes/ConfigTable/ExecItem.src/M000055.html +18 -0
  31. data/doc/classes/ConfigTable/ExecItem.src/M000056.html +18 -0
  32. data/doc/classes/ConfigTable/ExecItem.src/M000057.html +22 -0
  33. data/doc/classes/ConfigTable/Item.html +250 -0
  34. data/doc/classes/ConfigTable/Item.src/M000060.html +22 -0
  35. data/doc/classes/ConfigTable/Item.src/M000061.html +18 -0
  36. data/doc/classes/ConfigTable/Item.src/M000062.html +18 -0
  37. data/doc/classes/ConfigTable/Item.src/M000063.html +18 -0
  38. data/doc/classes/ConfigTable/Item.src/M000064.html +18 -0
  39. data/doc/classes/ConfigTable/Item.src/M000065.html +18 -0
  40. data/doc/classes/ConfigTable/MetaConfigEnvironment.html +325 -0
  41. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000040.html +19 -0
  42. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000041.html +18 -0
  43. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000042.html +18 -0
  44. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000043.html +18 -0
  45. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000044.html +18 -0
  46. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000045.html +18 -0
  47. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000046.html +18 -0
  48. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000047.html +18 -0
  49. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000048.html +18 -0
  50. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000049.html +18 -0
  51. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000050.html +18 -0
  52. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000051.html +19 -0
  53. data/doc/classes/ConfigTable/MetaConfigEnvironment.src/M000052.html +19 -0
  54. data/doc/classes/ConfigTable/PackageSelectionItem.html +169 -0
  55. data/doc/classes/ConfigTable/PackageSelectionItem.src/M000038.html +19 -0
  56. data/doc/classes/ConfigTable/PackageSelectionItem.src/M000039.html +18 -0
  57. data/doc/classes/ConfigTable/PathItem.html +139 -0
  58. data/doc/classes/ConfigTable/PathItem.src/M000037.html +18 -0
  59. data/doc/classes/ConfigTable/ProgramItem.html +139 -0
  60. data/doc/classes/ConfigTable/ProgramItem.src/M000036.html +18 -0
  61. data/doc/classes/ConfigTable/SelectItem.html +156 -0
  62. data/doc/classes/ConfigTable/SelectItem.src/M000058.html +19 -0
  63. data/doc/classes/ConfigTable/SelectItem.src/M000059.html +18 -0
  64. data/doc/classes/Enumerable.html +118 -0
  65. data/doc/classes/Errno.html +111 -0
  66. data/doc/classes/Errno/ENOTEMPTY.html +111 -0
  67. data/doc/classes/File.html +166 -0
  68. data/doc/classes/File.src/M000223.html +20 -0
  69. data/doc/classes/File.src/M000224.html +20 -0
  70. data/doc/classes/File.src/M000225.html +18 -0
  71. data/doc/classes/FileOperations.html +375 -0
  72. data/doc/classes/FileOperations.src/M000560.html +31 -0
  73. data/doc/classes/FileOperations.src/M000561.html +20 -0
  74. data/doc/classes/FileOperations.src/M000562.html +20 -0
  75. data/doc/classes/FileOperations.src/M000563.html +24 -0
  76. data/doc/classes/FileOperations.src/M000564.html +34 -0
  77. data/doc/classes/FileOperations.src/M000565.html +27 -0
  78. data/doc/classes/FileOperations.src/M000566.html +21 -0
  79. data/doc/classes/FileOperations.src/M000567.html +19 -0
  80. data/doc/classes/FileOperations.src/M000568.html +40 -0
  81. data/doc/classes/FileOperations.src/M000569.html +19 -0
  82. data/doc/classes/FileOperations.src/M000570.html +20 -0
  83. data/doc/classes/FileOperations.src/M000571.html +18 -0
  84. data/doc/classes/FileOperations.src/M000572.html +18 -0
  85. data/doc/classes/FileOperations.src/M000573.html +18 -0
  86. data/doc/classes/FileOperations.src/M000574.html +20 -0
  87. data/doc/classes/FileOperations.src/M000575.html +20 -0
  88. data/doc/classes/HookScriptAPI.html +308 -0
  89. data/doc/classes/HookScriptAPI.src/M000226.html +18 -0
  90. data/doc/classes/HookScriptAPI.src/M000228.html +18 -0
  91. data/doc/classes/HookScriptAPI.src/M000229.html +18 -0
  92. data/doc/classes/HookScriptAPI.src/M000230.html +18 -0
  93. data/doc/classes/HookScriptAPI.src/M000231.html +18 -0
  94. data/doc/classes/HookScriptAPI.src/M000232.html +18 -0
  95. data/doc/classes/HookScriptAPI.src/M000233.html +18 -0
  96. data/doc/classes/HookScriptAPI.src/M000234.html +18 -0
  97. data/doc/classes/HookScriptAPI.src/M000235.html +20 -0
  98. data/doc/classes/HookScriptAPI.src/M000236.html +20 -0
  99. data/doc/classes/HookScriptAPI.src/M000237.html +20 -0
  100. data/doc/classes/Installer.html +1148 -0
  101. data/doc/classes/Installer.src/M000140.html +21 -0
  102. data/doc/classes/Installer.src/M000141.html +18 -0
  103. data/doc/classes/Installer.src/M000142.html +17 -0
  104. data/doc/classes/Installer.src/M000143.html +18 -0
  105. data/doc/classes/Installer.src/M000144.html +18 -0
  106. data/doc/classes/Installer.src/M000145.html +18 -0
  107. data/doc/classes/Installer.src/M000146.html +18 -0
  108. data/doc/classes/Installer.src/M000147.html +18 -0
  109. data/doc/classes/Installer.src/M000148.html +23 -0
  110. data/doc/classes/Installer.src/M000149.html +18 -0
  111. data/doc/classes/Installer.src/M000152.html +18 -0
  112. data/doc/classes/Installer.src/M000156.html +18 -0
  113. data/doc/classes/Installer.src/M000157.html +18 -0
  114. data/doc/classes/Installer.src/M000158.html +20 -0
  115. data/doc/classes/Installer.src/M000160.html +18 -0
  116. data/doc/classes/Installer.src/M000164.html +36 -0
  117. data/doc/classes/Installer.src/M000165.html +25 -0
  118. data/doc/classes/Installer.src/M000166.html +24 -0
  119. data/doc/classes/Installer.src/M000167.html +19 -0
  120. data/doc/classes/Installer.src/M000168.html +18 -0
  121. data/doc/classes/Installer.src/M000169.html +18 -0
  122. data/doc/classes/Installer.src/M000170.html +21 -0
  123. data/doc/classes/Installer.src/M000171.html +18 -0
  124. data/doc/classes/Installer.src/M000172.html +20 -0
  125. data/doc/classes/Installer.src/M000173.html +18 -0
  126. data/doc/classes/Installer.src/M000174.html +21 -0
  127. data/doc/classes/Installer.src/M000175.html +18 -0
  128. data/doc/classes/Installer.src/M000176.html +22 -0
  129. data/doc/classes/Installer.src/M000177.html +18 -0
  130. data/doc/classes/Installer.src/M000178.html +23 -0
  131. data/doc/classes/Installer.src/M000179.html +18 -0
  132. data/doc/classes/Installer.src/M000180.html +20 -0
  133. data/doc/classes/Installer.src/M000181.html +19 -0
  134. data/doc/classes/Installer.src/M000182.html +19 -0
  135. data/doc/classes/Installer.src/M000183.html +20 -0
  136. data/doc/classes/Installer.src/M000184.html +30 -0
  137. data/doc/classes/Installer.src/M000185.html +20 -0
  138. data/doc/classes/Installer.src/M000191.html +19 -0
  139. data/doc/classes/Installer.src/M000192.html +20 -0
  140. data/doc/classes/Installer.src/M000195.html +19 -0
  141. data/doc/classes/Installer.src/M000199.html +26 -0
  142. data/doc/classes/Installer.src/M000200.html +25 -0
  143. data/doc/classes/Installer.src/M000201.html +29 -0
  144. data/doc/classes/Installer.src/M000202.html +26 -0
  145. data/doc/classes/Installer/Shebang.html +202 -0
  146. data/doc/classes/Installer/Shebang.src/M000203.html +23 -0
  147. data/doc/classes/Installer/Shebang.src/M000204.html +19 -0
  148. data/doc/classes/Installer/Shebang.src/M000205.html +19 -0
  149. data/doc/classes/Installer/Shebang.src/M000206.html +18 -0
  150. data/doc/classes/Net.html +295 -0
  151. data/doc/classes/Net/DNS.html +1139 -0
  152. data/doc/classes/Net/DNS.src/M000238.html +34 -0
  153. data/doc/classes/Net/DNS.src/M000239.html +40 -0
  154. data/doc/classes/Net/DNS.src/M000240.html +32 -0
  155. data/doc/classes/Net/DNS.src/M000241.html +30 -0
  156. data/doc/classes/Net/DNS.src/M000242.html +39 -0
  157. data/doc/classes/Net/DNS.src/M000243.html +18 -0
  158. data/doc/classes/Net/DNS.src/M000244.html +18 -0
  159. data/doc/classes/Net/DNS.src/M000245.html +18 -0
  160. data/doc/classes/Net/DNS.src/M000246.html +18 -0
  161. data/doc/classes/Net/DNS.src/M000247.html +18 -0
  162. data/doc/classes/Net/DNS.src/M000248.html +18 -0
  163. data/doc/classes/Net/DNS.src/M000249.html +25 -0
  164. data/doc/classes/Net/DNS.src/M000250.html +52 -0
  165. data/doc/classes/Net/DNS.src/M000251.html +71 -0
  166. data/doc/classes/Net/DNS.src/M000252.html +50 -0
  167. data/doc/classes/Net/DNS/Header.html +510 -0
  168. data/doc/classes/Net/DNS/Header.src/M000511.html +22 -0
  169. data/doc/classes/Net/DNS/Header.src/M000512.html +72 -0
  170. data/doc/classes/Net/DNS/Header.src/M000513.html +47 -0
  171. data/doc/classes/Net/DNS/Header.src/M000514.html +25 -0
  172. data/doc/classes/Net/DNS/Header.src/M000515.html +37 -0
  173. data/doc/classes/Net/DNS/Nameserver.html +285 -0
  174. data/doc/classes/Net/DNS/Nameserver.src/M000516.html +100 -0
  175. data/doc/classes/Net/DNS/Nameserver.src/M000517.html +86 -0
  176. data/doc/classes/Net/DNS/Nameserver.src/M000518.html +32 -0
  177. data/doc/classes/Net/DNS/Nameserver.src/M000519.html +80 -0
  178. data/doc/classes/Net/DNS/Nameserver.src/M000520.html +33 -0
  179. data/doc/classes/Net/DNS/Nameserver.src/M000521.html +18 -0
  180. data/doc/classes/Net/DNS/Nameserver.src/M000522.html +88 -0
  181. data/doc/classes/Net/DNS/Nameserver.src/M000523.html +23 -0
  182. data/doc/classes/Net/DNS/Packet.html +774 -0
  183. data/doc/classes/Net/DNS/Packet.src/M000485.html +27 -0
  184. data/doc/classes/Net/DNS/Packet.src/M000486.html +158 -0
  185. data/doc/classes/Net/DNS/Packet.src/M000487.html +21 -0
  186. data/doc/classes/Net/DNS/Packet.src/M000488.html +85 -0
  187. data/doc/classes/Net/DNS/Packet.src/M000489.html +54 -0
  188. data/doc/classes/Net/DNS/Packet.src/M000490.html +58 -0
  189. data/doc/classes/Net/DNS/Packet.src/M000491.html +26 -0
  190. data/doc/classes/Net/DNS/Packet.src/M000492.html +53 -0
  191. data/doc/classes/Net/DNS/Packet.src/M000493.html +51 -0
  192. data/doc/classes/Net/DNS/Packet.src/M000494.html +24 -0
  193. data/doc/classes/Net/DNS/Packet.src/M000495.html +56 -0
  194. data/doc/classes/Net/DNS/Packet.src/M000496.html +30 -0
  195. data/doc/classes/Net/DNS/Packet.src/M000497.html +40 -0
  196. data/doc/classes/Net/DNS/Packet.src/M000498.html +31 -0
  197. data/doc/classes/Net/DNS/Packet.src/M000499.html +47 -0
  198. data/doc/classes/Net/DNS/Packet.src/M000500.html +21 -0
  199. data/doc/classes/Net/DNS/Packet.src/M000501.html +21 -0
  200. data/doc/classes/Net/DNS/Packet.src/M000502.html +21 -0
  201. data/doc/classes/Net/DNS/Packet.src/M000503.html +21 -0
  202. data/doc/classes/Net/DNS/Packet.src/M000504.html +21 -0
  203. data/doc/classes/Net/DNS/Question.html +302 -0
  204. data/doc/classes/Net/DNS/Question.src/M000505.html +42 -0
  205. data/doc/classes/Net/DNS/Question.src/M000506.html +18 -0
  206. data/doc/classes/Net/DNS/Question.src/M000507.html +23 -0
  207. data/doc/classes/Net/DNS/Question.src/M000508.html +18 -0
  208. data/doc/classes/Net/DNS/Question.src/M000509.html +18 -0
  209. data/doc/classes/Net/DNS/Question.src/M000510.html +18 -0
  210. data/doc/classes/Net/DNS/RR.html +830 -0
  211. data/doc/classes/Net/DNS/RR.src/M000253.html +32 -0
  212. data/doc/classes/Net/DNS/RR.src/M000254.html +29 -0
  213. data/doc/classes/Net/DNS/RR.src/M000255.html +24 -0
  214. data/doc/classes/Net/DNS/RR.src/M000256.html +32 -0
  215. data/doc/classes/Net/DNS/RR.src/M000257.html +39 -0
  216. data/doc/classes/Net/DNS/RR.src/M000258.html +135 -0
  217. data/doc/classes/Net/DNS/RR.src/M000259.html +18 -0
  218. data/doc/classes/Net/DNS/RR.src/M000260.html +19 -0
  219. data/doc/classes/Net/DNS/RR.src/M000261.html +26 -0
  220. data/doc/classes/Net/DNS/RR.src/M000262.html +18 -0
  221. data/doc/classes/Net/DNS/RR.src/M000263.html +59 -0
  222. data/doc/classes/Net/DNS/RR.src/M000264.html +36 -0
  223. data/doc/classes/Net/DNS/RR.src/M000265.html +20 -0
  224. data/doc/classes/Net/DNS/RR.src/M000266.html +18 -0
  225. data/doc/classes/Net/DNS/RR.src/M000267.html +27 -0
  226. data/doc/classes/Net/DNS/RR.src/M000268.html +31 -0
  227. data/doc/classes/Net/DNS/RR.src/M000269.html +19 -0
  228. data/doc/classes/Net/DNS/RR.src/M000270.html +18 -0
  229. data/doc/classes/Net/DNS/RR.src/M000271.html +18 -0
  230. data/doc/classes/Net/DNS/RR.src/M000272.html +35 -0
  231. data/doc/classes/Net/DNS/RR/A.html +311 -0
  232. data/doc/classes/Net/DNS/RR/A.src/M000314.html +18 -0
  233. data/doc/classes/Net/DNS/RR/A.src/M000315.html +19 -0
  234. data/doc/classes/Net/DNS/RR/A.src/M000316.html +18 -0
  235. data/doc/classes/Net/DNS/RR/A.src/M000317.html +19 -0
  236. data/doc/classes/Net/DNS/RR/A.src/M000318.html +29 -0
  237. data/doc/classes/Net/DNS/RR/A.src/M000319.html +22 -0
  238. data/doc/classes/Net/DNS/RR/A.src/M000320.html +20 -0
  239. data/doc/classes/Net/DNS/RR/A.src/M000321.html +18 -0
  240. data/doc/classes/Net/DNS/RR/A.src/M000322.html +22 -0
  241. data/doc/classes/Net/DNS/RR/AAAA.html +291 -0
  242. data/doc/classes/Net/DNS/RR/AAAA.src/M000366.html +24 -0
  243. data/doc/classes/Net/DNS/RR/AAAA.src/M000367.html +54 -0
  244. data/doc/classes/Net/DNS/RR/AAAA.src/M000368.html +20 -0
  245. data/doc/classes/Net/DNS/RR/AAAA.src/M000369.html +18 -0
  246. data/doc/classes/Net/DNS/RR/AAAA.src/M000370.html +24 -0
  247. data/doc/classes/Net/DNS/RR/AAAA.src/M000371.html +24 -0
  248. data/doc/classes/Net/DNS/RR/AAAA.src/M000372.html +23 -0
  249. data/doc/classes/Net/DNS/RR/AFSDB.html +278 -0
  250. data/doc/classes/Net/DNS/RR/AFSDB.src/M000308.html +24 -0
  251. data/doc/classes/Net/DNS/RR/AFSDB.src/M000309.html +22 -0
  252. data/doc/classes/Net/DNS/RR/AFSDB.src/M000310.html +23 -0
  253. data/doc/classes/Net/DNS/RR/AFSDB.src/M000311.html +22 -0
  254. data/doc/classes/Net/DNS/RR/AFSDB.src/M000312.html +25 -0
  255. data/doc/classes/Net/DNS/RR/AFSDB.src/M000313.html +24 -0
  256. data/doc/classes/Net/DNS/RR/CERT.html +313 -0
  257. data/doc/classes/Net/DNS/RR/CERT.src/M000361.html +30 -0
  258. data/doc/classes/Net/DNS/RR/CERT.src/M000362.html +29 -0
  259. data/doc/classes/Net/DNS/RR/CERT.src/M000363.html +48 -0
  260. data/doc/classes/Net/DNS/RR/CERT.src/M000364.html +39 -0
  261. data/doc/classes/Net/DNS/RR/CERT.src/M000365.html +26 -0
  262. data/doc/classes/Net/DNS/RR/CNAME.html +271 -0
  263. data/doc/classes/Net/DNS/RR/CNAME.src/M000339.html +20 -0
  264. data/doc/classes/Net/DNS/RR/CNAME.src/M000340.html +21 -0
  265. data/doc/classes/Net/DNS/RR/CNAME.src/M000341.html +20 -0
  266. data/doc/classes/Net/DNS/RR/CNAME.src/M000342.html +18 -0
  267. data/doc/classes/Net/DNS/RR/CNAME.src/M000343.html +24 -0
  268. data/doc/classes/Net/DNS/RR/CNAME.src/M000344.html +18 -0
  269. data/doc/classes/Net/DNS/RR/DNAME.html +253 -0
  270. data/doc/classes/Net/DNS/RR/DNAME.src/M000356.html +20 -0
  271. data/doc/classes/Net/DNS/RR/DNAME.src/M000357.html +20 -0
  272. data/doc/classes/Net/DNS/RR/DNAME.src/M000358.html +21 -0
  273. data/doc/classes/Net/DNS/RR/DNAME.src/M000359.html +18 -0
  274. data/doc/classes/Net/DNS/RR/DNAME.src/M000360.html +24 -0
  275. data/doc/classes/Net/DNS/RR/EID.html +218 -0
  276. data/doc/classes/Net/DNS/RR/EID.src/M000298.html +17 -0
  277. data/doc/classes/Net/DNS/RR/EID.src/M000299.html +17 -0
  278. data/doc/classes/Net/DNS/RR/EID.src/M000300.html +17 -0
  279. data/doc/classes/Net/DNS/RR/HINFO.html +264 -0
  280. data/doc/classes/Net/DNS/RR/HINFO.src/M000351.html +31 -0
  281. data/doc/classes/Net/DNS/RR/HINFO.src/M000352.html +21 -0
  282. data/doc/classes/Net/DNS/RR/HINFO.src/M000353.html +23 -0
  283. data/doc/classes/Net/DNS/RR/HINFO.src/M000354.html +18 -0
  284. data/doc/classes/Net/DNS/RR/HINFO.src/M000355.html +28 -0
  285. data/doc/classes/Net/DNS/RR/ISDN.html +263 -0
  286. data/doc/classes/Net/DNS/RR/ISDN.src/M000471.html +34 -0
  287. data/doc/classes/Net/DNS/RR/ISDN.src/M000472.html +27 -0
  288. data/doc/classes/Net/DNS/RR/ISDN.src/M000473.html +23 -0
  289. data/doc/classes/Net/DNS/RR/ISDN.src/M000474.html +18 -0
  290. data/doc/classes/Net/DNS/RR/ISDN.src/M000475.html +30 -0
  291. data/doc/classes/Net/DNS/RR/LOC.html +516 -0
  292. data/doc/classes/Net/DNS/RR/LOC.src/M000287.html +48 -0
  293. data/doc/classes/Net/DNS/RR/LOC.src/M000288.html +46 -0
  294. data/doc/classes/Net/DNS/RR/LOC.src/M000289.html +59 -0
  295. data/doc/classes/Net/DNS/RR/LOC.src/M000290.html +47 -0
  296. data/doc/classes/Net/DNS/RR/LOC.src/M000291.html +30 -0
  297. data/doc/classes/Net/DNS/RR/LOC.src/M000292.html +20 -0
  298. data/doc/classes/Net/DNS/RR/LOC.src/M000293.html +23 -0
  299. data/doc/classes/Net/DNS/RR/LOC.src/M000294.html +32 -0
  300. data/doc/classes/Net/DNS/RR/LOC.src/M000295.html +23 -0
  301. data/doc/classes/Net/DNS/RR/LOC.src/M000296.html +25 -0
  302. data/doc/classes/Net/DNS/RR/LOC.src/M000297.html +21 -0
  303. data/doc/classes/Net/DNS/RR/MB.html +267 -0
  304. data/doc/classes/Net/DNS/RR/MB.src/M000479.html +20 -0
  305. data/doc/classes/Net/DNS/RR/MB.src/M000480.html +21 -0
  306. data/doc/classes/Net/DNS/RR/MB.src/M000481.html +20 -0
  307. data/doc/classes/Net/DNS/RR/MB.src/M000482.html +18 -0
  308. data/doc/classes/Net/DNS/RR/MB.src/M000483.html +24 -0
  309. data/doc/classes/Net/DNS/RR/MB.src/M000484.html +22 -0
  310. data/doc/classes/Net/DNS/RR/MG.html +267 -0
  311. data/doc/classes/Net/DNS/RR/MG.src/M000345.html +20 -0
  312. data/doc/classes/Net/DNS/RR/MG.src/M000346.html +21 -0
  313. data/doc/classes/Net/DNS/RR/MG.src/M000347.html +20 -0
  314. data/doc/classes/Net/DNS/RR/MG.src/M000348.html +22 -0
  315. data/doc/classes/Net/DNS/RR/MG.src/M000349.html +24 -0
  316. data/doc/classes/Net/DNS/RR/MG.src/M000350.html +22 -0
  317. data/doc/classes/Net/DNS/RR/MINFO.html +280 -0
  318. data/doc/classes/Net/DNS/RR/MINFO.src/M000465.html +21 -0
  319. data/doc/classes/Net/DNS/RR/MINFO.src/M000466.html +23 -0
  320. data/doc/classes/Net/DNS/RR/MINFO.src/M000467.html +23 -0
  321. data/doc/classes/Net/DNS/RR/MINFO.src/M000468.html +18 -0
  322. data/doc/classes/Net/DNS/RR/MINFO.src/M000469.html +26 -0
  323. data/doc/classes/Net/DNS/RR/MINFO.src/M000470.html +25 -0
  324. data/doc/classes/Net/DNS/RR/MR.html +267 -0
  325. data/doc/classes/Net/DNS/RR/MR.src/M000400.html +20 -0
  326. data/doc/classes/Net/DNS/RR/MR.src/M000401.html +21 -0
  327. data/doc/classes/Net/DNS/RR/MR.src/M000402.html +20 -0
  328. data/doc/classes/Net/DNS/RR/MR.src/M000403.html +18 -0
  329. data/doc/classes/Net/DNS/RR/MR.src/M000404.html +24 -0
  330. data/doc/classes/Net/DNS/RR/MR.src/M000405.html +22 -0
  331. data/doc/classes/Net/DNS/RR/MX.html +296 -0
  332. data/doc/classes/Net/DNS/RR/MX.src/M000280.html +21 -0
  333. data/doc/classes/Net/DNS/RR/MX.src/M000281.html +23 -0
  334. data/doc/classes/Net/DNS/RR/MX.src/M000282.html +23 -0
  335. data/doc/classes/Net/DNS/RR/MX.src/M000283.html +23 -0
  336. data/doc/classes/Net/DNS/RR/MX.src/M000284.html +22 -0
  337. data/doc/classes/Net/DNS/RR/MX.src/M000285.html +25 -0
  338. data/doc/classes/Net/DNS/RR/MX.src/M000286.html +25 -0
  339. data/doc/classes/Net/DNS/RR/NAPTR.html +330 -0
  340. data/doc/classes/Net/DNS/RR/NAPTR.src/M000459.html +20 -0
  341. data/doc/classes/Net/DNS/RR/NAPTR.src/M000460.html +42 -0
  342. data/doc/classes/Net/DNS/RR/NAPTR.src/M000461.html +27 -0
  343. data/doc/classes/Net/DNS/RR/NAPTR.src/M000462.html +35 -0
  344. data/doc/classes/Net/DNS/RR/NAPTR.src/M000463.html +26 -0
  345. data/doc/classes/Net/DNS/RR/NAPTR.src/M000464.html +36 -0
  346. data/doc/classes/Net/DNS/RR/NIMLOC.html +219 -0
  347. data/doc/classes/Net/DNS/RR/NIMLOC.src/M000336.html +17 -0
  348. data/doc/classes/Net/DNS/RR/NIMLOC.src/M000337.html +17 -0
  349. data/doc/classes/Net/DNS/RR/NIMLOC.src/M000338.html +17 -0
  350. data/doc/classes/Net/DNS/RR/NS.html +273 -0
  351. data/doc/classes/Net/DNS/RR/NS.src/M000394.html +20 -0
  352. data/doc/classes/Net/DNS/RR/NS.src/M000395.html +21 -0
  353. data/doc/classes/Net/DNS/RR/NS.src/M000396.html +20 -0
  354. data/doc/classes/Net/DNS/RR/NS.src/M000397.html +22 -0
  355. data/doc/classes/Net/DNS/RR/NS.src/M000398.html +24 -0
  356. data/doc/classes/Net/DNS/RR/NS.src/M000399.html +20 -0
  357. data/doc/classes/Net/DNS/RR/NSAP.html +420 -0
  358. data/doc/classes/Net/DNS/RR/NSAP.src/M000450.html +60 -0
  359. data/doc/classes/Net/DNS/RR/NSAP.src/M000451.html +44 -0
  360. data/doc/classes/Net/DNS/RR/NSAP.src/M000452.html +25 -0
  361. data/doc/classes/Net/DNS/RR/NSAP.src/M000453.html +19 -0
  362. data/doc/classes/Net/DNS/RR/NSAP.src/M000454.html +19 -0
  363. data/doc/classes/Net/DNS/RR/NSAP.src/M000455.html +22 -0
  364. data/doc/classes/Net/DNS/RR/NSAP.src/M000456.html +30 -0
  365. data/doc/classes/Net/DNS/RR/NSAP.src/M000457.html +37 -0
  366. data/doc/classes/Net/DNS/RR/NSAP.src/M000458.html +31 -0
  367. data/doc/classes/Net/DNS/RR/NULL.html +215 -0
  368. data/doc/classes/Net/DNS/RR/NULL.src/M000423.html +17 -0
  369. data/doc/classes/Net/DNS/RR/NULL.src/M000424.html +17 -0
  370. data/doc/classes/Net/DNS/RR/NULL.src/M000425.html +17 -0
  371. data/doc/classes/Net/DNS/RR/OPT.html +448 -0
  372. data/doc/classes/Net/DNS/RR/OPT.src/M000439.html +30 -0
  373. data/doc/classes/Net/DNS/RR/OPT.src/M000440.html +20 -0
  374. data/doc/classes/Net/DNS/RR/OPT.src/M000441.html +50 -0
  375. data/doc/classes/Net/DNS/RR/OPT.src/M000442.html +21 -0
  376. data/doc/classes/Net/DNS/RR/OPT.src/M000443.html +18 -0
  377. data/doc/classes/Net/DNS/RR/OPT.src/M000444.html +25 -0
  378. data/doc/classes/Net/DNS/RR/OPT.src/M000445.html +18 -0
  379. data/doc/classes/Net/DNS/RR/OPT.src/M000446.html +18 -0
  380. data/doc/classes/Net/DNS/RR/OPT.src/M000447.html +18 -0
  381. data/doc/classes/Net/DNS/RR/OPT.src/M000448.html +21 -0
  382. data/doc/classes/Net/DNS/RR/OPT.src/M000449.html +18 -0
  383. data/doc/classes/Net/DNS/RR/PTR.html +264 -0
  384. data/doc/classes/Net/DNS/RR/PTR.src/M000330.html +20 -0
  385. data/doc/classes/Net/DNS/RR/PTR.src/M000331.html +21 -0
  386. data/doc/classes/Net/DNS/RR/PTR.src/M000332.html +20 -0
  387. data/doc/classes/Net/DNS/RR/PTR.src/M000333.html +19 -0
  388. data/doc/classes/Net/DNS/RR/PTR.src/M000334.html +24 -0
  389. data/doc/classes/Net/DNS/RR/PTR.src/M000335.html +24 -0
  390. data/doc/classes/Net/DNS/RR/PX.html +306 -0
  391. data/doc/classes/Net/DNS/RR/PX.src/M000432.html +19 -0
  392. data/doc/classes/Net/DNS/RR/PX.src/M000433.html +24 -0
  393. data/doc/classes/Net/DNS/RR/PX.src/M000434.html +24 -0
  394. data/doc/classes/Net/DNS/RR/PX.src/M000435.html +26 -0
  395. data/doc/classes/Net/DNS/RR/PX.src/M000436.html +18 -0
  396. data/doc/classes/Net/DNS/RR/PX.src/M000437.html +28 -0
  397. data/doc/classes/Net/DNS/RR/PX.src/M000438.html +26 -0
  398. data/doc/classes/Net/DNS/RR/RP.html +280 -0
  399. data/doc/classes/Net/DNS/RR/RP.src/M000426.html +21 -0
  400. data/doc/classes/Net/DNS/RR/RP.src/M000427.html +23 -0
  401. data/doc/classes/Net/DNS/RR/RP.src/M000428.html +23 -0
  402. data/doc/classes/Net/DNS/RR/RP.src/M000429.html +18 -0
  403. data/doc/classes/Net/DNS/RR/RP.src/M000430.html +25 -0
  404. data/doc/classes/Net/DNS/RR/RP.src/M000431.html +24 -0
  405. data/doc/classes/Net/DNS/RR/RT.html +292 -0
  406. data/doc/classes/Net/DNS/RR/RT.src/M000323.html +21 -0
  407. data/doc/classes/Net/DNS/RR/RT.src/M000324.html +23 -0
  408. data/doc/classes/Net/DNS/RR/RT.src/M000325.html +23 -0
  409. data/doc/classes/Net/DNS/RR/RT.src/M000326.html +22 -0
  410. data/doc/classes/Net/DNS/RR/RT.src/M000327.html +18 -0
  411. data/doc/classes/Net/DNS/RR/RT.src/M000328.html +25 -0
  412. data/doc/classes/Net/DNS/RR/RT.src/M000329.html +25 -0
  413. data/doc/classes/Net/DNS/RR/SOA.html +350 -0
  414. data/doc/classes/Net/DNS/RR/SOA.src/M000387.html +23 -0
  415. data/doc/classes/Net/DNS/RR/SOA.src/M000388.html +38 -0
  416. data/doc/classes/Net/DNS/RR/SOA.src/M000389.html +35 -0
  417. data/doc/classes/Net/DNS/RR/SOA.src/M000390.html +22 -0
  418. data/doc/classes/Net/DNS/RR/SOA.src/M000391.html +31 -0
  419. data/doc/classes/Net/DNS/RR/SOA.src/M000392.html +30 -0
  420. data/doc/classes/Net/DNS/RR/SOA.src/M000393.html +29 -0
  421. data/doc/classes/Net/DNS/RR/SPF.html +149 -0
  422. data/doc/classes/Net/DNS/RR/SRV.html +315 -0
  423. data/doc/classes/Net/DNS/RR/SRV.src/M000301.html +27 -0
  424. data/doc/classes/Net/DNS/RR/SRV.src/M000302.html +26 -0
  425. data/doc/classes/Net/DNS/RR/SRV.src/M000303.html +29 -0
  426. data/doc/classes/Net/DNS/RR/SRV.src/M000304.html +25 -0
  427. data/doc/classes/Net/DNS/RR/SRV.src/M000305.html +25 -0
  428. data/doc/classes/Net/DNS/RR/SRV.src/M000306.html +25 -0
  429. data/doc/classes/Net/DNS/RR/SRV.src/M000307.html +25 -0
  430. data/doc/classes/Net/DNS/RR/SSHFP.html +343 -0
  431. data/doc/classes/Net/DNS/RR/SSHFP.src/M000416.html +36 -0
  432. data/doc/classes/Net/DNS/RR/SSHFP.src/M000417.html +27 -0
  433. data/doc/classes/Net/DNS/RR/SSHFP.src/M000418.html +29 -0
  434. data/doc/classes/Net/DNS/RR/SSHFP.src/M000419.html +24 -0
  435. data/doc/classes/Net/DNS/RR/SSHFP.src/M000420.html +22 -0
  436. data/doc/classes/Net/DNS/RR/SSHFP.src/M000421.html +22 -0
  437. data/doc/classes/Net/DNS/RR/SSHFP.src/M000422.html +18 -0
  438. data/doc/classes/Net/DNS/RR/TKEY.html +377 -0
  439. data/doc/classes/Net/DNS/RR/TKEY.src/M000273.html +38 -0
  440. data/doc/classes/Net/DNS/RR/TKEY.src/M000274.html +45 -0
  441. data/doc/classes/Net/DNS/RR/TKEY.src/M000275.html +22 -0
  442. data/doc/classes/Net/DNS/RR/TKEY.src/M000276.html +24 -0
  443. data/doc/classes/Net/DNS/RR/TKEY.src/M000277.html +25 -0
  444. data/doc/classes/Net/DNS/RR/TKEY.src/M000278.html +32 -0
  445. data/doc/classes/Net/DNS/RR/TKEY.src/M000279.html +31 -0
  446. data/doc/classes/Net/DNS/RR/TSIG.html +516 -0
  447. data/doc/classes/Net/DNS/RR/TSIG.src/M000406.html +51 -0
  448. data/doc/classes/Net/DNS/RR/TSIG.src/M000407.html +37 -0
  449. data/doc/classes/Net/DNS/RR/TSIG.src/M000408.html +23 -0
  450. data/doc/classes/Net/DNS/RR/TSIG.src/M000409.html +43 -0
  451. data/doc/classes/Net/DNS/RR/TSIG.src/M000410.html +25 -0
  452. data/doc/classes/Net/DNS/RR/TSIG.src/M000411.html +18 -0
  453. data/doc/classes/Net/DNS/RR/TSIG.src/M000412.html +19 -0
  454. data/doc/classes/Net/DNS/RR/TSIG.src/M000413.html +32 -0
  455. data/doc/classes/Net/DNS/RR/TSIG.src/M000414.html +52 -0
  456. data/doc/classes/Net/DNS/RR/TSIG.src/M000415.html +41 -0
  457. data/doc/classes/Net/DNS/RR/TXT.html +345 -0
  458. data/doc/classes/Net/DNS/RR/TXT.src/M000378.html +32 -0
  459. data/doc/classes/Net/DNS/RR/TXT.src/M000379.html +20 -0
  460. data/doc/classes/Net/DNS/RR/TXT.src/M000380.html +18 -0
  461. data/doc/classes/Net/DNS/RR/TXT.src/M000381.html +18 -0
  462. data/doc/classes/Net/DNS/RR/TXT.src/M000382.html +25 -0
  463. data/doc/classes/Net/DNS/RR/TXT.src/M000383.html +18 -0
  464. data/doc/classes/Net/DNS/RR/TXT.src/M000384.html +27 -0
  465. data/doc/classes/Net/DNS/RR/TXT.src/M000385.html +22 -0
  466. data/doc/classes/Net/DNS/RR/TXT.src/M000386.html +26 -0
  467. data/doc/classes/Net/DNS/RR/UNKNOWN.html +199 -0
  468. data/doc/classes/Net/DNS/RR/UNKNOWN.src/M000476.html +18 -0
  469. data/doc/classes/Net/DNS/RR/UNKNOWN.src/M000477.html +22 -0
  470. data/doc/classes/Net/DNS/RR/UNKNOWN.src/M000478.html +30 -0
  471. data/doc/classes/Net/DNS/RR/X25.html +249 -0
  472. data/doc/classes/Net/DNS/RR/X25.src/M000373.html +23 -0
  473. data/doc/classes/Net/DNS/RR/X25.src/M000374.html +20 -0
  474. data/doc/classes/Net/DNS/RR/X25.src/M000375.html +20 -0
  475. data/doc/classes/Net/DNS/RR/X25.src/M000376.html +22 -0
  476. data/doc/classes/Net/DNS/RR/X25.src/M000377.html +26 -0
  477. data/doc/classes/Net/DNS/Resolver.html +1606 -0
  478. data/doc/classes/Net/DNS/Resolver.src/M000525.html +65 -0
  479. data/doc/classes/Net/DNS/Resolver.src/M000526.html +73 -0
  480. data/doc/classes/Net/DNS/Resolver.src/M000527.html +48 -0
  481. data/doc/classes/Net/DNS/Resolver.src/M000528.html +49 -0
  482. data/doc/classes/Net/DNS/Resolver.src/M000529.html +35 -0
  483. data/doc/classes/Net/DNS/Resolver.src/M000530.html +69 -0
  484. data/doc/classes/Net/DNS/Resolver.src/M000531.html +26 -0
  485. data/doc/classes/Net/DNS/Resolver.src/M000534.html +33 -0
  486. data/doc/classes/Net/DNS/Resolver.src/M000535.html +19 -0
  487. data/doc/classes/Net/DNS/Resolver.src/M000536.html +18 -0
  488. data/doc/classes/Net/DNS/Resolver.src/M000537.html +67 -0
  489. data/doc/classes/Net/DNS/Resolver.src/M000538.html +80 -0
  490. data/doc/classes/Net/DNS/Resolver.src/M000539.html +36 -0
  491. data/doc/classes/Net/DNS/Resolver.src/M000540.html +166 -0
  492. data/doc/classes/Net/DNS/Resolver.src/M000541.html +283 -0
  493. data/doc/classes/Net/DNS/Resolver.src/M000542.html +100 -0
  494. data/doc/classes/Net/DNS/Resolver.src/M000543.html +41 -0
  495. data/doc/classes/Net/DNS/Resolver.src/M000544.html +20 -0
  496. data/doc/classes/Net/DNS/Resolver.src/M000545.html +77 -0
  497. data/doc/classes/Net/DNS/Resolver.src/M000546.html +33 -0
  498. data/doc/classes/Net/DNS/Resolver.src/M000547.html +18 -0
  499. data/doc/classes/Net/DNS/Resolver.src/M000548.html +86 -0
  500. data/doc/classes/Net/DNS/Resolver.src/M000549.html +127 -0
  501. data/doc/classes/Net/DNS/Resolver.src/M000550.html +25 -0
  502. data/doc/classes/Net/DNS/Resolver.src/M000551.html +29 -0
  503. data/doc/classes/Net/DNS/Resolver.src/M000552.html +18 -0
  504. data/doc/classes/Net/DNS/Resolver.src/M000553.html +51 -0
  505. data/doc/classes/Net/DNS/Resolver.src/M000554.html +102 -0
  506. data/doc/classes/Net/DNS/Resolver/Recurse.html +382 -0
  507. data/doc/classes/Net/DNS/Resolver/Recurse.src/M000555.html +100 -0
  508. data/doc/classes/Net/DNS/Resolver/Recurse.src/M000556.html +20 -0
  509. data/doc/classes/Net/DNS/Resolver/Recurse.src/M000557.html +18 -0
  510. data/doc/classes/Net/DNS/Resolver/Recurse.src/M000558.html +31 -0
  511. data/doc/classes/Net/DNS/Resolver/Recurse.src/M000559.html +218 -0
  512. data/doc/classes/Net/DNS/Update.html +303 -0
  513. data/doc/classes/Net/DNS/Update.src/M000524.html +33 -0
  514. data/doc/classes/SetupError.html +111 -0
  515. data/doc/classes/TestAResolverFile.html +137 -0
  516. data/doc/classes/TestAResolverFile.src/M000129.html +51 -0
  517. data/doc/classes/TestAxfr.html +137 -0
  518. data/doc/classes/TestAxfr.src/M000075.html +25 -0
  519. data/doc/classes/TestEscapedChars.html +152 -0
  520. data/doc/classes/TestEscapedChars.src/M000011.html +262 -0
  521. data/doc/classes/TestEscapedChars.src/M000012.html +245 -0
  522. data/doc/classes/TestHeader.html +137 -0
  523. data/doc/classes/TestHeader.src/M000074.html +87 -0
  524. data/doc/classes/TestInet6.html +167 -0
  525. data/doc/classes/TestInet6.src/M000126.html +43 -0
  526. data/doc/classes/TestInet6.src/M000127.html +94 -0
  527. data/doc/classes/TestInet6.src/M000128.html +52 -0
  528. data/doc/classes/TestMisc.html +167 -0
  529. data/doc/classes/TestMisc.src/M000008.html +28 -0
  530. data/doc/classes/TestMisc.src/M000009.html +50 -0
  531. data/doc/classes/TestMisc.src/M000010.html +83 -0
  532. data/doc/classes/TestOnline.html +231 -0
  533. data/doc/classes/TestOnline.src/M000215.html +66 -0
  534. data/doc/classes/TestOnline.src/M000216.html +58 -0
  535. data/doc/classes/TestOnline.src/M000217.html +80 -0
  536. data/doc/classes/TestOnline.src/M000218.html +68 -0
  537. data/doc/classes/TestOnline.src/M000219.html +32 -0
  538. data/doc/classes/TestOnline.src/M000220.html +20 -0
  539. data/doc/classes/TestOnline.src/M000221.html +20 -0
  540. data/doc/classes/TestPacket.html +152 -0
  541. data/doc/classes/TestPacket.src/M000138.html +153 -0
  542. data/doc/classes/TestPacket.src/M000139.html +30 -0
  543. data/doc/classes/TestPacketUniquePush.html +167 -0
  544. data/doc/classes/TestPacketUniquePush.src/M000212.html +20 -0
  545. data/doc/classes/TestPacketUniquePush.src/M000213.html +32 -0
  546. data/doc/classes/TestPacketUniquePush.src/M000214.html +98 -0
  547. data/doc/classes/TestQuestion.html +137 -0
  548. data/doc/classes/TestQuestion.src/M000073.html +45 -0
  549. data/doc/classes/TestRR.html +140 -0
  550. data/doc/classes/TestRR.src/M000132.html +241 -0
  551. data/doc/classes/TestRecurse.html +167 -0
  552. data/doc/classes/TestRecurse.src/M000070.html +38 -0
  553. data/doc/classes/TestRecurse.src/M000071.html +32 -0
  554. data/doc/classes/TestRecurse.src/M000072.html +21 -0
  555. data/doc/classes/TestResOpt.html +197 -0
  556. data/doc/classes/TestResOpt.src/M000207.html +40 -0
  557. data/doc/classes/TestResOpt.src/M000208.html +25 -0
  558. data/doc/classes/TestResOpt.src/M000209.html +51 -0
  559. data/doc/classes/TestResOpt.src/M000210.html +32 -0
  560. data/doc/classes/TestResOpt.src/M000211.html +38 -0
  561. data/doc/classes/TestResolver.html +137 -0
  562. data/doc/classes/TestResolver.src/M000069.html +98 -0
  563. data/doc/classes/TestResolverEnv.html +137 -0
  564. data/doc/classes/TestResolverEnv.src/M000222.html +50 -0
  565. data/doc/classes/TestRrOpt.html +137 -0
  566. data/doc/classes/TestRrOpt.src/M000007.html +36 -0
  567. data/doc/classes/TestRrRrSort.html +137 -0
  568. data/doc/classes/TestRrRrSort.src/M000125.html +112 -0
  569. data/doc/classes/TestRrTest.html +155 -0
  570. data/doc/classes/TestRrTest.src/M000137.html +80 -0
  571. data/doc/classes/TestRrUnknown.html +167 -0
  572. data/doc/classes/TestRrUnknown.src/M000066.html +41 -0
  573. data/doc/classes/TestRrUnknown.src/M000067.html +37 -0
  574. data/doc/classes/TestRrUnknown.src/M000068.html +41 -0
  575. data/doc/classes/TestTKey.html +152 -0
  576. data/doc/classes/TestTKey.src/M000130.html +18 -0
  577. data/doc/classes/TestTKey.src/M000131.html +106 -0
  578. data/doc/classes/TestTcp.html +186 -0
  579. data/doc/classes/TestTcp.src/M000133.html +22 -0
  580. data/doc/classes/TestTcp.src/M000134.html +23 -0
  581. data/doc/classes/TestTcp.src/M000135.html +22 -0
  582. data/doc/classes/TestTcp.src/M000136.html +23 -0
  583. data/doc/classes/TestUpdate.html +152 -0
  584. data/doc/classes/TestUpdate.src/M000123.html +20 -0
  585. data/doc/classes/TestUpdate.src/M000124.html +216 -0
  586. data/doc/classes/ToplevelInstaller.html +621 -0
  587. data/doc/classes/ToplevelInstaller.src/M000076.html +23 -0
  588. data/doc/classes/ToplevelInstaller.src/M000077.html +18 -0
  589. data/doc/classes/ToplevelInstaller.src/M000078.html +25 -0
  590. data/doc/classes/ToplevelInstaller.src/M000079.html +21 -0
  591. data/doc/classes/ToplevelInstaller.src/M000080.html +18 -0
  592. data/doc/classes/ToplevelInstaller.src/M000081.html +18 -0
  593. data/doc/classes/ToplevelInstaller.src/M000082.html +38 -0
  594. data/doc/classes/ToplevelInstaller.src/M000083.html +18 -0
  595. data/doc/classes/ToplevelInstaller.src/M000084.html +18 -0
  596. data/doc/classes/ToplevelInstaller.src/M000085.html +18 -0
  597. data/doc/classes/ToplevelInstaller.src/M000086.html +18 -0
  598. data/doc/classes/ToplevelInstaller.src/M000087.html +18 -0
  599. data/doc/classes/ToplevelInstaller.src/M000088.html +40 -0
  600. data/doc/classes/ToplevelInstaller.src/M000089.html +18 -0
  601. data/doc/classes/ToplevelInstaller.src/M000090.html +18 -0
  602. data/doc/classes/ToplevelInstaller.src/M000091.html +21 -0
  603. data/doc/classes/ToplevelInstaller.src/M000097.html +40 -0
  604. data/doc/classes/ToplevelInstaller.src/M000098.html +31 -0
  605. data/doc/classes/ToplevelInstaller.src/M000099.html +52 -0
  606. data/doc/classes/ToplevelInstaller.src/M000100.html +19 -0
  607. data/doc/classes/ToplevelInstaller.src/M000101.html +18 -0
  608. data/doc/classes/ToplevelInstaller.src/M000102.html +18 -0
  609. data/doc/classes/ToplevelInstaller.src/M000103.html +18 -0
  610. data/doc/classes/ToplevelInstaller.src/M000104.html +20 -0
  611. data/doc/classes/ToplevelInstaller.src/M000105.html +18 -0
  612. data/doc/classes/ToplevelInstaller.src/M000106.html +18 -0
  613. data/doc/classes/ToplevelInstallerMulti.html +398 -0
  614. data/doc/classes/ToplevelInstallerMulti.src/M000107.html +21 -0
  615. data/doc/classes/ToplevelInstallerMulti.src/M000108.html +21 -0
  616. data/doc/classes/ToplevelInstallerMulti.src/M000109.html +23 -0
  617. data/doc/classes/ToplevelInstallerMulti.src/M000110.html +29 -0
  618. data/doc/classes/ToplevelInstallerMulti.src/M000111.html +22 -0
  619. data/doc/classes/ToplevelInstallerMulti.src/M000112.html +21 -0
  620. data/doc/classes/ToplevelInstallerMulti.src/M000113.html +21 -0
  621. data/doc/classes/ToplevelInstallerMulti.src/M000114.html +20 -0
  622. data/doc/classes/ToplevelInstallerMulti.src/M000115.html +20 -0
  623. data/doc/classes/ToplevelInstallerMulti.src/M000116.html +20 -0
  624. data/doc/classes/ToplevelInstallerMulti.src/M000117.html +21 -0
  625. data/doc/classes/ToplevelInstallerMulti.src/M000118.html +21 -0
  626. data/doc/classes/ToplevelInstallerMulti.src/M000119.html +25 -0
  627. data/doc/classes/ToplevelInstallerMulti.src/M000120.html +18 -0
  628. data/doc/classes/ToplevelInstallerMulti.src/M000121.html +18 -0
  629. data/doc/classes/ToplevelInstallerMulti.src/M000122.html +18 -0
  630. data/doc/created.rid +1 -0
  631. data/doc/files/demo/axfr_rb.html +163 -0
  632. data/doc/files/demo/check_soa_rb.html +139 -0
  633. data/doc/files/demo/check_zone_rb.html +236 -0
  634. data/doc/files/demo/check_zone_rb.src/M000001.html +82 -0
  635. data/doc/files/demo/check_zone_rb.src/M000002.html +25 -0
  636. data/doc/files/demo/check_zone_rb.src/M000003.html +23 -0
  637. data/doc/files/demo/check_zone_rb.src/M000004.html +23 -0
  638. data/doc/files/demo/check_zone_rb.src/M000005.html +23 -0
  639. data/doc/files/demo/example_recurse_rb.html +117 -0
  640. data/doc/files/demo/mresolv_rb.html +149 -0
  641. data/doc/files/demo/mx_rb.html +108 -0
  642. data/doc/files/demo/rubydig_rb.html +133 -0
  643. data/doc/files/demo/trace_dns_rb.html +109 -0
  644. data/doc/files/lib/Net/DNS/Header_rb.html +117 -0
  645. data/doc/files/lib/Net/DNS/Nameserver_rb.html +126 -0
  646. data/doc/files/lib/Net/DNS/Packet_rb.html +117 -0
  647. data/doc/files/lib/Net/DNS/Question_rb.html +117 -0
  648. data/doc/files/lib/Net/DNS/RR/AAAA_rb.html +117 -0
  649. data/doc/files/lib/Net/DNS/RR/AFSDB_rb.html +117 -0
  650. data/doc/files/lib/Net/DNS/RR/A_rb.html +117 -0
  651. data/doc/files/lib/Net/DNS/RR/CERT_rb.html +124 -0
  652. data/doc/files/lib/Net/DNS/RR/CNAME_rb.html +117 -0
  653. data/doc/files/lib/Net/DNS/RR/DNAME_rb.html +117 -0
  654. data/doc/files/lib/Net/DNS/RR/EID_rb.html +117 -0
  655. data/doc/files/lib/Net/DNS/RR/HINFO_rb.html +117 -0
  656. data/doc/files/lib/Net/DNS/RR/ISDN_rb.html +117 -0
  657. data/doc/files/lib/Net/DNS/RR/LOC_rb.html +117 -0
  658. data/doc/files/lib/Net/DNS/RR/MB_rb.html +117 -0
  659. data/doc/files/lib/Net/DNS/RR/MG_rb.html +117 -0
  660. data/doc/files/lib/Net/DNS/RR/MINFO_rb.html +117 -0
  661. data/doc/files/lib/Net/DNS/RR/MR_rb.html +117 -0
  662. data/doc/files/lib/Net/DNS/RR/MX_rb.html +117 -0
  663. data/doc/files/lib/Net/DNS/RR/NAPTR_rb.html +117 -0
  664. data/doc/files/lib/Net/DNS/RR/NIMLOC_rb.html +117 -0
  665. data/doc/files/lib/Net/DNS/RR/NSAP_rb.html +117 -0
  666. data/doc/files/lib/Net/DNS/RR/NS_rb.html +117 -0
  667. data/doc/files/lib/Net/DNS/RR/NULL_rb.html +117 -0
  668. data/doc/files/lib/Net/DNS/RR/OPT_rb.html +117 -0
  669. data/doc/files/lib/Net/DNS/RR/PTR_rb.html +117 -0
  670. data/doc/files/lib/Net/DNS/RR/PX_rb.html +117 -0
  671. data/doc/files/lib/Net/DNS/RR/RP_rb.html +117 -0
  672. data/doc/files/lib/Net/DNS/RR/RT_rb.html +117 -0
  673. data/doc/files/lib/Net/DNS/RR/SOA_rb.html +117 -0
  674. data/doc/files/lib/Net/DNS/RR/SPF_rb.html +117 -0
  675. data/doc/files/lib/Net/DNS/RR/SRV_rb.html +117 -0
  676. data/doc/files/lib/Net/DNS/RR/SSHFP_rb.html +117 -0
  677. data/doc/files/lib/Net/DNS/RR/TKEY_rb.html +117 -0
  678. data/doc/files/lib/Net/DNS/RR/TSIG_rb.html +125 -0
  679. data/doc/files/lib/Net/DNS/RR/TXT_rb.html +124 -0
  680. data/doc/files/lib/Net/DNS/RR/UNKNOWN_rb.html +117 -0
  681. data/doc/files/lib/Net/DNS/RR/X25_rb.html +117 -0
  682. data/doc/files/lib/Net/DNS/RR_rb.html +156 -0
  683. data/doc/files/lib/Net/DNS/Resolver/Recurse_rb.html +117 -0
  684. data/doc/files/lib/Net/DNS/Resolver_rb.html +131 -0
  685. data/doc/files/lib/Net/DNS/Update_rb.html +117 -0
  686. data/doc/files/lib/Net/DNS_rb.html +125 -0
  687. data/doc/files/setup_rb.html +148 -0
  688. data/doc/files/setup_rb.src/M000006.html +18 -0
  689. data/doc/files/test/tc_axfr_rb.html +127 -0
  690. data/doc/files/test/tc_escapedchars_rb.html +126 -0
  691. data/doc/files/test/tc_header_rb.html +126 -0
  692. data/doc/files/test/tc_inet6_rb.html +127 -0
  693. data/doc/files/test/tc_misc_rb.html +126 -0
  694. data/doc/files/test/tc_online_rb.html +127 -0
  695. data/doc/files/test/tc_packet_rb.html +126 -0
  696. data/doc/files/test/tc_packet_unique_push_rb.html +126 -0
  697. data/doc/files/test/tc_question_rb.html +126 -0
  698. data/doc/files/test/tc_recurse_rb.html +127 -0
  699. data/doc/files/test/tc_res_env_rb.html +126 -0
  700. data/doc/files/test/tc_res_file_rb.html +126 -0
  701. data/doc/files/test/tc_res_opt_rb.html +126 -0
  702. data/doc/files/test/tc_resolver_rb.html +126 -0
  703. data/doc/files/test/tc_rr-opt_rb.html +126 -0
  704. data/doc/files/test/tc_rr-rrsort_rb.html +126 -0
  705. data/doc/files/test/tc_rr-txt_rb.html +126 -0
  706. data/doc/files/test/tc_rr-unknown_rb.html +126 -0
  707. data/doc/files/test/tc_rr_rb.html +126 -0
  708. data/doc/files/test/tc_tcp_rb.html +126 -0
  709. data/doc/files/test/tc_thread_rb.html +109 -0
  710. data/doc/files/test/tc_tkey_rb.html +127 -0
  711. data/doc/files/test/tc_udp_rb.html +126 -0
  712. data/doc/files/test/tc_update_rb.html +126 -0
  713. data/doc/files/test/ts_netdns_rb.html +125 -0
  714. data/doc/files/test/ts_offline_rb.html +140 -0
  715. data/doc/files/test/ts_online_rb.html +131 -0
  716. data/doc/fr_class_index.html +112 -0
  717. data/doc/fr_file_index.html +105 -0
  718. data/doc/fr_method_index.html +601 -0
  719. data/doc/index.html +24 -0
  720. data/lib/Net/DNS.rb +16 -17
  721. data/lib/Net/DNS/Header.rb +15 -15
  722. data/lib/Net/DNS/Nameserver.rb +15 -15
  723. data/lib/Net/DNS/Packet.rb +15 -15
  724. data/lib/Net/DNS/Question.rb +15 -15
  725. data/lib/Net/DNS/RR.rb +15 -15
  726. data/lib/Net/DNS/RR/A.rb +15 -15
  727. data/lib/Net/DNS/RR/AAAA.rb +15 -15
  728. data/lib/Net/DNS/RR/AFSDB.rb +15 -15
  729. data/lib/Net/DNS/RR/CERT.rb +15 -15
  730. data/lib/Net/DNS/RR/CNAME.rb +15 -15
  731. data/lib/Net/DNS/RR/DNAME.rb +15 -15
  732. data/lib/Net/DNS/RR/EID.rb +15 -15
  733. data/lib/Net/DNS/RR/HINFO.rb +15 -15
  734. data/lib/Net/DNS/RR/ISDN.rb +15 -15
  735. data/lib/Net/DNS/RR/LOC.rb +15 -15
  736. data/lib/Net/DNS/RR/MB.rb +15 -15
  737. data/lib/Net/DNS/RR/MG.rb +15 -15
  738. data/lib/Net/DNS/RR/MINFO.rb +15 -15
  739. data/lib/Net/DNS/RR/MR.rb +15 -15
  740. data/lib/Net/DNS/RR/MX.rb +15 -15
  741. data/lib/Net/DNS/RR/NAPTR.rb +15 -15
  742. data/lib/Net/DNS/RR/NIMLOC.rb +15 -15
  743. data/lib/Net/DNS/RR/NS.rb +15 -15
  744. data/lib/Net/DNS/RR/NSAP.rb +15 -15
  745. data/lib/Net/DNS/RR/NULL.rb +15 -15
  746. data/lib/Net/DNS/RR/OPT.rb +15 -15
  747. data/lib/Net/DNS/RR/PTR.rb +15 -15
  748. data/lib/Net/DNS/RR/PX.rb +15 -15
  749. data/lib/Net/DNS/RR/RP.rb +15 -15
  750. data/lib/Net/DNS/RR/RT.rb +15 -15
  751. data/lib/Net/DNS/RR/SOA.rb +15 -15
  752. data/lib/Net/DNS/RR/SPF.rb +15 -15
  753. data/lib/Net/DNS/RR/SRV.rb +15 -15
  754. data/lib/Net/DNS/RR/SSHFP.rb +15 -15
  755. data/lib/Net/DNS/RR/TKEY.rb +15 -15
  756. data/lib/Net/DNS/RR/TSIG.rb +15 -15
  757. data/lib/Net/DNS/RR/TXT.rb +15 -15
  758. data/lib/Net/DNS/RR/UNKNOWN.rb +15 -15
  759. data/lib/Net/DNS/RR/X25.rb +15 -15
  760. data/lib/Net/DNS/Resolver.rb +117 -117
  761. data/lib/Net/DNS/Resolver/Recurse.rb +15 -15
  762. data/lib/Net/DNS/Update.rb +15 -15
  763. data/test/tc_axfr.rb +15 -15
  764. data/test/tc_escapedchars.rb +15 -15
  765. data/test/tc_header.rb +15 -15
  766. data/test/tc_inet6.rb +15 -15
  767. data/test/tc_misc.rb +15 -15
  768. data/test/tc_online.rb +15 -15
  769. data/test/tc_packet.rb +15 -15
  770. data/test/tc_packet_unique_push.rb +15 -15
  771. data/test/tc_question.rb +15 -15
  772. data/test/tc_recurse.rb +15 -15
  773. data/test/tc_res_env.rb +15 -15
  774. data/test/tc_res_file.rb +15 -15
  775. data/test/tc_res_opt.rb +15 -15
  776. data/test/tc_resolver.rb +18 -18
  777. data/test/tc_rr-opt.rb +15 -15
  778. data/test/tc_rr-rrsort.rb +15 -15
  779. data/test/tc_rr-txt.rb +15 -15
  780. data/test/tc_rr-unknown.rb +15 -15
  781. data/test/tc_rr.rb +15 -15
  782. data/test/tc_tcp.rb +15 -15
  783. data/test/tc_tkey.rb +15 -15
  784. data/test/tc_udp.rb +15 -15
  785. data/test/tc_update.rb +15 -15
  786. data/test/ts_netdns.rb +15 -15
  787. data/test/ts_offline.rb +15 -15
  788. data/test/ts_online.rb +15 -15
  789. metadata +818 -2
@@ -0,0 +1,100 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>hints= (Net::DNS::Resolver::Recurse)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/Net/DNS/Resolver/Recurse.rb, line 138</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hints=</span>(<span class="ruby-identifier">hints</span>)
15
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; hints(#{hints.inspect})\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
16
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">hints</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@nameservers</span>)
17
+ <span class="ruby-ivar">@hints</span>=(<span class="ruby-ivar">@nameservers</span>)
18
+ <span class="ruby-keyword kw">else</span>
19
+ <span class="ruby-ivar">@nameservers</span>=(<span class="ruby-identifier">hints</span>)
20
+ <span class="ruby-keyword kw">end</span>
21
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; verifying (root) zone...\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
22
+ <span class="ruby-comment cmt"># bind always asks one of the hint servers</span>
23
+ <span class="ruby-comment cmt"># for who it thinks is authoritative for</span>
24
+ <span class="ruby-comment cmt"># the (root) zone as a sanity check.</span>
25
+ <span class="ruby-comment cmt"># Nice idea.</span>
26
+
27
+ <span class="ruby-identifier">recurse</span>=(<span class="ruby-value">1</span>)
28
+ <span class="ruby-identifier">packet</span>=<span class="ruby-identifier">query</span>(<span class="ruby-value str">&quot;.&quot;</span>, <span class="ruby-value str">&quot;NS&quot;</span>, <span class="ruby-value str">&quot;IN&quot;</span>)
29
+
30
+ <span class="ruby-identifier">hints</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
31
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">packet</span>)
32
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">ans</span> = <span class="ruby-identifier">packet</span>.<span class="ruby-identifier">answer</span>)
33
+ <span class="ruby-comment cmt"># foreach my $rr (@ans)</span>
34
+ <span class="ruby-identifier">ans</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rr</span><span class="ruby-operator">|</span>
35
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\.?$/</span> <span class="ruby-keyword kw">and</span>
36
+ <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;NS&quot;</span>)
37
+ <span class="ruby-comment cmt"># Found root authority</span>
38
+ <span class="ruby-identifier">server</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>.<span class="ruby-identifier">downcase</span>
39
+ <span class="ruby-identifier">server</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.$/</span>,<span class="ruby-value str">&quot;&quot;</span>)
40
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; FOUND HINT: #{server}\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
41
+ <span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>] = []
42
+ <span class="ruby-keyword kw">end</span>
43
+ <span class="ruby-keyword kw">end</span>
44
+ <span class="ruby-comment cmt"># foreach my $rr ($packet-&gt;additional) {</span>
45
+ <span class="ruby-identifier">packet</span>.<span class="ruby-identifier">additional</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rr</span><span class="ruby-operator">|</span>
46
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; ADDITIONAL: &quot;</span>,<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">inspect</span>,<span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
47
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">server</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>)
48
+ <span class="ruby-keyword kw">if</span> ( <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;A&quot;</span>)
49
+ <span class="ruby-comment cmt">#print &quot;;; ADDITIONAL HELP: $server -&gt; [&quot;.$rr-&gt;rdatastr.&quot;]\n&quot; if $self-&gt;{'debug'};</span>
50
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>]<span class="ruby-operator">!=</span><span class="ruby-keyword kw">nil</span>)
51
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; STORING IP: #{server} IN A &quot;</span>,<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>,<span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
52
+ <span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>]=<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>
53
+ <span class="ruby-keyword kw">end</span>
54
+ <span class="ruby-keyword kw">end</span>
55
+ <span class="ruby-keyword kw">if</span> ( <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;AAAA&quot;</span>)
56
+ <span class="ruby-comment cmt">#print &quot;;; ADDITIONAL HELP: $server -&gt; [&quot;.$rr-&gt;rdatastr.&quot;]\n&quot; if $self-&gt;{'debug'};</span>
57
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>])
58
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; STORING IP6: #{server} IN AAAA &quot;</span>,<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>,<span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
59
+ <span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>]=<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>
60
+ <span class="ruby-keyword kw">end</span>
61
+ <span class="ruby-keyword kw">end</span>
62
+
63
+ <span class="ruby-keyword kw">end</span>
64
+ <span class="ruby-keyword kw">end</span>
65
+ <span class="ruby-keyword kw">end</span>
66
+ <span class="ruby-comment cmt"># foreach my $server (keys %hints) {</span>
67
+ <span class="ruby-identifier">hints</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
68
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">hints</span>[<span class="ruby-identifier">server</span>]<span class="ruby-operator">==</span>[])
69
+ <span class="ruby-comment cmt"># Wipe the servers without lookups</span>
70
+ <span class="ruby-identifier">hints</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">server</span>)
71
+ <span class="ruby-keyword kw">end</span>
72
+ <span class="ruby-keyword kw">end</span>
73
+ <span class="ruby-ivar">@hints</span> = <span class="ruby-identifier">hints</span>
74
+ <span class="ruby-keyword kw">else</span>
75
+ <span class="ruby-ivar">@hints</span> = []
76
+ <span class="ruby-keyword kw">end</span>
77
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@hints</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>)
78
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@debug</span>)
79
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; USING THE FOLLOWING HINT IPS:\n&quot;</span>;
80
+ <span class="ruby-comment cmt"># foreach my $ips (values %{ $self-&gt;{'hints'} }) {</span>
81
+ <span class="ruby-ivar">@hints</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ips</span><span class="ruby-operator">|</span>
82
+ <span class="ruby-comment cmt"># foreach my $server (@{ $ips }) {</span>
83
+ <span class="ruby-identifier">ips</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
84
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; #{server}\n&quot;</span>;
85
+ <span class="ruby-keyword kw">end</span>
86
+ <span class="ruby-keyword kw">end</span>
87
+ <span class="ruby-keyword kw">end</span>
88
+ <span class="ruby-keyword kw">else</span>
89
+ <span class="ruby-identifier">warn</span> <span class="ruby-value str">&quot;Server [&quot;</span><span class="ruby-operator">+</span>(<span class="ruby-ivar">@nameservers</span>)[<span class="ruby-value">0</span>]<span class="ruby-operator">+</span><span class="ruby-value str">&quot;] did not give answers&quot;</span>
90
+ <span class="ruby-keyword kw">end</span>
91
+
92
+ <span class="ruby-comment cmt"># Disable recursion flag.</span>
93
+ <span class="ruby-ivar">@recurse</span>=(<span class="ruby-value">0</span>)
94
+
95
+ <span class="ruby-comment cmt"># return $self-&gt;nameservers( map { @{ $_ } } values %{ $self-&gt;{'hints'} } );</span>
96
+ <span class="ruby-ivar">@nameservers</span> = <span class="ruby-ivar">@hints</span>.<span class="ruby-identifier">values</span>
97
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@nameservers</span>
98
+ <span class="ruby-keyword kw">end</span></pre>
99
+ </body>
100
+ </html>
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>recursion_callback= (Net::DNS::Resolver::Recurse)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/Net/DNS/Resolver/Recurse.rb, line 237</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursion_callback=</span>(<span class="ruby-identifier">sub</span>)
15
+ <span class="ruby-comment cmt"># if (sub &amp;&amp; UNIVERSAL::isa(sub, 'CODE'))</span>
16
+ <span class="ruby-ivar">@callback</span> = <span class="ruby-identifier">sub</span>
17
+ <span class="ruby-comment cmt"># end</span>
18
+ <span class="ruby-keyword kw">end</span></pre>
19
+ </body>
20
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>recursion_callback (Net::DNS::Resolver::Recurse)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/Net/DNS/Resolver/Recurse.rb, line 243</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursion_callback</span>
15
+ <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@callback</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,31 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>query_dorecursion (Net::DNS::Resolver::Recurse)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/Net/DNS/Resolver/Recurse.rb, line 255</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_dorecursion</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
15
+
16
+ <span class="ruby-comment cmt"># Make sure the hint servers are initialized.</span>
17
+ <span class="ruby-ivar">@hints</span>=<span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@hints</span>
18
+ <span class="ruby-ivar">@recurse</span>=(<span class="ruby-value">0</span>)
19
+ <span class="ruby-comment cmt"># Make sure the authority cache is clean.</span>
20
+ <span class="ruby-comment cmt"># It is only used to store A and AAAA records of</span>
21
+ <span class="ruby-comment cmt"># the suposedly authoritative name servers.</span>
22
+ <span class="ruby-ivar">@authority_cache</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
23
+
24
+ <span class="ruby-comment cmt"># Obtain real question Net::DNS::Packet</span>
25
+ <span class="ruby-identifier">query_packet</span> = <span class="ruby-identifier">make_query_packet</span>(<span class="ruby-identifier">args</span>)
26
+
27
+ <span class="ruby-comment cmt"># Seed name servers with hints</span>
28
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_dorecursion</span>( <span class="ruby-identifier">query_packet</span>, <span class="ruby-value str">&quot;.&quot;</span>, <span class="ruby-ivar">@hints</span>, <span class="ruby-value">0</span>)
29
+ <span class="ruby-keyword kw">end</span></pre>
30
+ </body>
31
+ </html>
@@ -0,0 +1,218 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>_dorecursion (Net::DNS::Resolver::Recurse)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/Net/DNS/Resolver/Recurse.rb, line 272</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_dorecursion</span>(<span class="ruby-identifier">query_packet</span>, <span class="ruby-identifier">known_zone</span>, <span class="ruby-identifier">known_authorities</span>, <span class="ruby-identifier">depth</span>)
15
+ <span class="ruby-identifier">cache</span> = <span class="ruby-ivar">@authority_cache</span>
16
+
17
+ <span class="ruby-comment cmt"># die &quot;Recursion too deep, aborting...&quot; if $depth &gt; 255;</span>
18
+ <span class="ruby-keyword kw">if</span> ( <span class="ruby-identifier">depth</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">255</span> )
19
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() Recursion too deep, aborting...\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
20
+ <span class="ruby-ivar">@errorstring</span>=<span class="ruby-value str">&quot;Recursion too deep, aborted&quot;</span>
21
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
22
+ <span class="ruby-keyword kw">end</span>
23
+
24
+ <span class="ruby-identifier">known_zone</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">&quot;.&quot;</span>)
25
+
26
+ <span class="ruby-comment cmt"># Get IPs from authorities</span>
27
+ <span class="ruby-identifier">ns</span> = []
28
+ <span class="ruby-comment cmt"># foreach my $ns (keys %{ $known_authorities }) {</span>
29
+ <span class="ruby-identifier">known_authorities</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ns_rec</span><span class="ruby-operator">|</span>
30
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">ns_rec</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">ns_rec</span>] <span class="ruby-operator">!=</span> [] )
31
+ <span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>] = <span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">ns_rec</span>]
32
+ <span class="ruby-identifier">ns</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>])
33
+ <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>]<span class="ruby-operator">!=</span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>]<span class="ruby-operator">!=</span>[])
34
+ <span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">ns_rec</span>] = <span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>]
35
+ <span class="ruby-identifier">ns</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>])
36
+ <span class="ruby-keyword kw">end</span>
37
+ <span class="ruby-keyword kw">end</span>
38
+
39
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">ns</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>)
40
+ <span class="ruby-identifier">found_auth</span> = <span class="ruby-value">0</span>
41
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@debug</span>)
42
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() Failed to extract nameserver IPs:\n&quot;</span>;
43
+ <span class="ruby-identifier">print</span> <span class="ruby-identifier">known_authorities</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">cache</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
44
+ <span class="ruby-keyword kw">end</span>
45
+ <span class="ruby-comment cmt"># foreach my $ns (keys %{ $known_authorities }) {</span>
46
+ <span class="ruby-identifier">known_authorities</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ns_rec</span><span class="ruby-operator">|</span>
47
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">ns_rec</span>]<span class="ruby-operator">==</span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">ns_rec</span>]<span class="ruby-operator">==</span>[])
48
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; _dorecursion() Manual lookup for authority [#{ns_rec}]\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
49
+
50
+ <span class="ruby-identifier">auth_packet</span>=<span class="ruby-keyword kw">nil</span>
51
+ <span class="ruby-identifier">ans</span>=[]
52
+
53
+ <span class="ruby-comment cmt"># Don't query for V6 if its not there.</span>
54
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span> <span class="ruby-ivar">@force_v4</span>)
55
+ <span class="ruby-identifier">auth_packet</span> = <span class="ruby-identifier">_dorecursion</span>(<span class="ruby-identifier">make_query_packet</span>([<span class="ruby-identifier">ns_rec</span>,<span class="ruby-value str">&quot;AAAA&quot;</span>]), <span class="ruby-comment cmt"># packet</span>
56
+ <span class="ruby-value str">&quot;.&quot;</span>, <span class="ruby-comment cmt"># known_zone</span>
57
+ <span class="ruby-ivar">@hints</span>, <span class="ruby-comment cmt"># known_authorities</span>
58
+ <span class="ruby-identifier">depth</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>); <span class="ruby-comment cmt"># depth</span>
59
+ <span class="ruby-identifier">ans</span> = <span class="ruby-identifier">auth_packet</span>.<span class="ruby-identifier">answer</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">auth_packet</span>
60
+ <span class="ruby-keyword kw">end</span>
61
+
62
+ <span class="ruby-identifier">auth_packet</span> = <span class="ruby-identifier">_dorecursion</span>(<span class="ruby-identifier">make_query_packet</span>([<span class="ruby-identifier">ns_rec</span>,<span class="ruby-value str">&quot;A&quot;</span>]), <span class="ruby-comment cmt"># packet</span>
63
+ <span class="ruby-value str">&quot;.&quot;</span>, <span class="ruby-comment cmt"># known_zone</span>
64
+ <span class="ruby-ivar">@hints</span>, <span class="ruby-comment cmt"># known_authorities</span>
65
+ <span class="ruby-identifier">depth</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>); <span class="ruby-comment cmt"># depth</span>
66
+
67
+ <span class="ruby-identifier">ans</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">auth_packet</span>.<span class="ruby-identifier">answer</span> ) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">auth_packet</span>
68
+
69
+ <span class="ruby-keyword kw">if</span> ( <span class="ruby-identifier">ans</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> )
70
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; _dorecursion() Answers found for [#{ns_rec}]\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
71
+ <span class="ruby-comment cmt"># foreach my $rr (@ans) {</span>
72
+ <span class="ruby-identifier">ans</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rr_arr</span><span class="ruby-operator">|</span>
73
+ <span class="ruby-identifier">rr_arr</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rr</span><span class="ruby-operator">|</span>
74
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; RR:&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
75
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;CNAME&quot;</span>)
76
+ <span class="ruby-comment cmt"># Follow CNAME</span>
77
+ <span class="ruby-identifier">server</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>
78
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">server</span>)
79
+ <span class="ruby-identifier">server</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">&quot;.&quot;</span>)
80
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">server</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">ns_rec</span>)
81
+ <span class="ruby-identifier">cname</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>.<span class="ruby-identifier">downcase</span>
82
+ <span class="ruby-identifier">cname</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">&quot;.&quot;</span>)
83
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; _dorecursion() Following CNAME ns [#{ns_rec}] -&gt; [#{cname}]\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
84
+ <span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">cname</span>] <span class="ruby-operator">||=</span> []
85
+ <span class="ruby-identifier">known_authorities</span>.<span class="ruby-identifier">delete</span>[<span class="ruby-identifier">ns_rec</span>]
86
+ <span class="ruby-keyword kw">next</span>
87
+ <span class="ruby-keyword kw">end</span>
88
+ <span class="ruby-keyword kw">end</span>
89
+ <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;A&quot;</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;AAAA&quot;</span> )
90
+ <span class="ruby-identifier">server</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>
91
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">server</span>)
92
+ <span class="ruby-identifier">server</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">&quot;.&quot;</span>)
93
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">server</span>]<span class="ruby-operator">!=</span><span class="ruby-keyword kw">nil</span>)
94
+ <span class="ruby-identifier">ip</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>
95
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; _dorecursion() Found ns: #{server} IN A #{ip}\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
96
+ <span class="ruby-identifier">cache</span>[<span class="ruby-identifier">server</span>] = <span class="ruby-identifier">known_authorities</span>[<span class="ruby-identifier">server</span>]
97
+ <span class="ruby-identifier">cache</span>[<span class="ruby-identifier">ns_rec</span>].<span class="ruby-identifier">push</span>(<span class="ruby-identifier">ip</span>)
98
+ <span class="ruby-identifier">found_auth</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>
99
+ <span class="ruby-keyword kw">next</span>
100
+ <span class="ruby-keyword kw">end</span>
101
+ <span class="ruby-keyword kw">end</span>
102
+ <span class="ruby-keyword kw">end</span>
103
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() Ignoring useless answer: &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
104
+ <span class="ruby-keyword kw">end</span>
105
+ <span class="ruby-keyword kw">end</span>
106
+ <span class="ruby-keyword kw">else</span>
107
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; _dorecursion() Could not find A records for [#{ns_rec}]\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
108
+ <span class="ruby-keyword kw">end</span>
109
+ <span class="ruby-keyword kw">end</span>
110
+ <span class="ruby-keyword kw">end</span>
111
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">found_auth</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>)
112
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; _dorecursion() Found #{found_auth} new NS authorities...\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
113
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_dorecursion</span>( <span class="ruby-identifier">query_packet</span>, <span class="ruby-identifier">known_zone</span>, <span class="ruby-identifier">known_authorities</span>, <span class="ruby-identifier">depth</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)
114
+ <span class="ruby-keyword kw">end</span>
115
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() No authority information could be obtained.\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
116
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
117
+ <span class="ruby-keyword kw">end</span>
118
+
119
+ <span class="ruby-comment cmt"># Cut the deck of IPs in a random place.</span>
120
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() cutting deck of (&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">ns</span>.<span class="ruby-identifier">length</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;) authorities...\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
121
+ <span class="ruby-identifier">splitpos</span> = <span class="ruby-identifier">rand</span>(<span class="ruby-identifier">ns</span>.<span class="ruby-identifier">length</span>)
122
+ <span class="ruby-identifier">start</span> = <span class="ruby-identifier">ns</span>[<span class="ruby-value">0</span>, <span class="ruby-identifier">splitpos</span>]
123
+ <span class="ruby-identifier">endarr</span> = <span class="ruby-identifier">ns</span>[<span class="ruby-identifier">splitpos</span>, <span class="ruby-identifier">ns</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">splitpos</span>]
124
+ <span class="ruby-identifier">ns</span> = <span class="ruby-identifier">endarr</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">start</span>
125
+
126
+
127
+ <span class="ruby-identifier">ns</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">levelns</span><span class="ruby-operator">|</span>
128
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; _dorecursion() Trying nameserver [#{levelns}]\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
129
+ <span class="ruby-ivar">@nameservers</span>=(<span class="ruby-identifier">levelns</span>)
130
+
131
+ <span class="ruby-identifier">packet</span> = <span class="ruby-identifier">send</span>( <span class="ruby-identifier">query_packet</span> )
132
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">packet</span>)
133
+
134
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@callback</span>)
135
+ <span class="ruby-ivar">@callback</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">packet</span>)
136
+ <span class="ruby-keyword kw">end</span>
137
+
138
+ <span class="ruby-identifier">of</span> = <span class="ruby-keyword kw">nil</span>
139
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() Response received from [&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@answerfrom</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;]\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
140
+ <span class="ruby-identifier">status</span> = <span class="ruby-identifier">packet</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">rcode</span>
141
+ <span class="ruby-identifier">authority</span> = <span class="ruby-identifier">packet</span>.<span class="ruby-identifier">authority</span>
142
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">status</span>)
143
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">status</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;NXDOMAIN&quot;</span>)
144
+ <span class="ruby-comment cmt"># I guess NXDOMAIN is the best we'll ever get</span>
145
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() returning NXDOMAIN\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
146
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">packet</span>
147
+ <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">packet</span>.<span class="ruby-identifier">answer</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>)
148
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() Answers were found.\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
149
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">packet</span>
150
+ <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">authority</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>)
151
+ <span class="ruby-identifier">auth</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
152
+ <span class="ruby-comment cmt"># foreach my $rr (@authority) {</span>
153
+ <span class="ruby-identifier">authority</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rr</span><span class="ruby-operator">|</span>
154
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^(NS|SOA)$/</span>)
155
+ <span class="ruby-identifier">server</span> = (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;NS&quot;</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">nsdname</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">mname</span>).<span class="ruby-identifier">downcase</span>
156
+ <span class="ruby-identifier">server</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">&quot;.&quot;</span>)
157
+ <span class="ruby-identifier">of</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>
158
+ <span class="ruby-identifier">of</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">&quot;.&quot;</span>)
159
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; _dorecursion() Received authority [#{of}] [&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span>() <span class="ruby-operator">+</span> <span class="ruby-node">&quot;] [#{server}]\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
160
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">of</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">known_zone</span>.<span class="ruby-identifier">length</span>)
161
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() Deadbeat name server did not provide new information.\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
162
+ <span class="ruby-keyword kw">next</span>
163
+ <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">of</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/#{known_zone}/</span>)
164
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; _dorecursion() FOUND closer authority for [#{of}] at [#{server}].\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
165
+ <span class="ruby-identifier">auth</span>[<span class="ruby-identifier">server</span>] <span class="ruby-operator">||=</span> []
166
+ <span class="ruby-keyword kw">else</span>
167
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() Confused name server [&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@answerfrom</span> <span class="ruby-operator">+</span> <span class="ruby-node">&quot;] thinks [#{of}] is closer than [#{known_zone}]?\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
168
+ <span class="ruby-identifier">last</span>
169
+ <span class="ruby-keyword kw">end</span>
170
+ <span class="ruby-keyword kw">else</span>
171
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() Ignoring NON NS entry found in authority section: &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
172
+ <span class="ruby-keyword kw">end</span>
173
+ <span class="ruby-keyword kw">end</span>
174
+ <span class="ruby-comment cmt"># foreach my $rr ($packet-&gt;additional)</span>
175
+ <span class="ruby-identifier">packet</span>.<span class="ruby-identifier">additional</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">rr</span><span class="ruby-operator">|</span>
176
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;CNAME&quot;</span>)
177
+ <span class="ruby-comment cmt"># Store this CNAME into %auth too</span>
178
+ <span class="ruby-identifier">server</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>
179
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">server</span>)
180
+ <span class="ruby-identifier">server</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">&quot;.&quot;</span>)
181
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">auth</span>[<span class="ruby-identifier">server</span>]<span class="ruby-operator">!=</span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">auth</span>[<span class="ruby-identifier">server</span>]<span class="ruby-operator">!=</span>[])
182
+ <span class="ruby-identifier">cname</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>.<span class="ruby-identifier">downcase</span>
183
+ <span class="ruby-identifier">cname</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">&quot;.&quot;</span>)
184
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() FOUND CNAME authority: &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">string</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
185
+ <span class="ruby-identifier">auth</span>[<span class="ruby-identifier">cname</span>] <span class="ruby-operator">||=</span> []
186
+ <span class="ruby-identifier">auth</span>[<span class="ruby-identifier">server</span>] = <span class="ruby-identifier">auth</span>[<span class="ruby-identifier">cname</span>]
187
+ <span class="ruby-keyword kw">next</span>
188
+ <span class="ruby-keyword kw">end</span>
189
+
190
+ <span class="ruby-keyword kw">end</span>
191
+ <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;A&quot;</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;AAAA&quot;</span>)
192
+ <span class="ruby-identifier">server</span> = <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">downcase</span>
193
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">server</span>)
194
+ <span class="ruby-identifier">server</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/\.*$/</span>, <span class="ruby-value str">&quot;.&quot;</span>)
195
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">auth</span>[<span class="ruby-identifier">server</span>]<span class="ruby-operator">!=</span><span class="ruby-keyword kw">nil</span>)
196
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; _dorecursion() STORING: #{server} IN A &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;A&quot;</span>
197
+ <span class="ruby-identifier">print</span> <span class="ruby-node">&quot;;; _dorecursion() STORING: #{server} IN AAAA &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;AAAA&quot;</span>
198
+ <span class="ruby-identifier">auth</span>[<span class="ruby-identifier">server</span>].<span class="ruby-identifier">push</span>(<span class="ruby-identifier">rr</span>.<span class="ruby-identifier">rdatastr</span>)
199
+ <span class="ruby-keyword kw">next</span>
200
+ <span class="ruby-keyword kw">end</span>
201
+ <span class="ruby-keyword kw">end</span>
202
+ <span class="ruby-keyword kw">end</span>
203
+ <span class="ruby-identifier">print</span> <span class="ruby-value str">&quot;;; _dorecursion() Ignoring useless: &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">rr</span>.<span class="ruby-identifier">inspect</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@debug</span>
204
+ <span class="ruby-keyword kw">end</span>
205
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">of</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/#{known_zone}/</span>)
206
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_dorecursion</span>( <span class="ruby-identifier">query_packet</span>, <span class="ruby-identifier">of</span>, <span class="ruby-identifier">auth</span>, <span class="ruby-identifier">depth</span><span class="ruby-operator">+</span><span class="ruby-value">1</span> )
207
+ <span class="ruby-keyword kw">else</span>
208
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">_dorecursion</span>( <span class="ruby-identifier">query_packet</span>, <span class="ruby-identifier">known_zone</span>, <span class="ruby-identifier">known_authorities</span>, <span class="ruby-identifier">depth</span><span class="ruby-operator">+</span><span class="ruby-value">1</span> )
209
+ <span class="ruby-keyword kw">end</span>
210
+ <span class="ruby-keyword kw">end</span>
211
+ <span class="ruby-keyword kw">end</span>
212
+ <span class="ruby-keyword kw">end</span>
213
+ <span class="ruby-keyword kw">end</span>
214
+
215
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
216
+ <span class="ruby-keyword kw">end</span></pre>
217
+ </body>
218
+ </html>
@@ -0,0 +1,303 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Net::DNS::Update</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Net::DNS::Update</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../files/lib/Net/DNS/Update_rb.html">
59
+ lib/Net/DNS/Update.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="Packet.html">
69
+ Packet
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <h1>NAME</h1>
85
+ <p>
86
+ <a href="Update.html">Net::DNS::Update</a> - Create a <a
87
+ href="../DNS.html">DNS</a> update packet
88
+ </p>
89
+ <h1>DESCRIPTION</h1>
90
+ <p>
91
+ <a href="Update.html">Net::DNS::Update</a> is a subclass of <a
92
+ href="Packet.html">Net::DNS::Packet</a>, to be used for making <a
93
+ href="../DNS.html">DNS</a> dynamic updates. Programmers should refer to RFC
94
+ 2136 for the semantics of dynamic updates.
95
+ </p>
96
+ <p>
97
+ WARNING: This code is still under development. Please use with caution on
98
+ production nameservers.
99
+ </p>
100
+ <p>
101
+ Future versions of <a href="../DNS.html">Net::DNS</a> may provide a simpler
102
+ interface for making dynamic updates.
103
+ </p>
104
+ <h1>EXAMPLES</h1>
105
+ <p>
106
+ The first example below shows a complete program; subsequent examples show
107
+ only the creation of the update packet.
108
+ </p>
109
+ <h2>Add a new host</h2>
110
+ <pre>
111
+ require 'Net/DNS'
112
+
113
+ # Create the update packet.
114
+ update = Net::DNS::Update.new_from_values('example.com')
115
+
116
+ # Prerequisite is that no A records exist for the name.
117
+ update.push('pre', Net::DNS.nxrrset('foo.example.com. A'))
118
+
119
+ # Add two A records for the name.
120
+ update.push('update', Net::DNS.rr_add('foo.example.com. 86400 A 192.168.1.2'))
121
+ update.push('update', Net::DNS.rr_add('foo.example.com. 86400 A 172.16.3.4'))
122
+
123
+ # Send the update to the zone's primary master.
124
+ res = Net::DNS::Resolver.new
125
+ res.nameservers=('primary-master.example.com')
126
+
127
+ reply = res.send(update)
128
+
129
+ # Did it work?
130
+ if (reply)
131
+ if (reply.header.rcode == 'NOERROR')
132
+ print &quot;Update succeeded\n&quot;
133
+ else
134
+ print 'Update failed: ', reply.header.rcode, &quot;\n&quot;
135
+ end
136
+ else
137
+ print 'Update failed: ', res.errorstring, &quot;\n&quot;
138
+ end
139
+ </pre>
140
+ <h2>Add an MX record for a name that already exists</h2>
141
+ <pre>
142
+ update = Net::DNS::Update.new_from_values('example.com')
143
+ update.push(&quot;pre&quot;, yxdomain('example.com'))
144
+ update.push(&quot;update&quot;, Net::DNS.rr_add('example.com MX 10 mailhost.example.com'))
145
+ </pre>
146
+ <h2>Add a TXT record for a name that doesn&#8216;t exist</h2>
147
+ <pre>
148
+ update = Net::DNS::Update.new_from_values('example.com')
149
+ update.push(&quot;pre&quot;, nxdomain('info.example.com'))
150
+ update.push(&quot;update&quot;, Net::DNS.rr_add('info.example.com TXT &quot;yabba dabba doo&quot;'))
151
+ </pre>
152
+ <h2>Delete all A records for a name</h2>
153
+ <pre>
154
+ update = Net::DNS::Update.new_from_values('example.com')
155
+ update.push(&quot;pre&quot;, yxrrset('foo.example.com A'))
156
+ update.push(&quot;update&quot;, Net::DNS.rr_del('foo.example.com A'))
157
+ </pre>
158
+ <h2>Delete all RRs for a name</h2>
159
+ <pre>
160
+ update = Net::DNS::Update.new_from_values('example.com')
161
+ update.push(&quot;pre&quot;, yxdomain('byebye.example.com'))
162
+ $update-&gt;push(&quot;update&quot;, Net::DNS.rr_del('byebye.example.com'))
163
+ </pre>
164
+ <h2>Perform a signed update</h2>
165
+ <pre>
166
+ key_name = 'tsig-key'
167
+ key = 'awwLOtRfpGE+rRKF2+DEiw=='
168
+
169
+ update = Net::DNS::Update.new_from_values('example.com')
170
+ update.push('update', Net::DNS.rr_add('foo.example.com A 10.1.2.3'))
171
+ update.push('update', Net::DNS.rr_add('bar.example.com A 10.4.5.6'))
172
+ update.sign_tsig(key_name, key)
173
+ </pre>
174
+ <h2>Another way to perform a signed update</h2>
175
+ <pre>
176
+ key_name = 'tsig-key'
177
+ key = 'awwLOtRfpGE+rRKF2+DEiw=='
178
+
179
+ update = Net::DNS::Update.new_from_values('example.com')
180
+ update.push('update', Net::DNS.rr_add('foo.example.com A 10.1.2.3'))
181
+ update.push('update', Net::DNS.rr_add('bar.example.com A 10.4.5.6'))
182
+ update.push('additional', Net::DNS::RR.create(&quot;#{key_name} TSIG #{key}&quot;))
183
+ </pre>
184
+ <h2>Perform a signed update with a customized TSIG record</h2>
185
+ <pre>
186
+ key_name = 'tsig-key'
187
+ key = 'awwLOtRfpGE+rRKF2+DEiw=='
188
+
189
+ tsig = Net::DNS::RR.create(&quot;#{key_name} TSIG #{key}&quot;)
190
+ tsig.fudge=(60)
191
+
192
+ update = Net::DNS::Update.new_from_values('example.com')
193
+ update.push('update', Net::DNS.rr_add('foo.example.com A 10.1.2.3'))
194
+ update.push('update', Net::DNS.rr_add('bar.example.com A 10.4.5.6'))
195
+ update.push('additional', tsig)
196
+ </pre>
197
+ <h1>BUGS</h1>
198
+ <p>
199
+ This code is still under development. Please use with caution on production
200
+ nameservers.
201
+ </p>
202
+ <h1>COPYRIGHT</h1>
203
+ <p>
204
+ Copyright (c) 1997-2002 Michael Fuhr.
205
+ </p>
206
+ <p>
207
+ Portions Copyright (c) 2002-2004 Chris Reinhardt.
208
+ </p>
209
+ <p>
210
+ Ruby version Copyright (c) 2006 AlexD (Nominet UK)
211
+ </p>
212
+ <p>
213
+ All rights reserved. This program is free software; you may redistribute it
214
+ and/or modify it under the same terms as Perl itself.
215
+ </p>
216
+ <h1>SEE ALSO</h1>
217
+ <p>
218
+ <a href="../DNS.html">Net::DNS</a>, <a
219
+ href="Resolver.html">Net::DNS::Resolver</a>, <a
220
+ href="Header.html">Net::DNS::Header</a>, <a
221
+ href="Packet.html">Net::DNS::Packet</a>, <a
222
+ href="Question.html">Net::DNS::Question</a>, <a
223
+ href="RR.html">Net::DNS::RR</a>, RFC 2136, RFC 2845
224
+ </p>
225
+
226
+ </div>
227
+
228
+
229
+ </div>
230
+
231
+ <div id="method-list">
232
+ <h3 class="section-bar">Methods</h3>
233
+
234
+ <div class="name-list">
235
+ <a href="#M000524">new_from_values</a>&nbsp;&nbsp;
236
+ </div>
237
+ </div>
238
+
239
+ </div>
240
+
241
+
242
+ <!-- if includes -->
243
+
244
+ <div id="section">
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+ <!-- if method_list -->
254
+ <div id="methods">
255
+ <h3 class="section-bar">Public Class methods</h3>
256
+
257
+ <div id="method-M000524" class="method-detail">
258
+ <a name="M000524"></a>
259
+
260
+ <div class="method-heading">
261
+ <a href="Update.src/M000524.html" target="Code" class="method-signature"
262
+ onclick="popupCode('Update.src/M000524.html');return false;">
263
+ <span class="method-name">new_from_values</span><span class="method-args">(zone=nil, klass=nil)</span>
264
+ </a>
265
+ </div>
266
+
267
+ <div class="method-description">
268
+ <p>
269
+ Returns a <a href="Update.html">Net::DNS::Update</a> object suitable for
270
+ performing a <a href="../DNS.html">DNS</a> dynamic update. Specifically, it
271
+ creates a packet with the header opcode set to UPDATE and the zone record
272
+ type to SOA (per RFC 2136, Section 2.3).
273
+ </p>
274
+ <p>
275
+ Programs must use the push method to add RRs to the prerequisite, update,
276
+ and additional sections before performing the update.
277
+ </p>
278
+ <p>
279
+ Arguments are the zone name and the class. If the zone is omitted, the
280
+ default domain will be taken from the resolver configuration. If the class
281
+ is omitted, it defaults to IN.
282
+ </p>
283
+ <pre>
284
+ packet = Net::DNS::Update.new_from_values
285
+ packet = Net::DNS::Update.new('example.com')
286
+ packet = Net::DNS::Update.new('example.com', 'HS')
287
+ </pre>
288
+ </div>
289
+ </div>
290
+
291
+
292
+ </div>
293
+
294
+
295
+ </div>
296
+
297
+
298
+ <div id="validator-badges">
299
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
300
+ </div>
301
+
302
+ </body>
303
+ </html>