dnsruby 1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (520) hide show
  1. data/EVENTMACHINE +64 -0
  2. data/README +63 -0
  3. data/doc/classes/Dnsruby.html +463 -0
  4. data/doc/classes/Dnsruby/Algorithms.html +171 -0
  5. data/doc/classes/Dnsruby/Classes.html +197 -0
  6. data/doc/classes/Dnsruby/Classes.src/M000209.html +23 -0
  7. data/doc/classes/Dnsruby/Classes.src/M000210.html +19 -0
  8. data/doc/classes/Dnsruby/CodeMapper.html +375 -0
  9. data/doc/classes/Dnsruby/CodeMapper.src/M000186.html +18 -0
  10. data/doc/classes/Dnsruby/CodeMapper.src/M000187.html +33 -0
  11. data/doc/classes/Dnsruby/CodeMapper.src/M000188.html +21 -0
  12. data/doc/classes/Dnsruby/CodeMapper.src/M000189.html +19 -0
  13. data/doc/classes/Dnsruby/CodeMapper.src/M000190.html +19 -0
  14. data/doc/classes/Dnsruby/CodeMapper.src/M000191.html +18 -0
  15. data/doc/classes/Dnsruby/CodeMapper.src/M000192.html +22 -0
  16. data/doc/classes/Dnsruby/CodeMapper.src/M000193.html +22 -0
  17. data/doc/classes/Dnsruby/CodeMapper.src/M000194.html +22 -0
  18. data/doc/classes/Dnsruby/CodeMapper.src/M000195.html +31 -0
  19. data/doc/classes/Dnsruby/CodeMapper.src/M000196.html +19 -0
  20. data/doc/classes/Dnsruby/Config.html +413 -0
  21. data/doc/classes/Dnsruby/Config.src/M000148.html +18 -0
  22. data/doc/classes/Dnsruby/Config.src/M000149.html +19 -0
  23. data/doc/classes/Dnsruby/Config.src/M000150.html +19 -0
  24. data/doc/classes/Dnsruby/Config.src/M000151.html +25 -0
  25. data/doc/classes/Dnsruby/Config.src/M000152.html +21 -0
  26. data/doc/classes/Dnsruby/Config.src/M000153.html +38 -0
  27. data/doc/classes/Dnsruby/Config.src/M000154.html +26 -0
  28. data/doc/classes/Dnsruby/Config.src/M000155.html +22 -0
  29. data/doc/classes/Dnsruby/Config.src/M000156.html +27 -0
  30. data/doc/classes/Dnsruby/Config.src/M000157.html +22 -0
  31. data/doc/classes/Dnsruby/Config.src/M000158.html +21 -0
  32. data/doc/classes/Dnsruby/DNS.html +571 -0
  33. data/doc/classes/Dnsruby/DNS.src/M000258.html +24 -0
  34. data/doc/classes/Dnsruby/DNS.src/M000259.html +18 -0
  35. data/doc/classes/Dnsruby/DNS.src/M000260.html +18 -0
  36. data/doc/classes/Dnsruby/DNS.src/M000261.html +20 -0
  37. data/doc/classes/Dnsruby/DNS.src/M000262.html +19 -0
  38. data/doc/classes/Dnsruby/DNS.src/M000263.html +20 -0
  39. data/doc/classes/Dnsruby/DNS.src/M000264.html +18 -0
  40. data/doc/classes/Dnsruby/DNS.src/M000265.html +19 -0
  41. data/doc/classes/Dnsruby/DNS.src/M000266.html +20 -0
  42. data/doc/classes/Dnsruby/DNS.src/M000267.html +28 -0
  43. data/doc/classes/Dnsruby/DNS.src/M000268.html +19 -0
  44. data/doc/classes/Dnsruby/DNS.src/M000269.html +20 -0
  45. data/doc/classes/Dnsruby/DNS.src/M000270.html +31 -0
  46. data/doc/classes/Dnsruby/DecodeError.html +120 -0
  47. data/doc/classes/Dnsruby/Dnssec.html +287 -0
  48. data/doc/classes/Dnsruby/Dnssec.src/M000249.html +23 -0
  49. data/doc/classes/Dnsruby/Dnssec.src/M000250.html +19 -0
  50. data/doc/classes/Dnsruby/Dnssec.src/M000251.html +90 -0
  51. data/doc/classes/Dnsruby/Dnssec.src/M000252.html +76 -0
  52. data/doc/classes/Dnsruby/EncodeError.html +120 -0
  53. data/doc/classes/Dnsruby/FormErr.html +119 -0
  54. data/doc/classes/Dnsruby/Header.html +501 -0
  55. data/doc/classes/Dnsruby/Header.src/M000231.html +35 -0
  56. data/doc/classes/Dnsruby/Header.src/M000232.html +18 -0
  57. data/doc/classes/Dnsruby/Header.src/M000233.html +18 -0
  58. data/doc/classes/Dnsruby/Header.src/M000234.html +21 -0
  59. data/doc/classes/Dnsruby/Header.src/M000235.html +20 -0
  60. data/doc/classes/Dnsruby/Header.src/M000236.html +32 -0
  61. data/doc/classes/Dnsruby/Header.src/M000237.html +27 -0
  62. data/doc/classes/Dnsruby/Header.src/M000238.html +26 -0
  63. data/doc/classes/Dnsruby/Header.src/M000239.html +47 -0
  64. data/doc/classes/Dnsruby/Header.src/M000240.html +28 -0
  65. data/doc/classes/Dnsruby/Header.src/M000241.html +30 -0
  66. data/doc/classes/Dnsruby/Hosts.html +316 -0
  67. data/doc/classes/Dnsruby/Hosts.src/M000197.html +20 -0
  68. data/doc/classes/Dnsruby/Hosts.src/M000198.html +19 -0
  69. data/doc/classes/Dnsruby/Hosts.src/M000199.html +20 -0
  70. data/doc/classes/Dnsruby/Hosts.src/M000200.html +21 -0
  71. data/doc/classes/Dnsruby/Hosts.src/M000201.html +19 -0
  72. data/doc/classes/Dnsruby/Hosts.src/M000202.html +20 -0
  73. data/doc/classes/Dnsruby/Hosts.src/M000203.html +21 -0
  74. data/doc/classes/Dnsruby/IPv4.html +233 -0
  75. data/doc/classes/Dnsruby/IPv4.src/M000204.html +32 -0
  76. data/doc/classes/Dnsruby/IPv4.src/M000205.html +19 -0
  77. data/doc/classes/Dnsruby/IPv4.src/M000206.html +18 -0
  78. data/doc/classes/Dnsruby/IPv4.src/M000207.html +18 -0
  79. data/doc/classes/Dnsruby/IPv4.src/M000208.html +18 -0
  80. data/doc/classes/Dnsruby/IPv6.html +281 -0
  81. data/doc/classes/Dnsruby/IPv6.src/M000242.html +60 -0
  82. data/doc/classes/Dnsruby/IPv6.src/M000243.html +22 -0
  83. data/doc/classes/Dnsruby/IPv6.src/M000244.html +20 -0
  84. data/doc/classes/Dnsruby/IPv6.src/M000245.html +18 -0
  85. data/doc/classes/Dnsruby/Message.html +803 -0
  86. data/doc/classes/Dnsruby/Message.src/M000119.html +38 -0
  87. data/doc/classes/Dnsruby/Message.src/M000120.html +26 -0
  88. data/doc/classes/Dnsruby/Message.src/M000121.html +22 -0
  89. data/doc/classes/Dnsruby/Message.src/M000122.html +22 -0
  90. data/doc/classes/Dnsruby/Message.src/M000123.html +20 -0
  91. data/doc/classes/Dnsruby/Message.src/M000124.html +20 -0
  92. data/doc/classes/Dnsruby/Message.src/M000125.html +20 -0
  93. data/doc/classes/Dnsruby/Message.src/M000126.html +20 -0
  94. data/doc/classes/Dnsruby/Message.src/M000127.html +18 -0
  95. data/doc/classes/Dnsruby/Message.src/M000128.html +20 -0
  96. data/doc/classes/Dnsruby/Message.src/M000129.html +23 -0
  97. data/doc/classes/Dnsruby/Message.src/M000130.html +30 -0
  98. data/doc/classes/Dnsruby/Message.src/M000131.html +20 -0
  99. data/doc/classes/Dnsruby/Message.src/M000132.html +18 -0
  100. data/doc/classes/Dnsruby/Message.src/M000133.html +56 -0
  101. data/doc/classes/Dnsruby/Message.src/M000134.html +35 -0
  102. data/doc/classes/Dnsruby/Message.src/M000135.html +46 -0
  103. data/doc/classes/Dnsruby/Message/Section.html +160 -0
  104. data/doc/classes/Dnsruby/Message/Section.src/M000141.html +29 -0
  105. data/doc/classes/Dnsruby/Message/Section.src/M000142.html +30 -0
  106. data/doc/classes/Dnsruby/MetaTypes.html +136 -0
  107. data/doc/classes/Dnsruby/Modes.html +171 -0
  108. data/doc/classes/Dnsruby/NXDomain.html +119 -0
  109. data/doc/classes/Dnsruby/Name.html +330 -0
  110. data/doc/classes/Dnsruby/Name.src/M000104.html +28 -0
  111. data/doc/classes/Dnsruby/Name.src/M000105.html +20 -0
  112. data/doc/classes/Dnsruby/Name.src/M000106.html +18 -0
  113. data/doc/classes/Dnsruby/Name.src/M000107.html +21 -0
  114. data/doc/classes/Dnsruby/Name.src/M000108.html +22 -0
  115. data/doc/classes/Dnsruby/Name.src/M000109.html +18 -0
  116. data/doc/classes/Dnsruby/Name/Label.html +300 -0
  117. data/doc/classes/Dnsruby/Name/Label.src/M000110.html +21 -0
  118. data/doc/classes/Dnsruby/Name/Label.src/M000111.html +18 -0
  119. data/doc/classes/Dnsruby/Name/Label.src/M000112.html +22 -0
  120. data/doc/classes/Dnsruby/Name/Label.src/M000113.html +18 -0
  121. data/doc/classes/Dnsruby/Name/Label.src/M000114.html +18 -0
  122. data/doc/classes/Dnsruby/Name/Label.src/M000115.html +18 -0
  123. data/doc/classes/Dnsruby/Name/Label.src/M000116.html +18 -0
  124. data/doc/classes/Dnsruby/Name/Label.src/M000117.html +18 -0
  125. data/doc/classes/Dnsruby/Name/Label.src/M000118.html +18 -0
  126. data/doc/classes/Dnsruby/NotImp.html +119 -0
  127. data/doc/classes/Dnsruby/OpCode.html +146 -0
  128. data/doc/classes/Dnsruby/OtherResolvError.html +119 -0
  129. data/doc/classes/Dnsruby/QTypes.html +146 -0
  130. data/doc/classes/Dnsruby/Question.html +301 -0
  131. data/doc/classes/Dnsruby/Question.src/M000226.html +47 -0
  132. data/doc/classes/Dnsruby/Question.src/M000227.html +18 -0
  133. data/doc/classes/Dnsruby/Question.src/M000228.html +18 -0
  134. data/doc/classes/Dnsruby/Question.src/M000229.html +32 -0
  135. data/doc/classes/Dnsruby/Question.src/M000230.html +18 -0
  136. data/doc/classes/Dnsruby/RCode.html +211 -0
  137. data/doc/classes/Dnsruby/RR.html +648 -0
  138. data/doc/classes/Dnsruby/RR.src/M000001.html +18 -0
  139. data/doc/classes/Dnsruby/RR.src/M000002.html +22 -0
  140. data/doc/classes/Dnsruby/RR.src/M000003.html +18 -0
  141. data/doc/classes/Dnsruby/RR.src/M000004.html +18 -0
  142. data/doc/classes/Dnsruby/RR.src/M000005.html +26 -0
  143. data/doc/classes/Dnsruby/RR.src/M000006.html +18 -0
  144. data/doc/classes/Dnsruby/RR.src/M000007.html +36 -0
  145. data/doc/classes/Dnsruby/RR.src/M000008.html +100 -0
  146. data/doc/classes/Dnsruby/RR.src/M000009.html +18 -0
  147. data/doc/classes/Dnsruby/RR.src/M000010.html +18 -0
  148. data/doc/classes/Dnsruby/RR.src/M000011.html +22 -0
  149. data/doc/classes/Dnsruby/RR.src/M000012.html +29 -0
  150. data/doc/classes/Dnsruby/RR.src/M000013.html +24 -0
  151. data/doc/classes/Dnsruby/RR/ANY.html +133 -0
  152. data/doc/classes/Dnsruby/RR/CERT.html +180 -0
  153. data/doc/classes/Dnsruby/RR/CERT/CertificateTypes.html +169 -0
  154. data/doc/classes/Dnsruby/RR/CNAME.html +151 -0
  155. data/doc/classes/Dnsruby/RR/DNAME.html +150 -0
  156. data/doc/classes/Dnsruby/RR/DNSKEY.html +422 -0
  157. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000044.html +20 -0
  158. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000045.html +21 -0
  159. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000046.html +28 -0
  160. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000047.html +22 -0
  161. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000048.html +18 -0
  162. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000049.html +22 -0
  163. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000050.html +18 -0
  164. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000051.html +26 -0
  165. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000052.html +38 -0
  166. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000053.html +45 -0
  167. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000054.html +21 -0
  168. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000055.html +24 -0
  169. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000056.html +32 -0
  170. data/doc/classes/Dnsruby/RR/DNSKEY.src/M000057.html +24 -0
  171. data/doc/classes/Dnsruby/RR/DS.html +286 -0
  172. data/doc/classes/Dnsruby/RR/DS.src/M000039.html +22 -0
  173. data/doc/classes/Dnsruby/RR/DS.src/M000040.html +28 -0
  174. data/doc/classes/Dnsruby/RR/DS.src/M000041.html +24 -0
  175. data/doc/classes/Dnsruby/RR/DS.src/M000042.html +28 -0
  176. data/doc/classes/Dnsruby/RR/DS.src/M000043.html +36 -0
  177. data/doc/classes/Dnsruby/RR/DomainName.html +175 -0
  178. data/doc/classes/Dnsruby/RR/DomainName.src/M000083.html +18 -0
  179. data/doc/classes/Dnsruby/RR/Generic.html +133 -0
  180. data/doc/classes/Dnsruby/RR/HINFO.html +155 -0
  181. data/doc/classes/Dnsruby/RR/IN.html +155 -0
  182. data/doc/classes/Dnsruby/RR/IN/A.html +200 -0
  183. data/doc/classes/Dnsruby/RR/IN/A.src/M000017.html +18 -0
  184. data/doc/classes/Dnsruby/RR/IN/A.src/M000018.html +18 -0
  185. data/doc/classes/Dnsruby/RR/IN/A.src/M000019.html +18 -0
  186. data/doc/classes/Dnsruby/RR/IN/AAAA.html +139 -0
  187. data/doc/classes/Dnsruby/RR/IN/AFSDB.html +145 -0
  188. data/doc/classes/Dnsruby/RR/IN/PX.html +143 -0
  189. data/doc/classes/Dnsruby/RR/IN/SRV.html +238 -0
  190. data/doc/classes/Dnsruby/RR/IN/SRV.src/M000014.html +29 -0
  191. data/doc/classes/Dnsruby/RR/IN/SRV.src/M000015.html +26 -0
  192. data/doc/classes/Dnsruby/RR/IN/SRV.src/M000016.html +22 -0
  193. data/doc/classes/Dnsruby/RR/IN/WKS.html +166 -0
  194. data/doc/classes/Dnsruby/RR/IN/WKS.src/M000020.html +20 -0
  195. data/doc/classes/Dnsruby/RR/ISDN.html +155 -0
  196. data/doc/classes/Dnsruby/RR/LOC.html +395 -0
  197. data/doc/classes/Dnsruby/RR/LOC.src/M000025.html +32 -0
  198. data/doc/classes/Dnsruby/RR/LOC.src/M000026.html +23 -0
  199. data/doc/classes/Dnsruby/RR/LOC.src/M000027.html +25 -0
  200. data/doc/classes/Dnsruby/RR/LOC.src/M000028.html +21 -0
  201. data/doc/classes/Dnsruby/RR/LOC.src/M000029.html +20 -0
  202. data/doc/classes/Dnsruby/RR/LOC.src/M000030.html +23 -0
  203. data/doc/classes/Dnsruby/RR/MB.html +150 -0
  204. data/doc/classes/Dnsruby/RR/MG.html +150 -0
  205. data/doc/classes/Dnsruby/RR/MINFO.html +156 -0
  206. data/doc/classes/Dnsruby/RR/MR.html +150 -0
  207. data/doc/classes/Dnsruby/RR/MX.html +155 -0
  208. data/doc/classes/Dnsruby/RR/NAPTR.html +190 -0
  209. data/doc/classes/Dnsruby/RR/NS.html +151 -0
  210. data/doc/classes/Dnsruby/RR/NSAP.html +293 -0
  211. data/doc/classes/Dnsruby/RR/NSAP.src/M000093.html +19 -0
  212. data/doc/classes/Dnsruby/RR/NSAP.src/M000094.html +19 -0
  213. data/doc/classes/Dnsruby/RR/NSAP.src/M000095.html +22 -0
  214. data/doc/classes/Dnsruby/RR/NSAP.src/M000096.html +31 -0
  215. data/doc/classes/Dnsruby/RR/NSEC.html +301 -0
  216. data/doc/classes/Dnsruby/RR/NSEC.src/M000031.html +19 -0
  217. data/doc/classes/Dnsruby/RR/NSEC.src/M000032.html +18 -0
  218. data/doc/classes/Dnsruby/RR/NSEC.src/M000033.html +34 -0
  219. data/doc/classes/Dnsruby/RR/NSEC.src/M000034.html +18 -0
  220. data/doc/classes/Dnsruby/RR/NSEC.src/M000035.html +71 -0
  221. data/doc/classes/Dnsruby/RR/NSEC.src/M000036.html +18 -0
  222. data/doc/classes/Dnsruby/RR/NSEC.src/M000037.html +80 -0
  223. data/doc/classes/Dnsruby/RR/NSEC.src/M000038.html +23 -0
  224. data/doc/classes/Dnsruby/RR/NSEC3.html +366 -0
  225. data/doc/classes/Dnsruby/RR/NSEC3.src/M000085.html +28 -0
  226. data/doc/classes/Dnsruby/RR/NSEC3.src/M000086.html +18 -0
  227. data/doc/classes/Dnsruby/RR/NSEC3.src/M000087.html +18 -0
  228. data/doc/classes/Dnsruby/RR/NSEC3.src/M000088.html +22 -0
  229. data/doc/classes/Dnsruby/RR/NSEC3.src/M000089.html +18 -0
  230. data/doc/classes/Dnsruby/RR/NSEC3.src/M000090.html +21 -0
  231. data/doc/classes/Dnsruby/RR/NSEC3.src/M000091.html +21 -0
  232. data/doc/classes/Dnsruby/RR/NSEC3.src/M000092.html +29 -0
  233. data/doc/classes/Dnsruby/RR/NSEC3PARAM.html +279 -0
  234. data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000077.html +28 -0
  235. data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000078.html +18 -0
  236. data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000079.html +22 -0
  237. data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000080.html +21 -0
  238. data/doc/classes/Dnsruby/RR/NSEC3PARAM.src/M000081.html +25 -0
  239. data/doc/classes/Dnsruby/RR/PTR.html +132 -0
  240. data/doc/classes/Dnsruby/RR/RP.html +183 -0
  241. data/doc/classes/Dnsruby/RR/RP.src/M000082.html +19 -0
  242. data/doc/classes/Dnsruby/RR/RRSIG.html +357 -0
  243. data/doc/classes/Dnsruby/RR/RRSIG.src/M000097.html +26 -0
  244. data/doc/classes/Dnsruby/RR/RRSIG.src/M000098.html +28 -0
  245. data/doc/classes/Dnsruby/RR/RRSIG.src/M000099.html +23 -0
  246. data/doc/classes/Dnsruby/RR/RRSIG.src/M000100.html +23 -0
  247. data/doc/classes/Dnsruby/RR/RRSIG.src/M000101.html +46 -0
  248. data/doc/classes/Dnsruby/RR/RRSIG.src/M000102.html +50 -0
  249. data/doc/classes/Dnsruby/RR/RRSIG.src/M000103.html +27 -0
  250. data/doc/classes/Dnsruby/RR/RT.html +155 -0
  251. data/doc/classes/Dnsruby/RR/SOA.html +233 -0
  252. data/doc/classes/Dnsruby/RR/SOA.src/M000066.html +24 -0
  253. data/doc/classes/Dnsruby/RR/SOA.src/M000067.html +27 -0
  254. data/doc/classes/Dnsruby/RR/SPF.html +138 -0
  255. data/doc/classes/Dnsruby/RR/TKEY.html +313 -0
  256. data/doc/classes/Dnsruby/RR/TKEY.src/M000021.html +19 -0
  257. data/doc/classes/Dnsruby/RR/TKEY.src/M000022.html +29 -0
  258. data/doc/classes/Dnsruby/RR/TKEY.src/M000023.html +21 -0
  259. data/doc/classes/Dnsruby/RR/TKEY.src/M000024.html +29 -0
  260. data/doc/classes/Dnsruby/RR/TSIG.html +524 -0
  261. data/doc/classes/Dnsruby/RR/TSIG.src/M000068.html +24 -0
  262. data/doc/classes/Dnsruby/RR/TSIG.src/M000069.html +32 -0
  263. data/doc/classes/Dnsruby/RR/TSIG.src/M000070.html +54 -0
  264. data/doc/classes/Dnsruby/RR/TSIG.src/M000071.html +121 -0
  265. data/doc/classes/Dnsruby/RR/TSIG.src/M000072.html +33 -0
  266. data/doc/classes/Dnsruby/RR/TSIG.src/M000073.html +25 -0
  267. data/doc/classes/Dnsruby/RR/TSIG.src/M000074.html +36 -0
  268. data/doc/classes/Dnsruby/RR/TSIG.src/M000075.html +22 -0
  269. data/doc/classes/Dnsruby/RR/TSIG.src/M000076.html +29 -0
  270. data/doc/classes/Dnsruby/RR/TXT.html +233 -0
  271. data/doc/classes/Dnsruby/RR/TXT.src/M000061.html +18 -0
  272. data/doc/classes/Dnsruby/RR/TXT.src/M000062.html +18 -0
  273. data/doc/classes/Dnsruby/RR/TXT.src/M000063.html +20 -0
  274. data/doc/classes/Dnsruby/RR/TXT.src/M000064.html +27 -0
  275. data/doc/classes/Dnsruby/RR/TXT.src/M000065.html +25 -0
  276. data/doc/classes/Dnsruby/RR/X25.html +203 -0
  277. data/doc/classes/Dnsruby/RR/X25.src/M000058.html +18 -0
  278. data/doc/classes/Dnsruby/RR/X25.src/M000059.html +18 -0
  279. data/doc/classes/Dnsruby/RR/X25.src/M000060.html +22 -0
  280. data/doc/classes/Dnsruby/RRSet.html +404 -0
  281. data/doc/classes/Dnsruby/RRSet.src/M000211.html +23 -0
  282. data/doc/classes/Dnsruby/RRSet.src/M000212.html +18 -0
  283. data/doc/classes/Dnsruby/RRSet.src/M000213.html +18 -0
  284. data/doc/classes/Dnsruby/RRSet.src/M000214.html +47 -0
  285. data/doc/classes/Dnsruby/RRSet.src/M000215.html +42 -0
  286. data/doc/classes/Dnsruby/RRSet.src/M000216.html +18 -0
  287. data/doc/classes/Dnsruby/RRSet.src/M000217.html +20 -0
  288. data/doc/classes/Dnsruby/RRSet.src/M000218.html +18 -0
  289. data/doc/classes/Dnsruby/RRSet.src/M000219.html +18 -0
  290. data/doc/classes/Dnsruby/RRSet.src/M000220.html +18 -0
  291. data/doc/classes/Dnsruby/RRSet.src/M000221.html +18 -0
  292. data/doc/classes/Dnsruby/RRSet.src/M000222.html +22 -0
  293. data/doc/classes/Dnsruby/RRSet.src/M000223.html +18 -0
  294. data/doc/classes/Dnsruby/RRSet.src/M000224.html +22 -0
  295. data/doc/classes/Dnsruby/RRSet.src/M000225.html +18 -0
  296. data/doc/classes/Dnsruby/Refused.html +119 -0
  297. data/doc/classes/Dnsruby/Resolv.html +401 -0
  298. data/doc/classes/Dnsruby/Resolv.src/M000159.html +18 -0
  299. data/doc/classes/Dnsruby/Resolv.src/M000160.html +18 -0
  300. data/doc/classes/Dnsruby/Resolv.src/M000161.html +18 -0
  301. data/doc/classes/Dnsruby/Resolv.src/M000162.html +18 -0
  302. data/doc/classes/Dnsruby/Resolv.src/M000163.html +18 -0
  303. data/doc/classes/Dnsruby/Resolv.src/M000164.html +18 -0
  304. data/doc/classes/Dnsruby/Resolv.src/M000165.html +18 -0
  305. data/doc/classes/Dnsruby/Resolv.src/M000166.html +19 -0
  306. data/doc/classes/Dnsruby/Resolv.src/M000167.html +20 -0
  307. data/doc/classes/Dnsruby/Resolv.src/M000168.html +29 -0
  308. data/doc/classes/Dnsruby/Resolv.src/M000169.html +19 -0
  309. data/doc/classes/Dnsruby/Resolv.src/M000170.html +20 -0
  310. data/doc/classes/Dnsruby/Resolv.src/M000171.html +25 -0
  311. data/doc/classes/Dnsruby/ResolvError.html +117 -0
  312. data/doc/classes/Dnsruby/ResolvTimeout.html +117 -0
  313. data/doc/classes/Dnsruby/Resolver.html +1055 -0
  314. data/doc/classes/Dnsruby/Resolver.src/M000271.html +21 -0
  315. data/doc/classes/Dnsruby/Resolver.src/M000272.html +27 -0
  316. data/doc/classes/Dnsruby/Resolver.src/M000273.html +28 -0
  317. data/doc/classes/Dnsruby/Resolver.src/M000274.html +18 -0
  318. data/doc/classes/Dnsruby/Resolver.src/M000275.html +51 -0
  319. data/doc/classes/Dnsruby/Resolver.src/M000276.html +21 -0
  320. data/doc/classes/Dnsruby/Resolver.src/M000277.html +22 -0
  321. data/doc/classes/Dnsruby/Resolver.src/M000278.html +18 -0
  322. data/doc/classes/Dnsruby/Resolver.src/M000279.html +20 -0
  323. data/doc/classes/Dnsruby/Resolver.src/M000280.html +19 -0
  324. data/doc/classes/Dnsruby/Resolver.src/M000281.html +19 -0
  325. data/doc/classes/Dnsruby/Resolver.src/M000282.html +19 -0
  326. data/doc/classes/Dnsruby/Resolver.src/M000283.html +19 -0
  327. data/doc/classes/Dnsruby/Resolver.src/M000284.html +19 -0
  328. data/doc/classes/Dnsruby/Resolver.src/M000285.html +19 -0
  329. data/doc/classes/Dnsruby/Resolver.src/M000286.html +19 -0
  330. data/doc/classes/Dnsruby/Resolver.src/M000287.html +19 -0
  331. data/doc/classes/Dnsruby/Resolver.src/M000288.html +19 -0
  332. data/doc/classes/Dnsruby/Resolver.src/M000289.html +19 -0
  333. data/doc/classes/Dnsruby/Resolver.src/M000290.html +19 -0
  334. data/doc/classes/Dnsruby/Resolver.src/M000291.html +19 -0
  335. data/doc/classes/Dnsruby/Resolver.src/M000292.html +26 -0
  336. data/doc/classes/Dnsruby/Resolver.src/M000293.html +18 -0
  337. data/doc/classes/Dnsruby/Resolver.src/M000294.html +23 -0
  338. data/doc/classes/Dnsruby/Resolver.src/M000295.html +18 -0
  339. data/doc/classes/Dnsruby/ServFail.html +119 -0
  340. data/doc/classes/Dnsruby/SingleResolver.html +674 -0
  341. data/doc/classes/Dnsruby/SingleResolver.src/M000172.html +18 -0
  342. data/doc/classes/Dnsruby/SingleResolver.src/M000173.html +24 -0
  343. data/doc/classes/Dnsruby/SingleResolver.src/M000174.html +36 -0
  344. data/doc/classes/Dnsruby/SingleResolver.src/M000175.html +18 -0
  345. data/doc/classes/Dnsruby/SingleResolver.src/M000176.html +19 -0
  346. data/doc/classes/Dnsruby/SingleResolver.src/M000177.html +50 -0
  347. data/doc/classes/Dnsruby/SingleResolver.src/M000178.html +19 -0
  348. data/doc/classes/Dnsruby/SingleResolver.src/M000179.html +21 -0
  349. data/doc/classes/Dnsruby/SingleResolver.src/M000180.html +25 -0
  350. data/doc/classes/Dnsruby/SingleResolver.src/M000181.html +54 -0
  351. data/doc/classes/Dnsruby/SingleResolver.src/M000182.html +27 -0
  352. data/doc/classes/Dnsruby/SingleResolver.src/M000183.html +27 -0
  353. data/doc/classes/Dnsruby/SingleResolver.src/M000184.html +35 -0
  354. data/doc/classes/Dnsruby/SingleResolver.src/M000185.html +21 -0
  355. data/doc/classes/Dnsruby/TheLog.html +196 -0
  356. data/doc/classes/Dnsruby/TheLog.src/M000246.html +20 -0
  357. data/doc/classes/Dnsruby/TheLog.src/M000247.html +20 -0
  358. data/doc/classes/Dnsruby/TheLog.src/M000248.html +20 -0
  359. data/doc/classes/Dnsruby/Types.html +436 -0
  360. data/doc/classes/Dnsruby/Update.html +368 -0
  361. data/doc/classes/Dnsruby/Update.src/M000253.html +32 -0
  362. data/doc/classes/Dnsruby/Update.src/M000254.html +36 -0
  363. data/doc/classes/Dnsruby/Update.src/M000255.html +32 -0
  364. data/doc/classes/Dnsruby/Update.src/M000256.html +41 -0
  365. data/doc/classes/Dnsruby/Update.src/M000257.html +34 -0
  366. data/doc/classes/Dnsruby/VerifyError.html +119 -0
  367. data/doc/classes/Dnsruby/ZoneTransfer.html +300 -0
  368. data/doc/classes/Dnsruby/ZoneTransfer.src/M000143.html +18 -0
  369. data/doc/classes/Dnsruby/ZoneTransfer.src/M000144.html +24 -0
  370. data/doc/classes/Dnsruby/ZoneTransfer.src/M000145.html +35 -0
  371. data/doc/classes/Dnsruby/ZoneTransfer/Delta.html +200 -0
  372. data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/M000146.html +19 -0
  373. data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/M000147.html +19 -0
  374. data/doc/created.rid +1 -0
  375. data/doc/files/lib/Dnsruby/Config_rb.html +101 -0
  376. data/doc/files/lib/Dnsruby/DNS_rb.html +110 -0
  377. data/doc/files/lib/Dnsruby/Hosts_rb.html +108 -0
  378. data/doc/files/lib/Dnsruby/Resolver_rb.html +109 -0
  379. data/doc/files/lib/Dnsruby/SingleResolver_rb.html +108 -0
  380. data/doc/files/lib/Dnsruby/TheLog_rb.html +110 -0
  381. data/doc/files/lib/Dnsruby/code_mapper_rb.html +101 -0
  382. data/doc/files/lib/Dnsruby/dnssec_rb.html +107 -0
  383. data/doc/files/lib/Dnsruby/event_machine_interface_rb.html +108 -0
  384. data/doc/files/lib/Dnsruby/ipv4_rb.html +101 -0
  385. data/doc/files/lib/Dnsruby/ipv6_rb.html +101 -0
  386. data/doc/files/lib/Dnsruby/message_rb.html +109 -0
  387. data/doc/files/lib/Dnsruby/name_rb.html +101 -0
  388. data/doc/files/lib/Dnsruby/resource/AAAA_rb.html +101 -0
  389. data/doc/files/lib/Dnsruby/resource/AFSDB_rb.html +101 -0
  390. data/doc/files/lib/Dnsruby/resource/A_rb.html +101 -0
  391. data/doc/files/lib/Dnsruby/resource/CERT_rb.html +101 -0
  392. data/doc/files/lib/Dnsruby/resource/DNSKEY_rb.html +101 -0
  393. data/doc/files/lib/Dnsruby/resource/DS_rb.html +101 -0
  394. data/doc/files/lib/Dnsruby/resource/HINFO_rb.html +101 -0
  395. data/doc/files/lib/Dnsruby/resource/IN_rb.html +112 -0
  396. data/doc/files/lib/Dnsruby/resource/ISDN_rb.html +101 -0
  397. data/doc/files/lib/Dnsruby/resource/LOC_rb.html +101 -0
  398. data/doc/files/lib/Dnsruby/resource/MINFO_rb.html +101 -0
  399. data/doc/files/lib/Dnsruby/resource/MX_rb.html +101 -0
  400. data/doc/files/lib/Dnsruby/resource/NAPTR_rb.html +101 -0
  401. data/doc/files/lib/Dnsruby/resource/NSAP_rb.html +101 -0
  402. data/doc/files/lib/Dnsruby/resource/NSEC3PARAM_rb.html +101 -0
  403. data/doc/files/lib/Dnsruby/resource/NSEC3_rb.html +101 -0
  404. data/doc/files/lib/Dnsruby/resource/NSEC_rb.html +101 -0
  405. data/doc/files/lib/Dnsruby/resource/OPT_rb.html +101 -0
  406. data/doc/files/lib/Dnsruby/resource/PX_rb.html +101 -0
  407. data/doc/files/lib/Dnsruby/resource/RP_rb.html +101 -0
  408. data/doc/files/lib/Dnsruby/resource/RRSIG_rb.html +101 -0
  409. data/doc/files/lib/Dnsruby/resource/RT_rb.html +101 -0
  410. data/doc/files/lib/Dnsruby/resource/SOA_rb.html +101 -0
  411. data/doc/files/lib/Dnsruby/resource/SPF_rb.html +101 -0
  412. data/doc/files/lib/Dnsruby/resource/SRV_rb.html +101 -0
  413. data/doc/files/lib/Dnsruby/resource/TKEY_rb.html +101 -0
  414. data/doc/files/lib/Dnsruby/resource/TSIG_rb.html +114 -0
  415. data/doc/files/lib/Dnsruby/resource/TXT_rb.html +108 -0
  416. data/doc/files/lib/Dnsruby/resource/X25_rb.html +101 -0
  417. data/doc/files/lib/Dnsruby/resource/domain_name_rb.html +101 -0
  418. data/doc/files/lib/Dnsruby/resource/generic_rb.html +131 -0
  419. data/doc/files/lib/Dnsruby/resource/resource_rb.html +110 -0
  420. data/doc/files/lib/Dnsruby/select_thread_rb.html +111 -0
  421. data/doc/files/lib/Dnsruby/update_rb.html +101 -0
  422. data/doc/files/lib/Dnsruby/zone_transfer_rb.html +101 -0
  423. data/doc/files/lib/dnsruby_rb.html +118 -0
  424. data/doc/fr_class_index.html +108 -0
  425. data/doc/fr_file_index.html +75 -0
  426. data/doc/fr_method_index.html +321 -0
  427. data/doc/index.html +24 -0
  428. data/lib/Dnsruby/Config.rb +363 -0
  429. data/lib/Dnsruby/DNS.rb +293 -0
  430. data/lib/Dnsruby/Hosts.rb +126 -0
  431. data/lib/Dnsruby/Resolver.rb +999 -0
  432. data/lib/Dnsruby/SingleResolver.rb +493 -0
  433. data/lib/Dnsruby/TheLog.rb +60 -0
  434. data/lib/Dnsruby/code_mapper.rb +165 -0
  435. data/lib/Dnsruby/dnssec.rb +357 -0
  436. data/lib/Dnsruby/event_machine_interface.rb +264 -0
  437. data/lib/Dnsruby/ipv4.rb +74 -0
  438. data/lib/Dnsruby/ipv6.rb +144 -0
  439. data/lib/Dnsruby/message.rb +961 -0
  440. data/lib/Dnsruby/name.rb +332 -0
  441. data/lib/Dnsruby/resource/A.rb +56 -0
  442. data/lib/Dnsruby/resource/AAAA.rb +54 -0
  443. data/lib/Dnsruby/resource/AFSDB.rb +68 -0
  444. data/lib/Dnsruby/resource/CERT.rb +89 -0
  445. data/lib/Dnsruby/resource/DNSKEY.rb +242 -0
  446. data/lib/Dnsruby/resource/DS.rb +162 -0
  447. data/lib/Dnsruby/resource/HINFO.rb +52 -0
  448. data/lib/Dnsruby/resource/IN.rb +70 -0
  449. data/lib/Dnsruby/resource/ISDN.rb +54 -0
  450. data/lib/Dnsruby/resource/LOC.rb +255 -0
  451. data/lib/Dnsruby/resource/MINFO.rb +70 -0
  452. data/lib/Dnsruby/resource/MX.rb +66 -0
  453. data/lib/Dnsruby/resource/NAPTR.rb +90 -0
  454. data/lib/Dnsruby/resource/NSAP.rb +172 -0
  455. data/lib/Dnsruby/resource/NSEC.rb +243 -0
  456. data/lib/Dnsruby/resource/NSEC3.rb +173 -0
  457. data/lib/Dnsruby/resource/NSEC3PARAM.rb +120 -0
  458. data/lib/Dnsruby/resource/OPT.rb +210 -0
  459. data/lib/Dnsruby/resource/PX.rb +71 -0
  460. data/lib/Dnsruby/resource/RP.rb +67 -0
  461. data/lib/Dnsruby/resource/RRSIG.rb +256 -0
  462. data/lib/Dnsruby/resource/RT.rb +67 -0
  463. data/lib/Dnsruby/resource/SOA.rb +95 -0
  464. data/lib/Dnsruby/resource/SPF.rb +29 -0
  465. data/lib/Dnsruby/resource/SRV.rb +112 -0
  466. data/lib/Dnsruby/resource/TKEY.rb +163 -0
  467. data/lib/Dnsruby/resource/TSIG.rb +584 -0
  468. data/lib/Dnsruby/resource/TXT.rb +76 -0
  469. data/lib/Dnsruby/resource/X25.rb +53 -0
  470. data/lib/Dnsruby/resource/domain_name.rb +54 -0
  471. data/lib/Dnsruby/resource/generic.rb +151 -0
  472. data/lib/Dnsruby/resource/resource.rb +561 -0
  473. data/lib/Dnsruby/select_thread.rb +449 -0
  474. data/lib/Dnsruby/update.rb +262 -0
  475. data/lib/Dnsruby/zone_transfer.rb +332 -0
  476. data/lib/dnsruby.rb +512 -0
  477. data/test/custom.txt +4 -0
  478. data/test/resolv.conf +4 -0
  479. data/test/tc_axfr.rb +32 -0
  480. data/test/tc_dns.rb +230 -0
  481. data/test/tc_dnskey.rb +52 -0
  482. data/test/tc_dnsruby.rb +42 -0
  483. data/test/tc_dnssec.rb +88 -0
  484. data/test/tc_ds.rb +38 -0
  485. data/test/tc_escapedchars.rb +484 -0
  486. data/test/tc_event_machine_deferrable.rb +85 -0
  487. data/test/tc_event_machine_res.rb +174 -0
  488. data/test/tc_event_machine_single_res.rb +101 -0
  489. data/test/tc_event_machine_soak.rb +98 -0
  490. data/test/tc_header.rb +104 -0
  491. data/test/tc_misc.rb +139 -0
  492. data/test/tc_name.rb +53 -0
  493. data/test/tc_nsec.rb +36 -0
  494. data/test/tc_nsec3.rb +63 -0
  495. data/test/tc_nsec3param.rb +30 -0
  496. data/test/tc_packet.rb +179 -0
  497. data/test/tc_packet_unique_push.rb +102 -0
  498. data/test/tc_question.rb +51 -0
  499. data/test/tc_res_config.rb +92 -0
  500. data/test/tc_res_env.rb +51 -0
  501. data/test/tc_res_file.rb +42 -0
  502. data/test/tc_res_opt.rb +187 -0
  503. data/test/tc_resolver.rb +184 -0
  504. data/test/tc_rr-opt.rb +82 -0
  505. data/test/tc_rr-txt.rb +137 -0
  506. data/test/tc_rr-unknown.rb +99 -0
  507. data/test/tc_rr.rb +258 -0
  508. data/test/tc_rrset.rb +58 -0
  509. data/test/tc_rrsig.rb +32 -0
  510. data/test/tc_single_resolver.rb +169 -0
  511. data/test/tc_soak.rb +200 -0
  512. data/test/tc_soak_base.rb +136 -0
  513. data/test/tc_tcp.rb +35 -0
  514. data/test/tc_tkey.rb +75 -0
  515. data/test/tc_tsig.rb +237 -0
  516. data/test/tc_update.rb +215 -0
  517. data/test/ts_dnsruby.rb +17 -0
  518. data/test/ts_offline.rb +42 -0
  519. data/test/ts_online.rb +107 -0
  520. metadata +627 -0
@@ -0,0 +1,104 @@
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 'dnsruby'
19
+ include Dnsruby
20
+ class TestHeader < Test::Unit::TestCase
21
+ def test_header
22
+ header = Header.new();
23
+ assert(header, "new() returned something")
24
+
25
+ header.id=41
26
+ assert_equal(header.id, 41, "id() works")
27
+
28
+ header.qr=true
29
+ assert_equal(header.qr, true, "qr() works")
30
+
31
+ header.opcode="QUERY"
32
+ assert_equal(OpCode.Query, header.opcode,
33
+ "opcode() works")
34
+ header.opcode=OpCode::Query
35
+ assert_equal(header.opcode.string, "Query",
36
+ "opcode() works")
37
+
38
+
39
+ header.aa=true
40
+ assert_equal(header.aa, true, "aa() works")
41
+
42
+ header.tc=false
43
+ assert_equal(header.tc, false, "tc() works")
44
+
45
+ header.rd=true
46
+ assert_equal(header.rd, true, "rd() works")
47
+
48
+ header.ad=true
49
+ assert_equal(header.ad, true, "rd() works")
50
+
51
+ header.cd=true
52
+ assert_equal(header.cd, true, "rd() works")
53
+
54
+ header.ra=true
55
+ assert_equal(header.ra, true, "ra() works")
56
+
57
+ header.qr=true
58
+ assert_equal(header.qr, true, "qr() works")
59
+
60
+ header.rcode="NOERROR"
61
+ assert_equal(header.rcode, RCode::NOERROR, "rcode() works")
62
+ header.rcode=RCode.NOERROR
63
+ assert_equal(header.rcode.string, "NOERROR", "rcode() works")
64
+
65
+ header.qdcount=1
66
+ header.ancount=2
67
+ header.nscount=3
68
+ header.arcount=3
69
+
70
+
71
+ # Reenable when support for CD is there
72
+ #header.cd=0
73
+ #assert_equal(header.cd, 0, "cd() works")
74
+ data = header.data
75
+
76
+ header2 = Header.new_from_data(data);
77
+
78
+ assert(header==(header2), 'Headers are the same');
79
+
80
+ #
81
+ # Is header.inspect remotely sane?
82
+ #
83
+ assert(header.to_s =~ /opcode = Query/, 'inspect() has opcode correct');
84
+ assert(header.to_s =~ /ancount = 2/, 'inspect() has ancount correct');
85
+
86
+ header = Header.new;
87
+
88
+ #
89
+ # Check that the aliases work properly.
90
+ #
91
+ header.zocount=(0);
92
+ header.prcount=(1);
93
+ header.upcount=(2);
94
+ header.adcount=(3);
95
+
96
+ assert_equal(header.zocount, 0, 'zocount works');
97
+ assert_equal(header.prcount, 1, 'prcount works');
98
+ assert_equal(header.upcount, 2, 'upcount works');
99
+ assert_equal(header.adcount, 3, 'adcount works');
100
+
101
+
102
+
103
+ end
104
+ end
@@ -0,0 +1,139 @@
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 'dnsruby'
19
+ class TestMisc < Test::Unit::TestCase
20
+ def test_wildcard
21
+ # test to make sure that wildcarding works.
22
+ #
23
+ rr = Dnsruby::RR.create('*.t.dnsruby.validation-test-servers.nominet.org.uk 60 IN A 10.0.0.1')
24
+
25
+ assert(rr, 'RR got made')
26
+
27
+ assert_equal('*.t.dnsruby.validation-test-servers.nominet.org.uk', rr.name.to_s, 'Name is correct' )
28
+ assert_equal(60, rr.ttl, 'TTL is correct' )
29
+ assert_equal(Dnsruby::Classes.IN, rr.klass, 'CLASS is correct' )
30
+ assert_equal(Dnsruby::Types.A, rr.type, 'TYPE is correct' )
31
+ assert_equal('10.0.0.1', rr.address.to_s, 'Address is correct')
32
+ end
33
+
34
+ def test_misc
35
+
36
+ #
37
+ # Make sure the underscore in SRV hostnames work.
38
+ #
39
+ srv = Dnsruby::RR.create('_rvp._tcp.t.dnsruby.validation-test-servers.nominet.org.uk. 60 IN SRV 0 0 80 im.bastardsinc.biz')
40
+
41
+ assert(!$@, 'No errors')
42
+ assert(srv, 'SRV got made')
43
+
44
+
45
+ #~ # Test that the 5.005 Use of uninitialized value at
46
+ #~ # /usr/local/lib/perl5/site_perl/5.005/Net/DNS/RR.pm line 639. bug is gone
47
+ rr = Dnsruby::RR.create('mx.t.dnsruby.validation-test-servers.nominet.org.uk 60 IN MX 10 a.t.dnsruby.validation-test-servers.nominet.org.uk')
48
+ assert(rr, 'RR created')
49
+
50
+ assert_equal(rr.preference, 10, 'Preference works')
51
+
52
+
53
+
54
+ mx = Dnsruby::RR.create('mx.t.dnsruby.validation-test-servers.nominet.org.uk 60 IN MX 0 mail.dnsruby.validation-test-servers.nominet.org.uk')
55
+
56
+ assert(mx.to_s =~ /0 mail.dnsruby.validation-test-servers.nominet.org.uk/) # was 'like'
57
+ assert_equal(mx.preference, 0)
58
+ assert_equal(mx.exchange.to_s, 'mail.dnsruby.validation-test-servers.nominet.org.uk')
59
+
60
+ srv = Dnsruby::RR.create('srv.t.dnsruby.validation-test-servers.nominet.org.uk 60 IN SRV 0 2 3 target.dnsruby.validation-test-servers.nominet.org.uk')
61
+
62
+ # # @todo@ Absolute name issues
63
+ # assert(srv.inspect =~ /0 2 3 target.dnsruby.validation-test-servers.nominet.org.uk\./)
64
+ # assert_equal(srv.rdatastr, '0 2 3 target.dnsruby.validation-test-servers.nominet.org.uk.')
65
+
66
+
67
+
68
+ end
69
+
70
+ def test_TXT_RR
71
+
72
+ #
73
+ #
74
+ # Below are some thests that have to do with TXT RRs
75
+ #
76
+ #
77
+
78
+
79
+ # QUESTION SECTION:
80
+ #txt2.t.net-dns.org. IN TXT
81
+
82
+ # ANSWER SECTION:
83
+ #txt2.t.net-dns.org. 60 IN TXT "Net-DNS\ complicated $tuff" "sort of \" text\ and binary \000 data"
84
+
85
+ # AUTHORITY SECTION:
86
+ #net-dns.org. 3600 IN NS ns1.net-dns.org.
87
+ #net-dns.org. 3600 IN NS ns.ripe.net.
88
+ #net-dns.org. 3600 IN NS ns.hactrn.net.
89
+
90
+ # ADDITIONAL SECTION:
91
+ #ns1.net-dns.org. 3600 IN A 193.0.4.49
92
+ #ns1.net-dns.org. 3600 IN AAAA
93
+
94
+ uuencodedPacket=%w{
95
+ 11 99 85 00 00 01
96
+ 00 01 00 03 00 02 04 74 78 74 32 01 74 07 6e 65
97
+ 74 2d 64 6e 73 03 6f 72 67 00 00 10 00 01 c0 0c
98
+ 00 10 00 01 00 00 00 3c 00 3d 1a 4e 65 74 2d 44
99
+ 4e 53 3b 20 63 6f 6d 70 6c 69 63 61 74 65 64 20
100
+ 24 74 75 66 66 21 73 6f 72 74 20 6f 66 20 22 20
101
+ 74 65 78 74 3b 20 61 6e 64 20 62 69 6e 61 72 79
102
+ 20 00 20 64 61 74 61 c0 13 00 02 00 01 00 00 0e
103
+ 10 00 06 03 6e 73 31 c0 13 c0 13 00 02 00 01 00
104
+ 00 0e 10 00 0d 02 6e 73 04 72 69 70 65 03 6e 65
105
+ 74 00 c0 13 00 02 00 01 00 00 0e 10 00 0c 02 6e
106
+ 73 06 68 61 63 74 72 6e c0 93 c0 79 00 01 00 01
107
+ 00 00 0e 10 00 04 c1 00 04 31 c0 79 00 1c 00 01
108
+ 00 00 0e 10 00 10 20 01 06 10 02 40 00 03 00 00
109
+ 12 34 be 21 e3 1e
110
+ }
111
+
112
+ uuencodedPacket.map!{|e| e.hex}
113
+ packetdata = uuencodedPacket.pack('c*')
114
+ packetdata.gsub!("\s*", "")
115
+
116
+ packet = Dnsruby::Message.decode(packetdata)
117
+ txtRr=(packet.answer)[0]
118
+ assert_equal('Net-DNS; complicated $tuff',txtRr.strings[0],"First Char string in TXT RR read from wireformat")
119
+
120
+ # Compare the second char_str this contains a NULL byte (space NULL
121
+ # space=200020 in hex)
122
+
123
+ temp = (txtRr.strings)[1].unpack('H*')[0]
124
+ # #assert_equal(unpack('H*',(TXTrr.char_str_list())[1]),"736f7274206f66202220746578743b20616e642062696e61727920002064617461", "Second Char string in TXT RR read from wireformat")
125
+ assert_equal("736f7274206f66202220746578743b20616e642062696e61727920002064617461", temp,"Second Char string in TXT RR read from wireformat")
126
+
127
+
128
+ txtRr2=Dnsruby::RR.create('txt2.t.dnsruby.validation-test-servers.nominet.org.uk. 60 IN TXT "Test1 \" \ more stuff" "Test2"')
129
+
130
+ assert_equal((txtRr2.strings)[0],'Test1 " more stuff', "First arg string in TXT RR read from zonefileformat")
131
+ assert_equal((txtRr2.strings)[1],'Test2',"Second Char string in TXT RR read from zonefileformat")
132
+
133
+
134
+ # txtRr3 = RR.create("baz.example.com 3600 HS TXT '\"' 'Char Str2'")
135
+ txtRr3 = Dnsruby::RR.create("baz.example.com 3600 IN TXT '\"' 'Char Str2'")
136
+
137
+ assert_equal( (txtRr3.strings)[0],'"',"Escaped \" between the single quotes")
138
+ end
139
+ end
@@ -0,0 +1,53 @@
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 'dnsruby'
19
+ include Dnsruby
20
+ class TestName < Test::Unit::TestCase
21
+ def test_label_length
22
+ Name::Label.set_max_length(Name::Label::MaxLabelLength) # Other tests may have changed this
23
+ # Test max label length = 63
24
+ begin
25
+ name = Name.create("a.b.12345678901234567890123456789012345678901234567890123456789012345.com")
26
+ assert(false, "Label of more than max=63 allowed")
27
+ rescue ResolvError
28
+ end
29
+ end
30
+
31
+ def test_name_length
32
+ # Test max name length=255
33
+ begin
34
+ name = Name.create("1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123.com")
35
+ assert(false, "Name of length > 255 allowed")
36
+ rescue ResolvError
37
+ end
38
+ end
39
+
40
+ def test_absolute
41
+ n = Name.create("example.com")
42
+ assert(!n.absolute?)
43
+ n = Name.create("example.com.")
44
+ assert(n.absolute?)
45
+ end
46
+
47
+ def test_wild
48
+ n = Name.create("example.com")
49
+ assert(!n.wild?)
50
+ n = Name.create("*.example.com.")
51
+ assert(n.wild?)
52
+ end
53
+ end
@@ -0,0 +1,36 @@
1
+ require 'test/unit'
2
+ require 'dnsruby'
3
+
4
+ class NsecTest < Test::Unit::TestCase
5
+ INPUT = "alfa.example.com. 86400 IN NSEC host.example.com. ( " +
6
+ "A MX RRSIG NSEC TYPE1234 )"
7
+ include Dnsruby
8
+ def test_nsec_from_string
9
+ nsec = Dnsruby::RR.create(INPUT)
10
+ assert_equal("host.example.com", nsec.next_domain.to_s)
11
+ assert_equal([Types.A, Types.MX, Types.RRSIG, Types.NSEC, Types.TYPE1234], nsec.types)
12
+
13
+ nsec2 = Dnsruby::RR.create(nsec.to_s)
14
+ assert(nsec2.to_s == nsec.to_s)
15
+ end
16
+
17
+ def test_nsec_from_data
18
+ nsec = Dnsruby::RR.create(INPUT)
19
+ m = Dnsruby::Message.new
20
+ m.add_additional(nsec)
21
+ data = m.encode
22
+ m2 = Dnsruby::Message.decode(data)
23
+ nsec3 = m2.additional()[0]
24
+ assert_equal(nsec.to_s, nsec3.to_s)
25
+ end
26
+
27
+ def test_nsec_types
28
+ # Test types in last section to 65536.
29
+ #Test no zeros
30
+ nsec = Dnsruby::RR.create(INPUT)
31
+ nsec.add_type(Types.TYPE65534)
32
+ assert(nsec.types.include?(Types.TYPE65534))
33
+ assert(nsec.to_s.include?(Types.TYPE65534.string))
34
+ end
35
+
36
+ end
@@ -0,0 +1,63 @@
1
+ require 'test/unit'
2
+ require 'dnsruby'
3
+
4
+ class Nsec3Test < Test::Unit::TestCase
5
+ INPUT = "2t7b4g4vsa5smi47k61mv5bv1a22bojr.example. 3600 IN NSEC3 1 1 12 aabbccdd ( " +
6
+ "2vptu5timamqttgl4luu9kg21e0aor3s A RRSIG )"
7
+ include Dnsruby
8
+ def test_nsec_from_string
9
+ nsec = Dnsruby::RR.create(INPUT)
10
+ assert_equal("2vptu5timamqttgl4luu9kg21e0aor3s", nsec.next_hashed.to_s)
11
+ assert_equal([Types.A, Types.RRSIG], nsec.types)
12
+ assert(nsec.opt_out?)
13
+ assert_equal(12, nsec.iterations)
14
+ assert_equal("aabbccdd", nsec.salt)
15
+ assert_equal(Dnsruby::Algorithms.RSAMD5, nsec.hash_alg)
16
+
17
+ nsec2 = Dnsruby::RR.create(nsec.to_s)
18
+ assert(nsec2.to_s == nsec.to_s)
19
+ end
20
+
21
+ def test_nsec_from_data
22
+ nsec = Dnsruby::RR.create(INPUT)
23
+ m = Dnsruby::Message.new
24
+ m.add_additional(nsec)
25
+ data = m.encode
26
+ m2 = Dnsruby::Message.decode(data)
27
+ nsec3 = m2.additional()[0]
28
+ assert_equal(nsec.to_s, nsec3.to_s)
29
+ end
30
+
31
+ def test_nsec_other_stuff
32
+ nsec = Dnsruby::RR.create(INPUT)
33
+ begin
34
+ nsec.salt_length=256
35
+ fail
36
+ rescue DecodeError
37
+ end
38
+ begin
39
+ nsec.hash_length=256
40
+ fail
41
+ rescue DecodeError
42
+ end
43
+ begin
44
+ nsec.hash_alg = 8
45
+ fail
46
+ rescue DecodeError
47
+ end
48
+ begin
49
+ nsec.flags = 2
50
+ fail
51
+ rescue DecodeError
52
+ end
53
+ end
54
+
55
+ def test_nsec_types
56
+ # Test types in last section to 65536.
57
+ #Test no zeros
58
+ nsec = Dnsruby::RR.create(INPUT)
59
+ nsec.add_type(Types.TYPE65534)
60
+ assert(nsec.types.include?(Types.TYPE65534))
61
+ assert(nsec.to_s.include?(Types.TYPE65534.string))
62
+ end
63
+ end
@@ -0,0 +1,30 @@
1
+ require 'test/unit'
2
+ require 'dnsruby'
3
+
4
+ class Nsec3ParamTest < Test::Unit::TestCase
5
+ INPUT = "example. 3600 IN NSEC3PARAM 1 0 12 aabbccdd"
6
+
7
+ include Dnsruby
8
+ def test_nsec_from_string
9
+ nsec = Dnsruby::RR.create(INPUT)
10
+
11
+ assert_equal(Dnsruby::Algorithms.RSAMD5, nsec.hash_alg)
12
+ assert_equal(0, nsec.flags)
13
+ assert_equal(12, nsec.iterations)
14
+ assert_equal("aabbccdd", nsec.salt)
15
+
16
+ nsec2 = Dnsruby::RR.create(nsec.to_s)
17
+ assert(nsec2.to_s == nsec.to_s)
18
+ end
19
+
20
+ def test_nsec_from_data
21
+ nsec = Dnsruby::RR.create(INPUT)
22
+ m = Dnsruby::Message.new
23
+ m.add_additional(nsec)
24
+ data = m.encode
25
+ m2 = Dnsruby::Message.decode(data)
26
+ nsec3 = m2.additional()[0]
27
+ assert_equal(nsec.to_s, nsec3.to_s)
28
+ end
29
+
30
+ end
@@ -0,0 +1,179 @@
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 'dnsruby'
19
+ include Dnsruby
20
+ class TestPacket < Test::Unit::TestCase
21
+ def test_packet
22
+ domain = "example.com"
23
+ type = "MX"
24
+ klass = "IN"
25
+
26
+ packet = Message.new(domain, type, klass)
27
+
28
+ assert(packet, 'new() returned something'); #2
29
+ assert(packet.header, 'header() method works'); #3
30
+ assert_instance_of(Header,packet.header,'header() returns right thing'); #4
31
+
32
+
33
+ question = packet.question;
34
+ assert(question && question.length == 1, 'question() returned right number of items'); #5
35
+ # assert_instance_of(Net::DNS::Question,question[0], 'question() returned the right thing'); #6
36
+
37
+ answer = packet.answer;
38
+ assert(answer.length == 0, 'answer() works when empty'); #7
39
+
40
+
41
+ authority = packet.authority;
42
+ assert(authority.length == 0, 'authority() works when empty'); #8
43
+
44
+ additional = packet.additional;
45
+ assert(additional.length == 0, 'additional() works when empty'); #9
46
+
47
+ packet.add_answer(RR.create( {
48
+ :name => "a1.example.com",
49
+ :type => Types.A,
50
+ :address => "10.0.0.1"}));
51
+ assert_equal(1, packet.header.ancount, 'First push into answer section worked'); #10
52
+
53
+
54
+ packet.add_answer(RR.create({:name => "a2.example.com",
55
+ :type => "A", :address => "10.0.0.2"}));
56
+ assert_equal(packet.header.ancount, 2, 'Second push into answer section worked'); #11
57
+
58
+
59
+ packet.add_authority(RR.create({:name => "a3.example.com",
60
+ :type => "A",
61
+ :address => "10.0.0.3"}));
62
+ assert_equal(1, packet.header.nscount, 'First push into authority section worked'); #12
63
+
64
+
65
+ packet.add_authority(RR.create( {
66
+ :name => "a4.example.com",
67
+ :type => "A",
68
+ :address => "10.0.0.4"}));
69
+ assert_equal(2, packet.header.nscount, 'Second push into authority section worked'); #13
70
+
71
+ packet.add_additional(RR.create({
72
+ :name => "a5.example.com",
73
+ :type => "A",
74
+ :address => "10.0.0.5"}));
75
+ assert_equal(1, packet.header.adcount, 'First push into additional section worked'); #14
76
+
77
+ packet.add_additional(RR.create( {
78
+ :name => "a6.example.com",
79
+ :type => Types.A,
80
+ :address => "10.0.0.6"}));
81
+ assert_equal(2, packet.header.adcount, 'Second push into additional section worked'); #15
82
+
83
+ data = packet.encode;
84
+
85
+ packet2 = Message.decode(data);
86
+
87
+ assert(packet2, 'new() from data buffer works'); #16
88
+
89
+ assert_equal(packet.to_s, packet2.to_s, 'inspect() works correctly'); #17
90
+
91
+
92
+ string = packet2.to_s
93
+ 6.times do |count|
94
+ ip = "10.0.0.#{count+1}";
95
+ assert(string =~ /#{ip}/, "Found #{ip} in packet"); # 18 though 23
96
+ end
97
+
98
+ assert_equal(1, packet2.header.qdcount, 'header question count correct'); #24
99
+ assert_equal(2, packet2.header.ancount, 'header answer count correct'); #25
100
+ assert_equal(2, packet2.header.nscount, 'header authority count correct'); #26
101
+ assert_equal(2, packet2.header.adcount, 'header additional count correct'); #27
102
+
103
+
104
+
105
+ # Test using a predefined answer. This is an answer that was generated by a bind server.
106
+ #
107
+
108
+ # data=["22cc85000001000000010001056461636874036e657400001e0001c00c0006000100000e100025026e730472697065c012046f6c6166c02a7754e1ae0000a8c0000038400005460000001c2000002910000000800000050000000030"].pack("H*");
109
+ uuencodedPacket =%w{
110
+ 22 cc 85 00 00 01 00 00 00 01 00 01 05 64 61 63
111
+ 68 74 03 6e 65 74 00 00 1e 00 01 c0 0c 00 06 00
112
+ 01 00 00 0e 10 00 25 02 6e 73 04 72 69 70 65 c0
113
+ 12 04 6f 6c 61 66 c0 2a 77 54 e1 ae 00 00 a8 c0
114
+ 00 00 38 40 00 05 46 00 00 00 1c 20 00 00 29 10
115
+ 00 00 00 80 00 00 05 00 00 00 00 30
116
+ }
117
+ uuencodedPacket.map!{|e| e.hex}
118
+ packetdata = uuencodedPacket.pack('c*')
119
+
120
+ packet3 = Message.decode(packetdata)
121
+ assert(packet3, 'new(\data) returned something'); #28
122
+
123
+ 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
126
+ assert_equal(packet3.header.adcount, 1, 'header additional in sytnetic packet correct'); #32
127
+
128
+ rr=packet3.additional;
129
+
130
+ 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
132
+
133
+ # In theory its valid to have multiple questions in the question section.
134
+ # Not many servers digest it though.
135
+
136
+ packet.add_question("bla.foo", Types::TXT, Classes.CH)
137
+ question = packet.question
138
+ assert_equal(2, question.length, 'question() returned right number of items poptest:2'); #36
139
+ end
140
+
141
+ def get_test_packet
142
+ packet=Message.new("254.9.11.10.in-addr.arpa","PTR","IN")
143
+
144
+ packet.add_answer(RR.create(%q[254.9.11.10.in-addr.arpa 86400 IN PTR host-84-11-9-254.customer.example.com]));
145
+
146
+ packet.add_authority(RR.create("9.11.10.in-addr.arpa 86400 IN NS autons1.example.com"));
147
+ packet.add_authority(RR.create("9.11.10.in-addr.arpa 86400 IN NS autons2.example.com"));
148
+ packet.add_authority(RR.create("9.11.10.in-addr.arpa 86400 IN NS autons3.example.com"));
149
+ return packet
150
+ end
151
+
152
+
153
+ def test_push
154
+ packet = get_test_packet
155
+ data=packet.encode
156
+
157
+ packet2=Message.decode(data)
158
+
159
+ assert_equal(packet.to_s,packet2.to_s,"Packet to data and back (failure indicates brasserten dn_comp)"); #39
160
+ end
161
+
162
+ def test_rrset
163
+ packet = get_test_packet
164
+ packet.each_section do |section|
165
+ # print "#{section.rrsets}\n"
166
+ end
167
+ packet.section_rrsets.each do |section, rrsets|
168
+ # print "section = #{section}, rrsets = #{rrsets.length}\n"
169
+ end
170
+ assert(packet.authority.rrsets.length == 1)
171
+ assert(packet.question.rrsets.length == 1)
172
+ assert(packet.answer.rrsets.length == 1)
173
+ assert(packet.additional.rrsets.length == 0)
174
+ assert(packet.authority.rrsets[0].length == 3)
175
+ # assert(packet.additional.rrsets[0].length == 0)
176
+ assert(packet.question.rrsets[0].length == 1)
177
+ assert(packet.answer.rrsets[0].length == 1)
178
+ end
179
+ end