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,742 @@
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-functions.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-functions.h</h1><a href="libnet-functions_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-functions.h,v 1.39 2004/03/01 20:26:11 mike Exp $</span>
10
+ 00003 <span class="comment"> *</span>
11
+ 00004 <span class="comment"> * libnet-functions.h - function prototypes</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_FUNCTIONS_H</span>
40
+ 00033 <span class="preprocessor"></span><span class="preprocessor">#define __LIBNET_FUNCTIONS_H</span>
41
+ 00034 <span class="preprocessor"></span>
42
+ 00063 libnet_t *
43
+ 00064 libnet_init(<span class="keywordtype">int</span> injection_type, <span class="keywordtype">char</span> *device, <span class="keywordtype">char</span> *err_buf);
44
+ 00065
45
+ 00071 <span class="keywordtype">void</span>
46
+ 00072 libnet_destroy(libnet_t *l);
47
+ 00073
48
+ 00080 <span class="keywordtype">void</span>
49
+ 00081 libnet_clear_packet(libnet_t *l);
50
+ 00082
51
+ 00089 <span class="keywordtype">void</span>
52
+ 00090 libnet_stats(libnet_t *l, <span class="keyword">struct</span> libnet_stats *ls);
53
+ 00091
54
+ 00097 <span class="keywordtype">int</span>
55
+ 00098 libnet_getfd(libnet_t *l);
56
+ 00099
57
+ 00106 int8_t *
58
+ 00107 libnet_getdevice(libnet_t *l);
59
+ 00108
60
+ 00117 u_int8_t *
61
+ 00118 libnet_getpbuf(libnet_t *l, libnet_ptag_t ptag);
62
+ 00119
63
+ 00128 u_int32_t
64
+ 00129 libnet_getpbuf_size(libnet_t *l, libnet_ptag_t ptag);
65
+ 00130
66
+ 00138 <span class="keywordtype">char</span> *
67
+ 00139 libnet_geterror(libnet_t *l);
68
+ 00140
69
+ 00147 u_int32_t
70
+ 00148 libnet_getpacket_size(libnet_t *l);
71
+ 00149
72
+ 00155 <span class="keywordtype">int</span>
73
+ 00156 libnet_seed_prand(libnet_t *l);
74
+ 00157
75
+ 00171 u_int32_t
76
+ 00172 libnet_get_prand(<span class="keywordtype">int</span> mod);
77
+ 00173
78
+ 00195 <span class="keywordtype">int</span>
79
+ 00196 libnet_toggle_checksum(libnet_t *l, libnet_ptag_t ptag, <span class="keywordtype">int</span> mode);
80
+ 00197
81
+ 00210 <span class="keywordtype">char</span> *
82
+ 00211 libnet_addr2name4(u_int32_t in, u_int8_t use_name);
83
+ 00212
84
+ 00226 u_int32_t
85
+ 00227 libnet_name2addr4(libnet_t *l, <span class="keywordtype">char</span> *host_name, u_int8_t use_name);
86
+ 00228
87
+ 00229 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keyword">struct </span>libnet_in6_addr in6addr_error;
88
+ 00230
89
+ 00244 <span class="keyword">struct </span>libnet_in6_addr
90
+ 00245 libnet_name2addr6(libnet_t *l, <span class="keywordtype">char</span> *host_name, u_int8_t use_name);
91
+ 00246
92
+ 00250 <span class="keywordtype">void</span>
93
+ 00251 libnet_addr2name6_r(<span class="keyword">struct</span> libnet_in6_addr addr, u_int8_t use_name,
94
+ 00252 <span class="keywordtype">char</span> *host_name, <span class="keywordtype">int</span> host_name_len);
95
+ 00253
96
+ 00269 <span class="keywordtype">int</span>
97
+ 00270 libnet_plist_chain_new(libnet_t *l, libnet_plist_t **plist, <span class="keywordtype">char</span> *token_list);
98
+ 00271
99
+ 00283 <span class="keywordtype">int</span>
100
+ 00284 libnet_plist_chain_next_pair(libnet_plist_t *plist, u_int16_t *bport,
101
+ 00285 u_int16_t *eport);
102
+ 00286
103
+ 00293 <span class="keywordtype">int</span>
104
+ 00294 libnet_plist_chain_dump(libnet_plist_t *plist);
105
+ 00295
106
+ 00304 <span class="keywordtype">char</span> *
107
+ 00305 libnet_plist_chain_dump_string(libnet_plist_t *plist);
108
+ 00306
109
+ 00312 <span class="keywordtype">int</span>
110
+ 00313 libnet_plist_chain_free(libnet_plist_t *plist);
111
+ 00314
112
+ 00402 libnet_ptag_t
113
+ 00403 libnet_build_802_1q(u_int8_t *dst, u_int8_t *src, u_int16_t tpi,
114
+ 00404 u_int8_t priority, u_int8_t cfi, u_int16_t vlan_id, u_int16_t len_proto,
115
+ 00405 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
116
+ 00406
117
+ 00418 libnet_ptag_t
118
+ 00419 libnet_build_802_1x(u_int8_t eap_ver, u_int8_t eap_type, u_int16_t length,
119
+ 00420 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
120
+ 00421
121
+ 00433 libnet_ptag_t
122
+ 00434 libnet_build_802_2(u_int8_t dsap, u_int8_t ssap, u_int8_t control,
123
+ 00435 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
124
+ 00436
125
+ 00450 libnet_ptag_t
126
+ 00451 libnet_build_802_2snap(u_int8_t dsap, u_int8_t ssap, u_int8_t control,
127
+ 00452 u_int8_t *oui, u_int16_t type, u_int8_t *payload, u_int32_t payload_s,
128
+ 00453 libnet_t *l, libnet_ptag_t ptag);
129
+ 00454
130
+ 00470 libnet_ptag_t
131
+ 00471 libnet_build_802_3(u_int8_t *dst, u_int8_t *src, u_int16_t len,
132
+ 00472 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
133
+ 00473
134
+ 00489 libnet_ptag_t
135
+ 00490 libnet_build_ethernet(u_int8_t *dst, u_int8_t *src, u_int16_t type,
136
+ 00491 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
137
+ 00492
138
+ 00504 libnet_ptag_t
139
+ 00505 libnet_autobuild_ethernet(u_int8_t *dst, u_int16_t type, libnet_t *l);
140
+ 00506
141
+ 00523 libnet_ptag_t
142
+ 00524 libnet_build_fddi(u_int8_t fc, u_int8_t *dst, u_int8_t *src, u_int8_t dsap,
143
+ 00525 u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type, u_int8_t *payload,
144
+ 00526 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
145
+ 00527
146
+ 00540 libnet_ptag_t
147
+ 00541 libnet_autobuild_fddi(u_int8_t fc, u_int8_t *dst, u_int8_t dsap, u_int8_t ssap,
148
+ 00542 u_int8_t cf, u_int8_t *org, u_int16_t type, libnet_t *l);
149
+ 00543
150
+ 00563 libnet_ptag_t
151
+ 00564 libnet_build_arp(u_int16_t hrd, u_int16_t pro, u_int8_t hln, u_int8_t pln,
152
+ 00565 u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha, u_int8_t *tpa,
153
+ 00566 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
154
+ 00567
155
+ 00580 libnet_ptag_t
156
+ 00581 libnet_autobuild_arp(u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha,
157
+ 00582 u_int8_t *tpa, libnet_t *l);
158
+ 00583
159
+ 00600 libnet_ptag_t
160
+ 00601 libnet_build_tcp(u_int16_t sp, u_int16_t dp, u_int32_t seq, u_int32_t ack,
161
+ 00602 u_int8_t control, u_int16_t win, u_int16_t sum, u_int16_t urg, u_int16_t len,
162
+ 00603 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
163
+ 00604
164
+ 00620 libnet_ptag_t
165
+ 00621 libnet_build_tcp_options(u_int8_t *options, u_int32_t options_s, libnet_t *l,
166
+ 00622 libnet_ptag_t ptag);
167
+ 00623
168
+ 00636 libnet_ptag_t
169
+ 00637 libnet_build_udp(u_int16_t sp, u_int16_t dp, u_int16_t len, u_int16_t sum,
170
+ 00638 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
171
+ 00639
172
+ 00659 libnet_ptag_t
173
+ 00660 libnet_build_cdp(u_int8_t version, u_int8_t ttl, u_int16_t sum, u_int16_t type,
174
+ 00661 u_int16_t len, u_int8_t *value, u_int8_t *payload, u_int32_t payload_s,
175
+ 00662 libnet_t *l, libnet_ptag_t ptag);
176
+ 00663
177
+ 00678 libnet_ptag_t
178
+ 00679 libnet_build_icmpv4_echo(u_int8_t type, u_int8_t code, u_int16_t sum,
179
+ 00680 u_int16_t id, u_int16_t seq, u_int8_t *payload, u_int32_t payload_s,
180
+ 00681 libnet_t *l, libnet_ptag_t ptag);
181
+ 00682
182
+ 00698 libnet_ptag_t
183
+ 00699 libnet_build_icmpv4_mask(u_int8_t type, u_int8_t code, u_int16_t sum,
184
+ 00700 u_int16_t id, u_int16_t seq, u_int32_t mask, u_int8_t *payload,
185
+ 00701 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
186
+ 00702
187
+ 00725 libnet_ptag_t
188
+ 00726 libnet_build_icmpv4_unreach(u_int8_t type, u_int8_t code, u_int16_t sum,
189
+ 00727 u_int16_t orig_len, u_int8_t orig_tos, u_int16_t orig_id, u_int16_t orig_frag,
190
+ 00728 u_int8_t orig_ttl, u_int8_t orig_prot, u_int16_t orig_check,
191
+ 00729 u_int32_t orig_src, u_int32_t orig_dst, u_int8_t *payload, u_int32_t payload_s,
192
+ 00730 libnet_t *l, libnet_ptag_t ptag);
193
+ 00731
194
+ 00753 libnet_ptag_t
195
+ 00754 libnet_build_icmpv4_redirect(u_int8_t type, u_int8_t code, u_int16_t sum,
196
+ 00755 u_int32_t gateway, u_int16_t orig_len, u_int8_t orig_tos, u_int16_t orig_id,
197
+ 00756 u_int16_t orig_frag, u_int8_t orig_ttl, u_int8_t orig_prot,
198
+ 00757 u_int16_t orig_check, u_int32_t orig_src, u_int32_t orig_dst,
199
+ 00758 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
200
+ 00759
201
+ 00783 libnet_ptag_t
202
+ 00784 libnet_build_icmpv4_timeexceed(u_int8_t type, u_int8_t code, u_int16_t sum,
203
+ 00785 u_int16_t orig_len, u_int8_t orig_tos, u_int16_t orig_id, u_int16_t orig_frag,
204
+ 00786 u_int8_t orig_ttl, u_int8_t orig_prot, u_int16_t orig_check,
205
+ 00787 u_int32_t orig_src, u_int32_t orig_dst, u_int8_t *payload, u_int32_t payload_s,
206
+ 00788 libnet_t *l, libnet_ptag_t ptag);
207
+ 00789
208
+ 00807 libnet_ptag_t
209
+ 00808 libnet_build_icmpv4_timestamp(u_int8_t type, u_int8_t code, u_int16_t sum,
210
+ 00809 u_int16_t id, u_int16_t seq, n_time otime, n_time rtime, n_time ttime,
211
+ 00810 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
212
+ 00811
213
+ 00824 libnet_ptag_t
214
+ 00825 libnet_build_igmp(u_int8_t type, u_int8_t code, u_int16_t sum, u_int32_t ip,
215
+ 00826 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
216
+ 00827
217
+ 00845 libnet_ptag_t
218
+ 00846 libnet_build_ipv4(u_int16_t len, u_int8_t tos, u_int16_t id, u_int16_t frag,
219
+ 00847 u_int8_t ttl, u_int8_t prot, u_int16_t sum, u_int32_t src, u_int32_t dst,
220
+ 00848 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
221
+ 00849
222
+ 00864 libnet_ptag_t
223
+ 00865 libnet_build_ipv4_options(u_int8_t *options, u_int32_t options_s, libnet_t *l,
224
+ 00866 libnet_ptag_t ptag);
225
+ 00867
226
+ 00880 libnet_ptag_t
227
+ 00881 libnet_autobuild_ipv4(u_int16_t len, u_int8_t prot, u_int32_t dst, libnet_t *l);
228
+ 00882
229
+ 00898 libnet_ptag_t
230
+ 00899 libnet_build_ipv6(u_int8_t tc, u_int32_t fl, u_int16_t len, u_int8_t nh,
231
+ 00900 u_int8_t hl, <span class="keyword">struct</span> libnet_in6_addr src, <span class="keyword">struct</span> libnet_in6_addr dst,
232
+ 00901 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
233
+ 00902
234
+ 00915 libnet_ptag_t
235
+ 00916 libnet_build_ipv6_frag(u_int8_t nh, u_int8_t reserved, u_int16_t frag,
236
+ 00917 u_int32_t id, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
237
+ 00918 libnet_ptag_t ptag);
238
+ 00919
239
+ 00937 libnet_ptag_t
240
+ 00938 libnet_build_ipv6_routing(u_int8_t nh, u_int8_t len, u_int8_t rtype,
241
+ 00939 u_int8_t segments, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
242
+ 00940 libnet_ptag_t ptag);
243
+ 00941
244
+ 00955 libnet_ptag_t
245
+ 00956 libnet_build_ipv6_destopts(u_int8_t nh, u_int8_t len, u_int8_t *payload,
246
+ 00957 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
247
+ 00958
248
+ 00973 libnet_ptag_t
249
+ 00974 libnet_build_ipv6_hbhopts(u_int8_t nh, u_int8_t len, u_int8_t *payload,
250
+ 00975 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
251
+ 00976
252
+ 00988 libnet_ptag_t
253
+ 00989 libnet_autobuild_ipv6(u_int16_t len, u_int8_t nh, <span class="keyword">struct</span> libnet_in6_addr dst,
254
+ 00990 libnet_t *l);
255
+ 00991
256
+ 01009 libnet_ptag_t
257
+ 01010 libnet_build_isl(u_int8_t *dhost, u_int8_t type, u_int8_t user, u_int8_t *shost,
258
+ 01011 u_int16_t len, u_int8_t *snap, u_int16_t vid, u_int16_t index,
259
+ 01012 u_int16_t reserved, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
260
+ 01013 libnet_ptag_t ptag);
261
+ 01014
262
+ 01026 libnet_ptag_t
263
+ 01027 libnet_build_ipsec_esp_hdr(u_int32_t spi, u_int32_t seq, u_int32_t iv,
264
+ 01028 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
265
+ 01029
266
+ 01041 libnet_ptag_t
267
+ 01042 libnet_build_ipsec_esp_ftr(u_int8_t len, u_int8_t nh, int8_t *auth,
268
+ 01043 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
269
+ 01044
270
+ 01059 libnet_ptag_t
271
+ 01060 libnet_build_ipsec_ah(u_int8_t nh, u_int8_t len, u_int16_t res,
272
+ 01061 u_int32_t spi, u_int32_t seq, u_int32_t auth, u_int8_t *payload,
273
+ 01062 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
274
+ 01063
275
+ 01079 libnet_ptag_t
276
+ 01080 libnet_build_dnsv4(u_int16_t h_len, u_int16_t id, u_int16_t flags,
277
+ 01081 u_int16_t num_q, u_int16_t num_anws_rr, u_int16_t num_auth_rr,
278
+ 01082 u_int16_t num_addi_rr, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
279
+ 01083 libnet_ptag_t ptag);
280
+ 01084
281
+ 01102 libnet_ptag_t
282
+ 01103 libnet_build_rip(u_int8_t cmd, u_int8_t version, u_int16_t rd, u_int16_t af,
283
+ 01104 u_int16_t rt, u_int32_t addr, u_int32_t mask, u_int32_t next_hop,
284
+ 01105 u_int32_t metric, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
285
+ 01106 libnet_ptag_t ptag);
286
+ 01107
287
+ 01130 libnet_ptag_t
288
+ 01131 libnet_build_rpc_call(u_int32_t rm, u_int32_t xid, u_int32_t prog_num,
289
+ 01132 u_int32_t prog_vers, u_int32_t procedure, u_int32_t cflavor, u_int32_t clength,
290
+ 01133 u_int8_t *cdata, u_int32_t vflavor, u_int32_t vlength, u_int8_t *vdata,
291
+ 01134 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
292
+ 01135
293
+ 01158 libnet_ptag_t
294
+ 01159 libnet_build_stp_conf(u_int16_t id, u_int8_t version, u_int8_t bpdu_type,
295
+ 01160 u_int8_t flags, u_int8_t *root_id, u_int32_t root_pc, u_int8_t *bridge_id,
296
+ 01161 u_int16_t port_id, u_int16_t message_age, u_int16_t max_age,
297
+ 01162 u_int16_t hello_time, u_int16_t f_delay, u_int8_t *payload,
298
+ 01163 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
299
+ 01164
300
+ 01178 libnet_ptag_t
301
+ 01179 libnet_build_stp_tcn(u_int16_t id, u_int8_t version, u_int8_t bpdu_type,
302
+ 01180 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
303
+ 01181
304
+ 01199 libnet_ptag_t
305
+ 01200 libnet_build_token_ring(u_int8_t ac, u_int8_t fc, u_int8_t *dst, u_int8_t *src,
306
+ 01201 u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type,
307
+ 01202 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
308
+ 01203
309
+ 01217 libnet_ptag_t
310
+ 01218 libnet_autobuild_token_ring(u_int8_t ac, u_int8_t fc, u_int8_t *dst,
311
+ 01219 u_int8_t dsap, u_int8_t ssap, u_int8_t cf, u_int8_t *org, u_int16_t type,
312
+ 01220 libnet_t *l);
313
+ 01221
314
+ 01241 libnet_ptag_t
315
+ 01242 libnet_build_vrrp(u_int8_t version, u_int8_t type, u_int8_t vrouter_id,
316
+ 01243 u_int8_t priority, u_int8_t ip_count, u_int8_t auth_type, u_int8_t advert_int,
317
+ 01244 u_int16_t sum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
318
+ 01245 libnet_ptag_t ptag);
319
+ 01246
320
+ 01259 libnet_ptag_t
321
+ 01260 libnet_build_mpls(u_int32_t label, u_int8_t experimental, u_int8_t bos,
322
+ 01261 u_int8_t ttl, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
323
+ 01262 libnet_ptag_t ptag);
324
+ 01263
325
+ 01291 libnet_ptag_t
326
+ 01292 libnet_build_ntp(u_int8_t leap_indicator, u_int8_t version, u_int8_t mode,
327
+ 01293 u_int8_t stratum, u_int8_t poll, u_int8_t precision, u_int16_t delay_int,
328
+ 01294 u_int16_t delay_frac, u_int16_t dispersion_int, u_int16_t dispersion_frac,
329
+ 01295 u_int32_t reference_id, u_int32_t ref_ts_int, u_int32_t ref_ts_frac,
330
+ 01296 u_int32_t orig_ts_int, u_int32_t orig_ts_frac, u_int32_t rec_ts_int,
331
+ 01297 u_int32_t rec_ts_frac, u_int32_t xmt_ts_int, u_int32_t xmt_ts_frac,
332
+ 01298 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
333
+ 01299
334
+ 01307 libnet_ptag_t
335
+ 01308 libnet_build_ospfv2(u_int16_t len, u_int8_t type, u_int32_t rtr_id,
336
+ 01309 u_int32_t area_id, u_int16_t sum, u_int16_t autype, u_int8_t *payload,
337
+ 01310 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
338
+ 01311
339
+ 01319 libnet_ptag_t
340
+ 01320 <a class="code" href="libnet-functions_8h.html#a69">libnet_build_ospfv2_hello</a>(u_int32_t netmask, u_int16_t interval, u_int8_t opts,
341
+ 01321 u_int8_t priority, u_int dead_int, u_int32_t des_rtr, u_int32_t bkup_rtr,
342
+ 01322 u_int32_t neighbor, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
343
+ 01323 libnet_ptag_t ptag);
344
+ 01324
345
+ 01332 libnet_ptag_t
346
+ 01333 <a class="code" href="libnet-functions_8h.html#a70">libnet_build_ospfv2_dbd</a>(u_int16_t dgram_len, u_int8_t opts, u_int8_t type,
347
+ 01334 u_int seqnum, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
348
+ 01335 libnet_ptag_t ptag);
349
+ 01336
350
+ 01344 libnet_ptag_t
351
+ 01345 <a class="code" href="libnet-functions_8h.html#a71">libnet_build_ospfv2_lsr</a>(u_int type, u_int lsid, u_int32_t advrtr,
352
+ 01346 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
353
+ 01347
354
+ 01355 libnet_ptag_t
355
+ 01356 <a class="code" href="libnet-functions_8h.html#a72">libnet_build_ospfv2_lsu</a>(u_int num, u_int8_t *payload, u_int32_t payload_s,
356
+ 01357 libnet_t *l, libnet_ptag_t ptag);
357
+ 01358
358
+ 01366 libnet_ptag_t
359
+ 01367 <a class="code" href="libnet-functions_8h.html#a73">libnet_build_ospfv2_lsa</a>(u_int16_t age, u_int8_t opts, u_int8_t type,
360
+ 01368 u_int lsid, u_int32_t advrtr, u_int seqnum, u_int16_t sum, u_int16_t len,
361
+ 01369 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
362
+ 01370
363
+ 01378 libnet_ptag_t
364
+ 01379 <a class="code" href="libnet-functions_8h.html#a74">libnet_build_ospfv2_lsa_rtr</a>(u_int16_t flags, u_int16_t num, u_int id,
365
+ 01380 u_int data, u_int8_t type, u_int8_t tos, u_int16_t metric, u_int8_t *payload,
366
+ 01381 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
367
+ 01382
368
+ 01390 libnet_ptag_t
369
+ 01391 <a class="code" href="libnet-functions_8h.html#a75">libnet_build_ospfv2_lsa_net</a>(u_int32_t nmask, u_int rtrid, u_int8_t *payload,
370
+ 01392 u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
371
+ 01393
372
+ 01401 libnet_ptag_t
373
+ 01402 <a class="code" href="libnet-functions_8h.html#a76">libnet_build_ospfv2_lsa_sum</a>(u_int32_t nmask, u_int metric, u_int tos,
374
+ 01403 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
375
+ 01404
376
+ 01412 libnet_ptag_t
377
+ 01413 <a class="code" href="libnet-functions_8h.html#a77">libnet_build_ospfv2_lsa_as</a>(u_int32_t nmask, u_int metric, u_int32_t fwdaddr,
378
+ 01414 u_int tag, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
379
+ 01415 libnet_ptag_t ptag);
380
+ 01416
381
+ 01427 libnet_ptag_t
382
+ 01428 libnet_build_data(u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
383
+ 01429 libnet_ptag_t ptag);
384
+ 01430
385
+ 01438 libnet_ptag_t
386
+ 01439 libnet_build_dhcpv4(u_int8_t opcode, u_int8_t htype, u_int8_t hlen,
387
+ 01440 u_int8_t hopcount, u_int32_t xid, u_int16_t secs, u_int16_t flags,
388
+ 01441 u_int32_t cip, u_int32_t yip, u_int32_t sip, u_int32_t gip, u_int8_t *chaddr,
389
+ 01442 u_int8_t *sname, u_int8_t *file, u_int8_t *payload, u_int32_t payload_s,
390
+ 01443 libnet_t *l, libnet_ptag_t ptag);
391
+ 01444
392
+ 01452 libnet_ptag_t
393
+ 01453 libnet_build_bootpv4(u_int8_t opcode, u_int8_t htype, u_int8_t hlen,
394
+ 01454 u_int8_t hopcount, u_int32_t xid, u_int16_t secs, u_int16_t flags,
395
+ 01455 u_int32_t cip, u_int32_t yip, u_int32_t sip, u_int32_t gip, u_int8_t *chaddr,
396
+ 01456 u_int8_t *sname, u_int8_t *file, u_int8_t *payload, u_int32_t payload_s,
397
+ 01457 libnet_t *l, libnet_ptag_t ptag);
398
+ 01458
399
+ 01466 <span class="keyword">inline</span> u_int32_t
400
+ 01467 libnet_getgre_length(u_int16_t fv);
401
+ 01468
402
+ 01490 libnet_ptag_t
403
+ 01491 libnet_build_gre(u_int16_t fv, u_int16_t type, u_int16_t sum,
404
+ 01492 u_int16_t offset, u_int32_t key, u_int32_t seq, u_int16_t len,
405
+ 01493 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
406
+ 01494
407
+ 01516 libnet_ptag_t
408
+ 01517 libnet_build_egre(u_int16_t fv, u_int16_t type, u_int16_t sum,
409
+ 01518 u_int16_t offset, u_int32_t key, u_int32_t seq, u_int16_t len,
410
+ 01519 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
411
+ 01520
412
+ 01528 libnet_ptag_t
413
+ 01529 libnet_build_gre_sre(u_int16_t af, u_int8_t offset, u_int8_t length,
414
+ 01530 u_int8_t *routing, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
415
+ 01531 libnet_ptag_t ptag);
416
+ 01532
417
+ 01540 libnet_ptag_t
418
+ 01541 libnet_build_gre_last_sre(libnet_t *l, libnet_ptag_t ptag);
419
+ 01542
420
+ 01564 libnet_ptag_t
421
+ 01565 libnet_build_bgp4_header(u_int8_t marker[LIBNET_BGP4_MARKER_SIZE],
422
+ 01566 u_int16_t len, u_int8_t type, u_int8_t *payload, u_int32_t payload_s,
423
+ 01567 libnet_t *l, libnet_ptag_t ptag);
424
+ 01568
425
+ 01585 libnet_ptag_t
426
+ 01586 libnet_build_bgp4_open(u_int8_t version, u_int16_t src_as, u_int16_t hold_time,
427
+ 01587 u_int32_t bgp_id, u_int8_t opt_len, u_int8_t *payload, u_int32_t payload_s,
428
+ 01588 libnet_t *l, libnet_ptag_t ptag);
429
+ 01589
430
+ 01605 libnet_ptag_t
431
+ 01606 libnet_build_bgp4_update(u_int16_t unfeasible_rt_len, u_int8_t *withdrawn_rt,
432
+ 01607 u_int16_t total_path_attr_len, u_int8_t *path_attributes, u_int16_t info_len,
433
+ 01608 u_int8_t *reachability_info, u_int8_t *payload, u_int32_t payload_s,
434
+ 01609 libnet_t *l, libnet_ptag_t ptag);
435
+ 01610
436
+ 01623 libnet_ptag_t
437
+ 01624 libnet_build_bgp4_notification(u_int8_t err_code, u_int8_t err_subcode,
438
+ 01625 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
439
+ 01626
440
+ 01649 libnet_ptag_t
441
+ 01650 libnet_build_sebek(u_int32_t magic, u_int16_t version, u_int16_t type,
442
+ 01651 u_int32_t counter, u_int32_t time_sec, u_int32_t time_usec, u_int32_t pid,
443
+ 01652 u_int32_t uid, u_int32_t fd, u_int8_t cmd[SEBEK_CMD_LENGTH], u_int32_t length,
444
+ 01653 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
445
+ 01654
446
+ 01669 libnet_ptag_t
447
+ 01670 libnet_build_link(u_int8_t *dst, u_int8_t *src, u_int8_t *oui, u_int16_t type,
448
+ 01671 u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag);
449
+ 01672
450
+ 01683 libnet_ptag_t
451
+ 01684 libnet_autobuild_link(u_int8_t *dst, u_int8_t *oui, u_int16_t type,
452
+ 01685 libnet_t *l);
453
+ 01686
454
+ 01699 <span class="keywordtype">int</span>
455
+ 01700 libnet_write(libnet_t *l);
456
+ 01701
457
+ 01711 u_int32_t
458
+ 01712 libnet_get_ipaddr4(libnet_t *l);
459
+ 01713
460
+ 01719 <span class="keyword">struct </span>libnet_in6_addr
461
+ 01720 libnet_get_ipaddr6(libnet_t *l);
462
+ 01721
463
+ 01730 <span class="keyword">struct </span>libnet_ether_addr *
464
+ 01731 libnet_get_hwaddr(libnet_t *l);
465
+ 01732
466
+ 01742 u_int8_t *
467
+ 01743 libnet_hex_aton(int8_t *s, <span class="keywordtype">int</span> *len);
468
+ 01744
469
+ 01760 <span class="keywordtype">int</span>
470
+ 01761 libnet_adv_cull_packet(libnet_t *l, u_int8_t **packet, u_int32_t *packet_s);
471
+ 01762
472
+ 01775 <span class="keywordtype">int</span>
473
+ 01776 libnet_adv_cull_header(libnet_t *l, libnet_ptag_t ptag, u_int8_t **header,
474
+ 01777 u_int32_t *header_s);
475
+ 01778
476
+ 01792 <span class="keywordtype">int</span>
477
+ 01793 libnet_adv_write_link(libnet_t *l, u_int8_t *packet, u_int32_t packet_s);
478
+ 01794
479
+ 01801 <span class="keywordtype">void</span>
480
+ 01802 libnet_adv_free_packet(libnet_t *l, u_int8_t *packet);
481
+ 01803
482
+ 01817 <span class="keywordtype">int</span>
483
+ 01818 libnet_cq_add(libnet_t *l, <span class="keywordtype">char</span> *label);
484
+ 01819
485
+ 01834 libnet_t *
486
+ 01835 libnet_cq_remove(libnet_t *l);
487
+ 01836
488
+ 01848 libnet_t *
489
+ 01849 libnet_cq_remove_by_label(<span class="keywordtype">char</span> *label);
490
+ 01850
491
+ 01857 int8_t *
492
+ 01858 libnet_cq_getlabel(libnet_t *l);
493
+ 01859
494
+ 01866 libnet_t *
495
+ 01867 libnet_cq_find_by_label(<span class="keywordtype">char</span> *label);
496
+ 01868
497
+ 01874 <span class="keywordtype">void</span>
498
+ 01875 libnet_cq_destroy();
499
+ 01876
500
+ 01896 libnet_t *
501
+ 01897 libnet_cq_head();
502
+ 01898
503
+ 01904 <span class="keywordtype">int</span>
504
+ 01905 libnet_cq_last();
505
+ 01906
506
+ 01912 libnet_t *
507
+ 01913 libnet_cq_next();
508
+ 01914
509
+ 01920 u_int32_t
510
+ 01921 libnet_cq_size();
511
+ 01922
512
+ 01928 <span class="keywordtype">void</span>
513
+ 01929 libnet_diag_dump_context(libnet_t *l);
514
+ 01930
515
+ 01936 <span class="keywordtype">void</span>
516
+ 01937 libnet_diag_dump_pblock(libnet_t *l);
517
+ 01938
518
+ 01945 <span class="keywordtype">char</span> *
519
+ 01946 libnet_diag_dump_pblock_type(u_int8_t type);
520
+ 01947
521
+ 01959 <span class="keywordtype">void</span>
522
+ 01960 libnet_diag_dump_hex(u_int8_t *packet, u_int32_t len, <span class="keywordtype">int</span> swap, FILE *stream);
523
+ 01961
524
+ 01962 <span class="comment">/*</span>
525
+ 01963 <span class="comment"> * [Internal] </span>
526
+ 01964 <span class="comment"> */</span>
527
+ 01965 <span class="keywordtype">int</span>
528
+ 01966 libnet_write_raw_ipv4(libnet_t *l, u_int8_t *packet, u_int32_t size);
529
+ 01967
530
+ 01968 <span class="comment">/*</span>
531
+ 01969 <span class="comment"> * [Internal] </span>
532
+ 01970 <span class="comment"> */</span>
533
+ 01971 <span class="keywordtype">int</span>
534
+ 01972 libnet_write_raw_ipv6(libnet_t *l, u_int8_t *packet, u_int32_t size);
535
+ 01973
536
+ 01974 <span class="comment">/*</span>
537
+ 01975 <span class="comment"> * [Internal] </span>
538
+ 01976 <span class="comment"> */</span>
539
+ 01977 <span class="keywordtype">int</span>
540
+ 01978 libnet_write_link(libnet_t *l, u_int8_t *packet, u_int32_t size);
541
+ 01979
542
+ 01980 <span class="preprocessor">#if ((__WIN32__) &amp;&amp; !(__CYGWIN__))</span>
543
+ 01981 <span class="preprocessor"></span><span class="comment">/*</span>
544
+ 01982 <span class="comment"> * [Internal] </span>
545
+ 01983 <span class="comment"> */</span>
546
+ 01984 SOCKET
547
+ 01985 libnet_open_raw4(libnet_t *l);
548
+ 01986 <span class="preprocessor">#else</span>
549
+ 01987 <span class="preprocessor"></span><span class="comment">/*</span>
550
+ 01988 <span class="comment"> * [Internal] </span>
551
+ 01989 <span class="comment"> */</span>
552
+ 01990 <span class="keywordtype">int</span>
553
+ 01991 libnet_open_raw4(libnet_t *l);
554
+ 01992 <span class="preprocessor">#endif</span>
555
+ 01993 <span class="preprocessor"></span>
556
+ 01994 <span class="comment">/*</span>
557
+ 01995 <span class="comment"> * [Internal] </span>
558
+ 01996 <span class="comment"> */</span>
559
+ 01997 <span class="keywordtype">int</span>
560
+ 01998 libnet_close_raw4(libnet_t *l);
561
+ 01999
562
+ 02000 <span class="comment">/*</span>
563
+ 02001 <span class="comment"> * [Internal] </span>
564
+ 02002 <span class="comment"> */</span>
565
+ 02003 <span class="keywordtype">int</span>
566
+ 02004 libnet_open_raw6(libnet_t *l);
567
+ 02005
568
+ 02006 <span class="comment">/*</span>
569
+ 02007 <span class="comment"> * [Internal] </span>
570
+ 02008 <span class="comment"> */</span>
571
+ 02009 <span class="keywordtype">int</span>
572
+ 02010 libnet_close_raw6(libnet_t *l);
573
+ 02011
574
+ 02012 <span class="comment">/*</span>
575
+ 02013 <span class="comment"> * [Internal] </span>
576
+ 02014 <span class="comment"> */</span>
577
+ 02015 <span class="keywordtype">int</span>
578
+ 02016 libnet_select_device(libnet_t *l);
579
+ 02017
580
+ 02018 <span class="comment">/*</span>
581
+ 02019 <span class="comment"> * [Internal] </span>
582
+ 02020 <span class="comment"> */</span>
583
+ 02021 <span class="keywordtype">int</span>
584
+ 02022 libnet_open_link(libnet_t *l);
585
+ 02023
586
+ 02024 <span class="comment">/*</span>
587
+ 02025 <span class="comment"> * [Internal] </span>
588
+ 02026 <span class="comment"> */</span>
589
+ 02027 <span class="keywordtype">int</span>
590
+ 02028 libnet_close_link(libnet_t *l);
591
+ 02029
592
+ 02030 <span class="comment">/*</span>
593
+ 02031 <span class="comment"> * [Internal] </span>
594
+ 02032 <span class="comment"> */</span>
595
+ 02033 <span class="keywordtype">int</span>
596
+ 02034 libnet_do_checksum(libnet_t *l, u_int8_t *packet, <span class="keywordtype">int</span> protocol, <span class="keywordtype">int</span> len);
597
+ 02035
598
+ 02036 <span class="comment">/*</span>
599
+ 02037 <span class="comment"> * [Internal] </span>
600
+ 02038 <span class="comment"> */</span>
601
+ 02039 u_int32_t
602
+ 02040 libnet_compute_crc(u_int8_t *buf, u_int32_t len);
603
+ 02041
604
+ 02042 <span class="comment">/*</span>
605
+ 02043 <span class="comment"> * [Internal] </span>
606
+ 02044 <span class="comment"> */</span>
607
+ 02045 u_int16_t
608
+ 02046 libnet_ip_check(u_int16_t *addr, <span class="keywordtype">int</span> len);
609
+ 02047
610
+ 02048 <span class="comment">/*</span>
611
+ 02049 <span class="comment"> * [Internal] </span>
612
+ 02050 <span class="comment"> */</span>
613
+ 02051 <span class="keywordtype">int</span>
614
+ 02052 libnet_in_cksum(u_int16_t *addr, <span class="keywordtype">int</span> len);
615
+ 02053
616
+ 02054 <span class="comment">/*</span>
617
+ 02055 <span class="comment"> * [Internal] </span>
618
+ 02056 <span class="comment"> * If ptag is 0, function will create a pblock for the protocol unit type,</span>
619
+ 02057 <span class="comment"> * append it to the list and return a pointer to it. If ptag is not 0,</span>
620
+ 02058 <span class="comment"> * function will search the pblock list for the specified protocol block </span>
621
+ 02059 <span class="comment"> * and return a pointer to it.</span>
622
+ 02060 <span class="comment"> */</span>
623
+ 02061 libnet_pblock_t *
624
+ 02062 libnet_pblock_probe(libnet_t *l, libnet_ptag_t ptag, u_int32_t n,
625
+ 02063 u_int8_t type);
626
+ 02064
627
+ 02065 <span class="comment">/*</span>
628
+ 02066 <span class="comment"> * [Internal] </span>
629
+ 02067 <span class="comment"> * Function creates the pblock list if l-&gt;protocol_blocks == NULL or appends</span>
630
+ 02068 <span class="comment"> * an entry to the doubly linked list.</span>
631
+ 02069 <span class="comment"> */</span>
632
+ 02070 libnet_pblock_t *
633
+ 02071 libnet_pblock_new(libnet_t *l, u_int32_t size);
634
+ 02072
635
+ 02073 <span class="comment">/*</span>
636
+ 02074 <span class="comment"> * [Internal] </span>
637
+ 02075 <span class="comment"> * Function swaps two pblocks in memory.</span>
638
+ 02076 <span class="comment"> */</span>
639
+ 02077 <span class="keywordtype">int</span>
640
+ 02078 libnet_pblock_swap(libnet_t *l, libnet_ptag_t ptag1, libnet_ptag_t ptag2);
641
+ 02079
642
+ 02080 <span class="comment">/*</span>
643
+ 02081 <span class="comment"> * [Internal] </span>
644
+ 02082 <span class="comment"> * Function inserts a pblock into the doubly linked list.</span>
645
+ 02083 <span class="comment"> */</span>
646
+ 02084 <span class="keywordtype">int</span>
647
+ 02085 libnet_pblock_insert_before(libnet_t *l, libnet_ptag_t ptag1,
648
+ 02086 libnet_ptag_t ptag2);
649
+ 02087
650
+ 02088 <span class="comment">/*</span>
651
+ 02089 <span class="comment"> * [Internal] </span>
652
+ 02090 <span class="comment"> * Function removes a pblock from context </span>
653
+ 02091 <span class="comment"> */</span>
654
+ 02092 <span class="keywordtype">void</span>
655
+ 02093 libnet_pblock_delete(libnet_t *l, libnet_pblock_t *p);
656
+ 02094
657
+ 02095 <span class="comment">/*</span>
658
+ 02096 <span class="comment"> * [Internal] </span>
659
+ 02097 <span class="comment"> * Function updates the pblock meta-inforation. Internally it updates the</span>
660
+ 02098 <span class="comment"> * ptag with a monotonically increasing variable kept in l. This way each</span>
661
+ 02099 <span class="comment"> * pblock has a succesively increasing ptag identifier.</span>
662
+ 02100 <span class="comment"> */</span>
663
+ 02101 libnet_ptag_t
664
+ 02102 libnet_pblock_update(libnet_t *l, libnet_pblock_t *p, u_int32_t h,
665
+ 02103 u_int8_t type);
666
+ 02104
667
+ 02105 <span class="comment">/*</span>
668
+ 02106 <span class="comment"> * [Internal] </span>
669
+ 02107 <span class="comment"> * Function locates a given block by it's ptag. </span>
670
+ 02108 <span class="comment"> */</span>
671
+ 02109 libnet_pblock_t *
672
+ 02110 libnet_pblock_find(libnet_t *l, libnet_ptag_t ptag);
673
+ 02111
674
+ 02112 <span class="comment">/*</span>
675
+ 02113 <span class="comment"> * [Internal] </span>
676
+ 02114 <span class="comment"> * Function copies protocol block data over.</span>
677
+ 02115 <span class="comment"> */</span>
678
+ 02116 <span class="keywordtype">int</span>
679
+ 02117 libnet_pblock_append(libnet_t *l, libnet_pblock_t *p, u_int8_t *buf,
680
+ 02118 u_int32_t len);
681
+ 02119
682
+ 02120 <span class="comment">/*</span>
683
+ 02121 <span class="comment"> * [Internal] </span>
684
+ 02122 <span class="comment"> * Function sets pblock flags.</span>
685
+ 02123 <span class="comment"> */</span>
686
+ 02124 <span class="keywordtype">void</span>
687
+ 02125 libnet_pblock_setflags(libnet_pblock_t *p, u_int8_t flags);
688
+ 02126
689
+ 02127 <span class="comment">/*</span>
690
+ 02128 <span class="comment"> * [Internal] </span>
691
+ 02129 <span class="comment"> * Function returns the protocol number for the protocol block type. If</span>
692
+ 02130 <span class="comment"> * the type is unknown, the function defaults to returning IPPROTO_IP.</span>
693
+ 02131 <span class="comment"> */</span>
694
+ 02132 <span class="keywordtype">int</span>
695
+ 02133 libnet_pblock_p2p(u_int8_t type);
696
+ 02134
697
+ 02135 <span class="comment">/*</span>
698
+ 02136 <span class="comment"> * [Internal] </span>
699
+ 02137 <span class="comment"> * Function assembles the packet for subsequent writing. Function makes two</span>
700
+ 02138 <span class="comment"> * passes through the pblock list:</span>
701
+ 02139 <span class="comment"> */</span>
702
+ 02140 <span class="keywordtype">int</span>
703
+ 02141 libnet_pblock_coalesce(libnet_t *l, u_int8_t **packet, u_int32_t *size);
704
+ 02142
705
+ 02143 <span class="preprocessor">#if !(__WIN32__)</span>
706
+ 02144 <span class="preprocessor"></span><span class="comment">/*</span>
707
+ 02145 <span class="comment"> * [Internal] </span>
708
+ 02146 <span class="comment"> * By testing if we can retrieve the FLAGS of an iface</span>
709
+ 02147 <span class="comment"> * we can know if it exists or not and if it is up.</span>
710
+ 02148 <span class="comment"> */</span>
711
+ 02149 <span class="keywordtype">int</span>
712
+ 02150 libnet_check_iface(libnet_t *l);
713
+ 02151 <span class="preprocessor">#endif</span>
714
+ 02152 <span class="preprocessor"></span>
715
+ 02153 <span class="preprocessor">#if defined(__WIN32__)</span>
716
+ 02154 <span class="preprocessor"></span><span class="comment">/*</span>
717
+ 02155 <span class="comment"> * [Internal] </span>
718
+ 02156 <span class="comment"> */</span>
719
+ 02157 BYTE *
720
+ 02158 libnet_win32_get_remote_mac(libnet_t *l, DWORD IP);
721
+ 02159
722
+ 02160 <span class="comment">/*</span>
723
+ 02161 <span class="comment"> * [Internal] </span>
724
+ 02162 <span class="comment"> */</span>
725
+ 02163 <span class="keywordtype">int</span>
726
+ 02164 libnet_close_link_interface(libnet_t *l);
727
+ 02165
728
+ 02166 <span class="comment">/*</span>
729
+ 02167 <span class="comment"> * [Internal] </span>
730
+ 02168 <span class="comment"> */</span>
731
+ 02169 BYTE *
732
+ 02170 libnet_win32_read_arp_table(DWORD IP);
733
+ 02171 <span class="preprocessor">#endif</span>
734
+ 02172 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* __LIBNET_FUNCTIONS_H */</span>
735
+ 02173
736
+ 02174 <span class="comment">/* EOF */</span>
737
+ </pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 10 13:23:37 2004 for libnet by
738
+ <a href="http://www.doxygen.org/index.html">
739
+ <img src="doxygen.png" alt="doxygen" align="middle" border=0 >
740
+ </a>1.3.4 </small></address>
741
+ </body>
742
+ </html>