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 Option187 < Option
13
+ #TODO Option187
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 Option188 < Option
13
+ #TODO Option188
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 Option189 < Option
13
+ #TODO Option189
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
+ require_relative 'option'
7
+ require_relative 'type/bool'
8
+
9
+ module Lib
10
+ module DHCP
11
+ class Option19 < Option
12
+ # IP Forwarding Enable/Disable Option, The code for this option is 19, and its length is 1.
13
+
14
+ include Type::BOOL
15
+
16
+ alias_method :ip_forward, :payload
17
+ alias_method :ip_forward=, :payload=
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 Option190 < Option
13
+ #TODO Option190
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 Option191 < Option
13
+ #TODO Option191
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 Option192 < Option
13
+ #TODO Option192
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 Option193 < Option
13
+ #TODO Option193
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 Option194 < Option
13
+ #TODO Option194
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 Option195 < Option
13
+ #TODO Option195
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 Option196 < Option
13
+ #TODO Option196
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 Option197 < Option
13
+ #TODO Option197
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 Option198 < Option
13
+ #TODO Option198
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 Option199 < Option
13
+ #TODO Option199
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,45 @@
1
+ #Author: Piotr Wojcieszonek
2
+ #e-mail: piotr@wojcieszonek.pl
3
+ # Copyright 21.03.2016 by Piotr Wojcieszonek
4
+
5
+ require 'lib/dhcp/options/option'
6
+
7
+ module Lib
8
+ module DHCP
9
+ class Option2 < Option
10
+ # Time Offset length is 4 octets
11
+
12
+ def_delegators :@payload, :to_s
13
+
14
+ def initialize(time_offset)
15
+ super TIME_OFFSET, time_offset.to_i
16
+ end
17
+
18
+ def time_offset=(time_offset)
19
+ raise ArgumentError, "TIME OFFSET out of range - #{time_offset}" if time_offset.to_i > 0xffffffff
20
+ @payload = time_offset.to_i
21
+ end
22
+
23
+ def pack
24
+ [TIME_OFFSET, 4, @payload].pack('C2N')
25
+ end
26
+
27
+ def len
28
+ 4
29
+ end
30
+
31
+ alias_method :time_offset, :payload
32
+ alias_method :payload=, :time_offset=
33
+
34
+ private
35
+
36
+ def self.unpack(oid, len, payload)
37
+ raise ArgumentError, "OID Mismatch for TIME OFFSET Option - #{oid}" unless oid.to_i == TIME_OFFSET
38
+ raise ArgumentError, "Wrong TIME OFFSET Option length - #{len}" unless len == 4
39
+ time_offset = payload.to_s.unpack('N').first
40
+ raise ArgumentError, "TIME OFFSET out of range - #{time_offset}" if time_offset.to_i > 0xffffffff
41
+ self.new time_offset
42
+ end
43
+ end
44
+ end
45
+ 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_relative 'option'
7
+ require_relative 'type/bool'
8
+
9
+ module Lib
10
+ module DHCP
11
+ class Option20 < Option
12
+ # Non-Local Source Routing Enable/Disable Option The code for this option is 20, and its length is 1.
13
+
14
+ include Type::BOOL
15
+
16
+ alias_method :non_local_routing, :payload
17
+ alias_method :src_route, :payload
18
+ alias_method :non_local_routing=, :payload=
19
+ alias_method :src_route=, :payload=
20
+ end
21
+ end
22
+ 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 Option200 < Option
13
+ #TODO Option200
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 Option201 < Option
13
+ #TODO Option201
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 Option202 < Option
13
+ #TODO Option202
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 Option203 < Option
13
+ #TODO Option203
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 Option204 < Option
13
+ #TODO Option204
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 Option205 < Option
13
+ #TODO Option205
14
+ include Lib::DHCP::Option::Type::Raw
15
+ end
16
+ end
17
+ end