libnet4r 0.1

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 (306) hide show
  1. data/CHANGELOG +15 -0
  2. data/LICENSE +28 -0
  3. data/README +187 -0
  4. data/Rakefile +110 -0
  5. data/ext/extconf.rb +60 -0
  6. data/ext/libnet.c +705 -0
  7. data/ext/libnet_arp.c +152 -0
  8. data/ext/libnet_ethernet.c +115 -0
  9. data/ext/libnet_ipv4.c +140 -0
  10. data/ext/libnet_ipv6.c +138 -0
  11. data/ext/libnet_udp.c +112 -0
  12. data/ext/libnet_vlan.c +131 -0
  13. data/lib/libnet4r/header.rb +609 -0
  14. data/lib/libnet4r/helpers.rb +19 -0
  15. data/lib/libnet4r/libnet.rb +39 -0
  16. data/libnet/CVS/Entries +24 -0
  17. data/libnet/CVS/Repository +1 -0
  18. data/libnet/CVS/Root +1 -0
  19. data/libnet/Makefile.am +15 -0
  20. data/libnet/Makefile.am.common +10 -0
  21. data/libnet/Makefile.in +443 -0
  22. data/libnet/README +21 -0
  23. data/libnet/VERSION +1 -0
  24. data/libnet/acconfig.h +36 -0
  25. data/libnet/acinclude.m4 +463 -0
  26. data/libnet/aclocal.m4 +1337 -0
  27. data/libnet/autom4te.cache/CVS/Entries +1 -0
  28. data/libnet/autom4te.cache/CVS/Repository +1 -0
  29. data/libnet/autom4te.cache/CVS/Root +1 -0
  30. data/libnet/autom4te.cache/output.0 +6225 -0
  31. data/libnet/autom4te.cache/requests +111 -0
  32. data/libnet/autom4te.cache/traces.0 +272 -0
  33. data/libnet/config.guess +1314 -0
  34. data/libnet/config.sub +1410 -0
  35. data/libnet/configure +6225 -0
  36. data/libnet/configure.in +235 -0
  37. data/libnet/doc/BUGS +19 -0
  38. data/libnet/doc/CHANGELOG +527 -0
  39. data/libnet/doc/CONTRIB +53 -0
  40. data/libnet/doc/COPYING +31 -0
  41. data/libnet/doc/CVS/Entries +12 -0
  42. data/libnet/doc/CVS/Repository +1 -0
  43. data/libnet/doc/CVS/Root +1 -0
  44. data/libnet/doc/DESIGN_NOTES +134 -0
  45. data/libnet/doc/MIGRATION +172 -0
  46. data/libnet/doc/PACKET_BUILDING +161 -0
  47. data/libnet/doc/PORTED +45 -0
  48. data/libnet/doc/RAWSOCKET_NON_SEQUITUR +41 -0
  49. data/libnet/doc/TODO +96 -0
  50. data/libnet/doc/html/acconfig_8h-source.html +49 -0
  51. data/libnet/doc/html/annotated.html +17 -0
  52. data/libnet/doc/html/bpf_8h-source.html +277 -0
  53. data/libnet/doc/html/config_8h-source.html +125 -0
  54. data/libnet/doc/html/doxygen.css +169 -0
  55. data/libnet/doc/html/doxygen.png +0 -0
  56. data/libnet/doc/html/files.html +29 -0
  57. data/libnet/doc/html/functions.html +26 -0
  58. data/libnet/doc/html/functions_vars.html +26 -0
  59. data/libnet/doc/html/getopt_8h-source.html +97 -0
  60. data/libnet/doc/html/globals.html +219 -0
  61. data/libnet/doc/html/globals_defs.html +104 -0
  62. data/libnet/doc/html/globals_func.html +136 -0
  63. data/libnet/doc/html/gnuc_8h-source.html +56 -0
  64. data/libnet/doc/html/graph_legend.dot +22 -0
  65. data/libnet/doc/html/graph_legend.html +75 -0
  66. data/libnet/doc/html/ifaddrlist_8h-source.html +65 -0
  67. data/libnet/doc/html/in__systm_8h-source.html +90 -0
  68. data/libnet/doc/html/index.html +17 -0
  69. data/libnet/doc/html/libnet-asn1_8h-source.html +268 -0
  70. data/libnet/doc/html/libnet-functions_8h-source.html +742 -0
  71. data/libnet/doc/html/libnet-functions_8h.html +8844 -0
  72. data/libnet/doc/html/libnet-headers_8h-source.html +1655 -0
  73. data/libnet/doc/html/libnet-headers_8h.html +3053 -0
  74. data/libnet/doc/html/libnet-macros_8h-source.html +161 -0
  75. data/libnet/doc/html/libnet-macros_8h.html +358 -0
  76. data/libnet/doc/html/libnet-structures_8h-source.html +233 -0
  77. data/libnet/doc/html/libnet-types_8h-source.html +58 -0
  78. data/libnet/doc/html/libnet_8h-source.html +119 -0
  79. data/libnet/doc/html/libnet_8h.html +24 -0
  80. data/libnet/doc/html/structlibnet__802__1q__hdr.html +145 -0
  81. data/libnet/doc/html/structlibnet__802__1x__hdr.html +97 -0
  82. data/libnet/doc/libnet.doxygen.conf +1102 -0
  83. data/libnet/doc/man/CVS/Entries +1 -0
  84. data/libnet/doc/man/CVS/Repository +1 -0
  85. data/libnet/doc/man/CVS/Root +1 -0
  86. data/libnet/doc/man/man3/libnet-functions.h.3 +3136 -0
  87. data/libnet/doc/man/man3/libnet-headers.h.3 +1872 -0
  88. data/libnet/doc/man/man3/libnet-macros.h.3 +172 -0
  89. data/libnet/doc/man/man3/libnet.h.3 +17 -0
  90. data/libnet/doc/man/man3/libnet_802_1q_hdr.3 +53 -0
  91. data/libnet/doc/man/man3/libnet_802_1x_hdr.3 +41 -0
  92. data/libnet/include/CVS/Entries +10 -0
  93. data/libnet/include/CVS/Repository +1 -0
  94. data/libnet/include/CVS/Root +1 -0
  95. data/libnet/include/Makefile.am +7 -0
  96. data/libnet/include/Makefile.in +395 -0
  97. data/libnet/include/bpf.h +264 -0
  98. data/libnet/include/config.h.in +118 -0
  99. data/libnet/include/gnuc.h +43 -0
  100. data/libnet/include/ifaddrlist.h +52 -0
  101. data/libnet/include/libnet/CVS/Entries +9 -0
  102. data/libnet/include/libnet/CVS/Repository +1 -0
  103. data/libnet/include/libnet/CVS/Root +1 -0
  104. data/libnet/include/libnet/Makefile.am +12 -0
  105. data/libnet/include/libnet/Makefile.in +294 -0
  106. data/libnet/include/libnet/libnet-asn1.h +255 -0
  107. data/libnet/include/libnet/libnet-functions.h +2157 -0
  108. data/libnet/include/libnet/libnet-headers.h +1662 -0
  109. data/libnet/include/libnet/libnet-macros.h +186 -0
  110. data/libnet/include/libnet/libnet-structures.h +222 -0
  111. data/libnet/include/libnet/libnet-types.h +45 -0
  112. data/libnet/include/libnet.h.in +132 -0
  113. data/libnet/include/stamp-h.in +1 -0
  114. data/libnet/include/win32/CVS/Entries +5 -0
  115. data/libnet/include/win32/CVS/Repository +1 -0
  116. data/libnet/include/win32/CVS/Root +1 -0
  117. data/libnet/include/win32/config.h +112 -0
  118. data/libnet/include/win32/getopt.h +84 -0
  119. data/libnet/include/win32/in_systm.h +77 -0
  120. data/libnet/include/win32/libnet.h +106 -0
  121. data/libnet/install-sh +250 -0
  122. data/libnet/libnet-config.in +62 -0
  123. data/libnet/libnet.doxygen.conf +1102 -0
  124. data/libnet/man/CVS/Entries +1 -0
  125. data/libnet/man/CVS/Repository +1 -0
  126. data/libnet/man/CVS/Root +1 -0
  127. data/libnet/missing +283 -0
  128. data/libnet/mkinstalldirs +40 -0
  129. data/libnet/sample/CVS/Entries +47 -0
  130. data/libnet/sample/CVS/Repository +1 -0
  131. data/libnet/sample/CVS/Root +1 -0
  132. data/libnet/sample/Makefile.am +63 -0
  133. data/libnet/sample/Makefile.in +729 -0
  134. data/libnet/sample/arp-new.c +144 -0
  135. data/libnet/sample/arp.c +151 -0
  136. data/libnet/sample/bgp4_hdr.c +225 -0
  137. data/libnet/sample/bgp4_notification.c +242 -0
  138. data/libnet/sample/bgp4_open.c +266 -0
  139. data/libnet/sample/bgp4_update.c +337 -0
  140. data/libnet/sample/cdp.c +187 -0
  141. data/libnet/sample/dhcp_discover.c +257 -0
  142. data/libnet/sample/dns.c +260 -0
  143. data/libnet/sample/dot1x.c +113 -0
  144. data/libnet/sample/fddi_tcp1.c +213 -0
  145. data/libnet/sample/fddi_tcp2.c +209 -0
  146. data/libnet/sample/get_addr.c +112 -0
  147. data/libnet/sample/gre.c +410 -0
  148. data/libnet/sample/icmp6_echoreq.c +184 -0
  149. data/libnet/sample/icmp_echo_cq.c +201 -0
  150. data/libnet/sample/icmp_redirect.c +200 -0
  151. data/libnet/sample/icmp_timeexceed.c +190 -0
  152. data/libnet/sample/icmp_timestamp.c +157 -0
  153. data/libnet/sample/icmp_unreach.c +204 -0
  154. data/libnet/sample/ieee.c +177 -0
  155. data/libnet/sample/ip_link.c +201 -0
  156. data/libnet/sample/ip_raw.c +180 -0
  157. data/libnet/sample/isl.c +167 -0
  158. data/libnet/sample/libnet_test.h +60 -0
  159. data/libnet/sample/mpls.c +251 -0
  160. data/libnet/sample/ntp.c +193 -0
  161. data/libnet/sample/ospf_hello.c +179 -0
  162. data/libnet/sample/ospf_lsa.c +190 -0
  163. data/libnet/sample/ping_of_death.c +171 -0
  164. data/libnet/sample/rpc_tcp.c +214 -0
  165. data/libnet/sample/rpc_udp.c +213 -0
  166. data/libnet/sample/sebek.c +299 -0
  167. data/libnet/sample/smurf.c +194 -0
  168. data/libnet/sample/stp.c +227 -0
  169. data/libnet/sample/synflood.c +200 -0
  170. data/libnet/sample/synflood6.c +209 -0
  171. data/libnet/sample/synflood6_frag.c +234 -0
  172. data/libnet/sample/tcp1.c +227 -0
  173. data/libnet/sample/tcp2.c +192 -0
  174. data/libnet/sample/tftp.c +207 -0
  175. data/libnet/sample/tring_tcp1.c +214 -0
  176. data/libnet/sample/tring_tcp2.c +210 -0
  177. data/libnet/sample/udp1.c +223 -0
  178. data/libnet/sample/udp2.c +232 -0
  179. data/libnet/sample/win32/CVS/Entries +9 -0
  180. data/libnet/sample/win32/CVS/Repository +1 -0
  181. data/libnet/sample/win32/CVS/Root +1 -0
  182. data/libnet/sample/win32/arp/CVS/Entries +2 -0
  183. data/libnet/sample/win32/arp/CVS/Repository +1 -0
  184. data/libnet/sample/win32/arp/CVS/Root +1 -0
  185. data/libnet/sample/win32/arp/arp.vcproj +136 -0
  186. data/libnet/sample/win32/cdp/CVS/Entries +2 -0
  187. data/libnet/sample/win32/cdp/CVS/Repository +1 -0
  188. data/libnet/sample/win32/cdp/CVS/Root +1 -0
  189. data/libnet/sample/win32/cdp/cdp.vcproj +136 -0
  190. data/libnet/sample/win32/dhcp_discover/CVS/Entries +2 -0
  191. data/libnet/sample/win32/dhcp_discover/CVS/Repository +1 -0
  192. data/libnet/sample/win32/dhcp_discover/CVS/Root +1 -0
  193. data/libnet/sample/win32/dhcp_discover/dhcp_discover.vcproj +139 -0
  194. data/libnet/sample/win32/dns/CVS/Entries +2 -0
  195. data/libnet/sample/win32/dns/CVS/Repository +1 -0
  196. data/libnet/sample/win32/dns/CVS/Root +1 -0
  197. data/libnet/sample/win32/dns/dns.vcproj +139 -0
  198. data/libnet/sample/win32/get_addr/CVS/Entries +2 -0
  199. data/libnet/sample/win32/get_addr/CVS/Repository +1 -0
  200. data/libnet/sample/win32/get_addr/CVS/Root +1 -0
  201. data/libnet/sample/win32/get_addr/get_addr.vcproj +139 -0
  202. data/libnet/sample/win32/getopt.c +121 -0
  203. data/libnet/sample/win32/icmp_echo_cq/CVS/Entries +2 -0
  204. data/libnet/sample/win32/icmp_echo_cq/CVS/Repository +1 -0
  205. data/libnet/sample/win32/icmp_echo_cq/CVS/Root +1 -0
  206. data/libnet/sample/win32/icmp_echo_cq/icmp_echo_cq.vcproj +139 -0
  207. data/libnet/sample/win32/tcp1/CVS/Entries +2 -0
  208. data/libnet/sample/win32/tcp1/CVS/Repository +1 -0
  209. data/libnet/sample/win32/tcp1/CVS/Root +1 -0
  210. data/libnet/sample/win32/tcp1/tcp1.vcproj +142 -0
  211. data/libnet/sample/win32/udp1/CVS/Entries +3 -0
  212. data/libnet/sample/win32/udp1/CVS/Repository +1 -0
  213. data/libnet/sample/win32/udp1/CVS/Root +1 -0
  214. data/libnet/sample/win32/udp1/dns.vcproj +125 -0
  215. data/libnet/sample/win32/udp1/udp1.vcproj +139 -0
  216. data/libnet/src/CVS/Entries +60 -0
  217. data/libnet/src/CVS/Repository +1 -0
  218. data/libnet/src/CVS/Root +1 -0
  219. data/libnet/src/Makefile.am +71 -0
  220. data/libnet/src/Makefile.in +428 -0
  221. data/libnet/src/libnet_advanced.c +136 -0
  222. data/libnet/src/libnet_asn1.c +436 -0
  223. data/libnet/src/libnet_build_802.1q.c +115 -0
  224. data/libnet/src/libnet_build_802.1x.c +103 -0
  225. data/libnet/src/libnet_build_802.2.c +167 -0
  226. data/libnet/src/libnet_build_802.3.c +101 -0
  227. data/libnet/src/libnet_build_arp.c +169 -0
  228. data/libnet/src/libnet_build_bgp.c +350 -0
  229. data/libnet/src/libnet_build_cdp.c +191 -0
  230. data/libnet/src/libnet_build_data.c +90 -0
  231. data/libnet/src/libnet_build_dhcp.c +156 -0
  232. data/libnet/src/libnet_build_dns.c +129 -0
  233. data/libnet/src/libnet_build_ethernet.c +173 -0
  234. data/libnet/src/libnet_build_fddi.c +191 -0
  235. data/libnet/src/libnet_build_gre.c +427 -0
  236. data/libnet/src/libnet_build_icmp.c +437 -0
  237. data/libnet/src/libnet_build_igmp.c +112 -0
  238. data/libnet/src/libnet_build_ip.c +892 -0
  239. data/libnet/src/libnet_build_ipsec.c +232 -0
  240. data/libnet/src/libnet_build_isl.c +113 -0
  241. data/libnet/src/libnet_build_link.c +90 -0
  242. data/libnet/src/libnet_build_mpls.c +112 -0
  243. data/libnet/src/libnet_build_ntp.c +121 -0
  244. data/libnet/src/libnet_build_ospf.c +699 -0
  245. data/libnet/src/libnet_build_rip.c +108 -0
  246. data/libnet/src/libnet_build_rpc.c +138 -0
  247. data/libnet/src/libnet_build_sebek.c +108 -0
  248. data/libnet/src/libnet_build_snmp.c +52 -0
  249. data/libnet/src/libnet_build_stp.c +222 -0
  250. data/libnet/src/libnet_build_tcp.c +365 -0
  251. data/libnet/src/libnet_build_token_ring.c +193 -0
  252. data/libnet/src/libnet_build_udp.c +111 -0
  253. data/libnet/src/libnet_build_vrrp.c +117 -0
  254. data/libnet/src/libnet_checksum.c +376 -0
  255. data/libnet/src/libnet_cq.c +395 -0
  256. data/libnet/src/libnet_crc.c +113 -0
  257. data/libnet/src/libnet_dll.c +47 -0
  258. data/libnet/src/libnet_error.c +55 -0
  259. data/libnet/src/libnet_if_addr.c +415 -0
  260. data/libnet/src/libnet_init.c +234 -0
  261. data/libnet/src/libnet_internal.c +310 -0
  262. data/libnet/src/libnet_link_bpf.c +348 -0
  263. data/libnet/src/libnet_link_dlpi.c +785 -0
  264. data/libnet/src/libnet_link_linux.c +310 -0
  265. data/libnet/src/libnet_link_nit.c +125 -0
  266. data/libnet/src/libnet_link_none.c +66 -0
  267. data/libnet/src/libnet_link_pf.c +179 -0
  268. data/libnet/src/libnet_link_snit.c +149 -0
  269. data/libnet/src/libnet_link_snoop.c +166 -0
  270. data/libnet/src/libnet_link_win32.c +346 -0
  271. data/libnet/src/libnet_pblock.c +511 -0
  272. data/libnet/src/libnet_port_list.c +295 -0
  273. data/libnet/src/libnet_prand.c +106 -0
  274. data/libnet/src/libnet_raw.c +257 -0
  275. data/libnet/src/libnet_resolve.c +414 -0
  276. data/libnet/src/libnet_version.c +54 -0
  277. data/libnet/src/libnet_write.c +502 -0
  278. data/libnet/version.h.in +6 -0
  279. data/libnet/win32/CVS/Entries +15 -0
  280. data/libnet/win32/CVS/Repository +1 -0
  281. data/libnet/win32/CVS/Root +1 -0
  282. data/libnet/win32/Libnet-1.1.1-2002.sln +77 -0
  283. data/libnet/win32/Libnet-1.1.1-2003.ncb +0 -0
  284. data/libnet/win32/Libnet-1.1.1-2003.sln +84 -0
  285. data/libnet/win32/Libnet-1.1.1-2003.suo +0 -0
  286. data/libnet/win32/Libnet-1.1.1.vcproj +311 -0
  287. data/libnet/win32/Libnet-latest.ncb +0 -0
  288. data/libnet/win32/Libnet-latest.opt +0 -0
  289. data/libnet/win32/Libnet-latest.sln +77 -0
  290. data/libnet/win32/Libnet-latest.suo +0 -0
  291. data/libnet/win32/Libnet-latest.vcproj +311 -0
  292. data/libnet/win32/Libnet.dsp +337 -0
  293. data/libnet/win32/Libnet.dsw +32 -0
  294. data/libnet/win32/README.txt +57 -0
  295. data/libnet/win32/libnet_dll.def +164 -0
  296. data/test/tc_arp.rb +169 -0
  297. data/test/tc_class.rb +219 -0
  298. data/test/tc_ethernet.rb +97 -0
  299. data/test/tc_header.rb +163 -0
  300. data/test/tc_init.rb +25 -0
  301. data/test/tc_ipv4.rb +219 -0
  302. data/test/tc_ipv6.rb +235 -0
  303. data/test/tc_udp.rb +229 -0
  304. data/test/tc_vlan.rb +118 -0
  305. data/test/ts_all.rb +15 -0
  306. metadata +401 -0
@@ -0,0 +1,233 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
+ <title>libnet: libnet-structures.h Source File</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ </head><body>
6
+ <!-- Generated by Doxygen 1.3.4 -->
7
+ <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
8
+ <h1>libnet-structures.h</h1><div class="fragment"><pre>00001 <span class="comment">/*</span>
9
+ 00002 <span class="comment"> * $Id: libnet-structures.h,v 1.16 2004/02/16 23:13:38 mike Exp $</span>
10
+ 00003 <span class="comment"> *</span>
11
+ 00004 <span class="comment"> * libnet-structures.h - Network routine library structures header file</span>
12
+ 00005 <span class="comment"> *</span>
13
+ 00006 <span class="comment"> * Copyright (c) 1998 - 2004 Mike D. Schiffman &lt;mike@infonexus.com&gt;</span>
14
+ 00007 <span class="comment"> * All rights reserved.</span>
15
+ 00008 <span class="comment"> *</span>
16
+ 00009 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
17
+ 00010 <span class="comment"> * modification, are permitted provided that the following conditions</span>
18
+ 00011 <span class="comment"> * are met:</span>
19
+ 00012 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
20
+ 00013 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
21
+ 00014 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
22
+ 00015 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
23
+ 00016 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
24
+ 00017 <span class="comment"> *</span>
25
+ 00018 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</span>
26
+ 00019 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
27
+ 00020 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
28
+ 00021 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</span>
29
+ 00022 <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
30
+ 00023 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span>
31
+ 00024 <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
32
+ 00025 <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
33
+ 00026 <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span>
34
+ 00027 <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span>
35
+ 00028 <span class="comment"> * SUCH DAMAGE.</span>
36
+ 00029 <span class="comment"> *</span>
37
+ 00030 <span class="comment"> */</span>
38
+ 00031
39
+ 00032 <span class="preprocessor">#ifndef __LIBNET_STRUCTURES_H</span>
40
+ 00033 <span class="preprocessor"></span><span class="preprocessor">#define __LIBNET_STRUCTURES_H</span>
41
+ 00034 <span class="preprocessor"></span>
42
+ 00035 <span class="preprocessor">#if ((__WIN32__) &amp;&amp; !(__CYGWIN__))</span>
43
+ 00036 <span class="preprocessor"></span><span class="preprocessor">#include "Packet32.h"</span>
44
+ 00037 <span class="preprocessor">#endif</span>
45
+ 00038 <span class="preprocessor"></span>
46
+ 00039 <span class="comment">/* port list chain structure */</span>
47
+ 00040 <span class="keyword">typedef</span> <span class="keyword">struct </span>libnet_port_list_chain libnet_plist_t;
48
+ 00041 <span class="keyword">struct </span>libnet_port_list_chain
49
+ 00042 {
50
+ 00043 u_int16_t node; <span class="comment">/* node number */</span>
51
+ 00044 u_int16_t bport; <span class="comment">/* beggining port */</span>
52
+ 00045 u_int16_t eport; <span class="comment">/* terminating port */</span>
53
+ 00046 u_int8_t id; <span class="comment">/* global array offset */</span>
54
+ 00047 libnet_plist_t *next; <span class="comment">/* next node in the list */</span>
55
+ 00048 };
56
+ 00049
57
+ 00050
58
+ 00051 <span class="comment">/* libnet statistics structure */</span>
59
+ 00052 <span class="keyword">struct </span>libnet_stats
60
+ 00053 {
61
+ 00054 <span class="preprocessor">#if (!defined(__WIN32__) || (__CYGWIN__))</span>
62
+ 00055 <span class="preprocessor"></span> u_int64_t packets_sent; <span class="comment">/* packets sent */</span>
63
+ 00056 u_int64_t packet_errors; <span class="comment">/* packets errors */</span>
64
+ 00057 u_int64_t bytes_written; <span class="comment">/* bytes written */</span>
65
+ 00058 <span class="preprocessor">#else</span>
66
+ 00059 <span class="preprocessor"></span> __int64 packets_sent; <span class="comment">/* packets sent */</span>
67
+ 00060 __int64 packet_errors; <span class="comment">/* packets errors */</span>
68
+ 00061 __int64 bytes_written; <span class="comment">/* bytes written */</span>
69
+ 00062 <span class="preprocessor">#endif</span>
70
+ 00063 <span class="preprocessor"></span>};
71
+ 00064
72
+ 00065
73
+ 00066 <span class="comment">/*</span>
74
+ 00067 <span class="comment"> * Libnet ptags are how we identify specific protocol blocks inside the</span>
75
+ 00068 <span class="comment"> * list.</span>
76
+ 00069 <span class="comment"> */</span>
77
+ 00070 <span class="keyword">typedef</span> int32_t libnet_ptag_t;
78
+ 00071 <span class="preprocessor">#define LIBNET_PTAG_INITIALIZER 0</span>
79
+ 00072 <span class="preprocessor"></span>
80
+ 00073
81
+ 00074 <span class="comment">/*</span>
82
+ 00075 <span class="comment"> * Libnet generic protocol block memory object. Sort of a poor man's mbuf.</span>
83
+ 00076 <span class="comment"> */</span>
84
+ 00077 <span class="keyword">struct </span>libnet_protocol_block
85
+ 00078 {
86
+ 00079 u_int8_t *buf; <span class="comment">/* protocol buffer */</span>
87
+ 00080 u_int32_t b_len; <span class="comment">/* length of buf */</span>
88
+ 00081 u_int16_t h_len; <span class="comment">/* header length (for checksumming) */</span>
89
+ 00082 u_int32_t copied; <span class="comment">/* bytes copied */</span>
90
+ 00083 u_int8_t type; <span class="comment">/* type of pblock */</span>
91
+ 00084 <span class="comment">/* this needs to be updated every time a new packet builder is added */</span>
92
+ 00085 <span class="preprocessor">#define LIBNET_PBLOCK_ARP_H 0x01 </span><span class="comment">/* ARP header */</span>
93
+ 00086 <span class="preprocessor">#define LIBNET_PBLOCK_DHCPV4_H 0x02 </span><span class="comment">/* DHCP v4 header */</span>
94
+ 00087 <span class="preprocessor">#define LIBNET_PBLOCK_DNSV4_H 0x03 </span><span class="comment">/* DNS v4 header */</span>
95
+ 00088 <span class="preprocessor">#define LIBNET_PBLOCK_ETH_H 0x04 </span><span class="comment">/* Ethernet header */</span>
96
+ 00089 <span class="preprocessor">#define LIBNET_PBLOCK_ICMPV4_H 0x05 </span><span class="comment">/* ICMP v4 base header */</span>
97
+ 00090 <span class="preprocessor">#define LIBNET_PBLOCK_ICMPV4_ECHO_H 0x06 </span><span class="comment">/* ICMP v4 echo header */</span>
98
+ 00091 <span class="preprocessor">#define LIBNET_PBLOCK_ICMPV4_MASK_H 0x07 </span><span class="comment">/* ICMP v4 mask header */</span>
99
+ 00092 <span class="preprocessor">#define LIBNET_PBLOCK_ICMPV4_UNREACH_H 0x08 </span><span class="comment">/* ICMP v4 unreach header */</span>
100
+ 00093 <span class="preprocessor">#define LIBNET_PBLOCK_ICMPV4_TIMXCEED_H 0x09 </span><span class="comment">/* ICMP v4 exceed header */</span>
101
+ 00094 <span class="preprocessor">#define LIBNET_PBLOCK_ICMPV4_REDIRECT_H 0x0a </span><span class="comment">/* ICMP v4 redirect header */</span>
102
+ 00095 <span class="preprocessor">#define LIBNET_PBLOCK_ICMPV4_TS_H 0x0b </span><span class="comment">/* ICMP v4 timestamp header */</span>
103
+ 00096 <span class="preprocessor">#define LIBNET_PBLOCK_IGMP_H 0x0c </span><span class="comment">/* IGMP header */</span>
104
+ 00097 <span class="preprocessor">#define LIBNET_PBLOCK_IPV4_H 0x0d </span><span class="comment">/* IP v4 header */</span>
105
+ 00098 <span class="preprocessor">#define LIBNET_PBLOCK_IPO_H 0x0e </span><span class="comment">/* IP v4 options */</span>
106
+ 00099 <span class="preprocessor">#define LIBNET_PBLOCK_IPDATA 0x0f </span><span class="comment">/* IP data */</span>
107
+ 00100 <span class="preprocessor">#define LIBNET_PBLOCK_OSPF_H 0x10 </span><span class="comment">/* OSPF base header */</span>
108
+ 00101 <span class="preprocessor">#define LIBNET_PBLOCK_OSPF_HELLO_H 0x11 </span><span class="comment">/* OSPF hello header */</span>
109
+ 00102 <span class="preprocessor">#define LIBNET_PBLOCK_OSPF_DBD_H 0x12 </span><span class="comment">/* OSPF dbd header */</span>
110
+ 00103 <span class="preprocessor">#define LIBNET_PBLOCK_OSPF_LSR_H 0x13 </span><span class="comment">/* OSPF lsr header */</span>
111
+ 00104 <span class="preprocessor">#define LIBNET_PBLOCK_OSPF_LSU_H 0x14 </span><span class="comment">/* OSPF lsu header */</span>
112
+ 00105 <span class="preprocessor">#define LIBNET_PBLOCK_OSPF_LSA_H 0x15 </span><span class="comment">/* OSPF lsa header */</span>
113
+ 00106 <span class="preprocessor">#define LIBNET_PBLOCK_OSPF_AUTH_H 0x16 </span><span class="comment">/* OSPF auth header */</span>
114
+ 00107 <span class="preprocessor">#define LIBNET_PBLOCK_OSPF_CKSUM 0x17 </span><span class="comment">/* OSPF checksum header */</span>
115
+ 00108 <span class="preprocessor">#define LIBNET_PBLOCK_LS_RTR_H 0x18 </span><span class="comment">/* linkstate rtr header */</span>
116
+ 00109 <span class="preprocessor">#define LIBNET_PBLOCK_LS_NET_H 0x19 </span><span class="comment">/* linkstate net header */</span>
117
+ 00110 <span class="preprocessor">#define LIBNET_PBLOCK_LS_SUM_H 0x1a </span><span class="comment">/* linkstate as sum header */</span>
118
+ 00111 <span class="preprocessor">#define LIBNET_PBLOCK_LS_AS_EXT_H 0x1b </span><span class="comment">/* linkstate as ext header */</span>
119
+ 00112 <span class="preprocessor">#define LIBNET_PBLOCK_NTP_H 0x1c </span><span class="comment">/* NTP header */</span>
120
+ 00113 <span class="preprocessor">#define LIBNET_PBLOCK_RIP_H 0x1d </span><span class="comment">/* RIP header */</span>
121
+ 00114 <span class="preprocessor">#define LIBNET_PBLOCK_TCP_H 0x1e </span><span class="comment">/* TCP header */</span>
122
+ 00115 <span class="preprocessor">#define LIBNET_PBLOCK_TCPO_H 0x1f </span><span class="comment">/* TCP options */</span>
123
+ 00116 <span class="preprocessor">#define LIBNET_PBLOCK_TCPDATA 0x20 </span><span class="comment">/* TCP data */</span>
124
+ 00117 <span class="preprocessor">#define LIBNET_PBLOCK_UDP_H 0x21 </span><span class="comment">/* UDP header */</span>
125
+ 00118 <span class="preprocessor">#define LIBNET_PBLOCK_VRRP_H 0x22 </span><span class="comment">/* VRRP header */</span>
126
+ 00119 <span class="preprocessor">#define LIBNET_PBLOCK_DATA_H 0x23 </span><span class="comment">/* generic data */</span>
127
+ 00120 <span class="preprocessor">#define LIBNET_PBLOCK_CDP_H 0x24 </span><span class="comment">/* CDP header */</span>
128
+ 00121 <span class="preprocessor">#define LIBNET_PBLOCK_IPSEC_ESP_HDR_H 0x25 </span><span class="comment">/* IPSEC ESP header */</span>
129
+ 00122 <span class="preprocessor">#define LIBNET_PBLOCK_IPSEC_ESP_FTR_H 0x26 </span><span class="comment">/* IPSEC ESP footer */</span>
130
+ 00123 <span class="preprocessor">#define LIBNET_PBLOCK_IPSEC_AH_H 0x27 </span><span class="comment">/* IPSEC AH header */</span>
131
+ 00124 <span class="preprocessor">#define LIBNET_PBLOCK_802_1Q_H 0x28 </span><span class="comment">/* 802.1q header */</span>
132
+ 00125 <span class="preprocessor">#define LIBNET_PBLOCK_802_2_H 0x29 </span><span class="comment">/* 802.2 header */</span>
133
+ 00126 <span class="preprocessor">#define LIBNET_PBLOCK_802_2SNAP_H 0x2a </span><span class="comment">/* 802.2 SNAP header */</span>
134
+ 00127 <span class="preprocessor">#define LIBNET_PBLOCK_802_3_H 0x2b </span><span class="comment">/* 802.3 header */</span>
135
+ 00128 <span class="preprocessor">#define LIBNET_PBLOCK_STP_CONF_H 0x2c </span><span class="comment">/* STP configuration header */</span>
136
+ 00129 <span class="preprocessor">#define LIBNET_PBLOCK_STP_TCN_H 0x2d </span><span class="comment">/* STP TCN header */</span>
137
+ 00130 <span class="preprocessor">#define LIBNET_PBLOCK_ISL_H 0x2e </span><span class="comment">/* ISL header */</span>
138
+ 00131 <span class="preprocessor">#define LIBNET_PBLOCK_IPV6_H 0x2f </span><span class="comment">/* IP v6 header */</span>
139
+ 00132 <span class="preprocessor">#define LIBNET_PBLOCK_802_1X_H 0x30 </span><span class="comment">/* 802.1x header */</span>
140
+ 00133 <span class="preprocessor">#define LIBNET_PBLOCK_RPC_CALL_H 0x31 </span><span class="comment">/* RPC Call header */</span>
141
+ 00134 <span class="preprocessor">#define LIBNET_PBLOCK_MPLS_H 0x32 </span><span class="comment">/* MPLS header */</span>
142
+ 00135 <span class="preprocessor">#define LIBNET_PBLOCK_FDDI_H 0x33 </span><span class="comment">/* FDDI header */</span>
143
+ 00136 <span class="preprocessor">#define LIBNET_PBLOCK_TOKEN_RING_H 0x34 </span><span class="comment">/* TOKEN RING header */</span>
144
+ 00137 <span class="preprocessor">#define LIBNET_PBLOCK_BGP4_HEADER_H 0x35 </span><span class="comment">/* BGP4 header */</span>
145
+ 00138 <span class="preprocessor">#define LIBNET_PBLOCK_BGP4_OPEN_H 0x36 </span><span class="comment">/* BGP4 open header */</span>
146
+ 00139 <span class="preprocessor">#define LIBNET_PBLOCK_BGP4_UPDATE_H 0x37 </span><span class="comment">/* BGP4 update header */</span>
147
+ 00140 <span class="preprocessor">#define LIBNET_PBLOCK_BGP4_NOTIFICATION_H 0x38 </span><span class="comment">/* BGP4 notification header */</span>
148
+ 00141 <span class="preprocessor">#define LIBNET_PBLOCK_GRE_H 0x39 </span><span class="comment">/* GRE header */</span>
149
+ 00142 <span class="preprocessor">#define LIBNET_PBLOCK_GRE_SRE_H 0x3a </span><span class="comment">/* GRE SRE header */</span>
150
+ 00143 <span class="preprocessor">#define LIBNET_PBLOCK_IPV6_FRAG_H 0x3b </span><span class="comment">/* IPv6 frag header */</span>
151
+ 00144 <span class="preprocessor">#define LIBNET_PBLOCK_IPV6_ROUTING_H 0x3c </span><span class="comment">/* IPv6 routing header */</span>
152
+ 00145 <span class="preprocessor">#define LIBNET_PBLOCK_IPV6_DESTOPTS_H 0x3d </span><span class="comment">/* IPv6 dest opts header */</span>
153
+ 00146 <span class="preprocessor">#define LIBNET_PBLOCK_IPV6_HBHOPTS_H 0x3e </span><span class="comment">/* IPv6 hop/hop opts header */</span>
154
+ 00147 <span class="preprocessor">#define LIBNET_PBLOCK_SEBEK_H 0x3f </span><span class="comment">/* Sebek header */</span>
155
+ 00148 u_int8_t flags; <span class="comment">/* control flags */</span>
156
+ 00149 <span class="preprocessor">#define LIBNET_PBLOCK_DO_CHECKSUM 0x01 </span><span class="comment">/* needs a checksum */</span>
157
+ 00150 libnet_ptag_t ptag; <span class="comment">/* protocol block tag */</span>
158
+ 00151 <span class="keyword">struct </span>libnet_protocol_block *next; <span class="comment">/* next pblock */</span>
159
+ 00152 <span class="keyword">struct </span>libnet_protocol_block *prev; <span class="comment">/* prev pblock */</span>
160
+ 00153 };
161
+ 00154 <span class="keyword">typedef</span> <span class="keyword">struct </span>libnet_protocol_block libnet_pblock_t;
162
+ 00155
163
+ 00156
164
+ 00157 <span class="comment">/*</span>
165
+ 00158 <span class="comment"> * Libnet context</span>
166
+ 00159 <span class="comment"> * Opaque structure. Nothing in here should ever been touched first hand by</span>
167
+ 00160 <span class="comment"> * the applications programmer.</span>
168
+ 00161 <span class="comment"> */</span>
169
+ 00162 <span class="keyword">struct </span>libnet_context
170
+ 00163 {
171
+ 00164 <span class="preprocessor">#if ((__WIN32__) &amp;&amp; !(__CYGWIN__)) </span>
172
+ 00165 <span class="preprocessor"></span> SOCKET fd;
173
+ 00166 LPADAPTER lpAdapter;
174
+ 00167 <span class="preprocessor">#else</span>
175
+ 00168 <span class="preprocessor"></span> <span class="keywordtype">int</span> fd; <span class="comment">/* file descriptor of packet device */</span>
176
+ 00169 <span class="preprocessor">#endif</span>
177
+ 00170 <span class="preprocessor"></span> <span class="keywordtype">int</span> injection_type; <span class="comment">/* raw (ipv4 or ipv6) or link */</span>
178
+ 00171 <span class="preprocessor">#define LIBNET_LINK 0x00 </span><span class="comment">/* link-layer interface */</span>
179
+ 00172 <span class="preprocessor">#define LIBNET_RAW4 0x01 </span><span class="comment">/* raw socket interface (ipv4) */</span>
180
+ 00173 <span class="preprocessor">#define LIBNET_RAW6 0x02 </span><span class="comment">/* raw socket interface (ipv6) */</span>
181
+ 00174 <span class="comment">/* the following should actually set a flag in the flags variable above */</span>
182
+ 00175 <span class="preprocessor">#define LIBNET_LINK_ADV 0x08 </span><span class="comment">/* advanced mode link-layer */</span>
183
+ 00176 <span class="preprocessor">#define LIBNET_RAW4_ADV 0x09 </span><span class="comment">/* advanced mode raw socket (ipv4) */</span>
184
+ 00177 <span class="preprocessor">#define LIBNET_RAW6_ADV 0x0a </span><span class="comment">/* advanced mode raw socket (ipv6) */</span>
185
+ 00178 <span class="preprocessor">#define LIBNET_ADV_MASK 0x08 </span><span class="comment">/* mask to determine adv mode */</span>
186
+ 00179
187
+ 00180 libnet_pblock_t *protocol_blocks; <span class="comment">/* protocol headers / data */</span>
188
+ 00181 libnet_pblock_t *pblock_end; <span class="comment">/* last node in list */</span>
189
+ 00182
190
+ 00183 <span class="keywordtype">int</span> link_type; <span class="comment">/* link-layer type */</span>
191
+ 00184 <span class="keywordtype">int</span> link_offset; <span class="comment">/* link-layer header size */</span>
192
+ 00185 <span class="keywordtype">int</span> aligner; <span class="comment">/* used to align packets */</span>
193
+ 00186 <span class="keywordtype">char</span> *device; <span class="comment">/* device name */</span>
194
+ 00187
195
+ 00188 <span class="keyword">struct </span>libnet_stats stats; <span class="comment">/* statistics */</span>
196
+ 00189 libnet_ptag_t ptag_state; <span class="comment">/* state holder for pblock tag */</span>
197
+ 00190 <span class="keywordtype">char</span> label[LIBNET_LABEL_SIZE]; <span class="comment">/* textual label for cq interface */</span>
198
+ 00191
199
+ 00192 <span class="keywordtype">char</span> err_buf[<a class="code" href="libnet-macros_8h.html#a18">LIBNET_ERRBUF_SIZE</a>]; <span class="comment">/* error buffer */</span>
200
+ 00193 u_int32_t total_size; <span class="comment">/* total size */</span>
201
+ 00194 };
202
+ 00195 <span class="keyword">typedef</span> <span class="keyword">struct </span>libnet_context libnet_t;
203
+ 00196
204
+ 00197 <span class="comment">/*</span>
205
+ 00198 <span class="comment"> * Libnet context queue structure</span>
206
+ 00199 <span class="comment"> * Opaque structure. Nothing in here should ever been touched first hand by</span>
207
+ 00200 <span class="comment"> * the applications programmer.</span>
208
+ 00201 <span class="comment"> */</span>
209
+ 00202 <span class="keyword">typedef</span> <span class="keyword">struct </span>_libnet_context_queue libnet_cq_t;
210
+ 00203 <span class="keyword">struct </span>_libnet_context_queue
211
+ 00204 {
212
+ 00205 libnet_t *context; <span class="comment">/* pointer to libnet context */</span>
213
+ 00206 libnet_cq_t *next; <span class="comment">/* next node in the list */</span>
214
+ 00207 libnet_cq_t *prev; <span class="comment">/* previous node in the list */</span>
215
+ 00208 };
216
+ 00209
217
+ 00210 <span class="keyword">struct </span>_libnet_context_queue_descriptor
218
+ 00211 {
219
+ 00212 u_int32_t node; <span class="comment">/* number of nodes in the list */</span>
220
+ 00213 u_int32_t cq_lock; <span class="comment">/* lock status */</span>
221
+ 00214 libnet_cq_t *current; <span class="comment">/* current context */</span>
222
+ 00215 };
223
+ 00216 <span class="keyword">typedef</span> <span class="keyword">struct </span>_libnet_context_queue_descriptor libnet_cqd_t;
224
+ 00217
225
+ 00218 <span class="preprocessor">#endif </span><span class="comment">/* __LIBNET_STRUCTURES_H */</span>
226
+ 00219
227
+ 00220 <span class="comment">/* EOF */</span>
228
+ </pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 10 13:23:37 2004 for libnet by
229
+ <a href="http://www.doxygen.org/index.html">
230
+ <img src="doxygen.png" alt="doxygen" align="middle" border=0 >
231
+ </a>1.3.4 </small></address>
232
+ </body>
233
+ </html>
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
+ <title>libnet: libnet-types.h Source File</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ </head><body>
6
+ <!-- Generated by Doxygen 1.3.4 -->
7
+ <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
8
+ <h1>libnet-types.h</h1><div class="fragment"><pre>00001 <span class="comment">/*</span>
9
+ 00002 <span class="comment"> * $Id: libnet-types.h,v 1.3 2004/01/03 20:31:00 mike Exp $</span>
10
+ 00003 <span class="comment"> *</span>
11
+ 00004 <span class="comment"> * libnet-types.h - Network routine library macro header file</span>
12
+ 00005 <span class="comment"> *</span>
13
+ 00006 <span class="comment"> * Copyright (c) 1998 - 2004 Mike D. Schiffman &lt;mike@infonexus.com&gt;</span>
14
+ 00007 <span class="comment"> * All rights reserved.</span>
15
+ 00008 <span class="comment"> *</span>
16
+ 00009 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
17
+ 00010 <span class="comment"> * modification, are permitted provided that the following conditions</span>
18
+ 00011 <span class="comment"> * are met:</span>
19
+ 00012 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
20
+ 00013 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
21
+ 00014 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
22
+ 00015 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
23
+ 00016 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
24
+ 00017 <span class="comment"> *</span>
25
+ 00018 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</span>
26
+ 00019 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
27
+ 00020 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
28
+ 00021 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</span>
29
+ 00022 <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
30
+ 00023 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span>
31
+ 00024 <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
32
+ 00025 <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
33
+ 00026 <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span>
34
+ 00027 <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span>
35
+ 00028 <span class="comment"> * SUCH DAMAGE.</span>
36
+ 00029 <span class="comment"> *</span>
37
+ 00030 <span class="comment"> */</span>
38
+ 00031
39
+ 00032 <span class="preprocessor">#ifndef __LIBNET_TYPES_H</span>
40
+ 00033 <span class="preprocessor"></span><span class="preprocessor">#define __LIBNET_TYPES_H</span>
41
+ 00034 <span class="preprocessor"></span>
42
+ 00035 <span class="comment">/* Solaris has messed up POSIX nomenclature for these */</span>
43
+ 00036 <span class="preprocessor">#if (__sun__ &amp;&amp; __svr4__)</span>
44
+ 00037 <span class="preprocessor"></span><span class="keyword">typedef</span> uint8_t u_int8_t;
45
+ 00038 <span class="keyword">typedef</span> uint16_t u_int16_t;
46
+ 00039 <span class="keyword">typedef</span> uint32_t u_int32_t;
47
+ 00040 <span class="keyword">typedef</span> uint64_t u_int64_t;
48
+ 00041 <span class="preprocessor">#endif</span>
49
+ 00042 <span class="preprocessor"></span>
50
+ 00043 <span class="preprocessor">#endif </span><span class="comment">/* __LIBNET_TYPES_H */</span>
51
+ 00044
52
+ 00045 <span class="comment">/* EOF */</span>
53
+ </pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 10 13:23:37 2004 for libnet by
54
+ <a href="http://www.doxygen.org/index.html">
55
+ <img src="doxygen.png" alt="doxygen" align="middle" border=0 >
56
+ </a>1.3.4 </small></address>
57
+ </body>
58
+ </html>
@@ -0,0 +1,119 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
+ <title>libnet: libnet.h Source File</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ </head><body>
6
+ <!-- Generated by Doxygen 1.3.4 -->
7
+ <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
8
+ <h1>libnet.h</h1><a href="libnet_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
9
+ 00002 <span class="comment"> * $Id: libnet.h,v 1.7 2004/01/03 20:31:00 mike Exp $</span>
10
+ 00003 <span class="comment"> *</span>
11
+ 00004 <span class="comment"> * libnet.h - Network routine library header file for Win32 VC++</span>
12
+ 00005 <span class="comment"> *</span>
13
+ 00006 <span class="comment"> * Copyright (c) 1998 - 2004 Mike D. Schiffman &lt;mike@infonexus.com&gt;</span>
14
+ 00007 <span class="comment"> * All rights reserved.</span>
15
+ 00008 <span class="comment"> *</span>
16
+ 00009 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
17
+ 00010 <span class="comment"> * modification, are permitted provided that the following conditions</span>
18
+ 00011 <span class="comment"> * are met:</span>
19
+ 00012 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
20
+ 00013 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
21
+ 00014 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
22
+ 00015 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
23
+ 00016 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
24
+ 00017 <span class="comment"> *</span>
25
+ 00018 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</span>
26
+ 00019 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
27
+ 00020 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
28
+ 00021 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE</span>
29
+ 00022 <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
30
+ 00023 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span>
31
+ 00024 <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
32
+ 00025 <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
33
+ 00026 <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span>
34
+ 00027 <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span>
35
+ 00028 <span class="comment"> * SUCH DAMAGE.</span>
36
+ 00029 <span class="comment"> *</span>
37
+ 00030 <span class="comment"> */</span>
38
+ 00031
39
+ 00032 <span class="preprocessor">#ifdef _WIN32</span>
40
+ 00033 <span class="preprocessor"></span>
41
+ 00034 <span class="preprocessor">#ifndef __LIBNET_H</span>
42
+ 00035 <span class="preprocessor"></span><span class="preprocessor">#define __LIBNET_H</span>
43
+ 00036 <span class="preprocessor"></span>
44
+ 00037 <span class="preprocessor">#include &lt;winsock2.h&gt;</span>
45
+ 00038 <span class="preprocessor">#include &lt;windows.h&gt;</span>
46
+ 00039 <span class="preprocessor">#include &lt;time.h&gt;</span>
47
+ 00040 <span class="preprocessor">#include "in_systm.h"</span>
48
+ 00041 <span class="preprocessor">#include "pcap.h"</span>
49
+ 00042
50
+ 00043
51
+ 00044 <span class="preprocessor">#ifdef __cplusplus</span>
52
+ 00045 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
53
+ 00046 <span class="preprocessor">#endif</span>
54
+ 00047 <span class="preprocessor"></span>
55
+ 00048 <span class="comment">/* __WIN32__ is NOT a predefined MACRO, use _WIN32</span>
56
+ 00049 <span class="comment"> * __CYGWIN__ is defined within the cygwin environment.</span>
57
+ 00050 <span class="comment"> */</span>
58
+ 00051 <span class="preprocessor">#ifndef __WIN32__</span>
59
+ 00052 <span class="preprocessor"></span><span class="preprocessor">#define __WIN32__ _WIN32</span>
60
+ 00053 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
61
+ 00054 <span class="preprocessor"></span>
62
+ 00055 <span class="preprocessor">#define LIBNET_LIL_ENDIAN 1</span>
63
+ 00056 <span class="preprocessor"></span><span class="preprocessor">#define HAVE_CONFIG_H 1</span>
64
+ 00057 <span class="preprocessor"></span>
65
+ 00058 <span class="comment">/* Some UNIX to Win32 conversions */</span>
66
+ 00059 <span class="preprocessor">#define STDOUT_FILENO stdout</span>
67
+ 00060 <span class="preprocessor"></span><span class="preprocessor">#define snprintf _snprintf </span>
68
+ 00061 <span class="preprocessor"></span><span class="preprocessor">#define write _write</span>
69
+ 00062 <span class="preprocessor"></span><span class="preprocessor">#define open _open</span>
70
+ 00063 <span class="preprocessor"></span><span class="preprocessor">#define random rand</span>
71
+ 00064 <span class="preprocessor"></span><span class="preprocessor">#define close closesocket</span>
72
+ 00065 <span class="preprocessor"></span><span class="preprocessor">#define __func__ __FUNCTION__</span>
73
+ 00066 <span class="preprocessor"></span>
74
+ 00067 <span class="comment">/* __FUNCTION__ available in VC ++ 7.0 (.NET) and greater */</span>
75
+ 00068 <span class="preprocessor">#if _MSC_VER &lt; 1300</span>
76
+ 00069 <span class="preprocessor"></span><span class="preprocessor">#define __FUNCTION__ __FILE__</span>
77
+ 00070 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
78
+ 00071 <span class="preprocessor"></span>
79
+ 00072 <span class="preprocessor">#pragma comment (lib,"ws2_32") </span><span class="comment">/* Winsock 2 */</span>
80
+ 00073 <span class="preprocessor">#pragma comment (lib,"iphlpapi") </span><span class="comment">/* IP Helper */</span>
81
+ 00074 <span class="preprocessor">#pragma comment (lib,"wpcap") </span><span class="comment">/* Winpcap */</span>
82
+ 00075 <span class="preprocessor">#pragma comment (lib,"packet") </span>
83
+ 00076 <span class="preprocessor"></span>
84
+ 00077 <span class="comment">/* "@LIBNET_VERSION@" will not work in VC++, so version.h doesn't get populated */</span>
85
+ 00078 <span class="preprocessor">#define VERSION "1.1.1"</span>
86
+ 00079 <span class="preprocessor"></span>
87
+ 00080 <span class="comment">/* To use Win32 native versions */</span>
88
+ 00081 <span class="preprocessor">#define WPCAP 1</span>
89
+ 00082 <span class="preprocessor"></span><span class="preprocessor">#define _GNU_SOURCE</span>
90
+ 00083 <span class="preprocessor"></span><span class="preprocessor">#include &lt;stdio.h&gt;</span>
91
+ 00084 <span class="preprocessor">#include &lt;string.h&gt;</span>
92
+ 00085 <span class="preprocessor">#include &lt;fcntl.h&gt;</span>
93
+ 00086 <span class="preprocessor">#include &lt;signal.h&gt;</span>
94
+ 00087 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
95
+ 00088 <span class="preprocessor">#include &lt;sys/stat.h&gt;</span>
96
+ 00089 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
97
+ 00090 <span class="preprocessor">#include &lt;ctype.h&gt;</span>
98
+ 00091 <span class="preprocessor">#include &lt;errno.h&gt;</span>
99
+ 00092 <span class="preprocessor">#include &lt;stdarg.h&gt;</span>
100
+ 00093 <span class="preprocessor">#include "../libnet/libnet-macros.h"</span>
101
+ 00094 <span class="preprocessor">#include "../libnet/libnet-headers.h"</span>
102
+ 00095 <span class="preprocessor">#include "../libnet/libnet-structures.h"</span>
103
+ 00096 <span class="preprocessor">#include "../libnet/libnet-asn1.h"</span>
104
+ 00097 <span class="preprocessor">#include "../libnet/libnet-functions.h"</span>
105
+ 00098
106
+ 00099 <span class="preprocessor">#ifdef __cplusplus</span>
107
+ 00100 <span class="preprocessor"></span>}
108
+ 00101 <span class="preprocessor">#endif</span>
109
+ 00102 <span class="preprocessor"></span>
110
+ 00103 <span class="preprocessor">#endif </span><span class="comment">/* __LIBNET_H */</span>
111
+ 00104
112
+ 00105 <span class="preprocessor">#endif</span>
113
+ 00106 <span class="preprocessor"></span><span class="comment">/* EOF */</span>
114
+ </pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 10 13:23:37 2004 for libnet by
115
+ <a href="http://www.doxygen.org/index.html">
116
+ <img src="doxygen.png" alt="doxygen" align="middle" border=0 >
117
+ </a>1.3.4 </small></address>
118
+ </body>
119
+ </html>
@@ -0,0 +1,24 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
+ <title>libnet: libnet.h File Reference</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ </head><body>
6
+ <!-- Generated by Doxygen 1.3.4 -->
7
+ <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
8
+ <h1>libnet.h File Reference</h1>toplevel libnet header file
9
+ <a href="#_details">More...</a>
10
+ <p>
11
+
12
+ <p>
13
+ <a href="libnet_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
14
+ <tr><td></td></tr>
15
+ </table>
16
+ <hr><a name="_details"></a><h2>Detailed Description</h2>
17
+ toplevel libnet header file
18
+ <p>
19
+ <hr size="1"><address style="align: right;"><small>Generated on Wed Mar 10 13:23:38 2004 for libnet by
20
+ <a href="http://www.doxygen.org/index.html">
21
+ <img src="doxygen.png" alt="doxygen" align="middle" border=0 >
22
+ </a>1.3.4 </small></address>
23
+ </body>
24
+ </html>
@@ -0,0 +1,145 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
+ <title>libnet: libnet_802_1q_hdr struct Reference</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ </head><body>
6
+ <!-- Generated by Doxygen 1.3.4 -->
7
+ <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
8
+ <h1>libnet_802_1q_hdr Struct Reference</h1><code>#include &lt;<a class="el" href="libnet-headers_8h-source.html">libnet-headers.h</a>&gt;</code>
9
+ <p>
10
+ <table border=0 cellpadding=0 cellspacing=0>
11
+ <tr><td></td></tr>
12
+ <tr><td colspan=2><br><h2>Data Fields</h2></td></tr>
13
+ <tr><td class="memItemLeft" nowrap align=right valign=top>u_int8_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="structlibnet__802__1q__hdr.html#o0">vlan_dhost</a> [ETHER_ADDR_LEN]</td></tr>
14
+
15
+ <tr><td class="memItemLeft" nowrap align=right valign=top>u_int8_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="structlibnet__802__1q__hdr.html#o1">vlan_shost</a> [ETHER_ADDR_LEN]</td></tr>
16
+
17
+ <tr><td class="memItemLeft" nowrap align=right valign=top>u_int16_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="structlibnet__802__1q__hdr.html#o2">vlan_tpi</a></td></tr>
18
+
19
+ <tr><td class="memItemLeft" nowrap align=right valign=top>u_int16_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="structlibnet__802__1q__hdr.html#o3">vlan_priority_c_vid</a></td></tr>
20
+
21
+ <tr><td class="memItemLeft" nowrap align=right valign=top>u_int16_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="structlibnet__802__1q__hdr.html#o4">vlan_len</a></td></tr>
22
+
23
+ </table>
24
+ <hr><a name="_details"></a><h2>Detailed Description</h2>
25
+ IEEE 802.1Q (Virtual Local Area Network) VLAN header, static header size: 18 bytes
26
+ <p>
27
+ <hr><h2>Field Documentation</h2>
28
+ <a class="anchor" name="o0" doxytag="libnet_802_1q_hdr::vlan_dhost" ></a><p>
29
+ <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
30
+ <tr>
31
+ <td class="mdRow">
32
+ <table cellpadding="0" cellspacing="0" border="0">
33
+ <tr>
34
+ <td class="md" nowrap valign="top"> u_int8_t <a class="el" href="structlibnet__802__1q__hdr.html#o0">libnet_802_1q_hdr::vlan_dhost</a>[ETHER_ADDR_LEN]
35
+ </table>
36
+ </td>
37
+ </tr>
38
+ </table>
39
+ <table cellspacing=5 cellpadding=0 border=0>
40
+ <tr>
41
+ <td>
42
+ &nbsp;
43
+ </td>
44
+ <td>
45
+
46
+ <p>
47
+ destination ethernet address </td>
48
+ </tr>
49
+ </table>
50
+ <a class="anchor" name="o4" doxytag="libnet_802_1q_hdr::vlan_len" ></a><p>
51
+ <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
52
+ <tr>
53
+ <td class="mdRow">
54
+ <table cellpadding="0" cellspacing="0" border="0">
55
+ <tr>
56
+ <td class="md" nowrap valign="top"> u_int16_t <a class="el" href="structlibnet__802__1q__hdr.html#o4">libnet_802_1q_hdr::vlan_len</a>
57
+ </table>
58
+ </td>
59
+ </tr>
60
+ </table>
61
+ <table cellspacing=5 cellpadding=0 border=0>
62
+ <tr>
63
+ <td>
64
+ &nbsp;
65
+ </td>
66
+ <td>
67
+
68
+ <p>
69
+ length or type (802.3 / Eth 2) </td>
70
+ </tr>
71
+ </table>
72
+ <a class="anchor" name="o3" doxytag="libnet_802_1q_hdr::vlan_priority_c_vid" ></a><p>
73
+ <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
74
+ <tr>
75
+ <td class="mdRow">
76
+ <table cellpadding="0" cellspacing="0" border="0">
77
+ <tr>
78
+ <td class="md" nowrap valign="top"> u_int16_t <a class="el" href="structlibnet__802__1q__hdr.html#o3">libnet_802_1q_hdr::vlan_priority_c_vid</a>
79
+ </table>
80
+ </td>
81
+ </tr>
82
+ </table>
83
+ <table cellspacing=5 cellpadding=0 border=0>
84
+ <tr>
85
+ <td>
86
+ &nbsp;
87
+ </td>
88
+ <td>
89
+
90
+ <p>
91
+ priority | VLAN ID </td>
92
+ </tr>
93
+ </table>
94
+ <a class="anchor" name="o1" doxytag="libnet_802_1q_hdr::vlan_shost" ></a><p>
95
+ <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
96
+ <tr>
97
+ <td class="mdRow">
98
+ <table cellpadding="0" cellspacing="0" border="0">
99
+ <tr>
100
+ <td class="md" nowrap valign="top"> u_int8_t <a class="el" href="structlibnet__802__1q__hdr.html#o1">libnet_802_1q_hdr::vlan_shost</a>[ETHER_ADDR_LEN]
101
+ </table>
102
+ </td>
103
+ </tr>
104
+ </table>
105
+ <table cellspacing=5 cellpadding=0 border=0>
106
+ <tr>
107
+ <td>
108
+ &nbsp;
109
+ </td>
110
+ <td>
111
+
112
+ <p>
113
+ source ethernet address </td>
114
+ </tr>
115
+ </table>
116
+ <a class="anchor" name="o2" doxytag="libnet_802_1q_hdr::vlan_tpi" ></a><p>
117
+ <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
118
+ <tr>
119
+ <td class="mdRow">
120
+ <table cellpadding="0" cellspacing="0" border="0">
121
+ <tr>
122
+ <td class="md" nowrap valign="top"> u_int16_t <a class="el" href="structlibnet__802__1q__hdr.html#o2">libnet_802_1q_hdr::vlan_tpi</a>
123
+ </table>
124
+ </td>
125
+ </tr>
126
+ </table>
127
+ <table cellspacing=5 cellpadding=0 border=0>
128
+ <tr>
129
+ <td>
130
+ &nbsp;
131
+ </td>
132
+ <td>
133
+
134
+ <p>
135
+ tag protocol ID </td>
136
+ </tr>
137
+ </table>
138
+ <hr>The documentation for this struct was generated from the following file:<ul>
139
+ <li><a class="el" href="libnet-headers_8h-source.html">libnet-headers.h</a></ul>
140
+ <hr size="1"><address style="align: right;"><small>Generated on Wed Mar 10 13:23:38 2004 for libnet by
141
+ <a href="http://www.doxygen.org/index.html">
142
+ <img src="doxygen.png" alt="doxygen" align="middle" border=0 >
143
+ </a>1.3.4 </small></address>
144
+ </body>
145
+ </html>