Dnsruby 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. data/README +34 -0
  2. data/doc/classes/Dnsruby/Classes.html +197 -0
  3. data/doc/classes/Dnsruby/Classes.src/M000157.html +23 -0
  4. data/doc/classes/Dnsruby/Classes.src/M000158.html +19 -0
  5. data/doc/classes/Dnsruby/CodeMapper.html +370 -0
  6. data/doc/classes/Dnsruby/CodeMapper.src/M000130.html +18 -0
  7. data/doc/classes/Dnsruby/CodeMapper.src/M000131.html +33 -0
  8. data/doc/classes/Dnsruby/CodeMapper.src/M000132.html +21 -0
  9. data/doc/classes/Dnsruby/CodeMapper.src/M000133.html +19 -0
  10. data/doc/classes/Dnsruby/CodeMapper.src/M000134.html +19 -0
  11. data/doc/classes/Dnsruby/CodeMapper.src/M000135.html +18 -0
  12. data/doc/classes/Dnsruby/CodeMapper.src/M000136.html +22 -0
  13. data/doc/classes/Dnsruby/CodeMapper.src/M000137.html +22 -0
  14. data/doc/classes/Dnsruby/CodeMapper.src/M000138.html +22 -0
  15. data/doc/classes/Dnsruby/CodeMapper.src/M000139.html +31 -0
  16. data/doc/classes/Dnsruby/CodeMapper.src/M000140.html +19 -0
  17. data/doc/classes/Dnsruby/Config.html +410 -0
  18. data/doc/classes/Dnsruby/Config.src/M000098.html +18 -0
  19. data/doc/classes/Dnsruby/Config.src/M000099.html +19 -0
  20. data/doc/classes/Dnsruby/Config.src/M000100.html +19 -0
  21. data/doc/classes/Dnsruby/Config.src/M000101.html +21 -0
  22. data/doc/classes/Dnsruby/Config.src/M000102.html +21 -0
  23. data/doc/classes/Dnsruby/Config.src/M000103.html +38 -0
  24. data/doc/classes/Dnsruby/Config.src/M000104.html +26 -0
  25. data/doc/classes/Dnsruby/Config.src/M000105.html +22 -0
  26. data/doc/classes/Dnsruby/Config.src/M000106.html +23 -0
  27. data/doc/classes/Dnsruby/Config.src/M000107.html +22 -0
  28. data/doc/classes/Dnsruby/Config.src/M000108.html +18 -0
  29. data/doc/classes/Dnsruby/DNS/DecodeError.html +111 -0
  30. data/doc/classes/Dnsruby/DNS/EncodeError.html +111 -0
  31. data/doc/classes/Dnsruby/DNS.html +469 -0
  32. data/doc/classes/Dnsruby/DNS.src/M000196.html +24 -0
  33. data/doc/classes/Dnsruby/DNS.src/M000197.html +18 -0
  34. data/doc/classes/Dnsruby/DNS.src/M000198.html +18 -0
  35. data/doc/classes/Dnsruby/DNS.src/M000199.html +20 -0
  36. data/doc/classes/Dnsruby/DNS.src/M000200.html +19 -0
  37. data/doc/classes/Dnsruby/DNS.src/M000201.html +20 -0
  38. data/doc/classes/Dnsruby/DNS.src/M000202.html +18 -0
  39. data/doc/classes/Dnsruby/DNS.src/M000203.html +19 -0
  40. data/doc/classes/Dnsruby/DNS.src/M000204.html +20 -0
  41. data/doc/classes/Dnsruby/DNS.src/M000205.html +28 -0
  42. data/doc/classes/Dnsruby/DNS.src/M000206.html +19 -0
  43. data/doc/classes/Dnsruby/DNS.src/M000207.html +20 -0
  44. data/doc/classes/Dnsruby/DNS.src/M000208.html +41 -0
  45. data/doc/classes/Dnsruby/DNS.src/M000209.html +32 -0
  46. data/doc/classes/Dnsruby/DNS.src/M000210.html +50 -0
  47. data/doc/classes/Dnsruby/DNSSEC/Algorithms.html +154 -0
  48. data/doc/classes/Dnsruby/DNSSEC.html +111 -0
  49. data/doc/classes/Dnsruby/DecodeError.html +111 -0
  50. data/doc/classes/Dnsruby/EncodeError.html +111 -0
  51. data/doc/classes/Dnsruby/FormErr.html +113 -0
  52. data/doc/classes/Dnsruby/Header.html +516 -0
  53. data/doc/classes/Dnsruby/Header.src/M000168.html +35 -0
  54. data/doc/classes/Dnsruby/Header.src/M000169.html +18 -0
  55. data/doc/classes/Dnsruby/Header.src/M000170.html +18 -0
  56. data/doc/classes/Dnsruby/Header.src/M000171.html +21 -0
  57. data/doc/classes/Dnsruby/Header.src/M000172.html +20 -0
  58. data/doc/classes/Dnsruby/Header.src/M000173.html +32 -0
  59. data/doc/classes/Dnsruby/Header.src/M000174.html +26 -0
  60. data/doc/classes/Dnsruby/Header.src/M000175.html +47 -0
  61. data/doc/classes/Dnsruby/Header.src/M000176.html +28 -0
  62. data/doc/classes/Dnsruby/Header.src/M000177.html +18 -0
  63. data/doc/classes/Dnsruby/Header.src/M000178.html +18 -0
  64. data/doc/classes/Dnsruby/Header.src/M000179.html +30 -0
  65. data/doc/classes/Dnsruby/Hosts.html +305 -0
  66. data/doc/classes/Dnsruby/Hosts.src/M000141.html +20 -0
  67. data/doc/classes/Dnsruby/Hosts.src/M000142.html +49 -0
  68. data/doc/classes/Dnsruby/Hosts.src/M000143.html +19 -0
  69. data/doc/classes/Dnsruby/Hosts.src/M000144.html +20 -0
  70. data/doc/classes/Dnsruby/Hosts.src/M000145.html +21 -0
  71. data/doc/classes/Dnsruby/Hosts.src/M000146.html +19 -0
  72. data/doc/classes/Dnsruby/Hosts.src/M000147.html +20 -0
  73. data/doc/classes/Dnsruby/Hosts.src/M000148.html +21 -0
  74. data/doc/classes/Dnsruby/IPv4.html +298 -0
  75. data/doc/classes/Dnsruby/IPv4.src/M000149.html +32 -0
  76. data/doc/classes/Dnsruby/IPv4.src/M000150.html +21 -0
  77. data/doc/classes/Dnsruby/IPv4.src/M000151.html +18 -0
  78. data/doc/classes/Dnsruby/IPv4.src/M000152.html +18 -0
  79. data/doc/classes/Dnsruby/IPv4.src/M000153.html +19 -0
  80. data/doc/classes/Dnsruby/IPv4.src/M000154.html +18 -0
  81. data/doc/classes/Dnsruby/IPv4.src/M000155.html +18 -0
  82. data/doc/classes/Dnsruby/IPv4.src/M000156.html +18 -0
  83. data/doc/classes/Dnsruby/IPv6.html +318 -0
  84. data/doc/classes/Dnsruby/IPv6.src/M000180.html +60 -0
  85. data/doc/classes/Dnsruby/IPv6.src/M000181.html +21 -0
  86. data/doc/classes/Dnsruby/IPv6.src/M000182.html +22 -0
  87. data/doc/classes/Dnsruby/IPv6.src/M000183.html +18 -0
  88. data/doc/classes/Dnsruby/IPv6.src/M000184.html +21 -0
  89. data/doc/classes/Dnsruby/IPv6.src/M000185.html +18 -0
  90. data/doc/classes/Dnsruby/IPv6.src/M000186.html +18 -0
  91. data/doc/classes/Dnsruby/IPv6.src/M000187.html +18 -0
  92. data/doc/classes/Dnsruby/Message.html +689 -0
  93. data/doc/classes/Dnsruby/Message.src/M000076.html +34 -0
  94. data/doc/classes/Dnsruby/Message.src/M000077.html +26 -0
  95. data/doc/classes/Dnsruby/Message.src/M000078.html +22 -0
  96. data/doc/classes/Dnsruby/Message.src/M000079.html +20 -0
  97. data/doc/classes/Dnsruby/Message.src/M000080.html +20 -0
  98. data/doc/classes/Dnsruby/Message.src/M000081.html +20 -0
  99. data/doc/classes/Dnsruby/Message.src/M000082.html +20 -0
  100. data/doc/classes/Dnsruby/Message.src/M000083.html +20 -0
  101. data/doc/classes/Dnsruby/Message.src/M000084.html +21 -0
  102. data/doc/classes/Dnsruby/Message.src/M000085.html +20 -0
  103. data/doc/classes/Dnsruby/Message.src/M000086.html +18 -0
  104. data/doc/classes/Dnsruby/Message.src/M000087.html +54 -0
  105. data/doc/classes/Dnsruby/Message.src/M000088.html +42 -0
  106. data/doc/classes/Dnsruby/Message.src/M000089.html +45 -0
  107. data/doc/classes/Dnsruby/MetaTypes.html +136 -0
  108. data/doc/classes/Dnsruby/Modes.html +171 -0
  109. data/doc/classes/Dnsruby/NXDomain.html +113 -0
  110. data/doc/classes/Dnsruby/Name/Label.html +300 -0
  111. data/doc/classes/Dnsruby/Name/Label.src/M000067.html +21 -0
  112. data/doc/classes/Dnsruby/Name/Label.src/M000068.html +18 -0
  113. data/doc/classes/Dnsruby/Name/Label.src/M000069.html +22 -0
  114. data/doc/classes/Dnsruby/Name/Label.src/M000070.html +18 -0
  115. data/doc/classes/Dnsruby/Name/Label.src/M000071.html +18 -0
  116. data/doc/classes/Dnsruby/Name/Label.src/M000072.html +18 -0
  117. data/doc/classes/Dnsruby/Name/Label.src/M000073.html +18 -0
  118. data/doc/classes/Dnsruby/Name/Label.src/M000074.html +18 -0
  119. data/doc/classes/Dnsruby/Name/Label.src/M000075.html +18 -0
  120. data/doc/classes/Dnsruby/Name.html +357 -0
  121. data/doc/classes/Dnsruby/Name.src/M000057.html +28 -0
  122. data/doc/classes/Dnsruby/Name.src/M000058.html +20 -0
  123. data/doc/classes/Dnsruby/Name.src/M000059.html +18 -0
  124. data/doc/classes/Dnsruby/Name.src/M000060.html +18 -0
  125. data/doc/classes/Dnsruby/Name.src/M000061.html +21 -0
  126. data/doc/classes/Dnsruby/Name.src/M000062.html +19 -0
  127. data/doc/classes/Dnsruby/Name.src/M000064.html +22 -0
  128. data/doc/classes/Dnsruby/Name.src/M000065.html +18 -0
  129. data/doc/classes/Dnsruby/Name.src/M000066.html +20 -0
  130. data/doc/classes/Dnsruby/NotImp.html +113 -0
  131. data/doc/classes/Dnsruby/OpCode.html +146 -0
  132. data/doc/classes/Dnsruby/OtherResolvError.html +113 -0
  133. data/doc/classes/Dnsruby/QTypes.html +146 -0
  134. data/doc/classes/Dnsruby/Question.html +256 -0
  135. data/doc/classes/Dnsruby/Question.src/M000166.html +47 -0
  136. data/doc/classes/Dnsruby/Question.src/M000167.html +18 -0
  137. data/doc/classes/Dnsruby/RCode.html +211 -0
  138. data/doc/classes/Dnsruby/RR/ANY.html +133 -0
  139. data/doc/classes/Dnsruby/RR/CERT/CertificateTypes.html +169 -0
  140. data/doc/classes/Dnsruby/RR/CERT.html +180 -0
  141. data/doc/classes/Dnsruby/RR/CNAME.html +150 -0
  142. data/doc/classes/Dnsruby/RR/DNAME.html +150 -0
  143. data/doc/classes/Dnsruby/RR/DomainName.html +175 -0
  144. data/doc/classes/Dnsruby/RR/DomainName.src/M000051.html +22 -0
  145. data/doc/classes/Dnsruby/RR/Generic.html +156 -0
  146. data/doc/classes/Dnsruby/RR/Generic.src/M000041.html +25 -0
  147. data/doc/classes/Dnsruby/RR/HINFO.html +155 -0
  148. data/doc/classes/Dnsruby/RR/IN/A.html +199 -0
  149. data/doc/classes/Dnsruby/RR/IN/A.src/M000018.html +18 -0
  150. data/doc/classes/Dnsruby/RR/IN/A.src/M000019.html +18 -0
  151. data/doc/classes/Dnsruby/RR/IN/A.src/M000020.html +18 -0
  152. data/doc/classes/Dnsruby/RR/IN/AAAA.html +138 -0
  153. data/doc/classes/Dnsruby/RR/IN/AFSDB.html +145 -0
  154. data/doc/classes/Dnsruby/RR/IN/PX.html +143 -0
  155. data/doc/classes/Dnsruby/RR/IN/SRV.html +243 -0
  156. data/doc/classes/Dnsruby/RR/IN/SRV.src/M000015.html +29 -0
  157. data/doc/classes/Dnsruby/RR/IN/SRV.src/M000016.html +26 -0
  158. data/doc/classes/Dnsruby/RR/IN/SRV.src/M000017.html +22 -0
  159. data/doc/classes/Dnsruby/RR/IN/WKS.html +166 -0
  160. data/doc/classes/Dnsruby/RR/IN/WKS.src/M000021.html +20 -0
  161. data/doc/classes/Dnsruby/RR/IN.html +155 -0
  162. data/doc/classes/Dnsruby/RR/ISDN.html +155 -0
  163. data/doc/classes/Dnsruby/RR/LOC.html +395 -0
  164. data/doc/classes/Dnsruby/RR/LOC.src/M000025.html +32 -0
  165. data/doc/classes/Dnsruby/RR/LOC.src/M000026.html +23 -0
  166. data/doc/classes/Dnsruby/RR/LOC.src/M000027.html +25 -0
  167. data/doc/classes/Dnsruby/RR/LOC.src/M000028.html +21 -0
  168. data/doc/classes/Dnsruby/RR/LOC.src/M000029.html +20 -0
  169. data/doc/classes/Dnsruby/RR/LOC.src/M000030.html +23 -0
  170. data/doc/classes/Dnsruby/RR/MB.html +150 -0
  171. data/doc/classes/Dnsruby/RR/MG.html +150 -0
  172. data/doc/classes/Dnsruby/RR/MINFO.html +156 -0
  173. data/doc/classes/Dnsruby/RR/MR.html +150 -0
  174. data/doc/classes/Dnsruby/RR/MX.html +155 -0
  175. data/doc/classes/Dnsruby/RR/NAPTR.html +190 -0
  176. data/doc/classes/Dnsruby/RR/NS.html +150 -0
  177. data/doc/classes/Dnsruby/RR/NSAP.html +293 -0
  178. data/doc/classes/Dnsruby/RR/NSAP.src/M000053.html +19 -0
  179. data/doc/classes/Dnsruby/RR/NSAP.src/M000054.html +19 -0
  180. data/doc/classes/Dnsruby/RR/NSAP.src/M000055.html +22 -0
  181. data/doc/classes/Dnsruby/RR/NSAP.src/M000056.html +31 -0
  182. data/doc/classes/Dnsruby/RR/PTR.html +132 -0
  183. data/doc/classes/Dnsruby/RR/RP.html +183 -0
  184. data/doc/classes/Dnsruby/RR/RP.src/M000050.html +19 -0
  185. data/doc/classes/Dnsruby/RR/RT.html +155 -0
  186. data/doc/classes/Dnsruby/RR/SOA.html +230 -0
  187. data/doc/classes/Dnsruby/RR/SOA.src/M000039.html +24 -0
  188. data/doc/classes/Dnsruby/RR/SOA.src/M000040.html +27 -0
  189. data/doc/classes/Dnsruby/RR/SPF.html +138 -0
  190. data/doc/classes/Dnsruby/RR/TKEY.html +285 -0
  191. data/doc/classes/Dnsruby/RR/TKEY.src/M000022.html +19 -0
  192. data/doc/classes/Dnsruby/RR/TKEY.src/M000023.html +29 -0
  193. data/doc/classes/Dnsruby/RR/TKEY.src/M000024.html +30 -0
  194. data/doc/classes/Dnsruby/RR/TSIG.html +416 -0
  195. data/doc/classes/Dnsruby/RR/TSIG.src/M000042.html +22 -0
  196. data/doc/classes/Dnsruby/RR/TSIG.src/M000043.html +71 -0
  197. data/doc/classes/Dnsruby/RR/TSIG.src/M000044.html +34 -0
  198. data/doc/classes/Dnsruby/RR/TSIG.src/M000045.html +37 -0
  199. data/doc/classes/Dnsruby/RR/TSIG.src/M000046.html +31 -0
  200. data/doc/classes/Dnsruby/RR/TSIG.src/M000047.html +34 -0
  201. data/doc/classes/Dnsruby/RR/TSIG.src/M000048.html +22 -0
  202. data/doc/classes/Dnsruby/RR/TSIG.src/M000049.html +29 -0
  203. data/doc/classes/Dnsruby/RR/TXT.html +233 -0
  204. data/doc/classes/Dnsruby/RR/TXT.src/M000034.html +18 -0
  205. data/doc/classes/Dnsruby/RR/TXT.src/M000035.html +18 -0
  206. data/doc/classes/Dnsruby/RR/TXT.src/M000036.html +20 -0
  207. data/doc/classes/Dnsruby/RR/TXT.src/M000037.html +27 -0
  208. data/doc/classes/Dnsruby/RR/TXT.src/M000038.html +25 -0
  209. data/doc/classes/Dnsruby/RR/X25.html +203 -0
  210. data/doc/classes/Dnsruby/RR/X25.src/M000031.html +18 -0
  211. data/doc/classes/Dnsruby/RR/X25.src/M000032.html +18 -0
  212. data/doc/classes/Dnsruby/RR/X25.src/M000033.html +22 -0
  213. data/doc/classes/Dnsruby/RR.html +620 -0
  214. data/doc/classes/Dnsruby/RR.src/M000001.html +18 -0
  215. data/doc/classes/Dnsruby/RR.src/M000002.html +22 -0
  216. data/doc/classes/Dnsruby/RR.src/M000003.html +18 -0
  217. data/doc/classes/Dnsruby/RR.src/M000004.html +18 -0
  218. data/doc/classes/Dnsruby/RR.src/M000005.html +18 -0
  219. data/doc/classes/Dnsruby/RR.src/M000006.html +36 -0
  220. data/doc/classes/Dnsruby/RR.src/M000007.html +100 -0
  221. data/doc/classes/Dnsruby/RR.src/M000008.html +18 -0
  222. data/doc/classes/Dnsruby/RR.src/M000009.html +18 -0
  223. data/doc/classes/Dnsruby/RR.src/M000010.html +22 -0
  224. data/doc/classes/Dnsruby/RR.src/M000011.html +22 -0
  225. data/doc/classes/Dnsruby/RR.src/M000012.html +18 -0
  226. data/doc/classes/Dnsruby/RR.src/M000013.html +22 -0
  227. data/doc/classes/Dnsruby/RR.src/M000014.html +24 -0
  228. data/doc/classes/Dnsruby/RRSet.html +257 -0
  229. data/doc/classes/Dnsruby/RRSet.src/M000159.html +18 -0
  230. data/doc/classes/Dnsruby/RRSet.src/M000160.html +44 -0
  231. data/doc/classes/Dnsruby/RRSet.src/M000161.html +18 -0
  232. data/doc/classes/Dnsruby/RRSet.src/M000162.html +20 -0
  233. data/doc/classes/Dnsruby/RRSet.src/M000163.html +18 -0
  234. data/doc/classes/Dnsruby/RRSet.src/M000164.html +18 -0
  235. data/doc/classes/Dnsruby/RRSet.src/M000165.html +18 -0
  236. data/doc/classes/Dnsruby/Refused.html +113 -0
  237. data/doc/classes/Dnsruby/Resolv.html +400 -0
  238. data/doc/classes/Dnsruby/Resolv.src/M000109.html +18 -0
  239. data/doc/classes/Dnsruby/Resolv.src/M000110.html +18 -0
  240. data/doc/classes/Dnsruby/Resolv.src/M000111.html +18 -0
  241. data/doc/classes/Dnsruby/Resolv.src/M000112.html +18 -0
  242. data/doc/classes/Dnsruby/Resolv.src/M000113.html +18 -0
  243. data/doc/classes/Dnsruby/Resolv.src/M000114.html +18 -0
  244. data/doc/classes/Dnsruby/Resolv.src/M000115.html +18 -0
  245. data/doc/classes/Dnsruby/Resolv.src/M000116.html +19 -0
  246. data/doc/classes/Dnsruby/Resolv.src/M000117.html +20 -0
  247. data/doc/classes/Dnsruby/Resolv.src/M000118.html +29 -0
  248. data/doc/classes/Dnsruby/Resolv.src/M000119.html +19 -0
  249. data/doc/classes/Dnsruby/Resolv.src/M000120.html +20 -0
  250. data/doc/classes/Dnsruby/Resolv.src/M000121.html +25 -0
  251. data/doc/classes/Dnsruby/ResolvError.html +111 -0
  252. data/doc/classes/Dnsruby/ResolvTimeout.html +111 -0
  253. data/doc/classes/Dnsruby/Resolver.html +807 -0
  254. data/doc/classes/Dnsruby/Resolver.src/M000211.html +21 -0
  255. data/doc/classes/Dnsruby/Resolver.src/M000212.html +37 -0
  256. data/doc/classes/Dnsruby/Resolver.src/M000213.html +64 -0
  257. data/doc/classes/Dnsruby/Resolver.src/M000214.html +23 -0
  258. data/doc/classes/Dnsruby/Resolver.src/M000215.html +46 -0
  259. data/doc/classes/Dnsruby/Resolver.src/M000216.html +21 -0
  260. data/doc/classes/Dnsruby/Resolver.src/M000217.html +22 -0
  261. data/doc/classes/Dnsruby/Resolver.src/M000218.html +18 -0
  262. data/doc/classes/Dnsruby/Resolver.src/M000219.html +20 -0
  263. data/doc/classes/Dnsruby/Resolver.src/M000220.html +19 -0
  264. data/doc/classes/Dnsruby/Resolver.src/M000221.html +19 -0
  265. data/doc/classes/Dnsruby/Resolver.src/M000222.html +19 -0
  266. data/doc/classes/Dnsruby/Resolver.src/M000223.html +19 -0
  267. data/doc/classes/Dnsruby/Resolver.src/M000224.html +19 -0
  268. data/doc/classes/Dnsruby/Resolver.src/M000225.html +19 -0
  269. data/doc/classes/Dnsruby/Resolver.src/M000226.html +19 -0
  270. data/doc/classes/Dnsruby/Resolver.src/M000227.html +19 -0
  271. data/doc/classes/Dnsruby/Resolver.src/M000228.html +19 -0
  272. data/doc/classes/Dnsruby/Resolver.src/M000229.html +19 -0
  273. data/doc/classes/Dnsruby/Resolver.src/M000230.html +19 -0
  274. data/doc/classes/Dnsruby/ServFail.html +113 -0
  275. data/doc/classes/Dnsruby/SingleResolver.html +496 -0
  276. data/doc/classes/Dnsruby/SingleResolver.src/M000122.html +18 -0
  277. data/doc/classes/Dnsruby/SingleResolver.src/M000123.html +19 -0
  278. data/doc/classes/Dnsruby/SingleResolver.src/M000124.html +49 -0
  279. data/doc/classes/Dnsruby/SingleResolver.src/M000125.html +18 -0
  280. data/doc/classes/Dnsruby/SingleResolver.src/M000126.html +21 -0
  281. data/doc/classes/Dnsruby/SingleResolver.src/M000127.html +25 -0
  282. data/doc/classes/Dnsruby/SingleResolver.src/M000128.html +78 -0
  283. data/doc/classes/Dnsruby/SingleResolver.src/M000129.html +21 -0
  284. data/doc/classes/Dnsruby/TheLog.html +196 -0
  285. data/doc/classes/Dnsruby/TheLog.src/M000188.html +20 -0
  286. data/doc/classes/Dnsruby/TheLog.src/M000189.html +20 -0
  287. data/doc/classes/Dnsruby/TheLog.src/M000190.html +20 -0
  288. data/doc/classes/Dnsruby/Types.html +426 -0
  289. data/doc/classes/Dnsruby/Update.html +368 -0
  290. data/doc/classes/Dnsruby/Update.src/M000191.html +32 -0
  291. data/doc/classes/Dnsruby/Update.src/M000192.html +37 -0
  292. data/doc/classes/Dnsruby/Update.src/M000193.html +32 -0
  293. data/doc/classes/Dnsruby/Update.src/M000194.html +41 -0
  294. data/doc/classes/Dnsruby/Update.src/M000195.html +34 -0
  295. data/doc/classes/Dnsruby/ZoneTransfer/Delta.html +183 -0
  296. data/doc/classes/Dnsruby/ZoneTransfer/Delta.src/M000097.html +19 -0
  297. data/doc/classes/Dnsruby/ZoneTransfer.html +248 -0
  298. data/doc/classes/Dnsruby/ZoneTransfer.src/M000095.html +22 -0
  299. data/doc/classes/Dnsruby/ZoneTransfer.src/M000096.html +35 -0
  300. data/doc/classes/Dnsruby.html +388 -0
  301. data/doc/created.rid +1 -0
  302. data/doc/files/lib/Dnsruby/Config_rb.html +101 -0
  303. data/doc/files/lib/Dnsruby/DNSSEC_rb.html +101 -0
  304. data/doc/files/lib/Dnsruby/DNS_rb.html +110 -0
  305. data/doc/files/lib/Dnsruby/Hosts_rb.html +108 -0
  306. data/doc/files/lib/Dnsruby/Resolver_rb.html +108 -0
  307. data/doc/files/lib/Dnsruby/SingleResolver_rb.html +108 -0
  308. data/doc/files/lib/Dnsruby/TheLog_rb.html +110 -0
  309. data/doc/files/lib/Dnsruby/code_mapper_rb.html +101 -0
  310. data/doc/files/lib/Dnsruby/ipv4_rb.html +101 -0
  311. data/doc/files/lib/Dnsruby/ipv6_rb.html +101 -0
  312. data/doc/files/lib/Dnsruby/message_rb.html +109 -0
  313. data/doc/files/lib/Dnsruby/name_rb.html +101 -0
  314. data/doc/files/lib/Dnsruby/resource/AAAA_rb.html +101 -0
  315. data/doc/files/lib/Dnsruby/resource/AFSDB_rb.html +101 -0
  316. data/doc/files/lib/Dnsruby/resource/A_rb.html +101 -0
  317. data/doc/files/lib/Dnsruby/resource/CERT_rb.html +101 -0
  318. data/doc/files/lib/Dnsruby/resource/HINFO_rb.html +101 -0
  319. data/doc/files/lib/Dnsruby/resource/IN_rb.html +112 -0
  320. data/doc/files/lib/Dnsruby/resource/ISDN_rb.html +101 -0
  321. data/doc/files/lib/Dnsruby/resource/LOC_rb.html +101 -0
  322. data/doc/files/lib/Dnsruby/resource/MINFO_rb.html +101 -0
  323. data/doc/files/lib/Dnsruby/resource/MX_rb.html +101 -0
  324. data/doc/files/lib/Dnsruby/resource/NAPTR_rb.html +101 -0
  325. data/doc/files/lib/Dnsruby/resource/NSAP_rb.html +101 -0
  326. data/doc/files/lib/Dnsruby/resource/OPT_rb.html +101 -0
  327. data/doc/files/lib/Dnsruby/resource/PX_rb.html +101 -0
  328. data/doc/files/lib/Dnsruby/resource/RP_rb.html +101 -0
  329. data/doc/files/lib/Dnsruby/resource/RT_rb.html +101 -0
  330. data/doc/files/lib/Dnsruby/resource/SOA_rb.html +101 -0
  331. data/doc/files/lib/Dnsruby/resource/SPF_rb.html +101 -0
  332. data/doc/files/lib/Dnsruby/resource/SRV_rb.html +101 -0
  333. data/doc/files/lib/Dnsruby/resource/TKEY_rb.html +101 -0
  334. data/doc/files/lib/Dnsruby/resource/TSIG_rb.html +110 -0
  335. data/doc/files/lib/Dnsruby/resource/TXT_rb.html +108 -0
  336. data/doc/files/lib/Dnsruby/resource/X25_rb.html +101 -0
  337. data/doc/files/lib/Dnsruby/resource/domain_name_rb.html +101 -0
  338. data/doc/files/lib/Dnsruby/resource/generic_rb.html +125 -0
  339. data/doc/files/lib/Dnsruby/resource/resource_rb.html +110 -0
  340. data/doc/files/lib/Dnsruby/select_thread_rb.html +111 -0
  341. data/doc/files/lib/Dnsruby/update_rb.html +101 -0
  342. data/doc/files/lib/Dnsruby/zone_transfer_rb.html +101 -0
  343. data/doc/files/lib/dnsruby_rb.html +118 -0
  344. data/doc/fr_class_index.html +102 -0
  345. data/doc/fr_file_index.html +68 -0
  346. data/doc/fr_method_index.html +256 -0
  347. data/doc/index.html +24 -0
  348. data/lib/Dnsruby/Config.rb +350 -0
  349. data/lib/Dnsruby/DNS.rb +253 -0
  350. data/lib/Dnsruby/DNSSEC.rb +29 -0
  351. data/lib/Dnsruby/Hosts.rb +119 -0
  352. data/lib/Dnsruby/Resolver.rb +618 -0
  353. data/lib/Dnsruby/SingleResolver.rb +312 -0
  354. data/lib/Dnsruby/TheLog.rb +61 -0
  355. data/lib/Dnsruby/code_mapper.rb +164 -0
  356. data/lib/Dnsruby/ipv4.rb +83 -0
  357. data/lib/Dnsruby/ipv6.rb +142 -0
  358. data/lib/Dnsruby/message.rb +819 -0
  359. data/lib/Dnsruby/name.rb +325 -0
  360. data/lib/Dnsruby/resource/A.rb +56 -0
  361. data/lib/Dnsruby/resource/AAAA.rb +54 -0
  362. data/lib/Dnsruby/resource/AFSDB.rb +68 -0
  363. data/lib/Dnsruby/resource/CERT.rb +89 -0
  364. data/lib/Dnsruby/resource/HINFO.rb +52 -0
  365. data/lib/Dnsruby/resource/IN.rb +69 -0
  366. data/lib/Dnsruby/resource/ISDN.rb +54 -0
  367. data/lib/Dnsruby/resource/LOC.rb +255 -0
  368. data/lib/Dnsruby/resource/MINFO.rb +66 -0
  369. data/lib/Dnsruby/resource/MX.rb +66 -0
  370. data/lib/Dnsruby/resource/NAPTR.rb +90 -0
  371. data/lib/Dnsruby/resource/NSAP.rb +172 -0
  372. data/lib/Dnsruby/resource/OPT.rb +153 -0
  373. data/lib/Dnsruby/resource/PX.rb +71 -0
  374. data/lib/Dnsruby/resource/RP.rb +67 -0
  375. data/lib/Dnsruby/resource/RT.rb +67 -0
  376. data/lib/Dnsruby/resource/SOA.rb +89 -0
  377. data/lib/Dnsruby/resource/SPF.rb +29 -0
  378. data/lib/Dnsruby/resource/SRV.rb +108 -0
  379. data/lib/Dnsruby/resource/TKEY.rb +160 -0
  380. data/lib/Dnsruby/resource/TSIG.rb +328 -0
  381. data/lib/Dnsruby/resource/TXT.rb +76 -0
  382. data/lib/Dnsruby/resource/X25.rb +53 -0
  383. data/lib/Dnsruby/resource/domain_name.rb +58 -0
  384. data/lib/Dnsruby/resource/generic.rb +142 -0
  385. data/lib/Dnsruby/resource/resource.rb +444 -0
  386. data/lib/Dnsruby/select_thread.rb +474 -0
  387. data/lib/Dnsruby/update.rb +263 -0
  388. data/lib/Dnsruby/zone_transfer.rb +296 -0
  389. data/lib/dnsruby.rb +468 -0
  390. data/test/custom.txt +4 -0
  391. data/test/resolv.conf +4 -0
  392. data/test/tc_axfr.rb +42 -0
  393. data/test/tc_dns.rb +231 -0
  394. data/test/tc_dnsruby.rb +42 -0
  395. data/test/tc_escapedchars.rb +510 -0
  396. data/test/tc_header.rb +104 -0
  397. data/test/tc_misc.rb +139 -0
  398. data/test/tc_name.rb +53 -0
  399. data/test/tc_packet.rb +158 -0
  400. data/test/tc_packet_unique_push.rb +102 -0
  401. data/test/tc_question.rb +52 -0
  402. data/test/tc_res_config.rb +92 -0
  403. data/test/tc_res_env.rb +62 -0
  404. data/test/tc_res_file.rb +42 -0
  405. data/test/tc_res_opt.rb +185 -0
  406. data/test/tc_resolver.rb +177 -0
  407. data/test/tc_rr-opt.rb +42 -0
  408. data/test/tc_rr-txt.rb +137 -0
  409. data/test/tc_rr-unknown.rb +99 -0
  410. data/test/tc_rr.rb +259 -0
  411. data/test/tc_single_resolver.rb +153 -0
  412. data/test/tc_soak.rb +310 -0
  413. data/test/tc_tcp.rb +35 -0
  414. data/test/tc_tkey.rb +106 -0
  415. data/test/tc_update.rb +215 -0
  416. data/test/ts_dnsruby.rb +17 -0
  417. data/test/ts_offline.rb +35 -0
  418. data/test/ts_online.rb +40 -0
  419. metadata +512 -0
@@ -0,0 +1,69 @@
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
+ module Dnsruby
17
+ class RR
18
+ ClassInsensitiveTypes = [
19
+ NS, CNAME, DNAME, SOA, PTR, HINFO, MINFO, MX, TXT,
20
+ ISDN, MB, MG, MR, NAPTR, NSAP, OPT, RP, RT, X25,
21
+ SPF, CERT, LOC, TSIG, TKEY, ANY
22
+ ] #:nodoc: all
23
+
24
+ # ARPA Internet specific RRs
25
+ module IN
26
+ ClassValue = Classes.IN.code
27
+
28
+ ClassInsensitiveTypes::each {|s|
29
+ c = Class.new(s)
30
+ # c < Record
31
+ c.const_set(:TypeValue, s::TypeValue)
32
+ c.const_set(:ClassValue, ClassValue)
33
+ ClassHash[[s::TypeValue, ClassValue]] = c
34
+ self.const_set(s.name.sub(/.*::/, ''), c)
35
+ }
36
+
37
+ # RFC 1035, Section 3.4.2 (deprecated)
38
+ class WKS < RR
39
+ ClassHash[[TypeValue = Types::WKS, ClassValue = ClassValue]] = self #:nodoc: all
40
+
41
+ def initialize(address, protocol, bitmap)
42
+ @address = IPv4.create(address)
43
+ @protocol = protocol
44
+ @bitmap = bitmap
45
+ end
46
+ attr_reader :address, :protocol, :bitmap
47
+
48
+ def encode_rdata(msg) #:nodoc: all
49
+ msg.put_bytes(@address.address)
50
+ msg.put_pack("n", @protocol)
51
+ msg.put_bytes(@bitmap)
52
+ end
53
+
54
+ def self.decode_rdata(msg) #:nodoc: all
55
+ address = IPv4.new(msg.get_bytes(4))
56
+ protocol, = msg.get_unpack("n")
57
+ bitmap = msg.get_bytes
58
+ return self.new(address, protocol, bitmap)
59
+ end
60
+ end
61
+
62
+ end
63
+ end
64
+ end
65
+ require 'Dnsruby/resource/A'
66
+ require 'Dnsruby/resource/AAAA'
67
+ require 'Dnsruby/resource/AFSDB'
68
+ require 'Dnsruby/resource/PX'
69
+ require 'Dnsruby/resource/SRV'
@@ -0,0 +1,54 @@
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
+ module Dnsruby
17
+ class RR
18
+ #Net::DNS::RR::ISDN - DNS ISDN resource record
19
+ #RFC 1183 Section 3.2
20
+ class ISDN < RR
21
+ ClassValue = nil #:nodoc: all
22
+ TypeValue = Types::ISDN #:nodoc: all
23
+
24
+ #The RR's address field.
25
+ attr_accessor :address
26
+
27
+ #The RR's sub-address field.
28
+ attr_accessor :subaddress
29
+
30
+ def from_data(data) #:nodoc: all
31
+ @address, @subaddress= data
32
+ end
33
+
34
+ def from_string(input) #:nodoc: all
35
+ @address, @subaddress = input.split(" ")
36
+ end
37
+
38
+ def rdata_to_string #:nodoc: all
39
+ return "#{@address} #{@subaddress}"
40
+ end
41
+
42
+ def encode_rdata(msg) #:nodoc: all
43
+ msg.put_string(@address)
44
+ msg.put_string(@subaddress)
45
+ end
46
+
47
+ def self.decode_rdata(msg) #:nodoc: all
48
+ address = msg.get_string
49
+ subaddress = msg.get_string
50
+ return self.new([address, subaddress])
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,255 @@
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
+ module Dnsruby
17
+ class RR
18
+ #Class for DNS Location (LOC) resource records. See RFC 1876 for
19
+ #details.
20
+ class LOC < RR
21
+ ClassValue = nil #:nodoc: all
22
+ TypeValue = Types::LOC #:nodoc: all
23
+
24
+ #The version number of the representation; programs should
25
+ #always check this. Dnsruby currently supports only version 0.
26
+ attr_accessor :version
27
+ @version = 0
28
+
29
+ #The diameter of a sphere enclosing the described entity,
30
+ #in centimeters.
31
+ attr_accessor :size
32
+ #The horizontal precision of the data, in centimeters.
33
+ attr_accessor :horiz_pre
34
+ #The vertical precision of the data, in centimeters.
35
+ attr_accessor :vert_pre
36
+ #The latitude of the center of the sphere described by
37
+ #the size method, in thousandths of a second of arc. 2**31
38
+ #represents the equator; numbers above that are north latitude.
39
+ attr_accessor :latitude
40
+ #The longitude of the center of the sphere described by
41
+ #the size method, in thousandths of a second of arc. 2**31
42
+ #represents the prime meridian; numbers above that are east
43
+ #longitude.
44
+ attr_accessor :longitude
45
+ #The altitude of the center of the sphere described by
46
+ #the size method, in centimeters, from a base of 100,000m
47
+ #below the WGS 84 reference spheroid used by GPS.
48
+ attr_accessor :altitude
49
+ # Powers of 10 from 0 to 9 (used to speed up calculations).
50
+ POWEROFTEN = [1, 10, 100, 1_000, 10_000, 100_000, 1_000_000, 10_000_000, 100_000_000, 1_000_000_000]
51
+
52
+ # Reference altitude in centimeters (see RFC 1876).
53
+ REFERENCE_ALT = 100_000 * 100;
54
+
55
+ # Reference lat/lon (see RFC 1876).
56
+ REFERENCE_LATLON = 2**31;
57
+
58
+ # Conversions to/from thousandths of a degree.
59
+ CONV_SEC = 1000;
60
+ CONV_MIN = 60 * CONV_SEC;
61
+ CONV_DEG = 60 * CONV_MIN;
62
+
63
+ # Defaults (from RFC 1876, Section 3).
64
+ DEFAULT_MIN = 0;
65
+ DEFAULT_SEC = 0;
66
+ DEFAULT_SIZE = 1;
67
+ DEFAULT_HORIZ_PRE = 10_000;
68
+ DEFAULT_VERT_PRE = 10;
69
+
70
+
71
+ def latlon2dms(rawmsec, hems)
72
+ # Tried to use modulus here, but Perl dumped core if
73
+ # the value was >= 2**31.
74
+
75
+ abs = (rawmsec - REFERENCE_LATLON).abs;
76
+ deg = (abs / CONV_DEG).round;
77
+ abs -= deg * CONV_DEG;
78
+ min = (abs / CONV_MIN).round;
79
+ abs -= min * CONV_MIN;
80
+ sec = (abs / CONV_SEC).round; # $conv_sec
81
+ abs -= sec * CONV_SEC;
82
+ msec = abs;
83
+
84
+ hem = hems[(rawmsec >= REFERENCE_LATLON ? 0 : 1), 1]
85
+
86
+ return sprintf("%d %02d %02d.%03d %s", deg, min, sec, msec, hem);
87
+ end
88
+
89
+ def dms2latlon(deg, min, sec, hem)
90
+ retval=0
91
+
92
+ retval = (deg * CONV_DEG) + (min * CONV_MIN) + (sec * CONV_SEC);
93
+ retval = -retval if ((hem != nil) && ((hem == "S") || (hem == "W")));
94
+ retval += REFERENCE_LATLON;
95
+ return retval;
96
+ end
97
+
98
+ #Returns the latitude and longitude as floating-point degrees.
99
+ #Positive numbers represent north latitude or east longitude;
100
+ #negative numbers represent south latitude or west longitude.
101
+ #
102
+ # lat, lon = rr.latlon
103
+ # system("xearth", "-pos", "fixed #{lat} #{lon}")
104
+ #
105
+ def latlon
106
+ retlat, retlon = nil
107
+
108
+ if (@version == 0)
109
+ retlat = latlon2deg(@latitude);
110
+ retlon = latlon2deg(@longitude);
111
+ end
112
+
113
+ return retlat, retlon
114
+ end
115
+
116
+ def latlon2deg(rawmsec)
117
+ deg=0;
118
+
119
+ deg = (rawmsec - reference_latlon) / CONV_DEG;
120
+ return deg;
121
+ end
122
+
123
+ def from_data(data) #:nodoc: all
124
+ @version, @size, @horiz_pre, @vert_pre, @latitude, @longitude, @altitude = data
125
+ end
126
+
127
+ def from_string(string) #:nodoc: all
128
+ if (string &&
129
+ string =~ /^ (\d+) \s+ # deg lat
130
+ ((\d+) \s+)? # min lat
131
+ (([\d.]+) \s+)? # sec lat
132
+ (N|S) \s+ # hem lat
133
+ (\d+) \s+ # deg lon
134
+ ((\d+) \s+)? # min lon
135
+ (([\d.]+) \s+)? # sec lon
136
+ (E|W) \s+ # hem lon
137
+ (-?[\d.]+) m? # altitude
138
+ (\s+ ([\d.]+) m?)? # size
139
+ (\s+ ([\d.]+) m?)? # horiz precision
140
+ (\s+ ([\d.]+) m?)? # vert precision
141
+ /ix) #
142
+
143
+ # What to do for other versions?
144
+ version = 0;
145
+
146
+ latdeg, latmin, latsec, lathem = $1.to_i, $3.to_i, $5.to_i, $6;
147
+ londeg, lonmin, lonsec, lonhem = $7.to_i, $9.to_i, $11.to_i, $12
148
+ alt, size, horiz_pre, vert_pre = $13.to_i, $15.to_i, $17.to_i, $19.to_i
149
+
150
+ latmin = DEFAULT_MIN unless latmin;
151
+ latsec = DEFAULT_SEC unless latsec;
152
+ lathem = lathem.upcase;
153
+
154
+ lonmin = DEFAULT_MIN unless lonmin;
155
+ lonsec = DEFAULT_SEC unless lonsec;
156
+ lonhem = lonhem.upcase
157
+
158
+ size = DEFAULT_SIZE unless size;
159
+ horiz_pre = DEFAULT_HORIZ_PRE unless horiz_pre;
160
+ vert_pre = DEFAULT_VERT_PRE unless vert_pre;
161
+
162
+ @version = version;
163
+ @size = size * 100;
164
+ @horiz_pre = horiz_pre * 100;
165
+ @vert_pre = vert_pre * 100;
166
+ @latitude = dms2latlon(latdeg, latmin, latsec, lathem);
167
+ @longitude = dms2latlon(londeg, lonmin, lonsec, lonhem);
168
+ @altitude = alt * 100 + REFERENCE_ALT;
169
+ end
170
+ end
171
+
172
+ def from_hash(hash) #:nodoc: all
173
+ super(hash)
174
+ if (@size == nil)
175
+ @size = DEFAULT_SIZE
176
+ end
177
+ if @horiz_pre == nil
178
+ @horiz_pre = DEFAULT_HORIZ_PRE * 100
179
+ end
180
+ if @vert_pre == nil
181
+ @vert_pre = DEFAULT_VERT_PRE * 100
182
+ end
183
+ end
184
+
185
+ def rdata_to_string #:nodoc: all
186
+ rdatastr=""
187
+
188
+ if (defined?@version)
189
+ if (@version == 0)
190
+ lat = @latitude;
191
+ lon = @longitude;
192
+ altitude = @altitude;
193
+ size = @size;
194
+ horiz_pre = @horiz_pre;
195
+ vert_pre = @vert_pre;
196
+
197
+ altitude = (altitude - REFERENCE_ALT) / 100;
198
+ size /= 100;
199
+ horiz_pre /= 100;
200
+ vert_pre /= 100;
201
+
202
+ rdatastr = latlon2dms(lat, "NS") + " " +
203
+ latlon2dms(lon, "EW") + " " +
204
+ sprintf("%.2fm", altitude) + " " +
205
+ sprintf("%.2fm", size) + " " +
206
+ sprintf("%.2fm", horiz_pre) + " " +
207
+ sprintf("%.2fm", vert_pre);
208
+ else
209
+ rdatastr = "; version " + @version + " not supported";
210
+ end
211
+ else
212
+ rdatastr = '';
213
+ end
214
+
215
+ return rdatastr;
216
+ end
217
+
218
+ def self.decode_rdata(msg) #:nodoc: all
219
+ version, = msg.get_unpack("C")
220
+ if (version == 0)
221
+ size, horiz_pre, vert_pre, latitude, longitude, altitude = msg.get_unpack('CCCNNN')
222
+ size = precsize_ntoval(size)
223
+ horiz_pre = precsize_ntoval(horiz_pre)
224
+ vert_pre = precsize_ntoval(vert_pre)
225
+ return self.new([version, size, horiz_pre, vert_pre, latitude, longitude, altitude])
226
+ end
227
+ end
228
+
229
+ def encode_rdata(msg) #:nodoc: all
230
+ msg.put_pack('C', @version)
231
+ if (@version == 0)
232
+ msg.put_pack('CCCNNN', precsize_valton(@size),
233
+ precsize_valton(@horiz_pre), precsize_valton(@vert_pre),
234
+ @latitude, @longitude, @altitude)
235
+ end
236
+ end
237
+
238
+ def self.precsize_ntoval(prec)
239
+ mantissa = ((prec >> 4) & 0x0f) % 10;
240
+ exponent = (prec & 0x0f) % 10;
241
+ return mantissa * POWEROFTEN[exponent];
242
+ end
243
+
244
+ def precsize_valton(val)
245
+ exponent = 0;
246
+ while (val >= 10)
247
+ val /= 10;
248
+ exponent+=1
249
+ end
250
+ return (val.round << 4) | (exponent & 0x0f);
251
+ end
252
+
253
+ end
254
+ end
255
+ end
@@ -0,0 +1,66 @@
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
+ module Dnsruby
17
+ class RR
18
+ #Class for DNS Mailbox Information (MINFO) resource records.
19
+ #RFC 1035 Section 3.3.7
20
+ class MINFO < RR
21
+ ClassValue = nil #:nodoc: all
22
+ TypeValue = Types::MINFO #:nodoc: all
23
+
24
+ #The RR's responsible mailbox field. See RFC 1035.
25
+ attr_accessor :rmailbx
26
+ #The RR's error mailbox field.
27
+ attr_accessor :emailbx
28
+
29
+ def from_hash(hash) #:nodoc: all
30
+ @rmailbx = Name.create(hash[:rmailbx])
31
+ @emailbx = Name.create(hash[:emailbx])
32
+ end
33
+
34
+ def from_data(data) #:nodoc: all
35
+ @rmailbx, @emailbx = data
36
+ end
37
+
38
+ def from_string(input) #:nodoc: all
39
+ if (input.length > 0)
40
+ names = input.split(" ")
41
+ @rmailbx = Name.create(names[0])
42
+ @emailbx = Name.create(names[1])
43
+ end
44
+ end
45
+
46
+ def rdata_to_string #:nodoc: all
47
+ if (@rmailbx!=nil)
48
+ return "#{@rmailbx} #{@emailbx}"
49
+ else
50
+ return ""
51
+ end
52
+ end
53
+
54
+ def encode_rdata(msg, canonical=false) #:nodoc: all
55
+ msg.put_name(@rmailbx, canonical)
56
+ msg.put_name(@emailbx, canonical)
57
+ end
58
+
59
+ def self.decode_rdata(msg) #:nodoc: all
60
+ rmailbx = msg.get_name
61
+ emailbx = msg.get_name
62
+ return self.new([rmailbx, emailbx])
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,66 @@
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
+ module Dnsruby
17
+ class RR
18
+ #Class for DNS Mail Exchanger (MX) resource records.
19
+ #RFC 1035 Section 3.3.9
20
+ class MX < RR
21
+ ClassValue = nil #:nodoc: all
22
+ TypeValue= Types::MX #:nodoc: all
23
+
24
+ #The preference for this mail exchange.
25
+ attr_accessor :preference
26
+ #The name of this mail exchange.
27
+ attr_accessor :exchange
28
+
29
+ def from_hash(hash) #:nodoc: all
30
+ @preference = hash[:preference]
31
+ @exchange = Name.create(hash[:exchange])
32
+ end
33
+
34
+ def from_data(data) #:nodoc: all
35
+ @preference, @exchange = data
36
+ end
37
+
38
+ def from_string(input) #:nodoc: all
39
+ if (input.length > 0)
40
+ names = input.split(" ")
41
+ @preference = names[0].to_i
42
+ @exchange = Name.create(names[1])
43
+ end
44
+ end
45
+
46
+ def rdata_to_string #:nodoc: all
47
+ if (@preference!=nil)
48
+ return "#{@preference} #{@exchange}"
49
+ else
50
+ return ""
51
+ end
52
+ end
53
+
54
+ def encode_rdata(msg, canonical=false) #:nodoc: all
55
+ msg.put_pack('n', @preference, canonical)
56
+ msg.put_name(@exchange, canonical)
57
+ end
58
+
59
+ def self.decode_rdata(msg) #:nodoc: all
60
+ preference, = msg.get_unpack('n')
61
+ exchange = msg.get_name
62
+ return self.new([preference, exchange])
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,90 @@
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
+ module Dnsruby
17
+ class RR
18
+ #Class for DNS Naming Authority Pointer (NAPTR) resource records.
19
+ #RFC 2168
20
+ class NAPTR < RR
21
+ ClassValue = nil #:nodoc: all
22
+ TypeValue= Types::NAPTR #:nodoc: all
23
+
24
+ # The NAPTR RR order field
25
+ attr_accessor :order
26
+ # The NAPTR RR preference field
27
+ attr_accessor :preference
28
+ # The NAPTR RR flags field
29
+ attr_accessor :flags
30
+ # The NAPTR RR service field
31
+ attr_accessor :service
32
+ # The NAPTR RR regexp field
33
+ attr_accessor :regexp
34
+ # The NAPTR RR replacement field
35
+ attr_accessor :replacement
36
+
37
+ def from_hash(hash) #:nodoc: all
38
+ @order = hash[:order]
39
+ @preference = hash[:preference]
40
+ @flags = hash[:flags]
41
+ @service = hash[:service]
42
+ @regexp = hash[:regexp]
43
+ @replacement = Name.create(hash[:replacement])
44
+ end
45
+
46
+ def from_data(data) #:nodoc: all
47
+ @order, @preference, @flags, @service, @regexp, @replacement = data
48
+ end
49
+
50
+ def from_string(input) #:nodoc: all
51
+ if (input.length > 0)
52
+ values = input.split(" ")
53
+ @order = values [0]
54
+ @preference = values [1]
55
+ @flags = values [2]
56
+ @service = values [3]
57
+ @regexp = values [4]
58
+ @replacement = Name.create(values[5])
59
+ end
60
+ end
61
+
62
+ def rdata_to_string #:nodoc: all
63
+ if (@order!=nil)
64
+ return "#{@order} #{@preference} #{@flags} #{@service} #{@regexp} #{@replacement}"
65
+ else
66
+ return ""
67
+ end
68
+ end
69
+
70
+ def encode_rdata(msg, canonical=false) #:nodoc: all
71
+ msg.put_pack('n', @order)
72
+ msg.put_pack('n', @preference)
73
+ msg.put_string(@flags)
74
+ msg.put_string(@service)
75
+ msg.put_string(@regexp)
76
+ msg.put_name(@replacement, canonical)
77
+ end
78
+
79
+ def self.decode_rdata(msg) #:nodoc: all
80
+ order, = msg.get_unpack('n')
81
+ preference, = msg.get_unpack('n')
82
+ flags, = msg.get_string
83
+ service, = msg.get_string
84
+ regexp, = msg.get_string
85
+ replacement = msg.get_name
86
+ return self.new([order, preference, flags, service, regexp, replacement])
87
+ end
88
+ end
89
+ end
90
+ end