netsukuku/d7/d74/andna__cache_8h_source.html

771 lines
156 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/andna_cache.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;">
2014-02-20 00:30:40 +00:00
<td id="projectlogo"><img alt="Logo" src="../../Logo_netsukuku.jpg"/></td>
<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('d7/d74/andna__cache_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">andna_cache.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="../../d7/d74/andna__cache_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 ANDNA_CACHE_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define ANDNA_CACHE_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="../../d6/d4a/inet_8h.html">inet.h</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../da/da0/crypto_8h.html">crypto.h</a>&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</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="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../d4/de1/llist_8c.html">llist.c</a>&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../d6/d2e/snsd__cache_8h.html">snsd_cache.h</a>&quot;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * ANDNA definitions</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> */</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="../../d7/d74/andna__cache_8h.html#adf78b617a7a9289e03e040fe2230ecbd"> 32</a></span>&#160;<span class="preprocessor">#define ANDNA_MAX_BACKUP_GNODES 2</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a79270b3b51a9a9b583b8dc20b4d0614b"> 33</a></span>&#160;<span class="preprocessor">#define ANDNA_MAX_QUEUE 5</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#ac9d152ffd5a9a15fca863bcb9aa0da41"> 34</a></span>&#160;<span class="preprocessor">#define ANDNA_MAX_HNAME_LEN 512 </span><span class="comment">/* (null terminator included) */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a82daf3efa79be1d7beac1e03fb6e0da3"> 35</a></span>&#160;<span class="preprocessor">#define ANDNA_MAX_HOSTNAMES 256 </span><span class="comment">/* Max number of hnames per node */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a9d387219d714aa3ffd4e05d5ac5b6121"> 36</a></span>&#160;<span class="preprocessor">#define ANDNA_MAX_RHC_HNAMES 512 </span><span class="comment">/* Max number of hnames kept in</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> the resolved_hnames cache* */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a4c61b576cd4258398d4d06784a92289a"> 38</a></span>&#160;<span class="preprocessor">#define ANDNA_EXPIRATION_TIME 259200 </span><span class="comment">/* 3 days (in seconds)*/</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a92a3cca580e3f8f21900eceea240e48b"> 39</a></span>&#160;<span class="preprocessor">#define ANDNA_MIN_UPDATE_TIME 3600 </span><span class="comment">/* The minum amount of time to</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> be waited before sending an </span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> update of the hname. */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#afd4bb70e3be1a46b25f173dc3bddc3d4"> 43</a></span>&#160;<span class="preprocessor">#define ANDNA_PRIVKEY_BITS 1024</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#ae5e82e6c4db8b43919ecfced02d0eb79"> 44</a></span>&#160;<span class="preprocessor">#define ANDNA_SKEY_MAX_LEN 900</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a8c597b42f177efc44b30898859f26d39"> 45</a></span>&#160;<span class="preprocessor">#define ANDNA_PKEY_LEN 140</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a4c400d2b5228630bfb4bec65b126b3ae"> 46</a></span>&#160;<span class="preprocessor">#define ANDNA_HASH_SZ (MAX_IP_SZ)</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a34fa864991b3bfa0579a3f45bb590563"> 47</a></span>&#160;<span class="preprocessor">#define ANDNA_SIGNATURE_LEN 128</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">/* Returns the number of nodes to be used in a backup_gnode */</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a99783acb102e47d7647f738361a9c2b9"> 50</a></span>&#160;<span class="preprocessor">#define ANDNA_BACKUP_NODES(seeds) ({(seeds) &gt; 8 ? \</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> ((seeds)*32)/MAXGROUPNODE : (seeds);})</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> #undef ANDNA_EXPIRATION_TIME</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> #define ANDNA_EXPIRATION_TIME 100</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> #undef ANDNA_MIN_UPDATE_TIME</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> #define ANDNA_MIN_UPDATE_TIME 2</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif </span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">/* </span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> * * * Cache stuff * * *</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">/* * andna_cache flags * */</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a98c8cedb669a05e9f3d335ee17c023db"> 65</a></span>&#160;<span class="preprocessor">#define ANDNA_BACKUP 1 </span><span class="comment">/* We are a backup_node */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#ae22f6bb99a4860b7dba7231fbb273a71"> 66</a></span>&#160;<span class="preprocessor">#define ANDNA_COUNTER (1&lt;&lt;1) </span><span class="comment">/* We are a counter_node */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a2cf0e59449250c68e66c549dbc38abbe"> 67</a></span>&#160;<span class="preprocessor">#define ANDNA_ROUNDED (1&lt;&lt;2) </span><span class="comment">/* We are a rounded_hash_node */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a9d39cd05fb52171896a36ccdc0edd17c"> 68</a></span>&#160;<span class="preprocessor">#define ANDNA_FULL (1&lt;&lt;3) </span><span class="comment">/* Queue full */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a15f72ef961da0de4e68facda8f227505"> 69</a></span>&#160;<span class="preprocessor">#define ANDNA_UPDATING (1&lt;&lt;4) </span><span class="comment">/* The hname is being updated </span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> right now */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</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"> 73</span>&#160;<span class="comment"> * andna_cache_queue</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> * The queue of the andna_cache. (see below).</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="../../d5/d4e/structandna__cache__queue.html"> 77</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d5/d4e/structandna__cache__queue.html">andna_cache_queue</a></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{ </div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="../../d5/d4e/structandna__cache__queue.html#a67626bbe7dd099d3a5fcc54aabb42020"> 79</a></span>&#160; <a class="code" href="../../d4/de1/llist_8c.html#ac92348e99cfae025c3893c07fee7b263">LLIST_HDR</a> (<span class="keyword">struct</span> <a class="code" href="../../d5/d4e/structandna__cache__queue.html">andna_cache_queue</a>);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="../../d5/d4e/structandna__cache__queue.html#acb33163d7e65ab518bbd0b2d2269addd"> 81</a></span>&#160; time_t <a class="code" href="../../d5/d4e/structandna__cache__queue.html#acb33163d7e65ab518bbd0b2d2269addd">timestamp</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="../../d5/d4e/structandna__cache__queue.html#ad1d36544ab87a12da054b6ce2a1f8f39"> 82</a></span>&#160; u_short <a class="code" href="../../d5/d4e/structandna__cache__queue.html#ad1d36544ab87a12da054b6ce2a1f8f39">hname_updates</a>; <span class="comment">/* numbers of hname&#39;s updates */</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="../../d5/d4e/structandna__cache__queue.html#adca01b1e576c93181ae4f9cd435c7690"> 83</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="../../d5/d4e/structandna__cache__queue.html#adca01b1e576c93181ae4f9cd435c7690">pubkey</a>[<a class="code" href="../../d7/d74/andna__cache_8h.html#a8c597b42f177efc44b30898859f26d39">ANDNA_PKEY_LEN</a>];</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="../../d5/d4e/structandna__cache__queue.html#a57b44b9dcae9dbd66a3591f4a8863364"> 85</a></span>&#160; u_short <a class="code" href="../../d5/d4e/structandna__cache__queue.html#a57b44b9dcae9dbd66a3591f4a8863364">snsd_counter</a>; <span class="comment">/* # of `snsd&#39; nodes */</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="../../d5/d4e/structandna__cache__queue.html#a838dd5eddbde69604c5870749dedf944"> 86</a></span>&#160; <a class="code" href="../../dc/d52/structsnsd__service.html">snsd_service</a> *<a class="code" href="../../d5/d4e/structandna__cache__queue.html#a838dd5eddbde69604c5870749dedf944">service</a>;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;};</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#ae117fa89ef4c99706bd8d919da3e520e"> 88</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../d5/d4e/structandna__cache__queue.html">andna_cache_queue</a> <a class="code" href="../../d5/d4e/structandna__cache__queue.html">andna_cache_queue</a>;</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"> 90</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"> * andna_cache</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"> * It keeps the entries of the hostnames registered by other nodes.</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="../../d6/df5/structandna__cache.html"> 95</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;{</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="../../d6/df5/structandna__cache.html#a1dac56614580557728d8944ea6ef78b5"> 97</a></span>&#160; <a class="code" href="../../d4/de1/llist_8c.html#ac92348e99cfae025c3893c07fee7b263">LLIST_HDR</a> (<span class="keyword">struct</span> <a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a>);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="../../d6/df5/structandna__cache.html#ae6f256e1d7a8241c39756f018c8daf5b"> 99</a></span>&#160; u_int <a class="code" href="../../d6/df5/structandna__cache.html#ae6f256e1d7a8241c39756f018c8daf5b">hash</a>[<a class="code" href="../../d6/d4a/inet_8h.html#a70f8406c9556460a606bee45306c5630">MAX_IP_INT</a>]; <span class="comment">/* hostname&#39;s hash */</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="../../d6/df5/structandna__cache.html#a5f7bf21b5bbaf36d538a1e1ce6206873"> 100</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="../../d6/df5/structandna__cache.html#a5f7bf21b5bbaf36d538a1e1ce6206873">flags</a>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="../../d6/df5/structandna__cache.html#a6aad24c1aaf76a4697907c5dbf0fdf99"> 102</a></span>&#160; u_short <a class="code" href="../../d6/df5/structandna__cache.html#a6aad24c1aaf76a4697907c5dbf0fdf99">queue_counter</a>;</div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="../../d6/df5/structandna__cache.html#aa4c85ebdf8c0e091870bf0a74ea4b45d"> 103</a></span>&#160; <a class="code" href="../../d5/d4e/structandna__cache__queue.html">andna_cache_queue</a> *<a class="code" href="../../d6/df5/structandna__cache.html#aa4c85ebdf8c0e091870bf0a74ea4b45d">acq</a>; <span class="comment">/* The queue of the registration.</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"> The first is the active one */</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;};</div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a6b28c6ed7912f14813ace50538280970"> 106</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> <a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a>;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment">/* part of the counter cache, see below */</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="../../d6/d01/structcounter__c__hashes.html"> 109</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d6/d01/structcounter__c__hashes.html">counter_c_hashes</a></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/d01/structcounter__c__hashes.html#a96133325c8edb728ab74f4cef9c83988"> 111</a></span>&#160; <a class="code" href="../../d4/de1/llist_8c.html#ac92348e99cfae025c3893c07fee7b263">LLIST_HDR</a> (<span class="keyword">struct</span> <a class="code" href="../../d6/d01/structcounter__c__hashes.html">counter_c_hashes</a>);</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/d01/structcounter__c__hashes.html#a7945cb02a59f0c5e0c14aa6aef1b5395"> 113</a></span>&#160; time_t <a class="code" href="../../d6/d01/structcounter__c__hashes.html#a7945cb02a59f0c5e0c14aa6aef1b5395">timestamp</a>;</div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="../../d6/d01/structcounter__c__hashes.html#aa394b1c8bb05a8d60e6c8f6646947a9c"> 114</a></span>&#160; u_short <a class="code" href="../../d6/d01/structcounter__c__hashes.html#aa394b1c8bb05a8d60e6c8f6646947a9c">hname_updates</a>;</div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="../../d6/d01/structcounter__c__hashes.html#a04941b56a428bb23a20a97769ad72ed7"> 115</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="../../d6/d01/structcounter__c__hashes.html#a04941b56a428bb23a20a97769ad72ed7">hash</a>[<a class="code" href="../../d6/d4a/inet_8h.html#a70f8406c9556460a606bee45306c5630">MAX_IP_INT</a>];</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;};</div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#ad63a7ef46f1649972cc12d7350ccff70"> 117</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../d6/d01/structcounter__c__hashes.html">counter_c_hashes</a> <a class="code" href="../../d6/d01/structcounter__c__hashes.html">counter_c_hashes</a>;</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#aea6b3530450b0ee747803a39cd9e72b1"> 118</a></span>&#160;<a class="code" href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a> <a class="code" href="../../d7/d74/andna__cache_8h.html#aea6b3530450b0ee747803a39cd9e72b1">counter_c_hashes_body_iinfo</a> = { 2, </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; { <a class="code" href="../../dc/d3e/endianness_8h.html#acc663d0291dd4a32c1dfbed3167bd58b">INT_TYPE_32BIT</a>, <a class="code" href="../../dc/d3e/endianness_8h.html#a66b75e81c28419f622f82e631e5da9bc">INT_TYPE_16BIT</a> },</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; { 0, <span class="keyword">sizeof</span>(time_t) },</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; { 1, 1 }</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; };</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> * counter_c</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> * Counter node&#39;s cache.</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> * All the infos regarding a particular register_node are stored here. For</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> * example, we need to know how many hostnames he already registered.</span></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"><a class="line" href="../../d3/dae/structcounter__c.html"> 131</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;{</div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="../../d3/dae/structcounter__c.html#a7d2dc29f3e7fd654222d4f2a4fab21a3"> 133</a></span>&#160; <a class="code" href="../../d4/de1/llist_8c.html#ac92348e99cfae025c3893c07fee7b263">LLIST_HDR</a> (<span class="keyword">struct</span> <a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a>);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="../../d3/dae/structcounter__c.html#aa172ef54f3acb4dce8e8a78d360284e9"> 135</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="../../d3/dae/structcounter__c.html#aa172ef54f3acb4dce8e8a78d360284e9">pubkey</a>[<a class="code" href="../../d7/d74/andna__cache_8h.html#a8c597b42f177efc44b30898859f26d39">ANDNA_PKEY_LEN</a>];</div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="../../d3/dae/structcounter__c.html#aa8f645d919591cd26c83f30fc9145658"> 136</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="../../d3/dae/structcounter__c.html#aa8f645d919591cd26c83f30fc9145658">flags</a>;</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="../../d3/dae/structcounter__c.html#a1fee4309601697b11b6acaee21279202"> 138</a></span>&#160; u_short <a class="code" href="../../d3/dae/structcounter__c.html#a1fee4309601697b11b6acaee21279202">hashes</a>; <span class="comment">/* The number of hashes in cch */</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="../../d3/dae/structcounter__c.html#a884a0bb978ff6b8cae60002631e3a0ad"> 139</a></span>&#160; <a class="code" href="../../d6/d01/structcounter__c__hashes.html">counter_c_hashes</a> *<a class="code" href="../../d3/dae/structcounter__c.html#a884a0bb978ff6b8cae60002631e3a0ad">cch</a>; <span class="comment">/* The hashes of the hnames */</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="../../d7/d74/andna__cache_8h.html#a7f1ec556d54d12a49e84ab482d3ad9fa"> 141</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> <a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a>;</div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#ae19be3e0190d7a476e8735a1ac57e6be"> 142</a></span>&#160;<a class="code" href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a> <a class="code" href="../../d7/d74/andna__cache_8h.html#ae19be3e0190d7a476e8735a1ac57e6be">counter_c_body_iinfo</a> = { 1,</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; { <a class="code" href="../../dc/d3e/endianness_8h.html#a66b75e81c28419f622f82e631e5da9bc">INT_TYPE_16BIT</a> },</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; { <a class="code" href="../../d7/d74/andna__cache_8h.html#a8c597b42f177efc44b30898859f26d39">ANDNA_PKEY_LEN</a>+<span class="keyword">sizeof</span>(char) },</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; { 1 }</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; };</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> * lcl_cache_keyring</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> * The lcl keyring is used to store the RSA keys used to complete some of the</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> * ANDNA requests, (f.e. registering or updating a hname).</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="../../de/d4f/structlcl__cache__keyring.html"> 154</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;{</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="../../de/d4f/structlcl__cache__keyring.html#ade640e52273a55513822b2a9b1e95da2"> 156</a></span>&#160; u_int <a class="code" href="../../de/d4f/structlcl__cache__keyring.html#ade640e52273a55513822b2a9b1e95da2">skey_len</a>;</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="../../de/d4f/structlcl__cache__keyring.html#a38a3c14be71e7758e61f90a3aaf6736f"> 157</a></span>&#160; u_int <a class="code" href="../../de/d4f/structlcl__cache__keyring.html#a38a3c14be71e7758e61f90a3aaf6736f">pkey_len</a>;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="../../de/d4f/structlcl__cache__keyring.html#add54784c16319225cf3ac3e85fb9e727"> 159</a></span>&#160; u_char *<a class="code" href="../../de/d4f/structlcl__cache__keyring.html#add54784c16319225cf3ac3e85fb9e727">privkey</a>; <span class="comment">/* secret key packed */</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="../../de/d4f/structlcl__cache__keyring.html#a293ca5f965c6fae6d6fbdb69945f38d3"> 160</a></span>&#160; u_char *<a class="code" href="../../de/d4f/structlcl__cache__keyring.html#a293ca5f965c6fae6d6fbdb69945f38d3">pubkey</a>; <span class="comment">/* pubkey packed */</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="../../de/d4f/structlcl__cache__keyring.html#aaecb7d458f06cfa2c6cfa371872b07cc"> 162</a></span>&#160; RSA *<a class="code" href="../../de/d4f/structlcl__cache__keyring.html#aaecb7d458f06cfa2c6cfa371872b07cc">priv_rsa</a>; <span class="comment">/* key pair unpacked */</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;} <a class="code" href="../../de/d4f/structlcl__cache__keyring.html">lcl_cache_keyring</a>;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment"> * lcl_cache</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment"> * The Local Andna Cache keeps all the hostnames which have been register by</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment"> * localhost (ourself).</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="../../d3/dc8/structlcl__cache.html"> 172</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="../../d3/dc8/structlcl__cache.html#a8c79b8c2d08ab82ffaacd5fd03e1d960"> 174</a></span>&#160; <a class="code" href="../../d4/de1/llist_8c.html#ac92348e99cfae025c3893c07fee7b263">LLIST_HDR</a> (<span class="keyword">struct</span> <a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a>);</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"><a class="line" href="../../d3/dc8/structlcl__cache.html#ae45f4051156b8cbf4dfad0d3e8408545"> 176</a></span>&#160; <span class="keywordtype">char</span> *<a class="code" href="../../d3/dc8/structlcl__cache.html#ae45f4051156b8cbf4dfad0d3e8408545">hostname</a>; <span class="comment">/* The registered hostname */</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="../../d3/dc8/structlcl__cache.html#a8ff6b2782fa8c05deaf07e6ac9795431"> 177</a></span>&#160; u_int <a class="code" href="../../d3/dc8/structlcl__cache.html#a8ff6b2782fa8c05deaf07e6ac9795431">hash</a>; <span class="comment">/* 32bit hash of the md5 hash </span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment"> of the hname */</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="../../d3/dc8/structlcl__cache.html#ac66658ec0aa6fe162f9eaba49a0b46d9"> 179</a></span>&#160; u_short <a class="code" href="../../d3/dc8/structlcl__cache.html#ac66658ec0aa6fe162f9eaba49a0b46d9">hname_updates</a>; <span class="comment">/* How many updates we&#39;ve done </span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment"> for this hostname */</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="../../d3/dc8/structlcl__cache.html#a41d49eec85b1b3a56f5e9de91c523a45"> 181</a></span>&#160; time_t <a class="code" href="../../d3/dc8/structlcl__cache.html#a41d49eec85b1b3a56f5e9de91c523a45">timestamp</a>; <span class="comment">/* the last time when the hname</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment"> was updated. If it is 0, the</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment"> hname has still to be </span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment"> registered */</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="../../d3/dc8/structlcl__cache.html#a1d8a8dd9ed6dbd59eb2a5ba150b07b75"> 186</a></span>&#160; u_short <a class="code" href="../../d3/dc8/structlcl__cache.html#a1d8a8dd9ed6dbd59eb2a5ba150b07b75">snsd_counter</a>; <span class="comment">/* # of `snsds&#39; */</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="../../d3/dc8/structlcl__cache.html#a20f1ed0ca263d96d91abafa9ca2d55cc"> 187</a></span>&#160; <a class="code" href="../../dc/d52/structsnsd__service.html">snsd_service</a> *<a class="code" href="../../d3/dc8/structlcl__cache.html#a20f1ed0ca263d96d91abafa9ca2d55cc">service</a>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="../../d3/dc8/structlcl__cache.html#ac8dc18930e8b8ad34b320b25d223357e"> 189</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="../../d3/dc8/structlcl__cache.html#ac8dc18930e8b8ad34b320b25d223357e">flags</a>;</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"><a class="line" href="../../d7/d74/andna__cache_8h.html#a40de395b5fa6680c03dba150f8c1b4b5"> 191</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> <a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a>;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> * resolved_hnames_cache</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> * This cache keeps info on the already resolved hostnames, so we won&#39;t have</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment"> * to resolve them soon again.</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment"> * In order to optimize the search we order the linked list by the time</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment"> * of hname resolution. The last hname which has been searched/resolved is</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment"> * always moved at the head of the llist, in this way, at the end of the llist</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"> * there is the hname which has been searched for the first time but has been</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment"> * ignored until now.</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="comment"> * When the cache is full, the hname which is at the end of the llist is</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment"> * removed to empty new space.</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment"> * The hname which have the `timestamp&#39; expired are removed too.</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="../../d1/d65/structresolved__hnames__cache.html"> 208</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d1/d65/structresolved__hnames__cache.html">resolved_hnames_cache</a></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;{</div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="../../d1/d65/structresolved__hnames__cache.html#ad92d30af2b9111db466fcea7373bb2c0"> 210</a></span>&#160; <a class="code" href="../../d4/de1/llist_8c.html#ac92348e99cfae025c3893c07fee7b263">LLIST_HDR</a> (<span class="keyword">struct</span> <a class="code" href="../../d1/d65/structresolved__hnames__cache.html">resolved_hnames_cache</a>);</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="../../d1/d65/structresolved__hnames__cache.html#aa912a2022d35d91ef89b1ef4e1393c1c"> 212</a></span>&#160; u_int <a class="code" href="../../d1/d65/structresolved__hnames__cache.html#aa912a2022d35d91ef89b1ef4e1393c1c">hash</a>; <span class="comment">/* 32bit hash of the md5 hash of the</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment"> hname */</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="../../d1/d65/structresolved__hnames__cache.html#a6a91d88a43789b0395369cc2fab0eef9"> 214</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="../../d1/d65/structresolved__hnames__cache.html#a6a91d88a43789b0395369cc2fab0eef9">flags</a>;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="../../d1/d65/structresolved__hnames__cache.html#a651cc3758bde3d08fe0933fbd43bd256"> 216</a></span>&#160; time_t <a class="code" href="../../d1/d65/structresolved__hnames__cache.html#a651cc3758bde3d08fe0933fbd43bd256">timestamp</a>; <span class="comment">/* the last time when the hname</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment"> was updated. With this we know that</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment"> at timestamp+ANDNA_EXPIRATION_TIME</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"> this cache will expire. */</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="../../d1/d65/structresolved__hnames__cache.html#a6b50ba80489db8c0682d11349d6c1b87"> 221</a></span>&#160; u_short <a class="code" href="../../d1/d65/structresolved__hnames__cache.html#a6b50ba80489db8c0682d11349d6c1b87">snsd_counter</a>;</div>
<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="../../d1/d65/structresolved__hnames__cache.html#ad5a78be469f180912c48b99713e01817"> 222</a></span>&#160; <a class="code" href="../../dc/d52/structsnsd__service.html">snsd_service</a> *<a class="code" href="../../d1/d65/structresolved__hnames__cache.html#ad5a78be469f180912c48b99713e01817">service</a>;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;};</div>
<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a3eec5f307337ab8dfe3674be4da228c4"> 224</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../d1/d65/structresolved__hnames__cache.html">resolved_hnames_cache</a> <a class="code" href="../../d1/d65/structresolved__hnames__cache.html">rh_cache</a>;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="comment"> * * * * Global vars * * *</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a7cfbb0aba60a86d2ddcd571fec119b36"> 230</a></span>&#160;<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a7cfbb0aba60a86d2ddcd571fec119b36">andna_c</a>;</div>
<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#ae29118f7283a4a31df8f48115ce05d3f"> 231</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#ae29118f7283a4a31df8f48115ce05d3f">andna_c_counter</a>;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a91c2e2e516a9a1ced4529a8124cf9bd1"> 233</a></span>&#160;<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a91c2e2e516a9a1ced4529a8124cf9bd1">andna_counter_c</a>;</div>
<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a53423d4ec01b8a77ab86867f2b7fbbfa"> 234</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a53423d4ec01b8a77ab86867f2b7fbbfa">cc_counter</a>;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a210cb44a4a47e7a1428e7db30803b8f0"> 236</a></span>&#160;<a class="code" href="../../de/d4f/structlcl__cache__keyring.html">lcl_cache_keyring</a> <a class="code" href="../../d7/d74/andna__cache_8h.html#a210cb44a4a47e7a1428e7db30803b8f0">lcl_keyring</a>;</div>
<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a9e2119d6e5577e09195d8c3a5fc9f7af"> 237</a></span>&#160;<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a9e2119d6e5577e09195d8c3a5fc9f7af">andna_lcl</a>;</div>
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a84ab15d774221688059d8eba78272b04"> 238</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a84ab15d774221688059d8eba78272b04">lcl_counter</a>;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a62f4d19ec69cb84b3011a4b328332cb9"> 240</a></span>&#160;<a class="code" href="../../d1/d65/structresolved__hnames__cache.html">rh_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a62f4d19ec69cb84b3011a4b328332cb9">andna_rhc</a>;</div>
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a4c8d78382f5a584edf99f1006905b877"> 241</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a4c8d78382f5a584edf99f1006905b877">rhc_counter</a>;</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment"> * * * * Package stuff * * * </span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="comment"> * * * * lcl cache package * * *</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="../../d6/dbf/structlcl__keyring__pkt__hdr.html"> 255</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d6/dbf/structlcl__keyring__pkt__hdr.html">lcl_keyring_pkt_hdr</a></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;{</div>
<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="../../d6/dbf/structlcl__keyring__pkt__hdr.html#a0bc79bd494024b040d09a1c04f9f35db"> 257</a></span>&#160; u_int <a class="code" href="../../d6/dbf/structlcl__keyring__pkt__hdr.html#a0bc79bd494024b040d09a1c04f9f35db">skey_len</a>;</div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="../../d6/dbf/structlcl__keyring__pkt__hdr.html#a8420ffd75258ad278761a5521edab3ce"> 258</a></span>&#160; u_int <a class="code" href="../../d6/dbf/structlcl__keyring__pkt__hdr.html#a8420ffd75258ad278761a5521edab3ce">pkey_len</a>;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}<a class="code" href="../../d7/d74/andna__cache_8h.html#a0b680c951a19cc5774a2692828bcab31">_PACKED_</a>;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment">/* </span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment"> * the rest of the pkt is:</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment"> * char privkey[hdr.skey_len];</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment"> * char pubkey[hdr.pkey_len];</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a9e835a93044b55120092bcce4bb011cf"> 266</a></span>&#160;<a class="code" href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a> <a class="code" href="../../d7/d74/andna__cache_8h.html#a9e835a93044b55120092bcce4bb011cf">lcl_keyring_pkt_hdr_iinfo</a> = { 2, </div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; { <a class="code" href="../../dc/d3e/endianness_8h.html#acc663d0291dd4a32c1dfbed3167bd58b">INT_TYPE_32BIT</a>, <a class="code" href="../../dc/d3e/endianness_8h.html#acc663d0291dd4a32c1dfbed3167bd58b">INT_TYPE_32BIT</a> }, </div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; { 0, <span class="keyword">sizeof</span>(u_int) }, </div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; { 1, 1 } </div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; };</div>
<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a8c841eca888d871283b4c4c10734c2f7"> 271</a></span>&#160;<span class="preprocessor">#define LCL_KEYRING_HDR_PACK_SZ(khdr) (sizeof(struct lcl_keyring_pkt_hdr) + \</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"> (khdr)-&gt;skey_len + (khdr)-&gt;pkey_len)</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment"> * The local cache pkt is used to pack the entire local cache to save it in a </span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment"> * file or to send it to a node.</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="../../df/d9c/structlcl__cache__pkt__hdr.html"> 278</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../df/d9c/structlcl__cache__pkt__hdr.html">lcl_cache_pkt_hdr</a></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;{</div>
<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="../../df/d9c/structlcl__cache__pkt__hdr.html#a8c2f31173c5e7a3a8c25f0865b56601e"> 280</a></span>&#160; u_short <a class="code" href="../../df/d9c/structlcl__cache__pkt__hdr.html#a8c2f31173c5e7a3a8c25f0865b56601e">tot_caches</a>; <span class="comment">/* How many lcl structs there </span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment"> are in the pkt&#39;s body */</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}<a class="code" href="../../d7/d74/andna__cache_8h.html#a0b680c951a19cc5774a2692828bcab31">_PACKED_</a>;</div>
<div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a4b21aef8e93a716d20d4ef65a610e872"> 283</a></span>&#160;<a class="code" href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a> <a class="code" href="../../d7/d74/andna__cache_8h.html#a4b21aef8e93a716d20d4ef65a610e872">lcl_cache_pkt_hdr_iinfo</a> = { 1, { <a class="code" href="../../dc/d3e/endianness_8h.html#a66b75e81c28419f622f82e631e5da9bc">INT_TYPE_16BIT</a> }, { 0 }, { 1 } };</div>
<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#afa5b5fc8937e609a304f563ab75cfd3a"> 284</a></span>&#160;<span class="preprocessor">#define LCL_CACHE_HDR_PACK_SZ (sizeof(struct lcl_cache_pkt_hdr))</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment">/* </span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"> * The body is:</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment"> * struct lcl_cache_pkt_body {</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"> * u_short hname_updates;</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment"> * time_t timestamp;</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="comment"> * char hostname[strlen(hostname)+1]; * null terminated *</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment"> * } body[ hdr.tot_caches ];</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a5440de3081c9f6746ca798edbfb39f88"> 296</a></span>&#160;<span class="preprocessor">#define LCL_CACHE_BODY_PACK_SZ(hname_len) ((hname_len) + sizeof(u_short) \</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"> + sizeof(time_t))</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a486d06fca85a9ec0fad5481aff214b21"> 298</a></span>&#160;<a class="code" href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a> <a class="code" href="../../d7/d74/andna__cache_8h.html#a486d06fca85a9ec0fad5481aff214b21">lcl_cache_pkt_body_iinfo</a> = { 2, { <a class="code" href="../../dc/d3e/endianness_8h.html#a66b75e81c28419f622f82e631e5da9bc">INT_TYPE_16BIT</a>, <a class="code" href="../../dc/d3e/endianness_8h.html#acc663d0291dd4a32c1dfbed3167bd58b">INT_TYPE_32BIT</a> }, </div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; { 0, <span class="keyword">sizeof</span>(u_short) },</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; { 1, 1 }</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; };</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="comment"> * * * * andna cache package * * *</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment"> * the body of the acq_pkt is:</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="comment"> * struct acq_pkt_body {</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment"> * time_t timestamp;</span></div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment"> * u_short hname_updates;</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment"> * char pubkey[ANDNA_PKEY_LEN];</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="comment"> * u_short snsd_counter;</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment"> * char snsd_service_pack[SNSD_SERVICE_PACK_SZ];</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="comment"> * };</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a8a095a63758681c7dcf5dea01f432361"> 318</a></span>&#160;<a class="code" href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a> <a class="code" href="../../d7/d74/andna__cache_8h.html#a8a095a63758681c7dcf5dea01f432361">acq_body_iinfo</a> = { 3,</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; { <a class="code" href="../../dc/d3e/endianness_8h.html#acc663d0291dd4a32c1dfbed3167bd58b">INT_TYPE_32BIT</a>, <a class="code" href="../../dc/d3e/endianness_8h.html#a66b75e81c28419f622f82e631e5da9bc">INT_TYPE_16BIT</a>, INT_TYPE_16BIT },</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; { 0, <span class="keyword">sizeof</span>(time_t),</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">sizeof</span>(time_t) + <span class="keyword">sizeof</span>(u_short) + <a class="code" href="../../d7/d74/andna__cache_8h.html#a8c597b42f177efc44b30898859f26d39">ANDNA_PKEY_LEN</a> },</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; { 1, 1, 1 }</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; };</div>
<div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#ac4b5e07ce65f4fd63be0e2f8739db67f"> 324</a></span>&#160;<span class="preprocessor">#define ACQ_BODY_PACK_SZ (sizeof(time_t) + sizeof(u_short)*2 + \</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor"> ANDNA_PKEY_LEN)</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#aed78f82b4bacdb5cc38000fb2c33d11c"> 326</a></span>&#160;<span class="preprocessor">#define ACQ_PACK_SZ(snsd_pack_sz) (ACQ_BODY_PACK_SZ + (snsd_pack_sz))</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div>
<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="../../da/d4c/structandna__cache__pkt__hdr.html"> 328</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../da/d4c/structandna__cache__pkt__hdr.html">andna_cache_pkt_hdr</a></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;{</div>
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="../../da/d4c/structandna__cache__pkt__hdr.html#a3767718855e19d0a204a2f528c6ca2a0"> 330</a></span>&#160; u_short <a class="code" href="../../da/d4c/structandna__cache__pkt__hdr.html#a3767718855e19d0a204a2f528c6ca2a0">tot_caches</a>;</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;}<a class="code" href="../../d7/d74/andna__cache_8h.html#a0b680c951a19cc5774a2692828bcab31">_PACKED_</a>;</div>
<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#ac587aa33c28287270fac003183bbf0fe"> 332</a></span>&#160;<a class="code" href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a> <a class="code" href="../../d7/d74/andna__cache_8h.html#ac587aa33c28287270fac003183bbf0fe">andna_cache_pkt_hdr_iinfo</a> = { 1, { <a class="code" href="../../dc/d3e/endianness_8h.html#a66b75e81c28419f622f82e631e5da9bc">INT_TYPE_16BIT</a> }, { 0 }, { 1 } };</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="comment"> * The body is:</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="comment"> * struct andna_cache_pack {</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="comment"> * u_int hash[MAX_IP_INT];</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="comment"> * char flags;</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment"> * u_short queue_counter;</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="comment"> * char acq_pack[ACQ_PACK_SZ*queue_counter];</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="comment"> * } acache_pack[hdr.tot_caches];</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a7fcdb37e5f61716d625a03aa5bfc6359"> 342</a></span>&#160;<a class="code" href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a> <a class="code" href="../../d7/d74/andna__cache_8h.html#a7fcdb37e5f61716d625a03aa5bfc6359">andna_cache_body_iinfo</a> = { 1, </div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; { <a class="code" href="../../dc/d3e/endianness_8h.html#a66b75e81c28419f622f82e631e5da9bc">INT_TYPE_16BIT</a> },</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; { <a class="code" href="../../d6/d4a/inet_8h.html#a58d45ce77dd4360314b4fd8ca70d9fb8">MAX_IP_SZ</a>+<span class="keyword">sizeof</span>(char) },</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; { 1 }</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; };</div>
<div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a7e9d217a4350d16b7f75f76234c164ae"> 347</a></span>&#160;<span class="preprocessor">#define ACACHE_BODY_PACK_SZ (ANDNA_HASH_SZ + sizeof(char) + \</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"> sizeof(u_short))</span></div>
<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#aba9e55d6f9477576b5565a928884c381"> 349</a></span>&#160;<span class="preprocessor">#define ACACHE_PACK_SZ(acq_pack_sz) ((acq_pack_sz) + ACACHE_BODY_PACK_SZ)</span></div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment"> * If the acache pack will be sent on a network packet, the `acq-&gt;timestamp&#39; </span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment"> * will be the difference of the current time with the same `acq-&gt;timestamp&#39;,</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="comment"> * in this way the node which receives the packet will add its current time to</span></div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment"> * `acq-&gt;timestamp&#39;. This is necessary because the sending and receiving node</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="comment"> * don&#39;t have the clock synced. Note that the rtt isn&#39;t considered because it</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="comment"> * is generally very small and the ANDNA times don&#39;t need an accurate</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="comment"> * precision, f.e. the expiration time is three days long.</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="comment"> * If the pack is saved on a file, then `acq-&gt;timestamp&#39; remains the same.</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment"> * Problem: if the clock is changed, acq-&gt;timestamp will refer to the old</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment"> * clock.</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a2dc89282031efc40444d2ed0ecd1b183"> 363</a></span>&#160;<span class="preprocessor">#define ACACHE_PACK_FILE 1</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#ab5c91e78b73116950233d87b70a1d3f5"> 364</a></span>&#160;<span class="preprocessor">#define ACACHE_PACK_PKT 2</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="comment"> * The counter cache pkt is similar to the andna_cache_pkt, it is completely</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="comment"> * arranged in the same way.</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="../../d0/db2/structcounter__c__pkt__hdr.html"> 371</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d0/db2/structcounter__c__pkt__hdr.html">counter_c_pkt_hdr</a></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;{</div>
<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="../../d0/db2/structcounter__c__pkt__hdr.html#a180cb9588fb19a67a1898829f33caeb3"> 373</a></span>&#160; u_short <a class="code" href="../../d0/db2/structcounter__c__pkt__hdr.html#a180cb9588fb19a67a1898829f33caeb3">tot_caches</a>;</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;}<a class="code" href="../../d7/d74/andna__cache_8h.html#a0b680c951a19cc5774a2692828bcab31">_PACKED_</a>;</div>
<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#af2cd433cbcb6f5f826507c8505ecfa11"> 375</a></span>&#160;<a class="code" href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a> <a class="code" href="../../d7/d74/andna__cache_8h.html#af2cd433cbcb6f5f826507c8505ecfa11">counter_c_pkt_hdr_iinfo</a> = { 1, { <a class="code" href="../../dc/d3e/endianness_8h.html#a66b75e81c28419f622f82e631e5da9bc">INT_TYPE_16BIT</a> }, { 0 }, { 1 } };</div>
<div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a0094a51417e9c0bdf1e72414df823742"> 376</a></span>&#160;<span class="preprocessor">#define COUNTER_CACHE_HASHES_PACK_SZ (sizeof(time_t) + sizeof(u_short) + \</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"> ANDNA_HASH_SZ)</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a6527ccb49cc1da36c71d36cf6ed995d9"> 378</a></span>&#160;<span class="preprocessor">#define COUNTER_CACHE_BODY_PACK_SZ (ANDNA_PKEY_LEN + sizeof(char) + \</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"> sizeof(u_short))</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#ad10b43aa96564d28d8292960ef257da7"> 380</a></span>&#160;<span class="preprocessor">#define COUNTER_CACHE_PACK_SZ(hashes) ((COUNTER_CACHE_HASHES_PACK_SZ*(hashes))\</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"> + COUNTER_CACHE_BODY_PACK_SZ)</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="comment">/* </span></div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="comment"> * * * * Resolved hostnames cache pkt. * * *</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div>
<div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="../../dc/d05/structrh__cache__pkt__hdr.html"> 387</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../dc/d05/structrh__cache__pkt__hdr.html">rh_cache_pkt_hdr</a></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;{</div>
<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="../../dc/d05/structrh__cache__pkt__hdr.html#a12ab53da6769826ab99cf64282b88e0e"> 389</a></span>&#160; u_short <a class="code" href="../../dc/d05/structrh__cache__pkt__hdr.html#a12ab53da6769826ab99cf64282b88e0e">tot_caches</a>; <span class="comment">/* How many lcl structs there </span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="comment"> are in the pkt&#39;s hdr */</span></div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;}<a class="code" href="../../d7/d74/andna__cache_8h.html#a0b680c951a19cc5774a2692828bcab31">_PACKED_</a>;</div>
<div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#af13082dd1ffb0686b83cc50a574fee62"> 392</a></span>&#160;<a class="code" href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a> <a class="code" href="../../d7/d74/andna__cache_8h.html#af13082dd1ffb0686b83cc50a574fee62">rh_cache_pkt_hdr_iinfo</a> = { 1, { <a class="code" href="../../dc/d3e/endianness_8h.html#a66b75e81c28419f622f82e631e5da9bc">INT_TYPE_16BIT</a> }, { 0 }, { 1 } };</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="comment"> * The body is:</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="comment"> * struct rh_cache_pkt_body {</span></div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="comment"> * u_int hash;</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="comment"> * char flags;</span></div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="comment"> * time_t timestamp;</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="comment"> * u_short snsd_counter;</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="comment"> * char snsd_service_pack[SNSD_SERVICE_PACK_SZ];</span></div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="comment"> * } body[ hdr.tot_caches ];</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#add98ed9f177813d98bf5db28c5842abc"> 404</a></span>&#160;<span class="preprocessor">#define RH_CACHE_BODY_PACK_SZ(snsd_pack_sz) (sizeof(u_int)+sizeof(char)+ \</span></div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor"> sizeof(time_t)+sizeof(u_short)+\</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="preprocessor"> (snsd_pack_sz))</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="../../d7/d74/andna__cache_8h.html#a60bbedfc10683759a1982925fcc92d36"> 407</a></span>&#160;<a class="code" href="../../dc/d3e/endianness_8h.html#a3e44b8503d7a90af675c81800fe6d275">INT_INFO</a> <a class="code" href="../../d7/d74/andna__cache_8h.html#a60bbedfc10683759a1982925fcc92d36">rh_cache_pkt_body_iinfo</a> = { 3,</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; { <a class="code" href="../../dc/d3e/endianness_8h.html#acc663d0291dd4a32c1dfbed3167bd58b">INT_TYPE_32BIT</a>, <a class="code" href="../../dc/d3e/endianness_8h.html#acc663d0291dd4a32c1dfbed3167bd58b">INT_TYPE_32BIT</a>, <a class="code" href="../../dc/d3e/endianness_8h.html#a66b75e81c28419f622f82e631e5da9bc">INT_TYPE_16BIT</a> },</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; { 0, <span class="keyword">sizeof</span>(u_int)+<span class="keyword">sizeof</span>(<span class="keywordtype">char</span>), </div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">sizeof</span>(u_int)+<span class="keyword">sizeof</span>(<span class="keywordtype">char</span>)+<span class="keyword">sizeof</span>(time_t) },</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; { 1, 1, 1 }</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; };</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="comment"> * * * Functions&#39; declaration * * *</span></div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a2888ba59b8a8cb7ed0f7a91f87df4606">andna_caches_init</a>(<span class="keywordtype">int</span> <a class="code" href="../../d7/de2/if_8c.html#a4417150d9f858949bd9ea8794995ebcc">family</a>);</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a251759601e094b59de67ebee59725c4c">lcl_new_keyring</a>(<a class="code" href="../../de/d4f/structlcl__cache__keyring.html">lcl_cache_keyring</a> *keyring);</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#ae60616b519bcdb2f35ed3f35f71151de">lcl_destroy_keyring</a>(<a class="code" href="../../de/d4f/structlcl__cache__keyring.html">lcl_cache_keyring</a> *keyring);</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a58ddbd1e98331ce0103b1df0f9d02e62">lcl_cache_new</a>(<span class="keywordtype">char</span> *hname);</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#acb88bcfd28e41a6fab99aa3b87b2ba05">lcl_cache_free</a>(<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *alcl);</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a4ccf2a3b6d14429ce0065dd7f795768e">lcl_cache_destroy</a>(<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *head, <span class="keywordtype">int</span> *counter);</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#aa3f62f5df5df08e520fd04ab3d4a9b1c">lcl_cache_find_hname</a>(<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *head, <span class="keywordtype">char</span> *hname);</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a36505895398a666c08e4c25f8d37ae91">lcl_cache_find_hash</a>(<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *alcl, u_int hash);</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a78885141648274051a9347d0bfe8d5b9">lcl_get_registered_hnames</a>(<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *alcl);</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<a class="code" href="../../d5/d4e/structandna__cache__queue.html">andna_cache_queue</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a1220f5170a635cbdb05150b17ea21ced">ac_queue_findpubk</a>(<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *ac, <span class="keywordtype">char</span> *pubk);</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<a class="code" href="../../d5/d4e/structandna__cache__queue.html">andna_cache_queue</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a52518e47b04c11f9400f5a27d92b26da">ac_queue_add</a>(<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *ac, <span class="keywordtype">char</span> *pubkey);</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#ae8459b6eb037374ee41ab08126246eff">ac_queue_del</a>(<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *ac, <a class="code" href="../../d5/d4e/structandna__cache__queue.html">andna_cache_queue</a> *acq);</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a5b83a6d462f83c5dd6484dff7f10fc39">ac_queue_del_expired</a>(<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *ac);</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a298fb2311806748965f9ee1e1b713d8f">ac_queue_destroy</a>(<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *ac);</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#abf435c93b128f5bba328b5ea73076af1">andna_cache_findhash</a>(<span class="keywordtype">int</span> hash[<a class="code" href="../../d6/d4a/inet_8h.html#a70f8406c9556460a606bee45306c5630">MAX_IP_INT</a>]);</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#ac17faff41ae2db220f28aa9867ba9684">andna_cache_gethash</a>(<span class="keywordtype">int</span> hash[MAX_IP_INT]);</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#ae8ebacd9d4cd117ac0be33b267ebbfbe">andna_cache_addhash</a>(<span class="keywordtype">int</span> hash[MAX_IP_INT]);</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a92e5cdf345e217c8fdb94d7e671e66f3">andna_cache_del_ifexpired</a>(<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *ac);</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#ad7892b79f2529cfdcb0829012b27e265">andna_cache_del_expired</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#aa7f953fb73883ef4de5496fa974472f3">andna_cache_destroy</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<a class="code" href="../../d6/d01/structcounter__c__hashes.html">counter_c_hashes</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a3a7e5bcce911a001f171ff5aec1363e3">cc_hashes_add</a>(<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *cc, <span class="keywordtype">int</span> hash[MAX_IP_INT]);</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a94e094855fbaf75e90036aafba38bb8b">cc_hashes_del</a>(<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *cc, <a class="code" href="../../d6/d01/structcounter__c__hashes.html">counter_c_hashes</a> *cch);</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a3925e5fe679e0615ce60946419855eee">counter_c_del_ifexpired</a>(<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *cc);</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a722ac79afb3bd791d1c832de7ed859b8">cc_hashes_del_expired</a>(<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *cc);</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#aaa2d1760768bb83783542c9a48052da1">cc_hashes_destroy</a>(<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *cc);</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<a class="code" href="../../d6/d01/structcounter__c__hashes.html">counter_c_hashes</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a7944b8c07bd47d91a2552bf531a8ab31">cc_findhash</a>(<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *cc, <span class="keywordtype">int</span> hash[MAX_IP_INT]);</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a57b6910145403bc64b51a24b0d1a468e">counter_c_findpubk</a>(<span class="keywordtype">char</span> *pubk);</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a9f7cabda293c637bbcaf1d99c26b5670">counter_c_add</a>(<a class="code" href="../../da/d1d/structinet__prefix.html">inet_prefix</a> *rip, <span class="keywordtype">char</span> *pubkey);</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#abd1eabe1fca433e9130a7ab6da0e19e4">counter_c_del_expired</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#aea331db01a63ce8828aa384a0d44dc99">counter_c_destroy</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<a class="code" href="../../d1/d65/structresolved__hnames__cache.html">rh_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#aec30a729be610b538c20d9c831c4fb71">rh_cache_new</a>(<span class="keywordtype">char</span> *hname, time_t timestamp);</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<a class="code" href="../../d1/d65/structresolved__hnames__cache.html">rh_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a168a5f13166e44611dfc70c085c9cc56">rh_cache_add_hash</a>(u_int hash, time_t timestamp);</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<a class="code" href="../../d1/d65/structresolved__hnames__cache.html">rh_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#af14ac23fe343278a358dd0493bf158a8">rh_cache_add</a>(<span class="keywordtype">char</span> *hname, time_t timestamp);</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<a class="code" href="../../d1/d65/structresolved__hnames__cache.html">rh_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a54856f5aae2cb70a2342cd6ad1120b51">rh_cache_find_hash</a>(u_int hash);</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<a class="code" href="../../d1/d65/structresolved__hnames__cache.html">rh_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a9f31cc6fdac4aafa08e170ded22e2eac">rh_cache_find_hname</a>(<span class="keywordtype">char</span> *hname);</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#aefabb748e314ab9879045f1da742bd6c">rh_cache_del</a>(<a class="code" href="../../d1/d65/structresolved__hnames__cache.html">rh_cache</a> *rhc);</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a3642fc1196ec9c459ed6c8bcc1d32638">rh_cache_del_expired</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a358d266d1016b5fdb814d9bd724f3f6d">rh_cache_flush</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="keywordtype">char</span> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a60fdbdec49432f14029850a309df83ad">pack_lcl_keyring</a>(<a class="code" href="../../de/d4f/structlcl__cache__keyring.html">lcl_cache_keyring</a> *keyring, <span class="keywordtype">size_t</span> *pack_sz);</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a1b05831280109c236a1093b623176022">unpack_lcl_keyring</a>(<a class="code" href="../../de/d4f/structlcl__cache__keyring.html">lcl_cache_keyring</a> *keyring, <span class="keywordtype">char</span> *pack, <span class="keywordtype">size_t</span> pack_sz);</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="keywordtype">char</span> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a57cc184f00d4d7dcba8d59428e0c6eb1">pack_lcl_cache</a>(<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *local_cache, <span class="keywordtype">size_t</span> *pack_sz);</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#ad36261c4854577e1921a9d9033b09e88">unpack_lcl_cache</a>(<span class="keywordtype">char</span> *pack, <span class="keywordtype">size_t</span> pack_sz, <span class="keywordtype">int</span> *counter);</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="keywordtype">char</span> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a0d9f1fef5d898612fcabd13b79b486ba">pack_andna_cache</a>(<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *acache, <span class="keywordtype">size_t</span> *pack_sz, <span class="keywordtype">int</span> pack_type);</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a35e46feb951ff01251d48e46ef345f96">unpack_andna_cache</a>(<span class="keywordtype">char</span> *pack, <span class="keywordtype">size_t</span> pack_sz, <span class="keywordtype">int</span> *counter,</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordtype">int</span> pack_type);</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="keywordtype">char</span> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a35b354e37cffa71b841eac414548e31d">pack_counter_cache</a>(<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *countercache, <span class="keywordtype">size_t</span> *pack_sz);</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#abeab4c42702fa5492a775eb8c01fe95c">unpack_counter_cache</a>(<span class="keywordtype">char</span> *pack, <span class="keywordtype">size_t</span> pack_sz, <span class="keywordtype">int</span> *counter);</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="keywordtype">char</span> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a0df1bcedcc94f5eb43bf734603c1f7a5">pack_rh_cache</a>(<a class="code" href="../../d1/d65/structresolved__hnames__cache.html">rh_cache</a> *rhcache, <span class="keywordtype">size_t</span> *pack_sz);</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<a class="code" href="../../d1/d65/structresolved__hnames__cache.html">rh_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a2e671db507cb5a73fe73c8eda6fcc7f4">unpack_rh_cache</a>(<span class="keywordtype">char</span> *pack, <span class="keywordtype">size_t</span> pack_sz, <span class="keywordtype">int</span> *counter);</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#ab554f25eba04cf2eb41deac263e6cf07">save_lcl_keyring</a>(<a class="code" href="../../de/d4f/structlcl__cache__keyring.html">lcl_cache_keyring</a> *keyring, <span class="keywordtype">char</span> *file);</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a9fa8ccc3bb0953672b2b27b28bf0d723">load_lcl_keyring</a>(<a class="code" href="../../de/d4f/structlcl__cache__keyring.html">lcl_cache_keyring</a> *keyring, <span class="keywordtype">char</span> *file);</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a099662b5e5060fa4eef5a25c0573a325">save_lcl_cache</a>(<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *lcl, <span class="keywordtype">char</span> *file);</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#aed9cccf08d649d2e68d14ade8dcac375">load_lcl_cache</a>(<span class="keywordtype">char</span> *file, <span class="keywordtype">int</span> *counter);</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#ae02422c831311cf5357e92febb94925f">save_andna_cache</a>(<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *acache, <span class="keywordtype">char</span> *file);</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<a class="code" href="../../d6/df5/structandna__cache.html">andna_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a7293b5abfab109b6f0831ef5d9b3e6c8">load_andna_cache</a>(<span class="keywordtype">char</span> *file, <span class="keywordtype">int</span> *counter);</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#ab82dc4bb575d3f181457ea7c3076c858">save_counter_c</a>(<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *countercache, <span class="keywordtype">char</span> *file);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<a class="code" href="../../d3/dae/structcounter__c.html">counter_c</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#a85d78478e24191d1b67942636dcbcda5">load_counter_c</a>(<span class="keywordtype">char</span> *file, <span class="keywordtype">int</span> *counter);</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#aba364b75290b92041b9d27b76dd6c255">save_rh_cache</a>(<a class="code" href="../../d1/d65/structresolved__hnames__cache.html">rh_cache</a> *rh, <span class="keywordtype">char</span> *file);</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<a class="code" href="../../d1/d65/structresolved__hnames__cache.html">rh_cache</a> *<a class="code" href="../../d7/d74/andna__cache_8h.html#aef722a61792359c3a73a56ecad163291">load_rh_cache</a>(<span class="keywordtype">char</span> *file, <span class="keywordtype">int</span> *counter);</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a980b534d1201d9557fdb3beba6221ba7">load_hostnames</a>(<span class="keywordtype">char</span> *file, <a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> **old_alcl_head, <span class="keywordtype">int</span> *old_alcl_counter);</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#ae30431f21d44516e3c006ae361578d9c">load_snsd</a>(<span class="keywordtype">char</span> *file, <a class="code" href="../../d3/dc8/structlcl__cache.html">lcl_cache</a> *alcl_head);</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a9a5622c1d456d34edea6d72281957e3c">add_resolv_conf</a>(<span class="keywordtype">char</span> *hname, <span class="keywordtype">char</span> *file);</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="keywordtype">int</span> <a class="code" href="../../d7/d74/andna__cache_8h.html#a9edd08e680358abba0f550b789d58d05">del_resolv_conf</a>(<span class="keywordtype">char</span> *hname, <span class="keywordtype">char</span> *file);</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/*ANDNA_CACHE_H*/</span><span class="preprocessor"></span></div>
<div class="ttc" id="structcounter__c_html_aa8f645d919591cd26c83f30fc9145658"><div class="ttname"><a href="../../d3/dae/structcounter__c.html#aa8f645d919591cd26c83f30fc9145658">counter_c::flags</a></div><div class="ttdeci">char flags</div><div class="ttdef"><b>Definition:</b> andna_cache.h:136</div></div>
<div class="ttc" id="andna__cache_8h_html_aefabb748e314ab9879045f1da742bd6c"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#aefabb748e314ab9879045f1da742bd6c">rh_cache_del</a></div><div class="ttdeci">void rh_cache_del(rh_cache *rhc)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:634</div></div>
<div class="ttc" id="structresolved__hnames__cache_html_a6b50ba80489db8c0682d11349d6c1b87"><div class="ttname"><a href="../../d1/d65/structresolved__hnames__cache.html#a6b50ba80489db8c0682d11349d6c1b87">resolved_hnames_cache::snsd_counter</a></div><div class="ttdeci">u_short snsd_counter</div><div class="ttdef"><b>Definition:</b> andna_cache.h:221</div></div>
<div class="ttc" id="andna__cache_8h_html_ac587aa33c28287270fac003183bbf0fe"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ac587aa33c28287270fac003183bbf0fe">andna_cache_pkt_hdr_iinfo</a></div><div class="ttdeci">static const int_info andna_cache_pkt_hdr_iinfo</div><div class="ttdef"><b>Definition:</b> andna_cache.h:332</div></div>
<div class="ttc" id="andna__cache_8h_html_a2888ba59b8a8cb7ed0f7a91f87df4606"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a2888ba59b8a8cb7ed0f7a91f87df4606">andna_caches_init</a></div><div class="ttdeci">void andna_caches_init(int family)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:34</div></div>
<div class="ttc" id="structlcl__cache__keyring_html"><div class="ttname"><a href="../../de/d4f/structlcl__cache__keyring.html">lcl_cache_keyring</a></div><div class="ttdef"><b>Definition:</b> andna_cache.h:154</div></div>
<div class="ttc" id="structlcl__cache_html_a8ff6b2782fa8c05deaf07e6ac9795431"><div class="ttname"><a href="../../d3/dc8/structlcl__cache.html#a8ff6b2782fa8c05deaf07e6ac9795431">lcl_cache::hash</a></div><div class="ttdeci">u_int hash</div><div class="ttdef"><b>Definition:</b> andna_cache.h:177</div></div>
<div class="ttc" id="structandna__cache_html"><div class="ttname"><a href="../../d6/df5/structandna__cache.html">andna_cache</a></div><div class="ttdef"><b>Definition:</b> andna_cache.h:95</div></div>
<div class="ttc" id="andna__cache_8h_html_a7fcdb37e5f61716d625a03aa5bfc6359"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a7fcdb37e5f61716d625a03aa5bfc6359">andna_cache_body_iinfo</a></div><div class="ttdeci">static const int_info andna_cache_body_iinfo</div><div class="ttdef"><b>Definition:</b> andna_cache.h:342</div></div>
<div class="ttc" id="andna__cache_8h_html_aec30a729be610b538c20d9c831c4fb71"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#aec30a729be610b538c20d9c831c4fb71">rh_cache_new</a></div><div class="ttdeci">rh_cache * rh_cache_new(char *hname, time_t timestamp)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:545</div></div>
<div class="ttc" id="andna__cache_8h_html_abeab4c42702fa5492a775eb8c01fe95c"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#abeab4c42702fa5492a775eb8c01fe95c">unpack_counter_cache</a></div><div class="ttdeci">counter_c * unpack_counter_cache(char *pack, size_t pack_sz, int *counter)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1169</div></div>
<div class="ttc" id="structlcl__cache_html_ac8dc18930e8b8ad34b320b25d223357e"><div class="ttname"><a href="../../d3/dc8/structlcl__cache.html#ac8dc18930e8b8ad34b320b25d223357e">lcl_cache::flags</a></div><div class="ttdeci">char flags</div><div class="ttdef"><b>Definition:</b> andna_cache.h:189</div></div>
<div class="ttc" id="andna__cache_8h_html_a7cfbb0aba60a86d2ddcd571fec119b36"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a7cfbb0aba60a86d2ddcd571fec119b36">andna_c</a></div><div class="ttdeci">andna_cache * andna_c</div><div class="ttdef"><b>Definition:</b> andna_cache.h:230</div></div>
<div class="ttc" id="andna__cache_8h_html_a53423d4ec01b8a77ab86867f2b7fbbfa"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a53423d4ec01b8a77ab86867f2b7fbbfa">cc_counter</a></div><div class="ttdeci">int cc_counter</div><div class="ttdef"><b>Definition:</b> andna_cache.h:234</div></div>
<div class="ttc" id="andna__cache_8h_html_a94e094855fbaf75e90036aafba38bb8b"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a94e094855fbaf75e90036aafba38bb8b">cc_hashes_del</a></div><div class="ttdeci">void cc_hashes_del(counter_c *cc, counter_c_hashes *cch)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:420</div></div>
<div class="ttc" id="andna__cache_8h_html_a36505895398a666c08e4c25f8d37ae91"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a36505895398a666c08e4c25f8d37ae91">lcl_cache_find_hash</a></div><div class="ttdeci">lcl_cache * lcl_cache_find_hash(lcl_cache *alcl, u_int hash)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:151</div></div>
<div class="ttc" id="andna__cache_8h_html_acb88bcfd28e41a6fab99aa3b87b2ba05"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#acb88bcfd28e41a6fab99aa3b87b2ba05">lcl_cache_free</a></div><div class="ttdeci">void lcl_cache_free(lcl_cache *alcl)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:113</div></div>
<div class="ttc" id="andna__cache_8h_html_a35b354e37cffa71b841eac414548e31d"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a35b354e37cffa71b841eac414548e31d">pack_counter_cache</a></div><div class="ttdeci">char * pack_counter_cache(counter_c *countercache, size_t *pack_sz)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1103</div></div>
<div class="ttc" id="andna__cache_8h_html_a91c2e2e516a9a1ced4529a8124cf9bd1"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a91c2e2e516a9a1ced4529a8124cf9bd1">andna_counter_c</a></div><div class="ttdeci">counter_c * andna_counter_c</div><div class="ttdef"><b>Definition:</b> andna_cache.h:233</div></div>
<div class="ttc" id="andna__cache_8h_html_ae8459b6eb037374ee41ab08126246eff"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ae8459b6eb037374ee41ab08126246eff">ac_queue_del</a></div><div class="ttdeci">void ac_queue_del(andna_cache *ac, andna_cache_queue *acq)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:246</div></div>
<div class="ttc" id="andna__cache_8h_html_af14ac23fe343278a358dd0493bf158a8"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#af14ac23fe343278a358dd0493bf158a8">rh_cache_add</a></div><div class="ttdeci">rh_cache * rh_cache_add(char *hname, time_t timestamp)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:595</div></div>
<div class="ttc" id="andna__cache_8h_html_a8a095a63758681c7dcf5dea01f432361"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a8a095a63758681c7dcf5dea01f432361">acq_body_iinfo</a></div><div class="ttdeci">static const int_info acq_body_iinfo</div><div class="ttdef"><b>Definition:</b> andna_cache.h:318</div></div>
<div class="ttc" id="structcounter__c_html_a884a0bb978ff6b8cae60002631e3a0ad"><div class="ttname"><a href="../../d3/dae/structcounter__c.html#a884a0bb978ff6b8cae60002631e3a0ad">counter_c::cch</a></div><div class="ttdeci">counter_c_hashes * cch</div><div class="ttdef"><b>Definition:</b> andna_cache.h:139</div></div>
<div class="ttc" id="structrh__cache__pkt__hdr_html"><div class="ttname"><a href="../../dc/d05/structrh__cache__pkt__hdr.html">rh_cache_pkt_hdr</a></div><div class="ttdef"><b>Definition:</b> andna_cache.h:387</div></div>
<div class="ttc" id="andna__cache_8h_html_a298fb2311806748965f9ee1e1b713d8f"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a298fb2311806748965f9ee1e1b713d8f">ac_queue_destroy</a></div><div class="ttdeci">void ac_queue_destroy(andna_cache *ac)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:278</div></div>
<div class="ttc" id="structandna__cache__queue_html"><div class="ttname"><a href="../../d5/d4e/structandna__cache__queue.html">andna_cache_queue</a></div><div class="ttdef"><b>Definition:</b> andna_cache.h:77</div></div>
<div class="ttc" id="structandna__cache_html_a6aad24c1aaf76a4697907c5dbf0fdf99"><div class="ttname"><a href="../../d6/df5/structandna__cache.html#a6aad24c1aaf76a4697907c5dbf0fdf99">andna_cache::queue_counter</a></div><div class="ttdeci">u_short queue_counter</div><div class="ttdef"><b>Definition:</b> andna_cache.h:102</div></div>
<div class="ttc" id="structcounter__c__pkt__hdr_html_a180cb9588fb19a67a1898829f33caeb3"><div class="ttname"><a href="../../d0/db2/structcounter__c__pkt__hdr.html#a180cb9588fb19a67a1898829f33caeb3">counter_c_pkt_hdr::tot_caches</a></div><div class="ttdeci">u_short tot_caches</div><div class="ttdef"><b>Definition:</b> andna_cache.h:373</div></div>
<div class="ttc" id="crypto_8h_html"><div class="ttname"><a href="../../da/da0/crypto_8h.html">crypto.h</a></div></div>
<div class="ttc" id="andna__cache_8h_html_a9edd08e680358abba0f550b789d58d05"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a9edd08e680358abba0f550b789d58d05">del_resolv_conf</a></div><div class="ttdeci">int del_resolv_conf(char *hname, char *file)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:2081</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="structcounter__c_html_aa172ef54f3acb4dce8e8a78d360284e9"><div class="ttname"><a href="../../d3/dae/structcounter__c.html#aa172ef54f3acb4dce8e8a78d360284e9">counter_c::pubkey</a></div><div class="ttdeci">char pubkey[140]</div><div class="ttdef"><b>Definition:</b> andna_cache.h:135</div></div>
<div class="ttc" id="structresolved__hnames__cache_html_a651cc3758bde3d08fe0933fbd43bd256"><div class="ttname"><a href="../../d1/d65/structresolved__hnames__cache.html#a651cc3758bde3d08fe0933fbd43bd256">resolved_hnames_cache::timestamp</a></div><div class="ttdeci">time_t timestamp</div><div class="ttdef"><b>Definition:</b> andna_cache.h:216</div></div>
<div class="ttc" id="andna__cache_8h_html_ae19be3e0190d7a476e8735a1ac57e6be"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ae19be3e0190d7a476e8735a1ac57e6be">counter_c_body_iinfo</a></div><div class="ttdeci">static const int_info counter_c_body_iinfo</div><div class="ttdef"><b>Definition:</b> andna_cache.h:142</div></div>
<div class="ttc" id="andna__cache_8h_html_a57cc184f00d4d7dcba8d59428e0c6eb1"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a57cc184f00d4d7dcba8d59428e0c6eb1">pack_lcl_cache</a></div><div class="ttdeci">char * pack_lcl_cache(lcl_cache *local_cache, size_t *pack_sz)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:746</div></div>
<div class="ttc" id="andna__cache_8h_html_a9fa8ccc3bb0953672b2b27b28bf0d723"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a9fa8ccc3bb0953672b2b27b28bf0d723">load_lcl_keyring</a></div><div class="ttdeci">int load_lcl_keyring(lcl_cache_keyring *keyring, char *file)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1383</div></div>
<div class="ttc" id="andna__cache_8h_html_ac17faff41ae2db220f28aa9867ba9684"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ac17faff41ae2db220f28aa9867ba9684">andna_cache_gethash</a></div><div class="ttdeci">andna_cache * andna_cache_gethash(int hash[4])</div><div class="ttdef"><b>Definition:</b> andna_cache.c:312</div></div>
<div class="ttc" id="andna__cache_8h_html_a4ccf2a3b6d14429ce0065dd7f795768e"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a4ccf2a3b6d14429ce0065dd7f795768e">lcl_cache_destroy</a></div><div class="ttdeci">void lcl_cache_destroy(lcl_cache *head, int *counter)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:122</div></div>
<div class="ttc" id="andna__cache_8h_html_ae60616b519bcdb2f35ed3f35f71151de"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ae60616b519bcdb2f35ed3f35f71151de">lcl_destroy_keyring</a></div><div class="ttdeci">void lcl_destroy_keyring(lcl_cache_keyring *keyring)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:85</div></div>
<div class="ttc" id="andna__cache_8h_html_a7944b8c07bd47d91a2552bf531a8ab31"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a7944b8c07bd47d91a2552bf531a8ab31">cc_findhash</a></div><div class="ttdeci">counter_c_hashes * cc_findhash(counter_c *cc, int hash[4])</div><div class="ttdef"><b>Definition:</b> andna_cache.c:454</div></div>
<div class="ttc" id="structlcl__keyring__pkt__hdr_html_a8420ffd75258ad278761a5521edab3ce"><div class="ttname"><a href="../../d6/dbf/structlcl__keyring__pkt__hdr.html#a8420ffd75258ad278761a5521edab3ce">lcl_keyring_pkt_hdr::pkey_len</a></div><div class="ttdeci">u_int pkey_len</div><div class="ttdef"><b>Definition:</b> andna_cache.h:258</div></div>
<div class="ttc" id="andna__cache_8h_html_a7293b5abfab109b6f0831ef5d9b3e6c8"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a7293b5abfab109b6f0831ef5d9b3e6c8">load_andna_cache</a></div><div class="ttdeci">andna_cache * load_andna_cache(char *file, int *counter)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1517</div></div>
<div class="ttc" id="structlcl__cache__keyring_html_aaecb7d458f06cfa2c6cfa371872b07cc"><div class="ttname"><a href="../../de/d4f/structlcl__cache__keyring.html#aaecb7d458f06cfa2c6cfa371872b07cc">lcl_cache_keyring::priv_rsa</a></div><div class="ttdeci">RSA * priv_rsa</div><div class="ttdef"><b>Definition:</b> andna_cache.h:162</div></div>
<div class="ttc" id="structlcl__cache_html_ac66658ec0aa6fe162f9eaba49a0b46d9"><div class="ttname"><a href="../../d3/dc8/structlcl__cache.html#ac66658ec0aa6fe162f9eaba49a0b46d9">lcl_cache::hname_updates</a></div><div class="ttdeci">u_short hname_updates</div><div class="ttdef"><b>Definition:</b> andna_cache.h:179</div></div>
<div class="ttc" id="andna__cache_8h_html_a3925e5fe679e0615ce60946419855eee"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a3925e5fe679e0615ce60946419855eee">counter_c_del_ifexpired</a></div><div class="ttdeci">int counter_c_del_ifexpired(counter_c *cc)</div></div>
<div class="ttc" id="structcounter__c__hashes_html_a04941b56a428bb23a20a97769ad72ed7"><div class="ttname"><a href="../../d6/d01/structcounter__c__hashes.html#a04941b56a428bb23a20a97769ad72ed7">counter_c_hashes::hash</a></div><div class="ttdeci">int hash[4]</div><div class="ttdef"><b>Definition:</b> andna_cache.h:115</div></div>
<div class="ttc" id="andna__cache_8h_html_aef722a61792359c3a73a56ecad163291"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#aef722a61792359c3a73a56ecad163291">load_rh_cache</a></div><div class="ttdeci">rh_cache * load_rh_cache(char *file, int *counter)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1654</div></div>
<div class="ttc" id="structresolved__hnames__cache_html_aa912a2022d35d91ef89b1ef4e1393c1c"><div class="ttname"><a href="../../d1/d65/structresolved__hnames__cache.html#aa912a2022d35d91ef89b1ef4e1393c1c">resolved_hnames_cache::hash</a></div><div class="ttdeci">u_int hash</div><div class="ttdef"><b>Definition:</b> andna_cache.h:212</div></div>
<div class="ttc" id="structresolved__hnames__cache_html"><div class="ttname"><a href="../../d1/d65/structresolved__hnames__cache.html">resolved_hnames_cache</a></div><div class="ttdef"><b>Definition:</b> andna_cache.h:208</div></div>
<div class="ttc" id="andna__cache_8h_html_a099662b5e5060fa4eef5a25c0573a325"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a099662b5e5060fa4eef5a25c0573a325">save_lcl_cache</a></div><div class="ttdeci">int save_lcl_cache(lcl_cache *lcl, char *file)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1421</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="andna__cache_8h_html_aa3f62f5df5df08e520fd04ab3d4a9b1c"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#aa3f62f5df5df08e520fd04ab3d4a9b1c">lcl_cache_find_hname</a></div><div class="ttdeci">lcl_cache * lcl_cache_find_hname(lcl_cache *head, char *hname)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:136</div></div>
<div class="ttc" id="andna__cache_8h_html_ae8ebacd9d4cd117ac0be33b267ebbfbe"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ae8ebacd9d4cd117ac0be33b267ebbfbe">andna_cache_addhash</a></div><div class="ttdeci">andna_cache * andna_cache_addhash(int hash[4])</div><div class="ttdef"><b>Definition:</b> andna_cache.c:323</div></div>
<div class="ttc" id="llist_8c_html"><div class="ttname"><a href="../../d4/de1/llist_8c.html">llist.c</a></div></div>
<div class="ttc" id="andna__cache_8h_html_a358d266d1016b5fdb814d9bd724f3f6d"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a358d266d1016b5fdb814d9bd724f3f6d">rh_cache_flush</a></div><div class="ttdeci">void rh_cache_flush(void)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:658</div></div>
<div class="ttc" id="structsnsd__service_html"><div class="ttname"><a href="../../dc/d52/structsnsd__service.html">snsd_service</a></div><div class="ttdef"><b>Definition:</b> snsd_cache.h:125</div></div>
<div class="ttc" id="inet_8h_html_a58d45ce77dd4360314b4fd8ca70d9fb8"><div class="ttname"><a href="../../d6/d4a/inet_8h.html#a58d45ce77dd4360314b4fd8ca70d9fb8">MAX_IP_SZ</a></div><div class="ttdeci">#define MAX_IP_SZ</div><div class="ttdef"><b>Definition:</b> inet.h:25</div></div>
<div class="ttc" id="andna__cache_8h_html_a0b680c951a19cc5774a2692828bcab31"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a0b680c951a19cc5774a2692828bcab31">_PACKED_</a></div><div class="ttdeci">struct lcl_keyring_pkt_hdr _PACKED_</div></div>
<div class="ttc" id="andna__cache_8h_html_ab554f25eba04cf2eb41deac263e6cf07"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ab554f25eba04cf2eb41deac263e6cf07">save_lcl_keyring</a></div><div class="ttdeci">int save_lcl_keyring(lcl_cache_keyring *keyring, char *file)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1351</div></div>
<div class="ttc" id="structcounter__c_html_a1fee4309601697b11b6acaee21279202"><div class="ttname"><a href="../../d3/dae/structcounter__c.html#a1fee4309601697b11b6acaee21279202">counter_c::hashes</a></div><div class="ttdeci">u_short hashes</div><div class="ttdef"><b>Definition:</b> andna_cache.h:138</div></div>
<div class="ttc" id="andna__cache_8h_html_ae02422c831311cf5357e92febb94925f"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ae02422c831311cf5357e92febb94925f">save_andna_cache</a></div><div class="ttdeci">int save_andna_cache(andna_cache *acache, char *file)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1487</div></div>
<div class="ttc" id="andna__cache_8h_html_a3642fc1196ec9c459ed6c8bcc1d32638"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a3642fc1196ec9c459ed6c8bcc1d32638">rh_cache_del_expired</a></div><div class="ttdeci">void rh_cache_del_expired(void)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:643</div></div>
<div class="ttc" id="andna__cache_8h_html_a980b534d1201d9557fdb3beba6221ba7"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a980b534d1201d9557fdb3beba6221ba7">load_hostnames</a></div><div class="ttdeci">int load_hostnames(char *file, lcl_cache **old_alcl_head, int *old_alcl_counter)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1707</div></div>
<div class="ttc" id="andna__cache_8h_html_a92e5cdf345e217c8fdb94d7e671e66f3"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a92e5cdf345e217c8fdb94d7e671e66f3">andna_cache_del_ifexpired</a></div><div class="ttdeci">int andna_cache_del_ifexpired(andna_cache *ac)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:344</div></div>
<div class="ttc" id="andna__cache_8h_html_abf435c93b128f5bba328b5ea73076af1"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#abf435c93b128f5bba328b5ea73076af1">andna_cache_findhash</a></div><div class="ttdeci">andna_cache * andna_cache_findhash(int hash[4])</div><div class="ttdef"><b>Definition:</b> andna_cache.c:290</div></div>
<div class="ttc" id="structlcl__keyring__pkt__hdr_html"><div class="ttname"><a href="../../d6/dbf/structlcl__keyring__pkt__hdr.html">lcl_keyring_pkt_hdr</a></div><div class="ttdef"><b>Definition:</b> andna_cache.h:255</div></div>
<div class="ttc" id="andna__cache_8h_html_a52518e47b04c11f9400f5a27d92b26da"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a52518e47b04c11f9400f5a27d92b26da">ac_queue_add</a></div><div class="ttdeci">andna_cache_queue * ac_queue_add(andna_cache *ac, char *pubkey)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:220</div></div>
<div class="ttc" id="structlcl__cache__keyring_html_ade640e52273a55513822b2a9b1e95da2"><div class="ttname"><a href="../../de/d4f/structlcl__cache__keyring.html#ade640e52273a55513822b2a9b1e95da2">lcl_cache_keyring::skey_len</a></div><div class="ttdeci">u_int skey_len</div><div class="ttdef"><b>Definition:</b> andna_cache.h:156</div></div>
<div class="ttc" id="structlcl__cache_html_a20f1ed0ca263d96d91abafa9ca2d55cc"><div class="ttname"><a href="../../d3/dc8/structlcl__cache.html#a20f1ed0ca263d96d91abafa9ca2d55cc">lcl_cache::service</a></div><div class="ttdeci">snsd_service * service</div><div class="ttdef"><b>Definition:</b> andna_cache.h:187</div></div>
<div class="ttc" id="structlcl__cache_html_ae45f4051156b8cbf4dfad0d3e8408545"><div class="ttname"><a href="../../d3/dc8/structlcl__cache.html#ae45f4051156b8cbf4dfad0d3e8408545">lcl_cache::hostname</a></div><div class="ttdeci">char * hostname</div><div class="ttdef"><b>Definition:</b> andna_cache.h:176</div></div>
<div class="ttc" id="andna__cache_8h_html_a62f4d19ec69cb84b3011a4b328332cb9"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a62f4d19ec69cb84b3011a4b328332cb9">andna_rhc</a></div><div class="ttdeci">rh_cache * andna_rhc</div><div class="ttdef"><b>Definition:</b> andna_cache.h:240</div></div>
<div class="ttc" id="andna__cache_8h_html_a722ac79afb3bd791d1c832de7ed859b8"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a722ac79afb3bd791d1c832de7ed859b8">cc_hashes_del_expired</a></div><div class="ttdeci">void cc_hashes_del_expired(counter_c *cc)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:426</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="andna__cache_8h_html_a78885141648274051a9347d0bfe8d5b9"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a78885141648274051a9347d0bfe8d5b9">lcl_get_registered_hnames</a></div><div class="ttdeci">lcl_cache * lcl_get_registered_hnames(lcl_cache *alcl)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:175</div></div>
<div class="ttc" id="andna__cache_8h_html_ae30431f21d44516e3c006ae361578d9c"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ae30431f21d44516e3c006ae361578d9c">load_snsd</a></div><div class="ttdeci">int load_snsd(char *file, lcl_cache *alcl_head)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1792</div></div>
<div class="ttc" id="andna__cache_8h_html_a251759601e094b59de67ebee59725c4c"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a251759601e094b59de67ebee59725c4c">lcl_new_keyring</a></div><div class="ttdeci">void lcl_new_keyring(lcl_cache_keyring *keyring)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:70</div></div>
<div class="ttc" id="andna__cache_8h_html_aa7f953fb73883ef4de5496fa974472f3"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#aa7f953fb73883ef4de5496fa974472f3">andna_cache_destroy</a></div><div class="ttdeci">void andna_cache_destroy(void)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:372</div></div>
<div class="ttc" id="structlcl__keyring__pkt__hdr_html_a0bc79bd494024b040d09a1c04f9f35db"><div class="ttname"><a href="../../d6/dbf/structlcl__keyring__pkt__hdr.html#a0bc79bd494024b040d09a1c04f9f35db">lcl_keyring_pkt_hdr::skey_len</a></div><div class="ttdeci">u_int skey_len</div><div class="ttdef"><b>Definition:</b> andna_cache.h:257</div></div>
<div class="ttc" id="andna__cache_8h_html_a54856f5aae2cb70a2342cd6ad1120b51"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a54856f5aae2cb70a2342cd6ad1120b51">rh_cache_find_hash</a></div><div class="ttdeci">rh_cache * rh_cache_find_hash(u_int hash)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:600</div></div>
<div class="ttc" id="andna__cache_8h_html_a5b83a6d462f83c5dd6484dff7f10fc39"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a5b83a6d462f83c5dd6484dff7f10fc39">ac_queue_del_expired</a></div><div class="ttdeci">void ac_queue_del_expired(andna_cache *ac)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:260</div></div>
<div class="ttc" id="andna__cache_8h_html_a84ab15d774221688059d8eba78272b04"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a84ab15d774221688059d8eba78272b04">lcl_counter</a></div><div class="ttdeci">int lcl_counter</div><div class="ttdef"><b>Definition:</b> andna_cache.h:238</div></div>
<div class="ttc" id="andna__cache_8h_html_a2e671db507cb5a73fe73c8eda6fcc7f4"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a2e671db507cb5a73fe73c8eda6fcc7f4">unpack_rh_cache</a></div><div class="ttdeci">rh_cache * unpack_rh_cache(char *pack, size_t pack_sz, int *counter)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1297</div></div>
<div class="ttc" id="structcounter__c__hashes_html_aa394b1c8bb05a8d60e6c8f6646947a9c"><div class="ttname"><a href="../../d6/d01/structcounter__c__hashes.html#aa394b1c8bb05a8d60e6c8f6646947a9c">counter_c_hashes::hname_updates</a></div><div class="ttdeci">u_short hname_updates</div><div class="ttdef"><b>Definition:</b> andna_cache.h:114</div></div>
<div class="ttc" id="andna__cache_8h_html_aaa2d1760768bb83783542c9a48052da1"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#aaa2d1760768bb83783542c9a48052da1">cc_hashes_destroy</a></div><div class="ttdeci">void cc_hashes_destroy(counter_c *cc)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:442</div></div>
<div class="ttc" id="andna__cache_8h_html_a9f7cabda293c637bbcaf1d99c26b5670"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a9f7cabda293c637bbcaf1d99c26b5670">counter_c_add</a></div><div class="ttdeci">counter_c * counter_c_add(inet_prefix *rip, char *pubkey)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:480</div></div>
<div class="ttc" id="andna__cache_8h_html_a60fdbdec49432f14029850a309df83ad"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a60fdbdec49432f14029850a309df83ad">pack_lcl_keyring</a></div><div class="ttdeci">char * pack_lcl_keyring(lcl_cache_keyring *keyring, size_t *pack_sz)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:672</div></div>
<div class="ttc" id="andna__cache_8h_html_af13082dd1ffb0686b83cc50a574fee62"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#af13082dd1ffb0686b83cc50a574fee62">rh_cache_pkt_hdr_iinfo</a></div><div class="ttdeci">static const int_info rh_cache_pkt_hdr_iinfo</div><div class="ttdef"><b>Definition:</b> andna_cache.h:392</div></div>
<div class="ttc" id="structresolved__hnames__cache_html_ad5a78be469f180912c48b99713e01817"><div class="ttname"><a href="../../d1/d65/structresolved__hnames__cache.html#ad5a78be469f180912c48b99713e01817">resolved_hnames_cache::service</a></div><div class="ttdeci">snsd_service * service</div><div class="ttdef"><b>Definition:</b> andna_cache.h:222</div></div>
<div class="ttc" id="structlcl__cache_html_a1d8a8dd9ed6dbd59eb2a5ba150b07b75"><div class="ttname"><a href="../../d3/dc8/structlcl__cache.html#a1d8a8dd9ed6dbd59eb2a5ba150b07b75">lcl_cache::snsd_counter</a></div><div class="ttdeci">u_short snsd_counter</div><div class="ttdef"><b>Definition:</b> andna_cache.h:186</div></div>
<div class="ttc" id="structcounter__c_html"><div class="ttname"><a href="../../d3/dae/structcounter__c.html">counter_c</a></div><div class="ttdef"><b>Definition:</b> andna_cache.h:131</div></div>
<div class="ttc" id="structandna__cache__pkt__hdr_html"><div class="ttname"><a href="../../da/d4c/structandna__cache__pkt__hdr.html">andna_cache_pkt_hdr</a></div><div class="ttdef"><b>Definition:</b> andna_cache.h:328</div></div>
<div class="ttc" id="andna__cache_8h_html_a85d78478e24191d1b67942636dcbcda5"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a85d78478e24191d1b67942636dcbcda5">load_counter_c</a></div><div class="ttdeci">counter_c * load_counter_c(char *file, int *counter)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1586</div></div>
<div class="ttc" id="andna__cache_8h_html_a60bbedfc10683759a1982925fcc92d36"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a60bbedfc10683759a1982925fcc92d36">rh_cache_pkt_body_iinfo</a></div><div class="ttdeci">static const int_info rh_cache_pkt_body_iinfo</div><div class="ttdef"><b>Definition:</b> andna_cache.h:407</div></div>
<div class="ttc" id="andna__cache_8h_html_aed9cccf08d649d2e68d14ade8dcac375"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#aed9cccf08d649d2e68d14ade8dcac375">load_lcl_cache</a></div><div class="ttdeci">lcl_cache * load_lcl_cache(char *file, int *counter)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1451</div></div>
<div class="ttc" id="andna__cache_8h_html_a9e835a93044b55120092bcce4bb011cf"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a9e835a93044b55120092bcce4bb011cf">lcl_keyring_pkt_hdr_iinfo</a></div><div class="ttdeci">static const int_info lcl_keyring_pkt_hdr_iinfo</div><div class="ttdef"><b>Definition:</b> andna_cache.h:266</div></div>
<div class="ttc" id="structcounter__c__pkt__hdr_html"><div class="ttname"><a href="../../d0/db2/structcounter__c__pkt__hdr.html">counter_c_pkt_hdr</a></div><div class="ttdef"><b>Definition:</b> andna_cache.h:371</div></div>
<div class="ttc" id="andna__cache_8h_html_ad36261c4854577e1921a9d9033b09e88"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ad36261c4854577e1921a9d9033b09e88">unpack_lcl_cache</a></div><div class="ttdeci">lcl_cache * unpack_lcl_cache(char *pack, size_t pack_sz, int *counter)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:797</div></div>
<div class="ttc" id="inet_8h_html"><div class="ttname"><a href="../../d6/d4a/inet_8h.html">inet.h</a></div></div>
<div class="ttc" id="structresolved__hnames__cache_html_a6a91d88a43789b0395369cc2fab0eef9"><div class="ttname"><a href="../../d1/d65/structresolved__hnames__cache.html#a6a91d88a43789b0395369cc2fab0eef9">resolved_hnames_cache::flags</a></div><div class="ttdeci">char flags</div><div class="ttdef"><b>Definition:</b> andna_cache.h:214</div></div>
<div class="ttc" id="structandna__cache__queue_html_ad1d36544ab87a12da054b6ce2a1f8f39"><div class="ttname"><a href="../../d5/d4e/structandna__cache__queue.html#ad1d36544ab87a12da054b6ce2a1f8f39">andna_cache_queue::hname_updates</a></div><div class="ttdeci">u_short hname_updates</div><div class="ttdef"><b>Definition:</b> andna_cache.h:82</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="andna__cache_8h_html_a3a7e5bcce911a001f171ff5aec1363e3"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a3a7e5bcce911a001f171ff5aec1363e3">cc_hashes_add</a></div><div class="ttdeci">counter_c_hashes * cc_hashes_add(counter_c *cc, int hash[4])</div><div class="ttdef"><b>Definition:</b> andna_cache.c:395</div></div>
<div class="ttc" id="structandna__cache_html_ae6f256e1d7a8241c39756f018c8daf5b"><div class="ttname"><a href="../../d6/df5/structandna__cache.html#ae6f256e1d7a8241c39756f018c8daf5b">andna_cache::hash</a></div><div class="ttdeci">u_int hash[4]</div><div class="ttdef"><b>Definition:</b> andna_cache.h:99</div></div>
<div class="ttc" id="structcounter__c__hashes_html_a7945cb02a59f0c5e0c14aa6aef1b5395"><div class="ttname"><a href="../../d6/d01/structcounter__c__hashes.html#a7945cb02a59f0c5e0c14aa6aef1b5395">counter_c_hashes::timestamp</a></div><div class="ttdeci">time_t timestamp</div><div class="ttdef"><b>Definition:</b> andna_cache.h:113</div></div>
<div class="ttc" id="structlcl__cache_html"><div class="ttname"><a href="../../d3/dc8/structlcl__cache.html">lcl_cache</a></div><div class="ttdef"><b>Definition:</b> andna_cache.h:172</div></div>
<div class="ttc" id="andna__cache_8h_html_a168a5f13166e44611dfc70c085c9cc56"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a168a5f13166e44611dfc70c085c9cc56">rh_cache_add_hash</a></div><div class="ttdeci">rh_cache * rh_cache_add_hash(u_int hash, time_t timestamp)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:560</div></div>
<div class="ttc" id="structandna__cache_html_aa4c85ebdf8c0e091870bf0a74ea4b45d"><div class="ttname"><a href="../../d6/df5/structandna__cache.html#aa4c85ebdf8c0e091870bf0a74ea4b45d">andna_cache::acq</a></div><div class="ttdeci">andna_cache_queue * acq</div><div class="ttdef"><b>Definition:</b> andna_cache.h:103</div></div>
<div class="ttc" id="structandna__cache__queue_html_a838dd5eddbde69604c5870749dedf944"><div class="ttname"><a href="../../d5/d4e/structandna__cache__queue.html#a838dd5eddbde69604c5870749dedf944">andna_cache_queue::service</a></div><div class="ttdeci">snsd_service * service</div><div class="ttdef"><b>Definition:</b> andna_cache.h:86</div></div>
<div class="ttc" id="andna__cache_8h_html_aba364b75290b92041b9d27b76dd6c255"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#aba364b75290b92041b9d27b76dd6c255">save_rh_cache</a></div><div class="ttdeci">int save_rh_cache(rh_cache *rh, char *file)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1623</div></div>
<div class="ttc" id="andna__cache_8h_html_a9a5622c1d456d34edea6d72281957e3c"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a9a5622c1d456d34edea6d72281957e3c">add_resolv_conf</a></div><div class="ttdeci">int add_resolv_conf(char *hname, char *file)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1954</div></div>
<div class="ttc" id="andna__cache_8h_html_a0df1bcedcc94f5eb43bf734603c1f7a5"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a0df1bcedcc94f5eb43bf734603c1f7a5">pack_rh_cache</a></div><div class="ttdeci">char * pack_rh_cache(rh_cache *rhcache, size_t *pack_sz)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1240</div></div>
<div class="ttc" id="structlcl__cache__keyring_html_add54784c16319225cf3ac3e85fb9e727"><div class="ttname"><a href="../../de/d4f/structlcl__cache__keyring.html#add54784c16319225cf3ac3e85fb9e727">lcl_cache_keyring::privkey</a></div><div class="ttdeci">u_char * privkey</div><div class="ttdef"><b>Definition:</b> andna_cache.h:159</div></div>
<div class="ttc" id="andna__cache_8h_html_a486d06fca85a9ec0fad5481aff214b21"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a486d06fca85a9ec0fad5481aff214b21">lcl_cache_pkt_body_iinfo</a></div><div class="ttdeci">static const int_info lcl_cache_pkt_body_iinfo</div><div class="ttdef"><b>Definition:</b> andna_cache.h:298</div></div>
<div class="ttc" id="snsd__cache_8h_html"><div class="ttname"><a href="../../d6/d2e/snsd__cache_8h.html">snsd_cache.h</a></div></div>
<div class="ttc" id="andna__cache_8h_html_aea331db01a63ce8828aa384a0d44dc99"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#aea331db01a63ce8828aa384a0d44dc99">counter_c_destroy</a></div><div class="ttdeci">void counter_c_destroy(void)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:515</div></div>
<div class="ttc" id="structandna__cache__queue_html_acb33163d7e65ab518bbd0b2d2269addd"><div class="ttname"><a href="../../d5/d4e/structandna__cache__queue.html#acb33163d7e65ab518bbd0b2d2269addd">andna_cache_queue::timestamp</a></div><div class="ttdeci">time_t timestamp</div><div class="ttdef"><b>Definition:</b> andna_cache.h:81</div></div>
<div class="ttc" id="andna__cache_8h_html_af2cd433cbcb6f5f826507c8505ecfa11"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#af2cd433cbcb6f5f826507c8505ecfa11">counter_c_pkt_hdr_iinfo</a></div><div class="ttdeci">static const int_info counter_c_pkt_hdr_iinfo</div><div class="ttdef"><b>Definition:</b> andna_cache.h:375</div></div>
<div class="ttc" id="structrh__cache__pkt__hdr_html_a12ab53da6769826ab99cf64282b88e0e"><div class="ttname"><a href="../../dc/d05/structrh__cache__pkt__hdr.html#a12ab53da6769826ab99cf64282b88e0e">rh_cache_pkt_hdr::tot_caches</a></div><div class="ttdeci">u_short tot_caches</div><div class="ttdef"><b>Definition:</b> andna_cache.h:389</div></div>
<div class="ttc" id="structlcl__cache_html_a41d49eec85b1b3a56f5e9de91c523a45"><div class="ttname"><a href="../../d3/dc8/structlcl__cache.html#a41d49eec85b1b3a56f5e9de91c523a45">lcl_cache::timestamp</a></div><div class="ttdeci">time_t timestamp</div><div class="ttdef"><b>Definition:</b> andna_cache.h:181</div></div>
<div class="ttc" id="andna__cache_8h_html_ae29118f7283a4a31df8f48115ce05d3f"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ae29118f7283a4a31df8f48115ce05d3f">andna_c_counter</a></div><div class="ttdeci">int andna_c_counter</div><div class="ttdef"><b>Definition:</b> andna_cache.h:231</div></div>
<div class="ttc" id="structlcl__cache__pkt__hdr_html"><div class="ttname"><a href="../../df/d9c/structlcl__cache__pkt__hdr.html">lcl_cache_pkt_hdr</a></div><div class="ttdef"><b>Definition:</b> andna_cache.h:278</div></div>
<div class="ttc" id="structcounter__c__hashes_html"><div class="ttname"><a href="../../d6/d01/structcounter__c__hashes.html">counter_c_hashes</a></div><div class="ttdef"><b>Definition:</b> andna_cache.h:109</div></div>
<div class="ttc" id="structandna__cache__queue_html_adca01b1e576c93181ae4f9cd435c7690"><div class="ttname"><a href="../../d5/d4e/structandna__cache__queue.html#adca01b1e576c93181ae4f9cd435c7690">andna_cache_queue::pubkey</a></div><div class="ttdeci">char pubkey[140]</div><div class="ttdef"><b>Definition:</b> andna_cache.h:83</div></div>
<div class="ttc" id="andna__cache_8h_html_a9e2119d6e5577e09195d8c3a5fc9f7af"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a9e2119d6e5577e09195d8c3a5fc9f7af">andna_lcl</a></div><div class="ttdeci">lcl_cache * andna_lcl</div><div class="ttdef"><b>Definition:</b> andna_cache.h:237</div></div>
<div class="ttc" id="andna__cache_8h_html_a9f31cc6fdac4aafa08e170ded22e2eac"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a9f31cc6fdac4aafa08e170ded22e2eac">rh_cache_find_hname</a></div><div class="ttdeci">rh_cache * rh_cache_find_hname(char *hname)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:626</div></div>
<div class="ttc" id="andna__cache_8h_html_a58ddbd1e98331ce0103b1df0f9d02e62"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a58ddbd1e98331ce0103b1df0f9d02e62">lcl_cache_new</a></div><div class="ttdeci">lcl_cache * lcl_cache_new(char *hname)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:101</div></div>
<div class="ttc" id="llist_8c_html_ac92348e99cfae025c3893c07fee7b263"><div class="ttname"><a href="../../d4/de1/llist_8c.html#ac92348e99cfae025c3893c07fee7b263">LLIST_HDR</a></div><div class="ttdeci">#define LLIST_HDR(_struct)</div><div class="ttdef"><b>Definition:</b> llist.c:44</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="structandna__cache_html_a5f7bf21b5bbaf36d538a1e1ce6206873"><div class="ttname"><a href="../../d6/df5/structandna__cache.html#a5f7bf21b5bbaf36d538a1e1ce6206873">andna_cache::flags</a></div><div class="ttdeci">char flags</div><div class="ttdef"><b>Definition:</b> andna_cache.h:100</div></div>
<div class="ttc" id="structandna__cache__queue_html_a57b44b9dcae9dbd66a3591f4a8863364"><div class="ttname"><a href="../../d5/d4e/structandna__cache__queue.html#a57b44b9dcae9dbd66a3591f4a8863364">andna_cache_queue::snsd_counter</a></div><div class="ttdeci">u_short snsd_counter</div><div class="ttdef"><b>Definition:</b> andna_cache.h:85</div></div>
<div class="ttc" id="andna__cache_8h_html_ad7892b79f2529cfdcb0829012b27e265"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ad7892b79f2529cfdcb0829012b27e265">andna_cache_del_expired</a></div><div class="ttdeci">void andna_cache_del_expired(void)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:356</div></div>
<div class="ttc" id="andna__cache_8h_html_a57b6910145403bc64b51a24b0d1a468e"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a57b6910145403bc64b51a24b0d1a468e">counter_c_findpubk</a></div><div class="ttdeci">counter_c * counter_c_findpubk(char *pubk)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:467</div></div>
<div class="ttc" id="andna__cache_8h_html_a210cb44a4a47e7a1428e7db30803b8f0"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a210cb44a4a47e7a1428e7db30803b8f0">lcl_keyring</a></div><div class="ttdeci">lcl_cache_keyring lcl_keyring</div><div class="ttdef"><b>Definition:</b> andna_cache.h:236</div></div>
<div class="ttc" id="structlcl__cache__keyring_html_a38a3c14be71e7758e61f90a3aaf6736f"><div class="ttname"><a href="../../de/d4f/structlcl__cache__keyring.html#a38a3c14be71e7758e61f90a3aaf6736f">lcl_cache_keyring::pkey_len</a></div><div class="ttdeci">u_int pkey_len</div><div class="ttdef"><b>Definition:</b> andna_cache.h:157</div></div>
<div class="ttc" id="endianness_8h_html_acc663d0291dd4a32c1dfbed3167bd58b"><div class="ttname"><a href="../../dc/d3e/endianness_8h.html#acc663d0291dd4a32c1dfbed3167bd58b">INT_TYPE_32BIT</a></div><div class="ttdeci">#define INT_TYPE_32BIT</div><div class="ttdef"><b>Definition:</b> endianness.h:35</div></div>
<div class="ttc" id="andna__cache_8h_html_aea6b3530450b0ee747803a39cd9e72b1"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#aea6b3530450b0ee747803a39cd9e72b1">counter_c_hashes_body_iinfo</a></div><div class="ttdeci">static const int_info counter_c_hashes_body_iinfo</div><div class="ttdef"><b>Definition:</b> andna_cache.h:118</div></div>
<div class="ttc" id="andna__cache_8h_html_a8c597b42f177efc44b30898859f26d39"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a8c597b42f177efc44b30898859f26d39">ANDNA_PKEY_LEN</a></div><div class="ttdeci">#define ANDNA_PKEY_LEN</div><div class="ttdef"><b>Definition:</b> andna_cache.h:45</div></div>
<div class="ttc" id="andna__cache_8h_html_ab82dc4bb575d3f181457ea7c3076c858"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#ab82dc4bb575d3f181457ea7c3076c858">save_counter_c</a></div><div class="ttdeci">int save_counter_c(counter_c *countercache, char *file)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1556</div></div>
<div class="ttc" id="andna__cache_8h_html_a4c8d78382f5a584edf99f1006905b877"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a4c8d78382f5a584edf99f1006905b877">rhc_counter</a></div><div class="ttdeci">int rhc_counter</div><div class="ttdef"><b>Definition:</b> andna_cache.h:241</div></div>
<div class="ttc" id="andna__cache_8h_html_a1220f5170a635cbdb05150b17ea21ced"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a1220f5170a635cbdb05150b17ea21ced">ac_queue_findpubk</a></div><div class="ttdeci">andna_cache_queue * ac_queue_findpubk(andna_cache *ac, char *pubk)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:195</div></div>
<div class="ttc" id="andna__cache_8h_html_a4b21aef8e93a716d20d4ef65a610e872"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a4b21aef8e93a716d20d4ef65a610e872">lcl_cache_pkt_hdr_iinfo</a></div><div class="ttdeci">static const int_info lcl_cache_pkt_hdr_iinfo</div><div class="ttdef"><b>Definition:</b> andna_cache.h:283</div></div>
<div class="ttc" id="structlcl__cache__keyring_html_a293ca5f965c6fae6d6fbdb69945f38d3"><div class="ttname"><a href="../../de/d4f/structlcl__cache__keyring.html#a293ca5f965c6fae6d6fbdb69945f38d3">lcl_cache_keyring::pubkey</a></div><div class="ttdeci">u_char * pubkey</div><div class="ttdef"><b>Definition:</b> andna_cache.h:160</div></div>
<div class="ttc" id="andna__cache_8h_html_abd1eabe1fca433e9130a7ab6da0e19e4"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#abd1eabe1fca433e9130a7ab6da0e19e4">counter_c_del_expired</a></div><div class="ttdeci">void counter_c_del_expired(void)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:496</div></div>
<div class="ttc" id="andna__cache_8h_html_a35e46feb951ff01251d48e46ef345f96"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a35e46feb951ff01251d48e46ef345f96">unpack_andna_cache</a></div><div class="ttdeci">andna_cache * unpack_andna_cache(char *pack, size_t pack_sz, int *counter, int pack_type)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:1047</div></div>
<div class="ttc" id="andna__cache_8h_html_a0d9f1fef5d898612fcabd13b79b486ba"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a0d9f1fef5d898612fcabd13b79b486ba">pack_andna_cache</a></div><div class="ttdeci">char * pack_andna_cache(andna_cache *acache, size_t *pack_sz, int pack_type)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:930</div></div>
<div class="ttc" id="structlcl__cache__pkt__hdr_html_a8c2f31173c5e7a3a8c25f0865b56601e"><div class="ttname"><a href="../../df/d9c/structlcl__cache__pkt__hdr.html#a8c2f31173c5e7a3a8c25f0865b56601e">lcl_cache_pkt_hdr::tot_caches</a></div><div class="ttdeci">u_short tot_caches</div><div class="ttdef"><b>Definition:</b> andna_cache.h:280</div></div>
<div class="ttc" id="andna__cache_8h_html_a1b05831280109c236a1093b623176022"><div class="ttname"><a href="../../d7/d74/andna__cache_8h.html#a1b05831280109c236a1093b623176022">unpack_lcl_keyring</a></div><div class="ttdeci">int unpack_lcl_keyring(lcl_cache_keyring *keyring, char *pack, size_t pack_sz)</div><div class="ttdef"><b>Definition:</b> andna_cache.c:697</div></div>
<div class="ttc" id="structandna__cache__pkt__hdr_html_a3767718855e19d0a204a2f528c6ca2a0"><div class="ttname"><a href="../../da/d4c/structandna__cache__pkt__hdr.html#a3767718855e19d0a204a2f528c6ca2a0">andna_cache_pkt_hdr::tot_caches</a></div><div class="ttdeci">u_short tot_caches</div><div class="ttdef"><b>Definition:</b> andna_cache.h:330</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="../../d7/d74/andna__cache_8h.html">andna_cache.h</a></li>
2014-02-20 00:30:40 +00:00
<li class="footer">Generated on Wed Feb 19 2014 16:28:39 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>