dnsruby 1.2 → 1.23

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