lib-dhcp 0.1.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 (296) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.travis.yml +13 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Gemfile +6 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +33 -0
  8. data/Rakefile +10 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/exe/dhcp_dump +83 -0
  12. data/lib-dhcp.gemspec +31 -0
  13. data/lib/lib/dhcp.rb +276 -0
  14. data/lib/lib/dhcp/exception.rb +34 -0
  15. data/lib/lib/dhcp/messages/ack.rb +65 -0
  16. data/lib/lib/dhcp/messages/decline.rb +77 -0
  17. data/lib/lib/dhcp/messages/discover.rb +70 -0
  18. data/lib/lib/dhcp/messages/inform.rb +64 -0
  19. data/lib/lib/dhcp/messages/lease_active.rb +65 -0
  20. data/lib/lib/dhcp/messages/lease_query.rb +64 -0
  21. data/lib/lib/dhcp/messages/lease_unassigned.rb +64 -0
  22. data/lib/lib/dhcp/messages/lease_unknown.rb +64 -0
  23. data/lib/lib/dhcp/messages/message.rb +285 -0
  24. data/lib/lib/dhcp/messages/nack.rb +64 -0
  25. data/lib/lib/dhcp/messages/offer.rb +74 -0
  26. data/lib/lib/dhcp/messages/release.rb +64 -0
  27. data/lib/lib/dhcp/messages/request.rb +71 -0
  28. data/lib/lib/dhcp/options.rb +73 -0
  29. data/lib/lib/dhcp/options/option.rb +249 -0
  30. data/lib/lib/dhcp/options/option0.rb +34 -0
  31. data/lib/lib/dhcp/options/option1.rb +24 -0
  32. data/lib/lib/dhcp/options/option10.rb +20 -0
  33. data/lib/lib/dhcp/options/option100.rb +17 -0
  34. data/lib/lib/dhcp/options/option101.rb +17 -0
  35. data/lib/lib/dhcp/options/option102.rb +17 -0
  36. data/lib/lib/dhcp/options/option103.rb +17 -0
  37. data/lib/lib/dhcp/options/option104.rb +17 -0
  38. data/lib/lib/dhcp/options/option105.rb +17 -0
  39. data/lib/lib/dhcp/options/option106.rb +17 -0
  40. data/lib/lib/dhcp/options/option107.rb +17 -0
  41. data/lib/lib/dhcp/options/option108.rb +17 -0
  42. data/lib/lib/dhcp/options/option109.rb +17 -0
  43. data/lib/lib/dhcp/options/option11.rb +20 -0
  44. data/lib/lib/dhcp/options/option110.rb +17 -0
  45. data/lib/lib/dhcp/options/option111.rb +17 -0
  46. data/lib/lib/dhcp/options/option112.rb +17 -0
  47. data/lib/lib/dhcp/options/option113.rb +17 -0
  48. data/lib/lib/dhcp/options/option114.rb +17 -0
  49. data/lib/lib/dhcp/options/option115.rb +17 -0
  50. data/lib/lib/dhcp/options/option116.rb +17 -0
  51. data/lib/lib/dhcp/options/option117.rb +17 -0
  52. data/lib/lib/dhcp/options/option118.rb +17 -0
  53. data/lib/lib/dhcp/options/option119.rb +17 -0
  54. data/lib/lib/dhcp/options/option12.rb +20 -0
  55. data/lib/lib/dhcp/options/option120.rb +17 -0
  56. data/lib/lib/dhcp/options/option121.rb +17 -0
  57. data/lib/lib/dhcp/options/option122.rb +341 -0
  58. data/lib/lib/dhcp/options/option123.rb +17 -0
  59. data/lib/lib/dhcp/options/option124.rb +17 -0
  60. data/lib/lib/dhcp/options/option125.rb +17 -0
  61. data/lib/lib/dhcp/options/option126.rb +17 -0
  62. data/lib/lib/dhcp/options/option127.rb +17 -0
  63. data/lib/lib/dhcp/options/option128.rb +17 -0
  64. data/lib/lib/dhcp/options/option129.rb +17 -0
  65. data/lib/lib/dhcp/options/option13.rb +43 -0
  66. data/lib/lib/dhcp/options/option130.rb +17 -0
  67. data/lib/lib/dhcp/options/option131.rb +17 -0
  68. data/lib/lib/dhcp/options/option132.rb +17 -0
  69. data/lib/lib/dhcp/options/option133.rb +17 -0
  70. data/lib/lib/dhcp/options/option134.rb +17 -0
  71. data/lib/lib/dhcp/options/option135.rb +17 -0
  72. data/lib/lib/dhcp/options/option136.rb +17 -0
  73. data/lib/lib/dhcp/options/option137.rb +17 -0
  74. data/lib/lib/dhcp/options/option138.rb +17 -0
  75. data/lib/lib/dhcp/options/option139.rb +17 -0
  76. data/lib/lib/dhcp/options/option14.rb +21 -0
  77. data/lib/lib/dhcp/options/option140.rb +17 -0
  78. data/lib/lib/dhcp/options/option141.rb +17 -0
  79. data/lib/lib/dhcp/options/option142.rb +17 -0
  80. data/lib/lib/dhcp/options/option143.rb +17 -0
  81. data/lib/lib/dhcp/options/option144.rb +17 -0
  82. data/lib/lib/dhcp/options/option145.rb +17 -0
  83. data/lib/lib/dhcp/options/option146.rb +17 -0
  84. data/lib/lib/dhcp/options/option147.rb +17 -0
  85. data/lib/lib/dhcp/options/option148.rb +17 -0
  86. data/lib/lib/dhcp/options/option149.rb +17 -0
  87. data/lib/lib/dhcp/options/option15.rb +20 -0
  88. data/lib/lib/dhcp/options/option150.rb +17 -0
  89. data/lib/lib/dhcp/options/option151.rb +17 -0
  90. data/lib/lib/dhcp/options/option152.rb +17 -0
  91. data/lib/lib/dhcp/options/option153.rb +17 -0
  92. data/lib/lib/dhcp/options/option154.rb +17 -0
  93. data/lib/lib/dhcp/options/option155.rb +17 -0
  94. data/lib/lib/dhcp/options/option156.rb +17 -0
  95. data/lib/lib/dhcp/options/option157.rb +17 -0
  96. data/lib/lib/dhcp/options/option158.rb +17 -0
  97. data/lib/lib/dhcp/options/option159.rb +17 -0
  98. data/lib/lib/dhcp/options/option16.rb +19 -0
  99. data/lib/lib/dhcp/options/option160.rb +17 -0
  100. data/lib/lib/dhcp/options/option161.rb +17 -0
  101. data/lib/lib/dhcp/options/option162.rb +17 -0
  102. data/lib/lib/dhcp/options/option163.rb +17 -0
  103. data/lib/lib/dhcp/options/option164.rb +17 -0
  104. data/lib/lib/dhcp/options/option165.rb +17 -0
  105. data/lib/lib/dhcp/options/option166.rb +17 -0
  106. data/lib/lib/dhcp/options/option167.rb +17 -0
  107. data/lib/lib/dhcp/options/option168.rb +17 -0
  108. data/lib/lib/dhcp/options/option169.rb +17 -0
  109. data/lib/lib/dhcp/options/option17.rb +22 -0
  110. data/lib/lib/dhcp/options/option170.rb +17 -0
  111. data/lib/lib/dhcp/options/option171.rb +17 -0
  112. data/lib/lib/dhcp/options/option172.rb +17 -0
  113. data/lib/lib/dhcp/options/option173.rb +17 -0
  114. data/lib/lib/dhcp/options/option174.rb +17 -0
  115. data/lib/lib/dhcp/options/option175.rb +17 -0
  116. data/lib/lib/dhcp/options/option176.rb +17 -0
  117. data/lib/lib/dhcp/options/option177.rb +17 -0
  118. data/lib/lib/dhcp/options/option178.rb +17 -0
  119. data/lib/lib/dhcp/options/option179.rb +17 -0
  120. data/lib/lib/dhcp/options/option18.rb +23 -0
  121. data/lib/lib/dhcp/options/option180.rb +17 -0
  122. data/lib/lib/dhcp/options/option181.rb +17 -0
  123. data/lib/lib/dhcp/options/option182.rb +17 -0
  124. data/lib/lib/dhcp/options/option183.rb +17 -0
  125. data/lib/lib/dhcp/options/option184.rb +17 -0
  126. data/lib/lib/dhcp/options/option185.rb +17 -0
  127. data/lib/lib/dhcp/options/option186.rb +17 -0
  128. data/lib/lib/dhcp/options/option187.rb +17 -0
  129. data/lib/lib/dhcp/options/option188.rb +17 -0
  130. data/lib/lib/dhcp/options/option189.rb +17 -0
  131. data/lib/lib/dhcp/options/option19.rb +20 -0
  132. data/lib/lib/dhcp/options/option190.rb +17 -0
  133. data/lib/lib/dhcp/options/option191.rb +17 -0
  134. data/lib/lib/dhcp/options/option192.rb +17 -0
  135. data/lib/lib/dhcp/options/option193.rb +17 -0
  136. data/lib/lib/dhcp/options/option194.rb +17 -0
  137. data/lib/lib/dhcp/options/option195.rb +17 -0
  138. data/lib/lib/dhcp/options/option196.rb +17 -0
  139. data/lib/lib/dhcp/options/option197.rb +17 -0
  140. data/lib/lib/dhcp/options/option198.rb +17 -0
  141. data/lib/lib/dhcp/options/option199.rb +17 -0
  142. data/lib/lib/dhcp/options/option2.rb +45 -0
  143. data/lib/lib/dhcp/options/option20.rb +22 -0
  144. data/lib/lib/dhcp/options/option200.rb +17 -0
  145. data/lib/lib/dhcp/options/option201.rb +17 -0
  146. data/lib/lib/dhcp/options/option202.rb +17 -0
  147. data/lib/lib/dhcp/options/option203.rb +17 -0
  148. data/lib/lib/dhcp/options/option204.rb +17 -0
  149. data/lib/lib/dhcp/options/option205.rb +17 -0
  150. data/lib/lib/dhcp/options/option206.rb +17 -0
  151. data/lib/lib/dhcp/options/option207.rb +17 -0
  152. data/lib/lib/dhcp/options/option208.rb +17 -0
  153. data/lib/lib/dhcp/options/option209.rb +17 -0
  154. data/lib/lib/dhcp/options/option21.rb +87 -0
  155. data/lib/lib/dhcp/options/option210.rb +17 -0
  156. data/lib/lib/dhcp/options/option211.rb +17 -0
  157. data/lib/lib/dhcp/options/option212.rb +17 -0
  158. data/lib/lib/dhcp/options/option213.rb +17 -0
  159. data/lib/lib/dhcp/options/option214.rb +17 -0
  160. data/lib/lib/dhcp/options/option215.rb +17 -0
  161. data/lib/lib/dhcp/options/option216.rb +17 -0
  162. data/lib/lib/dhcp/options/option217.rb +17 -0
  163. data/lib/lib/dhcp/options/option218.rb +17 -0
  164. data/lib/lib/dhcp/options/option219.rb +17 -0
  165. data/lib/lib/dhcp/options/option22.rb +43 -0
  166. data/lib/lib/dhcp/options/option220.rb +17 -0
  167. data/lib/lib/dhcp/options/option221.rb +17 -0
  168. data/lib/lib/dhcp/options/option222.rb +17 -0
  169. data/lib/lib/dhcp/options/option223.rb +17 -0
  170. data/lib/lib/dhcp/options/option224.rb +17 -0
  171. data/lib/lib/dhcp/options/option225.rb +17 -0
  172. data/lib/lib/dhcp/options/option226.rb +17 -0
  173. data/lib/lib/dhcp/options/option227.rb +17 -0
  174. data/lib/lib/dhcp/options/option228.rb +17 -0
  175. data/lib/lib/dhcp/options/option229.rb +17 -0
  176. data/lib/lib/dhcp/options/option23.rb +44 -0
  177. data/lib/lib/dhcp/options/option230.rb +17 -0
  178. data/lib/lib/dhcp/options/option231.rb +17 -0
  179. data/lib/lib/dhcp/options/option232.rb +17 -0
  180. data/lib/lib/dhcp/options/option233.rb +17 -0
  181. data/lib/lib/dhcp/options/option234.rb +17 -0
  182. data/lib/lib/dhcp/options/option235.rb +17 -0
  183. data/lib/lib/dhcp/options/option236.rb +17 -0
  184. data/lib/lib/dhcp/options/option237.rb +17 -0
  185. data/lib/lib/dhcp/options/option238.rb +17 -0
  186. data/lib/lib/dhcp/options/option239.rb +17 -0
  187. data/lib/lib/dhcp/options/option24.rb +45 -0
  188. data/lib/lib/dhcp/options/option240.rb +17 -0
  189. data/lib/lib/dhcp/options/option241.rb +17 -0
  190. data/lib/lib/dhcp/options/option242.rb +17 -0
  191. data/lib/lib/dhcp/options/option243.rb +17 -0
  192. data/lib/lib/dhcp/options/option244.rb +17 -0
  193. data/lib/lib/dhcp/options/option245.rb +17 -0
  194. data/lib/lib/dhcp/options/option246.rb +17 -0
  195. data/lib/lib/dhcp/options/option247.rb +17 -0
  196. data/lib/lib/dhcp/options/option248.rb +17 -0
  197. data/lib/lib/dhcp/options/option249.rb +17 -0
  198. data/lib/lib/dhcp/options/option25.rb +20 -0
  199. data/lib/lib/dhcp/options/option250.rb +17 -0
  200. data/lib/lib/dhcp/options/option251.rb +17 -0
  201. data/lib/lib/dhcp/options/option252.rb +17 -0
  202. data/lib/lib/dhcp/options/option253.rb +17 -0
  203. data/lib/lib/dhcp/options/option254.rb +17 -0
  204. data/lib/lib/dhcp/options/option255.rb +29 -0
  205. data/lib/lib/dhcp/options/option26.rb +45 -0
  206. data/lib/lib/dhcp/options/option27.rb +16 -0
  207. data/lib/lib/dhcp/options/option28.rb +21 -0
  208. data/lib/lib/dhcp/options/option29.rb +16 -0
  209. data/lib/lib/dhcp/options/option3.rb +22 -0
  210. data/lib/lib/dhcp/options/option30.rb +16 -0
  211. data/lib/lib/dhcp/options/option31.rb +16 -0
  212. data/lib/lib/dhcp/options/option32.rb +18 -0
  213. data/lib/lib/dhcp/options/option33.rb +20 -0
  214. data/lib/lib/dhcp/options/option34.rb +16 -0
  215. data/lib/lib/dhcp/options/option35.rb +43 -0
  216. data/lib/lib/dhcp/options/option36.rb +16 -0
  217. data/lib/lib/dhcp/options/option37.rb +43 -0
  218. data/lib/lib/dhcp/options/option38.rb +43 -0
  219. data/lib/lib/dhcp/options/option39.rb +16 -0
  220. data/lib/lib/dhcp/options/option4.rb +21 -0
  221. data/lib/lib/dhcp/options/option40.rb +18 -0
  222. data/lib/lib/dhcp/options/option41.rb +18 -0
  223. data/lib/lib/dhcp/options/option42.rb +22 -0
  224. data/lib/lib/dhcp/options/option43.rb +16 -0
  225. data/lib/lib/dhcp/options/option44.rb +17 -0
  226. data/lib/lib/dhcp/options/option45.rb +18 -0
  227. data/lib/lib/dhcp/options/option46.rb +43 -0
  228. data/lib/lib/dhcp/options/option47.rb +17 -0
  229. data/lib/lib/dhcp/options/option48.rb +17 -0
  230. data/lib/lib/dhcp/options/option49.rb +17 -0
  231. data/lib/lib/dhcp/options/option5.rb +23 -0
  232. data/lib/lib/dhcp/options/option50.rb +16 -0
  233. data/lib/lib/dhcp/options/option51.rb +43 -0
  234. data/lib/lib/dhcp/options/option52.rb +45 -0
  235. data/lib/lib/dhcp/options/option53.rb +50 -0
  236. data/lib/lib/dhcp/options/option54.rb +16 -0
  237. data/lib/lib/dhcp/options/option55.rb +52 -0
  238. data/lib/lib/dhcp/options/option56.rb +20 -0
  239. data/lib/lib/dhcp/options/option57.rb +52 -0
  240. data/lib/lib/dhcp/options/option58.rb +45 -0
  241. data/lib/lib/dhcp/options/option59.rb +45 -0
  242. data/lib/lib/dhcp/options/option6.rb +23 -0
  243. data/lib/lib/dhcp/options/option60.rb +16 -0
  244. data/lib/lib/dhcp/options/option61.rb +37 -0
  245. data/lib/lib/dhcp/options/option62.rb +16 -0
  246. data/lib/lib/dhcp/options/option63.rb +16 -0
  247. data/lib/lib/dhcp/options/option64.rb +20 -0
  248. data/lib/lib/dhcp/options/option65.rb +17 -0
  249. data/lib/lib/dhcp/options/option66.rb +20 -0
  250. data/lib/lib/dhcp/options/option67.rb +20 -0
  251. data/lib/lib/dhcp/options/option68.rb +19 -0
  252. data/lib/lib/dhcp/options/option69.rb +17 -0
  253. data/lib/lib/dhcp/options/option7.rb +22 -0
  254. data/lib/lib/dhcp/options/option70.rb +17 -0
  255. data/lib/lib/dhcp/options/option71.rb +17 -0
  256. data/lib/lib/dhcp/options/option72.rb +17 -0
  257. data/lib/lib/dhcp/options/option73.rb +17 -0
  258. data/lib/lib/dhcp/options/option74.rb +17 -0
  259. data/lib/lib/dhcp/options/option75.rb +17 -0
  260. data/lib/lib/dhcp/options/option76.rb +17 -0
  261. data/lib/lib/dhcp/options/option77.rb +16 -0
  262. data/lib/lib/dhcp/options/option78.rb +16 -0
  263. data/lib/lib/dhcp/options/option79.rb +16 -0
  264. data/lib/lib/dhcp/options/option8.rb +22 -0
  265. data/lib/lib/dhcp/options/option80.rb +16 -0
  266. data/lib/lib/dhcp/options/option81.rb +16 -0
  267. data/lib/lib/dhcp/options/option82.rb +20 -0
  268. data/lib/lib/dhcp/options/option83.rb +16 -0
  269. data/lib/lib/dhcp/options/option84.rb +16 -0
  270. data/lib/lib/dhcp/options/option85.rb +16 -0
  271. data/lib/lib/dhcp/options/option86.rb +17 -0
  272. data/lib/lib/dhcp/options/option87.rb +16 -0
  273. data/lib/lib/dhcp/options/option88.rb +16 -0
  274. data/lib/lib/dhcp/options/option89.rb +16 -0
  275. data/lib/lib/dhcp/options/option9.rb +21 -0
  276. data/lib/lib/dhcp/options/option90.rb +16 -0
  277. data/lib/lib/dhcp/options/option91.rb +17 -0
  278. data/lib/lib/dhcp/options/option92.rb +17 -0
  279. data/lib/lib/dhcp/options/option93.rb +17 -0
  280. data/lib/lib/dhcp/options/option94.rb +17 -0
  281. data/lib/lib/dhcp/options/option95.rb +17 -0
  282. data/lib/lib/dhcp/options/option96.rb +17 -0
  283. data/lib/lib/dhcp/options/option97.rb +17 -0
  284. data/lib/lib/dhcp/options/option98.rb +17 -0
  285. data/lib/lib/dhcp/options/option99.rb +17 -0
  286. data/lib/lib/dhcp/options/sub_option.rb +32 -0
  287. data/lib/lib/dhcp/options/type/bool.rb +55 -0
  288. data/lib/lib/dhcp/options/type/ip_address.rb +73 -0
  289. data/lib/lib/dhcp/options/type/ip_array.rb +41 -0
  290. data/lib/lib/dhcp/options/type/netmask.rb +56 -0
  291. data/lib/lib/dhcp/options/type/raw.rb +51 -0
  292. data/lib/lib/dhcp/options/type/string.rb +49 -0
  293. data/lib/lib/dhcp/options/type/sub_option.rb +83 -0
  294. data/lib/lib/dhcp/packet.rb +96 -0
  295. data/lib/lib/dhcp/version.rb +5 -0
  296. metadata +409 -0
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option242 < Option
13
+ #TODO Option242
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option243 < Option
13
+ #TODO Option243
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option244 < Option
13
+ #TODO Option244
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option245 < Option
13
+ #TODO Option245
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option246 < Option
13
+ #TODO Option246
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option247 < Option
13
+ #TODO Option247
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option248 < Option
13
+ #TODO Option248
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option249 < Option
13
+ #TODO Option249
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,20 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 22.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option25 < Option
13
+ # Path MTU Plateau Table Option, The code for this option is 25. Its minimum length is 2,
14
+ # and the length MUST be a multiple of 2.
15
+
16
+ # TODO Option25
17
+ include Lib::DHCP::Option::Type::Raw
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option250 < Option
13
+ #TODO Option250
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option251 < Option
13
+ #TODO Option251
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option252 < Option
13
+ #TODO Option252
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option253 < Option
13
+ #TODO Option253
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+
7
+ require_relative 'option'
8
+ require_relative 'type/raw'
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option254 < Option
13
+ #TODO Option254
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,29 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 23.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+ module Lib
7
+ module DHCP
8
+ class Option255 < Option
9
+ def initialize
10
+ super END_OPTION
11
+ end
12
+
13
+ def pack
14
+ [END_OPTION].pack('C')
15
+ end
16
+
17
+ private
18
+
19
+ def self.unpack(oid, len, payload=nil)
20
+ payload = nil if payload.size == 0
21
+ len = 0 if len.nil?
22
+ raise ArgumentError, "OID Mismatch for END Option - #{oid}" unless oid.to_i == END_OPTION
23
+ raise ArgumentError, "Wrong END Option length - #{len}" unless len == 0
24
+ raise ArgumentError, "END Option shouldn't have payload - #{payload} - given" unless payload.nil?
25
+ self.new
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,45 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 22.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+ require_relative 'option'
7
+
8
+ module Lib
9
+ module DHCP
10
+ class Option26 < Option
11
+
12
+ # Interface MTU Option, The code for this option is 26, and its length is 2.
13
+
14
+ def_delegators :@payload, :to_s
15
+
16
+ def initialize(mtu)
17
+ super MTU_SIZE, mtu.to_i
18
+ end
19
+
20
+ def pack
21
+ [@oid, 2, @payload.to_i].pack('C2n')
22
+ end
23
+
24
+ def payload=(mtu)
25
+ @payload = mtu.to_i
26
+ end
27
+
28
+ def len
29
+ 2
30
+ end
31
+
32
+ alias_method :mtu, :payload
33
+ alias_method :mtu=, :payload=
34
+
35
+ private
36
+
37
+ def self.unpack(oid, len, payload)
38
+ raise ArgumentError, "OID Mismatch for #{Net::DHCP::Option::NAME[oid]} - #{oid}" unless oid.to_i == MTU_SIZE
39
+ raise ArgumentError, "Wrong #{Net::DHCP::Option::NAME[oid]} length - #{len}" unless len == 2
40
+ self.new payload.unpack('n').first.to_i
41
+ end
42
+
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,16 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 22.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+ require_relative 'option'
7
+ require_relative 'type/bool'
8
+
9
+ module Lib
10
+ module DHCP
11
+ class Option27 < Option
12
+ # All Subnets are Local Option , The code for this option is 27, and its length is 1.
13
+ include Type::BOOL
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,21 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 22.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+ require_relative 'option'
7
+ require_relative 'type/ip_address'
8
+
9
+ module Lib
10
+ module DHCP
11
+ class Option28 < Option
12
+ # Broadcast Address Option, The code for this option is 28, and its length is 4.
13
+
14
+ include Type::IPAddress
15
+
16
+ alias_method :broadcast, :payload
17
+ alias_method :broadcast=, :payload=
18
+
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,16 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 22.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+ require_relative 'option'
7
+ require_relative 'type/bool'
8
+
9
+ module Lib
10
+ module DHCP
11
+ class Option29 < Option
12
+ # Perform Mask Discovery Option, The code for this option is 29, and its length is 1.
13
+ include Type::BOOL
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,22 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 22.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+ require 'lib/dhcp/options/option'
7
+ require 'lib/dhcp/options/type/ip_array'
8
+
9
+
10
+ module Lib
11
+ module DHCP
12
+ class Option3 < Option
13
+ #Router Option The minimum length for the router option is 4 octets, and the length MUST always be
14
+ #a multiple of 4 Multiple IP ADDRESS
15
+
16
+ include Type::IPArray
17
+
18
+ alias_method :router_address, :payload
19
+ alias_method :router_address=, :payload=
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,16 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 22.03.2016 by Piotr Wojcieszonek
4
+
5
+
6
+ require_relative 'option'
7
+ require_relative 'type/bool'
8
+
9
+ module Lib
10
+ module DHCP
11
+ class Option30 < Option
12
+ # Mask Supplier Option, The code for this option is 30, and its length is 1.
13
+ include Type::BOOL
14
+ end
15
+ end
16
+ end