netsukuku/d6/d4a/inet_8h_source.html

390 lines
71 KiB
HTML
Raw Normal View History

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>The Netsukuku Project: src/inet.h Source File</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">The Netsukuku Project
&#160;<span id="projectnumber">0.0.9</span>
</div>
<div id="projectbrief">An Alternative routing method</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="../../index.html"><span>Main&#160;Page</span></a></li>
<li><a href="../../annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="../../files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="../../search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="../../files.html"><span>File&#160;List</span></a></li>
<li><a href="../../globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('d6/d4a/inet_8h_source.html','../../');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">inet.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="../../d6/d4a/inet_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* This file is part of Netsukuku</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * (c) Copyright 2005 Andrea Lo Pumo aka AlpT &lt;alpt@freaknet.org&gt;</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This source code is free software; you can redistribute it and/or</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * modify it under the terms of the GNU General Public License as published </span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * by the Free Software Foundation; either version 2 of the License,</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * or (at your option) any later version.</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This source code is distributed in the hope that it will be useful,</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * Please refer to the GNU Public License for more details.</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU Public License along with</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * this source code; if not, write to:</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef INET_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define INET_H</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../dc/d3e/endianness_8h.html">endianness.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a70f8406c9556460a606bee45306c5630"> 24</a></span>&#160;<span class="preprocessor">#define MAX_IP_INT 4</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a58d45ce77dd4360314b4fd8ca70d9fb8"> 25</a></span>&#160;<span class="preprocessor">#define MAX_IP_SZ (MAX_IP_INT*sizeof(int))</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * This is the &quot;link-scope all-hosts multicast&quot; address: ff02::1.</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a2eec26e58f8ed16c938565b165a8e559"> 30</a></span>&#160;<span class="preprocessor">#define IPV6_ADDR_BROADCAST { 0xff020000, 0x0, 0x0, 0x1 }</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a1d8f23abe13b01de807046bd4a72769a"> 32</a></span>&#160;<span class="preprocessor">#define LOOPBACK_IP 0x7f000001</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#aea3584d5a792b3f5cad2ae37dbb8235a"> 33</a></span>&#160;<span class="preprocessor">#define LOOPBACK_NET 0x7f000000</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#ae06eb6a44552b181e8a879829f90af5b"> 34</a></span>&#160;<span class="preprocessor">#define LOOPBACK_BCAST 0x7fffffff</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a95dd1a364e63ab322fa9fc025c31b8c6"> 36</a></span>&#160;<span class="preprocessor">#define LOOPBACK_IPV6 { 0x0, 0x0, 0x0, 0x1 }</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> * `x&#39; is in host byte order</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * NTK_RESTRICTED_10_MASK(x):</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> * given an ipv4 IP it returns the equivalent in the 10.x.x.x class, i.e.</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * 212.13.4.1 --&gt; 10.13.4.1</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * NTK_RESTRICTED_172_MASK(x): it&#39;s the same of NTK_RESTRICTED_10_MASK() but</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> * it converts the IP in the 172.16.0.0 - 172.31.255.255 range.</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> * NTK_RESTRICTED_IPV6_MASK(x):</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> * `x&#39; in this case is the first integer of the four of an ipv6 IP.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> * The conversion is: `x&#39; --&gt; fec0:xxxx:...</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a7ad5dd2be2f7d131389ce138adadc443"> 53</a></span>&#160;<span class="preprocessor">#define NTK_RESTRICTED_10_MASK(x) (((x) &amp; ~0xff000000)|0x0a000000)</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a6df09c0900bbb7931f53064576bf5594"> 54</a></span>&#160;<span class="preprocessor">#define NTK_RESTRICTED_172_MASK(x) (((((x) &amp; ~0xff000000) | 0xac000000) &amp; ~0x00e00000) | 0x00100000)</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a2ba5cd94963c9885d691bd133cf170ea"> 55</a></span>&#160;<span class="preprocessor">#define NTK_RESTRICTED_IPV6_MASK(x) (((x) &amp; ~0xffff0000)|0xfec00000) </span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">/* `x&#39; is in network order.</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> * Is `x&#39; an IP in the range of 192.168.0.0 - 192.168.255.255 ? */</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a6f33ddbfe0b820f3eecb41818ace33bc"> 60</a></span>&#160;<span class="preprocessor">#define NTK_PRIVATE_C(x) (((x) &amp; __constant_htonl(0xffff0000)) == __constant_htonl(0xc0a80000))</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">/* `x&#39; is in network order.</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> * Is `x&#39; in 172.16.0.0 - 172.31.255.255 ? */</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#ae9e729226feb7fb5635e5c3425a0bbf5"> 64</a></span>&#160;<span class="preprocessor">#define NTK_PRIVATE_B(x) (((x) &amp; __constant_htonl(0xff000000)) == __constant_htonl(0xac000000))\</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> &amp;&amp; ((x) &amp; __constant_htonl(0x00100000)) &amp;&amp; \</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> !((x) &amp; __constant_htonl(0x00e00000))</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> * The inet_prefix struct is used to store IP addresses in the internals of</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> * the Netsukuku code</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="../../da/d1d/structinet__prefix.html"> 73</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="../../da/d1d/structinet__prefix.html#a2d350e3925bc8fcb50448fcc9b32c2eb"> 75</a></span>&#160; u_char <a class="code" href="../../da/d1d/structinet__prefix.html#a2d350e3925bc8fcb50448fcc9b32c2eb">family</a>; <span class="comment">/* AF_INET or AF_INET6 */</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="../../da/d1d/structinet__prefix.html#aa77146a4497ae3737763e27a37290e2d"> 76</a></span>&#160; u_short <a class="code" href="../../da/d1d/structinet__prefix.html#aa77146a4497ae3737763e27a37290e2d">len</a>; <span class="comment">/* IP length: 4 or 16 (bytes) */</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="../../da/d1d/structinet__prefix.html#ab5794c8a8546780c2cbba9401d5ad625"> 77</a></span>&#160; u_char <a class="code" href="../../da/d1d/structinet__prefix.html#ab5794c8a8546780c2cbba9401d5ad625">bits</a>; <span class="comment">/* Number of used bits of the IP */</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="../../da/d1d/structinet__prefix.html#a8da10ede4d317ec35f028b6f47b8f374"> 78</a></span>&#160; u_int data[<a class="code" href="../../d6/d4a/inet_8h.html#a70f8406c9556460a606bee45306c5630">MAX_IP_INT</a>]; <span class="comment">/* The address is kept in host long format, </span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> word ORDER 1 (most significant word first) */</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">/* int_info struct used for packing the inet_prefix struct.</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> * Note that `data&#39; is ignored &#39;cause it will be converted with</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> * inet_htonl() / inet_ntohl() */</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a985bd0004bf1041118f5469d7ff09da8"> 85</a></span>&#160;<a class="code" href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a> <a class="code" href="../../d6/d4a/inet_8h.html#a985bd0004bf1041118f5469d7ff09da8">inet_prefix_iinfo</a> = { 1,</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; { <a class="code" href="../../dc/d3e/endianness_8h.html#a66b75e81c28419f622f82e631e5da9bc">INT_TYPE_16BIT</a> },</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; { <span class="keyword">sizeof</span>(u_char) },</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; { 1 }</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; };</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a2995d9df0ad9f9768f956cc6df5d85e1"> 90</a></span>&#160;<span class="preprocessor">#define INET_PREFIX_PACK_SZ (sizeof(u_char) + sizeof(u_short) +\</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"> sizeof(u_char) + MAX_IP_SZ)</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment">/* * * defines from linux/in.h * * */</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a2b3550d70ed4e5d4f87d8153b3509dc6"> 95</a></span>&#160;<span class="preprocessor">#define LOOPBACK(x) (((x) &amp; htonl(0xff000000)) == htonl(0x7f000000))</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a35c40f9a4b3fb0825eb6ff3569976df7"> 96</a></span>&#160;<span class="preprocessor">#define MULTICAST(x) (((x) &amp; htonl(0xf0000000)) == htonl(0xe0000000))</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a056ffb8ca9ec45edd188bde0167aa85a"> 97</a></span>&#160;<span class="preprocessor">#define BADCLASS(x) (((x) &amp; htonl(0xf0000000)) == htonl(0xf0000000))</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a7afda08495b6904bbbedff350fab8226"> 98</a></span>&#160;<span class="preprocessor">#define ZERONET(x) (((x) &amp; htonl(0xff000000)) == htonl(0x00000000))</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a9e17ff764d5cbf087d7a0cbaa8c85874"> 99</a></span>&#160;<span class="preprocessor">#define LOCAL_MCAST(x) (((x) &amp; htonl(0xFFFFFF00)) == htonl(0xE0000000))</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment">/* * * defines from linux/include/net/ipv6.h * * */</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a67225bd379ce9c5bfd658319da627655"> 102</a></span>&#160;<span class="preprocessor">#define IPV6_ADDR_ANY 0x0000U</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a83b11484fe98fb7b7734b2ddef6ff528"> 104</a></span>&#160;<span class="preprocessor">#define IPV6_ADDR_UNICAST 0x0001U </span></div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a2b5c942d5f4dfd40d9fa66bc30999eb1"> 105</a></span>&#160;<span class="preprocessor">#define IPV6_ADDR_MULTICAST 0x0002U </span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#afd117fe220ad063b68b3883bacf4e23e"> 107</a></span>&#160;<span class="preprocessor">#define IPV6_ADDR_LOOPBACK 0x0010U</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a809da1614ff73b401b7d148eb8a36836"> 108</a></span>&#160;<span class="preprocessor">#define IPV6_ADDR_LINKLOCAL 0x0020U</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#ad1a48bf4df17f573e4959ee8118159e7"> 109</a></span>&#160;<span class="preprocessor">#define IPV6_ADDR_SITELOCAL 0x0040U</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#ab347f150ba702d83742c0c43a8fe957c"> 111</a></span>&#160;<span class="preprocessor">#define IPV6_ADDR_COMPATv4 0x0080U</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a155d7966cdb01f1cd103aa6b8dd9f8da"> 113</a></span>&#160;<span class="preprocessor">#define IPV6_ADDR_SCOPE_MASK 0x00f0U</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a75cf314e835a7ccb4b854520b62f2f6d"> 115</a></span>&#160;<span class="preprocessor">#define IPV6_ADDR_MAPPED 0x1000U</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#ad63b846df3f7eb19240e69c8b446e745"> 116</a></span>&#160;<span class="preprocessor">#define IPV6_ADDR_RESERVED 0x2000U </span><span class="comment">/* reserved address space */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> * Type of Service</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#ifndef IPTOS_LOWDELAY</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a417721f0e1f1445e71fc0f55e04c7026"> 122</a></span>&#160;<span class="preprocessor">#define IPTOS_LOWDELAY 0x10</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a130bd030a96cdf2ad079d4d0e452af8c"> 123</a></span>&#160;<span class="preprocessor">#define IPTOS_THROUGHPUT 0x08</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a4dab62eb6b0c87716f292a38ea179f60"> 124</a></span>&#160;<span class="preprocessor">#define IPTOS_RELIABILITY 0x04</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#af8a4a9b6f335b1d76c2f000610087a33"> 125</a></span>&#160;<span class="preprocessor">#define IPTOS_LOWCOST 0x02</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a6dc4cfef3512b905e64164e25a611e54"> 126</a></span>&#160;<span class="preprocessor">#define IPTOS_MINCOST IPTOS_LOWCOST</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IPTOS_LOWDELAY */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment">/* </span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"> * Globals</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a9657a3afb41da39bcfe84491862afe1d"> 134</a></span>&#160;<span class="preprocessor">#define RESTRICTED_10 1 </span><span class="comment">/* We are using the 10.x.x.x class for </span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> the restricted mode */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a47be543f19f129ad46cb0b2f13553b4e"> 136</a></span>&#160;<span class="preprocessor">#define RESTRICTED_172 2 </span><span class="comment">/* 172.16.0.0-172.31.255.255 class */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a8f21eb5259f5e36350a8ceeff6579503"> 138</a></span>&#160;<span class="preprocessor">#define RESTRICTED_10_STR &quot;10.0.0.0-10.255.255.255&quot;</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a2c02ab8b19f1c331e024ee5bf2ca8883"> 139</a></span>&#160;<span class="preprocessor">#define RESTRICTED_172_STR &quot;172.16.0.0-172.31.255.255&quot;</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="../../d6/d4a/inet_8h.html#a4446a95b716c4f73bc3ccc2d154071bb"> 141</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a341f9d9a1b2ec097821be9b6cae697eb">my_family</a>, <a class="code" href="../../d6/d4a/inet_8h.html#a4446a95b716c4f73bc3ccc2d154071bb">restricted_mode</a>, <a class="code" href="../../d6/d4a/inet_8h.html#ad534384266132e24d533382503e25096">restricted_class</a>;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment">/* </span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"> * * * Functions declaration * * </span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d6/d4a/inet_8h.html#a385963363f8d2ee7012a4c919b9b7b80">inet_ntohl</a>(u_int *data, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a>);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d6/d4a/inet_8h.html#a75c2848f706809db4a3a8999d46118dc">inet_htonl</a>(u_int *data, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a>);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a9c6d94fc49adc3223bb0df762343784d">inet_setip_raw</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip, u_int *data, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a>);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#ac0a02d49e9909bae32638e61ce18be9f">inet_setip</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip, u_int *data, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a>);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a506ae02de352f1e470295f64ba3bd0da">inet_setip_bcast</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a>);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#addb0c4631b9f6d90718cddc6d8f04469">inet_setip_anyaddr</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a>);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a2d7b2294f3077b12e2a70e0a480588ac">inet_setip_loopback</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a>);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a127c86b270c3bb41caa671ac207fd4c5">inet_setip_localaddr</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a>, <span class="keywordtype">int</span> <span class="keyword">class</span>);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#abe8c98b17ccddadf6ce90655e5cdea36">inet_is_ip_local</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip, <span class="keywordtype">int</span> <span class="keyword">class</span>);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d6/d4a/inet_8h.html#afd1e5fe1ebde3b0578f839267fc48e39">inet_copy_ipdata_raw</a>(u_int *dst_data, <a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip);</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d6/d4a/inet_8h.html#aaebd7fea501d17d6fdf93692928c0400">inet_copy_ipdata</a>(u_int *dst_data, <a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d6/d4a/inet_8h.html#a284a1d36cd80931c6d96aba2e6a6ae46">inet_copy</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *dst, <a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *src);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d6/d4a/inet_8h.html#a4ef2e36725d0f18182509c8de38d8a64">pack_inet_prefix</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip, <span class="keywordtype">char</span> *pack);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d6/d4a/inet_8h.html#aa21ac550789ccbba526f404f090ac9c2">unpack_inet_prefix</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip, <span class="keywordtype">char</span> *pack);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#abddde4d60b8a9c38fbde3ed7e198efca">inet_addr_match</a>(<span class="keyword">const</span> <a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *a, <span class="keyword">const</span> <a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *b, <span class="keywordtype">int</span> bits);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a5d8b854858733f65e213b89bf984ad72">ipv6_addr_type</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> addr);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a68fa8e8776282525daffa752fbdc6628">inet_validate_ip</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> ip);</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../d6/d4a/inet_8h.html#a9d2fb5508608cf4b8f5347d2edbb276b">ipraw_to_str</a>(u_int ip[<a class="code" href="../../d6/d4a/inet_8h.html#a70f8406c9556460a606bee45306c5630">MAX_IP_INT</a>], <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a>);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../d6/d4a/inet_8h.html#a7ee487ce5e94550114761abaee2bc334">inet_to_str</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> ip);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a7b648d12a6ba304537ac987a5c55d696">str_to_inet</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *src, <a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a8eac5edae4e220edc0f4a974dd5749d3">inet_to_sockaddr</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip, u_short port, <span class="keyword">struct</span> sockaddr *dst, <a class="code" href="../../d7/d61/libip4tc_8c.html#aae83a93236e01902b58ec3f197a17f7c">socklen_t</a> *dstlen);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a16c8d2dac83a014ea3035178a3771340">sockaddr_to_inet</a>(<span class="keyword">struct</span> sockaddr *ip, <a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *dst, u_short *port);</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a49b750fe581d1da5e169adf3c7a14af1">new_socket</a>(<span class="keywordtype">int</span> sock_type);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a8e51a98ebf31af2e65b949335a06d47a">new_dgram_socket</a>(<span class="keywordtype">int</span> sock_type);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a428a881d9fbb4d8b4fa5224962fcdd03">inet_close</a>(<span class="keywordtype">int</span> *sk);</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a44c5821edfbfaab89efae40fe8751963">inet_getpeername</a>(<span class="keywordtype">int</span> sk, <a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *ip, <span class="keywordtype">short</span> *port);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#ace49c54414750a5e03afb619007af827">join_ipv6_multicast</a>(<span class="keywordtype">int</span> socket, <span class="keywordtype">int</span> idx);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#ab9d798f523c8e369403823f8529ebe44">set_keepalive_sk</a>(<span class="keywordtype">int</span> socket);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a44c83c2b2a74ef116d7f94d41b8b5531">unset_keepalive_sk</a>(<span class="keywordtype">int</span> socket);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#aff2952f8da964350ba064f251868a147">set_nonblock_sk</a>(<span class="keywordtype">int</span> fd);</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a8b78c3f5fdf056d9f5f9bb69e5896190">unset_nonblock_sk</a>(<span class="keywordtype">int</span> fd);</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a14ce403ca9d8516dc8d71796362a6d48">set_reuseaddr_sk</a>(<span class="keywordtype">int</span> socket);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#ab5a263b2a13ea5c2eb67c8b05bd56564">set_bindtodevice_sk</a>(<span class="keywordtype">int</span> socket, <span class="keywordtype">char</span> *dev);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a2aa626239ab1ad25661dfed01b5f2f89">set_broadcast_sk</a>(<span class="keywordtype">int</span> socket, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a>, <a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *host, <span class="keywordtype">short</span> port, </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">int</span> dev_idx);</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#aaa9a34a88bb83dc420d1dc771d56d794">new_broadcast_sk</a>(<span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a>, <span class="keywordtype">int</span> dev_idx);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a5bbe90629cfa3b1f5db9437297734355">set_tos_sk</a>(<span class="keywordtype">int</span> socket, <span class="keywordtype">int</span> lowdelay);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#ad2c73cc3fb6cc8a9fcb3997be118b71c">new_tcp_conn</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *host, <span class="keywordtype">short</span> port, <span class="keywordtype">char</span> *dev);</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a3c05d384e453db0f645d1b1eef3f753b">new_udp_conn</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *host, <span class="keywordtype">short</span> port, <span class="keywordtype">char</span> *dev);</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d6/d4a/inet_8h.html#a0f1dbd0722384c9eddd65f669229345a">new_bcast_conn</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *host, <span class="keywordtype">short</span> port, <span class="keywordtype">int</span> dev_idx);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;ssize_t <a class="code" href="../../d6/d4a/inet_8h.html#a372c070a318c0a1d854d262711568cd1">inet_recv</a>(<span class="keywordtype">int</span> s, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#ac8bf36fe0577cba66bccda3a6f7e80a4">flags</a>);</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;ssize_t <a class="code" href="../../d6/d4a/inet_8h.html#a05650389424947bce88544edfb772033">inet_recvfrom</a>(<span class="keywordtype">int</span> s, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#ac8bf36fe0577cba66bccda3a6f7e80a4">flags</a>, </div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">struct</span> sockaddr *from, <a class="code" href="../../d7/d61/libip4tc_8c.html#aae83a93236e01902b58ec3f197a17f7c">socklen_t</a> *fromlen);</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;ssize_t <a class="code" href="../../d6/d4a/inet_8h.html#a54cfaf4470a9112f7f7df0e923da8cb3">inet_recv_timeout</a>(<span class="keywordtype">int</span> s, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#ac8bf36fe0577cba66bccda3a6f7e80a4">flags</a>, u_int timeout);</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;ssize_t <a class="code" href="../../d6/d4a/inet_8h.html#a2c048b68b1c08bf90b569f01c6fab82f">inet_recvfrom_timeout</a>(<span class="keywordtype">int</span> s, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#ac8bf36fe0577cba66bccda3a6f7e80a4">flags</a>, </div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">struct</span> sockaddr *from, <a class="code" href="../../d7/d61/libip4tc_8c.html#aae83a93236e01902b58ec3f197a17f7c">socklen_t</a> *fromlen, u_int timeout);</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;ssize_t <a class="code" href="../../d6/d4a/inet_8h.html#ac92b07ae7dc3ae1234665e052a8e6792">inet_send</a>(<span class="keywordtype">int</span> s, <span class="keyword">const</span> <span class="keywordtype">void</span> *msg, <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#ac8bf36fe0577cba66bccda3a6f7e80a4">flags</a>);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;ssize_t <a class="code" href="../../d6/d4a/inet_8h.html#af7e76f47a0583d67182cdf5bbb4dd22a">inet_sendto</a>(<span class="keywordtype">int</span> s, <span class="keyword">const</span> <span class="keywordtype">void</span> *msg, <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#ac8bf36fe0577cba66bccda3a6f7e80a4">flags</a>, </div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">const</span> <span class="keyword">struct</span> sockaddr *to, <a class="code" href="../../d7/d61/libip4tc_8c.html#aae83a93236e01902b58ec3f197a17f7c">socklen_t</a> tolen);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;ssize_t <a class="code" href="../../d6/d4a/inet_8h.html#a57d824182ed85de297e6f32640708b7f">inet_send_timeout</a>(<span class="keywordtype">int</span> s, <span class="keyword">const</span> <span class="keywordtype">void</span> *msg, <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#ac8bf36fe0577cba66bccda3a6f7e80a4">flags</a>, u_int timeout);</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;ssize_t <a class="code" href="../../d6/d4a/inet_8h.html#aa65a7052b4c6746a997c4e3743f14fbe">inet_sendto_timeout</a>(<span class="keywordtype">int</span> s, <span class="keyword">const</span> <span class="keywordtype">void</span> *msg, <span class="keywordtype">size_t</span> len, <span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#ac8bf36fe0577cba66bccda3a6f7e80a4">flags</a>, </div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">const</span> <span class="keyword">struct</span> sockaddr *to, <a class="code" href="../../d7/d61/libip4tc_8c.html#aae83a93236e01902b58ec3f197a17f7c">socklen_t</a> tolen, u_int timeout);</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;ssize_t <a class="code" href="../../d6/d4a/inet_8h.html#ae16ef6bb730deb8ac07b9cd295211052">inet_sendfile</a>(<span class="keywordtype">int</span> out_fd, <span class="keywordtype">int</span> in_fd, off_t *offset, <span class="keywordtype">size_t</span> count);</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/*INET_H*/</span><span class="preprocessor"></span></div>
<div class="ttc" id="inet_8h_html_aa65a7052b4c6746a997c4e3743f14fbe"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#aa65a7052b4c6746a997c4e3743f14fbe">inet_sendto_timeout</a></div><div class="ttdeci">ssize_t inet_sendto_timeout(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen, u_int timeout)</div><div class="ttdef"><b>Definition:</b> inet.c:1079</div></div>
<div class="ttc" id="inet_8h_html_abe8c98b17ccddadf6ce90655e5cdea36"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#abe8c98b17ccddadf6ce90655e5cdea36">inet_is_ip_local</a></div><div class="ttdeci">int inet_is_ip_local(inet_prefix *ip, int class)</div><div class="ttdef"><b>Definition:</b> inet.c:176</div></div>
<div class="ttc" id="inet_8h_html_ace49c54414750a5e03afb619007af827"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#ace49c54414750a5e03afb619007af827">join_ipv6_multicast</a></div><div class="ttdeci">int join_ipv6_multicast(int socket, int idx)</div><div class="ttdef"><b>Definition:</b> inet.c:601</div></div>
<div class="ttc" id="inet_8h_html_a7ee487ce5e94550114761abaee2bc334"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a7ee487ce5e94550114761abaee2bc334">inet_to_str</a></div><div class="ttdeci">const char * inet_to_str(inet_prefix ip)</div><div class="ttdef"><b>Definition:</b> inet.c:432</div></div>
<div class="ttc" id="inet_8h_html_abddde4d60b8a9c38fbde3ed7e198efca"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#abddde4d60b8a9c38fbde3ed7e198efca">inet_addr_match</a></div><div class="ttdeci">int inet_addr_match(const inet_prefix *a, const inet_prefix *b, int bits)</div><div class="ttdef"><b>Definition:</b> inet.c:273</div></div>
<div class="ttc" id="structinet__prefix_html_a2d350e3925bc8fcb50448fcc9b32c2eb"><div class="ttname"><a href="../../da/d1d/structinet__prefix.html#a2d350e3925bc8fcb50448fcc9b32c2eb">inet_prefix::family</a></div><div class="ttdeci">u_char family</div><div class="ttdef"><b>Definition:</b> inet.h:75</div></div>
<div class="ttc" id="structinet__prefix_html_aa77146a4497ae3737763e27a37290e2d"><div class="ttname"><a href="../../da/d1d/structinet__prefix.html#aa77146a4497ae3737763e27a37290e2d">inet_prefix::len</a></div><div class="ttdeci">u_short len</div><div class="ttdef"><b>Definition:</b> inet.h:76</div></div>
<div class="ttc" id="inet_8h_html_aaa9a34a88bb83dc420d1dc771d56d794"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#aaa9a34a88bb83dc420d1dc771d56d794">new_broadcast_sk</a></div><div class="ttdeci">int new_broadcast_sk(int family, int dev_idx)</div></div>
<div class="ttc" id="inet_8h_html_a506ae02de352f1e470295f64ba3bd0da"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a506ae02de352f1e470295f64ba3bd0da">inet_setip_bcast</a></div><div class="ttdeci">int inet_setip_bcast(inet_prefix *ip, int family)</div><div class="ttdef"><b>Definition:</b> inet.c:101</div></div>
<div class="ttc" id="inet_8h_html_a5bbe90629cfa3b1f5db9437297734355"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a5bbe90629cfa3b1f5db9437297734355">set_tos_sk</a></div><div class="ttdeci">int set_tos_sk(int socket, int lowdelay)</div><div class="ttdef"><b>Definition:</b> inet.c:782</div></div>
<div class="ttc" id="inet_8h_html_a5d8b854858733f65e213b89bf984ad72"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a5d8b854858733f65e213b89bf984ad72">ipv6_addr_type</a></div><div class="ttdeci">int ipv6_addr_type(inet_prefix addr)</div><div class="ttdef"><b>Definition:</b> inet.c:301</div></div>
<div class="ttc" id="inet_8h_html_a428a881d9fbb4d8b4fa5224962fcdd03"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a428a881d9fbb4d8b4fa5224962fcdd03">inet_close</a></div><div class="ttdeci">int inet_close(int *sk)</div><div class="ttdef"><b>Definition:</b> inet.c:575</div></div>
<div class="ttc" id="inet_8h_html_afd1e5fe1ebde3b0578f839267fc48e39"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#afd1e5fe1ebde3b0578f839267fc48e39">inet_copy_ipdata_raw</a></div><div class="ttdeci">void inet_copy_ipdata_raw(u_int *dst_data, inet_prefix *ip)</div><div class="ttdef"><b>Definition:</b> inet.c:198</div></div>
<div class="ttc" id="endianness_8h_html_a66b75e81c28419f622f82e631e5da9bc"><div class="ttname"><a href="../../dc/d3e/endianness_8h.html#a66b75e81c28419f622f82e631e5da9bc">INT_TYPE_16BIT</a></div><div class="ttdeci">#define INT_TYPE_16BIT</div><div class="ttdef"><b>Definition:</b> endianness.h:36</div></div>
<div class="ttc" id="endianness_8h_html"><div class="ttname"><a href="../../dc/d3e/endianness_8h.html">endianness.h</a></div></div>
<div class="ttc" id="inet_8h_html_ad2c73cc3fb6cc8a9fcb3997be118b71c"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#ad2c73cc3fb6cc8a9fcb3997be118b71c">new_tcp_conn</a></div><div class="ttdeci">int new_tcp_conn(inet_prefix *host, short port, char *dev)</div><div class="ttdef"><b>Definition:</b> inet.c:801</div></div>
<div class="ttc" id="inet_8h_html_a372c070a318c0a1d854d262711568cd1"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a372c070a318c0a1d854d262711568cd1">inet_recv</a></div><div class="ttdeci">ssize_t inet_recv(int s, void *buf, size_t len, int flags)</div><div class="ttdef"><b>Definition:</b> inet.c:905</div></div>
<div class="ttc" id="inet_8h_html_ab9d798f523c8e369403823f8529ebe44"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#ab9d798f523c8e369403823f8529ebe44">set_keepalive_sk</a></div><div class="ttdeci">int set_keepalive_sk(int socket)</div><div class="ttdef"><b>Definition:</b> inet.c:758</div></div>
<div class="ttc" id="inet_8h_html_a44c5821edfbfaab89efae40fe8751963"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a44c5821edfbfaab89efae40fe8751963">inet_getpeername</a></div><div class="ttdeci">int inet_getpeername(int sk, inet_prefix *ip, short *port)</div><div class="ttdef"><b>Definition:</b> inet.c:581</div></div>
<div class="ttc" id="inet_8h_html_a9d2fb5508608cf4b8f5347d2edbb276b"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a9d2fb5508608cf4b8f5347d2edbb276b">ipraw_to_str</a></div><div class="ttdeci">const char * ipraw_to_str(u_int ip[4], int family)</div><div class="ttdef"><b>Definition:</b> inet.c:407</div></div>
<div class="ttc" id="inet_8h_html_aaebd7fea501d17d6fdf93692928c0400"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#aaebd7fea501d17d6fdf93692928c0400">inet_copy_ipdata</a></div><div class="ttdeci">void inet_copy_ipdata(u_int *dst_data, inet_prefix *ip)</div><div class="ttdef"><b>Definition:</b> inet.c:207</div></div>
<div class="ttc" id="structinet__prefix_html"><div class="ttname"><a href="../../da/d1d/structinet__prefix.html">inet_prefix</a></div><div class="ttdef"><b>Definition:</b> inet.h:73</div></div>
<div class="ttc" id="inet_8h_html_ac92b07ae7dc3ae1234665e052a8e6792"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#ac92b07ae7dc3ae1234665e052a8e6792">inet_send</a></div><div class="ttdeci">ssize_t inet_send(int s, const void *msg, size_t len, int flags)</div><div class="ttdef"><b>Definition:</b> inet.c:997</div></div>
<div class="ttc" id="inet_8h_html_a8e51a98ebf31af2e65b949335a06d47a"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a8e51a98ebf31af2e65b949335a06d47a">new_dgram_socket</a></div><div class="ttdeci">int new_dgram_socket(int sock_type)</div><div class="ttdef"><b>Definition:</b> inet.c:558</div></div>
<div class="ttc" id="inet_8h_html_a4ef2e36725d0f18182509c8de38d8a64"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a4ef2e36725d0f18182509c8de38d8a64">pack_inet_prefix</a></div><div class="ttdeci">void pack_inet_prefix(inet_prefix *ip, char *pack)</div><div class="ttdef"><b>Definition:</b> inet.c:221</div></div>
<div class="ttc" id="inet_8h_html_a385963363f8d2ee7012a4c919b9b7b80"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a385963363f8d2ee7012a4c919b9b7b80">inet_ntohl</a></div><div class="ttdeci">void inet_ntohl(u_int *data, int family)</div><div class="ttdef"><b>Definition:</b> inet.c:34</div></div>
<div class="ttc" id="inet_8h_html_a3c05d384e453db0f645d1b1eef3f753b"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a3c05d384e453db0f645d1b1eef3f753b">new_udp_conn</a></div><div class="ttdeci">int new_udp_conn(inet_prefix *host, short port, char *dev)</div><div class="ttdef"><b>Definition:</b> inet.c:830</div></div>
<div class="ttc" id="inet_8h_html_a2d7b2294f3077b12e2a70e0a480588ac"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a2d7b2294f3077b12e2a70e0a480588ac">inet_setip_loopback</a></div><div class="ttdeci">int inet_setip_loopback(inet_prefix *ip, int family)</div><div class="ttdef"><b>Definition:</b> inet.c:132</div></div>
<div class="ttc" id="inet_8h_html_aa21ac550789ccbba526f404f090ac9c2"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#aa21ac550789ccbba526f404f090ac9c2">unpack_inet_prefix</a></div><div class="ttdeci">void unpack_inet_prefix(inet_prefix *ip, char *pack)</div><div class="ttdef"><b>Definition:</b> inet.c:247</div></div>
<div class="ttc" id="inet_8h_html_a8eac5edae4e220edc0f4a974dd5749d3"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a8eac5edae4e220edc0f4a974dd5749d3">inet_to_sockaddr</a></div><div class="ttdeci">int inet_to_sockaddr(inet_prefix *ip, u_short port, struct sockaddr *dst, socklen_t *dstlen)</div><div class="ttdef"><b>Definition:</b> inet.c:477</div></div>
<div class="ttc" id="inet_8h_html_a70f8406c9556460a606bee45306c5630"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a70f8406c9556460a606bee45306c5630">MAX_IP_INT</a></div><div class="ttdeci">#define MAX_IP_INT</div><div class="ttdef"><b>Definition:</b> inet.h:24</div></div>
<div class="ttc" id="inet_8h_html_a44c83c2b2a74ef116d7f94d41b8b5531"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a44c83c2b2a74ef116d7f94d41b8b5531">unset_keepalive_sk</a></div><div class="ttdeci">int unset_keepalive_sk(int socket)</div><div class="ttdef"><b>Definition:</b> inet.c:770</div></div>
<div class="ttc" id="inet_8h_html_a49b750fe581d1da5e169adf3c7a14af1"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a49b750fe581d1da5e169adf3c7a14af1">new_socket</a></div><div class="ttdeci">int new_socket(int sock_type)</div><div class="ttdef"><b>Definition:</b> inet.c:547</div></div>
<div class="ttc" id="inet_8h_html_ae16ef6bb730deb8ac07b9cd295211052"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#ae16ef6bb730deb8ac07b9cd295211052">inet_sendfile</a></div><div class="ttdeci">ssize_t inet_sendfile(int out_fd, int in_fd, off_t *offset, size_t count)</div><div class="ttdef"><b>Definition:</b> inet.c:1104</div></div>
<div class="ttc" id="structinet__prefix_html_ab5794c8a8546780c2cbba9401d5ad625"><div class="ttname"><a href="../../da/d1d/structinet__prefix.html#ab5794c8a8546780c2cbba9401d5ad625">inet_prefix::bits</a></div><div class="ttdeci">u_char bits</div><div class="ttdef"><b>Definition:</b> inet.h:77</div></div>
<div class="ttc" id="inet_8h_html_aff2952f8da964350ba064f251868a147"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#aff2952f8da964350ba064f251868a147">set_nonblock_sk</a></div><div class="ttdeci">int set_nonblock_sk(int fd)</div><div class="ttdef"><b>Definition:</b> inet.c:635</div></div>
<div class="ttc" id="inet_8h_html_a14ce403ca9d8516dc8d71796362a6d48"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a14ce403ca9d8516dc8d71796362a6d48">set_reuseaddr_sk</a></div><div class="ttdeci">int set_reuseaddr_sk(int socket)</div><div class="ttdef"><b>Definition:</b> inet.c:657</div></div>
<div class="ttc" id="libip4tc_8c_html_aae83a93236e01902b58ec3f197a17f7c"><div class="ttname"><a href="../../d7/d61/libip4tc_8c.html#aae83a93236e01902b58ec3f197a17f7c">socklen_t</a></div><div class="ttdeci">unsigned int socklen_t</div><div class="ttdef"><b>Definition:</b> libip4tc.c:26</div></div>
<div class="ttc" id="inet_8h_html_a341f9d9a1b2ec097821be9b6cae697eb"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a341f9d9a1b2ec097821be9b6cae697eb">my_family</a></div><div class="ttdeci">int my_family</div><div class="ttdef"><b>Definition:</b> inet.h:141</div></div>
<div class="ttc" id="inet_8h_html_a2aa626239ab1ad25661dfed01b5f2f89"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a2aa626239ab1ad25661dfed01b5f2f89">set_broadcast_sk</a></div><div class="ttdeci">int set_broadcast_sk(int socket, int family, inet_prefix *host, short port, int dev_idx)</div><div class="ttdef"><b>Definition:</b> inet.c:703</div></div>
<div class="ttc" id="inet_8h_html_a57d824182ed85de297e6f32640708b7f"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a57d824182ed85de297e6f32640708b7f">inet_send_timeout</a></div><div class="ttdeci">ssize_t inet_send_timeout(int s, const void *msg, size_t len, int flags, u_int timeout)</div><div class="ttdef"><b>Definition:</b> inet.c:1025</div></div>
<div class="ttc" id="inet_8h_html_a7b648d12a6ba304537ac987a5c55d696"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a7b648d12a6ba304537ac987a5c55d696">str_to_inet</a></div><div class="ttdeci">int str_to_inet(const char *src, inet_prefix *ip)</div><div class="ttdef"><b>Definition:</b> inet.c:442</div></div>
<div class="ttc" id="inet_8h_html_a4446a95b716c4f73bc3ccc2d154071bb"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a4446a95b716c4f73bc3ccc2d154071bb">restricted_mode</a></div><div class="ttdeci">int restricted_mode</div><div class="ttdef"><b>Definition:</b> inet.h:141</div></div>
<div class="ttc" id="inet_8h_html_a2c048b68b1c08bf90b569f01c6fab82f"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a2c048b68b1c08bf90b569f01c6fab82f">inet_recvfrom_timeout</a></div><div class="ttdeci">ssize_t inet_recvfrom_timeout(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen, u_int timeout)</div><div class="ttdef"><b>Definition:</b> inet.c:973</div></div>
<div class="ttc" id="endianness_8h_html_a3e44b8503d7a90af675c81800fe6d275"><div class="ttname"><a href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a></div><div class="ttdeci">#define INT_INFO</div><div class="ttdef"><b>Definition:</b> endianness.h:90</div></div>
<div class="ttc" id="inet_8h_html_a9c6d94fc49adc3223bb0df762343784d"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a9c6d94fc49adc3223bb0df762343784d">inet_setip_raw</a></div><div class="ttdeci">int inet_setip_raw(inet_prefix *ip, u_int *data, int family)</div><div class="ttdef"><b>Definition:</b> inet.c:70</div></div>
<div class="ttc" id="inet_8h_html_a284a1d36cd80931c6d96aba2e6a6ae46"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a284a1d36cd80931c6d96aba2e6a6ae46">inet_copy</a></div><div class="ttdeci">void inet_copy(inet_prefix *dst, inet_prefix *src)</div><div class="ttdef"><b>Definition:</b> inet.c:190</div></div>
<div class="ttc" id="inet_8h_html_addb0c4631b9f6d90718cddc6d8f04469"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#addb0c4631b9f6d90718cddc6d8f04469">inet_setip_anyaddr</a></div><div class="ttdeci">int inet_setip_anyaddr(inet_prefix *ip, int family)</div><div class="ttdef"><b>Definition:</b> inet.c:116</div></div>
<div class="ttc" id="inet_8h_html_a127c86b270c3bb41caa671ac207fd4c5"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a127c86b270c3bb41caa671ac207fd4c5">inet_setip_localaddr</a></div><div class="ttdeci">int inet_setip_localaddr(inet_prefix *ip, int family, int class)</div><div class="ttdef"><b>Definition:</b> inet.c:155</div></div>
<div class="ttc" id="inet_8h_html_a16c8d2dac83a014ea3035178a3771340"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a16c8d2dac83a014ea3035178a3771340">sockaddr_to_inet</a></div><div class="ttdeci">int sockaddr_to_inet(struct sockaddr *ip, inet_prefix *dst, u_short *port)</div><div class="ttdef"><b>Definition:</b> inet.c:515</div></div>
<div class="ttc" id="inet_8h_html_a54cfaf4470a9112f7f7df0e923da8cb3"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a54cfaf4470a9112f7f7df0e923da8cb3">inet_recv_timeout</a></div><div class="ttdeci">ssize_t inet_recv_timeout(int s, void *buf, size_t len, int flags, u_int timeout)</div><div class="ttdef"><b>Definition:</b> inet.c:931</div></div>
<div class="ttc" id="inet_8h_html_ad534384266132e24d533382503e25096"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#ad534384266132e24d533382503e25096">restricted_class</a></div><div class="ttdeci">int restricted_class</div><div class="ttdef"><b>Definition:</b> inet.h:141</div></div>
<div class="ttc" id="inet_8h_html_a75c2848f706809db4a3a8999d46118dc"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a75c2848f706809db4a3a8999d46118dc">inet_htonl</a></div><div class="ttdeci">void inet_htonl(u_int *data, int family)</div><div class="ttdef"><b>Definition:</b> inet.c:53</div></div>
<div class="ttc" id="inet_8h_html_a985bd0004bf1041118f5469d7ff09da8"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a985bd0004bf1041118f5469d7ff09da8">inet_prefix_iinfo</a></div><div class="ttdeci">static const int_info inet_prefix_iinfo</div><div class="ttdef"><b>Definition:</b> inet.h:85</div></div>
<div class="ttc" id="inet_8h_html_af7e76f47a0583d67182cdf5bbb4dd22a"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#af7e76f47a0583d67182cdf5bbb4dd22a">inet_sendto</a></div><div class="ttdeci">ssize_t inet_sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)</div><div class="ttdef"><b>Definition:</b> inet.c:1050</div></div>
<div class="ttc" id="inet_8h_html_a68fa8e8776282525daffa752fbdc6628"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a68fa8e8776282525daffa752fbdc6628">inet_validate_ip</a></div><div class="ttdeci">int inet_validate_ip(inet_prefix ip)</div><div class="ttdef"><b>Definition:</b> inet.c:372</div></div>
<div class="ttc" id="if_8c_html_a4417150d9f858949bd9ea8794995ebcc"><div class="ttname"><a href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a></div><div class="ttdeci">int family</div><div class="ttdef"><b>Definition:</b> if.c:34</div></div>
<div class="ttc" id="if_8c_html_ac8bf36fe0577cba66bccda3a6f7e80a4"><div class="ttname"><a href="../../d7/de2/if_8c.html#ac8bf36fe0577cba66bccda3a6f7e80a4">flags</a></div><div class="ttdeci">int flags</div><div class="ttdef"><b>Definition:</b> if.c:39</div></div>
<div class="ttc" id="inet_8h_html_ac0a02d49e9909bae32638e61ce18be9f"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#ac0a02d49e9909bae32638e61ce18be9f">inet_setip</a></div><div class="ttdeci">int inet_setip(inet_prefix *ip, u_int *data, int family)</div><div class="ttdef"><b>Definition:</b> inet.c:94</div></div>
<div class="ttc" id="inet_8h_html_a0f1dbd0722384c9eddd65f669229345a"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a0f1dbd0722384c9eddd65f669229345a">new_bcast_conn</a></div><div class="ttdeci">int new_bcast_conn(inet_prefix *host, short port, int dev_idx)</div><div class="ttdef"><b>Definition:</b> inet.c:860</div></div>
<div class="ttc" id="inet_8h_html_a8b78c3f5fdf056d9f5f9bb69e5896190"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a8b78c3f5fdf056d9f5f9bb69e5896190">unset_nonblock_sk</a></div><div class="ttdeci">int unset_nonblock_sk(int fd)</div><div class="ttdef"><b>Definition:</b> inet.c:646</div></div>
<div class="ttc" id="inet_8h_html_a05650389424947bce88544edfb772033"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a05650389424947bce88544edfb772033">inet_recvfrom</a></div><div class="ttdeci">ssize_t inet_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen)</div><div class="ttdef"><b>Definition:</b> inet.c:951</div></div>
<div class="ttc" id="inet_8h_html_ab5a263b2a13ea5c2eb67c8b05bd56564"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#ab5a263b2a13ea5c2eb67c8b05bd56564">set_bindtodevice_sk</a></div><div class="ttdeci">int set_bindtodevice_sk(int socket, char *dev)</div><div class="ttdef"><b>Definition:</b> inet.c:670</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="../../d6/d4a/inet_8h.html">inet.h</a></li>
<li class="footer">Generated on Wed Feb 19 2014 14:19:07 for The Netsukuku Project by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
</ul>
</div>
</body>
</html>